大数据技术中常用的Linux命令

大数据学习过程中,经常会用到的linux命令,以及常见的坑和解决办法。

1. 按修改时间排序当前文件夹内容

ll -rt   //按时间排序。r表示倒序,t表示按修改时间排序。

2.移动和复制的标准写法

mv dir1 src/dir1    //移动文件夹到指定目录
cp -r dir2 src/dir2 //复制文件夹到指定目录

3.查看大文件

more:空格下翻,无法回退,q退出
less:上下键翻页,q退出

4.实时查看文件末尾内容

tail -f :实时查看文件最新内容
tail -F :相当于 -f + retry

5.定位ERROR信息

cat xxx.log | grep ERROR        //当前行
cat xxx.log | grep -A 5 ERROR   //后5行
cat xxx.log | grep -B 5 ERROR   //前5行
cat xxx.log | grep -C 5 ERROR   //前后各5行
比如 xxx.log ERROR 很多个,可以先输出到日志 
cat xxx.log | grep -C 5 ERROR > 20200418error.log

6.别名alias

alias jj='cd /tmp'  //只在当前会话生效,全局生效需要在环境变量中配置。此时输入jj就可直接跳转到/tmp目录下。

7.配置环境变量

全局 : /etc/profile    所有用户都可以使用  
个人 : ~/.bash_profile   只能是当前用户使用  其他不能使用
      ~/.bashrc 【推荐】
      场景: ssh 远程执行B机器的命令找不到,但是直接登录B机器命令是找到的。
	  解决办法:环境变量应该配置在.bashrc文件。

8.查看历史命令

history:显示历史命令
history -c:清空历史命令

9.用户、用户组

用户信息 /etc/passwd
用户组信息 /etc/group
root 默认管理员用户,已存在的。

[root@ruozedata001 ~]# ll /usr/sbin/user*
-rwxr-x--- 1 root root 118192 Nov  6  2016 /usr/sbin/useradd
-rwxr-x--- 1 root root  80360 Nov  6  2016 /usr/sbin/userdel
-rwxr-x--- 1 root root 113840 Nov  6  2016 /usr/sbin/usermod
-rwsr-xr-x 1 root root  11296 Apr 13  2017 /usr/sbin/usernetctl
[root@ruozedata001 ~]# ll /usr/sbin/group*
-rwxr-x--- 1 root root 65480 Nov  6  2016 /usr/sbin/groupadd
-rwxr-x--- 1 root root 57016 Nov  6  2016 /usr/sbin/groupdel
-rwxr-x--- 1 root root 57064 Nov  6  2016 /usr/sbin/groupmems
-rwxr-x--- 1 root root 76424 Nov  6  2016 /usr/sbin/groupmod

创建一个普通用户,用户名称ruoze,同时也会创建一个ruoze用户组,设置ruoze用户的组为ruoze,且把这个ruoze用户组设置为主组,同时也会创建家目录 /home/ruoze。

[root@ruozedata001 ~]# useradd ruoze
[root@ruozedata001 ~]# userdel ruoze
[root@ruozedata001 ~]# useradd ruoze
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[root@ruozedata001 ~]# 
[root@ruozedata001 ~]# su - ruoze
[root@ruozedata001 ~]# id ruoze   //显示用户信息
uid=1004(ruoze) gid=1004(ruoze) groups=1004(ruoze)
[ruoze@ruozedata001 ~]$ ll -a
total 16
drwx------  2 ruoze ruoze  79 Apr 19 20:16 .
drwxr-xr-x. 7 root  root   67 Apr 19 20:10 ..
-rw-------  1 ruoze ruoze  28 Apr 19 20:17 .bash_history
-rw-r--r--  1 ruoze ruoze  18 Apr 11  2018 .bash_logout
-rw-r--r--  1 ruoze ruoze 193 Apr 11  2018 .bash_profile
-rw-r--r--  1 ruoze ruoze 231 Apr 11  2018 .bashrc
[ruoze@ruozedata001 ~]$ rm -rf .bash*
[root@ruozedata001 ~]# su - ruoze
Last login: Sun Apr 19 20:17:08 CST 2020 on pts/0
-bash-4.2$      								  //出现样式丢失,因为缺失.bash_profile和.bashrc
-bash-4.2$ cp /etc/skel/.* ./            //根据提示信息拷贝配置文件,再次切换用户,恢复正常。
添加用户ruoze到bigdata用户组
[root@ruozedata001 ~]# groupadd bigdata
[root@ruozedata001 ~]# usermod -a -G bigdata ruoze
[root@ruozedata001 ~]# id ruoze
uid=1004(ruoze) gid=1004(ruoze) groups=1004(ruoze),1005(bigdata)
改变用户ruoze的主组到bigdata用户组
[root@ruozedata001 ~]# usermod -g bigdata ruoze
[root@ruozedata001 ~]# id ruoze
uid=1004(ruoze) gid=1005(bigdata) groups=1005(bigdata)    //发现缺失了ruoze用户组
[root@ruozedata001 ~]# usermod -a -G ruoze ruoze
[root@ruozedata001 ~]# id ruoze
uid=1004(ruoze) gid=1005(bigdata) groups=1005(bigdata),1004(ruoze)

10.修改密码

[root@ruozedata001 ~]# passwd
Changing password for user root.
New password: 
[root@ruozedata001 ~]# passwd ruoze
Changing password for user ruoze.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

11.切换目录

su ruoze
su - ruoze 【推荐】:代表该用户切换到家目录,且执行环境变量文件
sudo:普通用户临时使用root的最大权限,使用前先配置文件:
vi /etc/sudoers
ruoze   ALL=(root)      NOPASSWD:ALL

12./etc/passwd文件

下面两种写法会导致切换用户不成功,需要修改/etc/passwd文件。
ruoze: x:1004:1005::/home/ruoze:/sbin/nologin  有提示 
ruoze: x:1004:1005::/home/ruoze:/usr/bin/false 没提示 
如CDH平台的用户:hdfs yarn hive hbase
su - yarn 不成功的,需按如下修改:
/sbin/nologin 或 /usr/bin/false ===> /bin/bash

13.查看大小

文件: ll -h 、du -sh
文件夹:        du -sh

14.vi编辑注意事项

14.1
set nu   设置行号
set nonu 取消行号

14.2
异常退出vi编辑会产生.swp文件,删除该文件就可正常编辑。

14.3 常用快捷方式
dd 删除当前行
dG 删除当前及以下所有行
ndd 删除当前及以下n行
gg 跳转到第一行的第一个字母
G  跳转到最后一行的第一个字母
shift+$ 行尾 

14.4 场景:清空这个文件内容,从另外一个文件内容 拷贝过来
gg --> dG  --> i  --> 鼠标右键单击 粘贴上

清空补充:
cat /dev/null > 1.log   //不会存在一个空白行
echo  "" > 2.log        //会存在一个空白行
true > 1.log  也是清空文件内容 0字节

15.系统资源查看

磁盘 df -h
内存 free -m
负载 top

系统负载
load average: 0.01, 0.03, 0.05(1min 5min 15min)

经验值: 10 生产不用超过这个 ,否则认为服务器就是卡
a.是你的程序有问题 在大量跑计算
b.是不是被挖矿 yarn redis 最容易被hacker 攻击
c.硬件问题 内存条 硬盘 重启
示例:

top - 21:20:22 up 7 days, 58 min,  1 user,  load average: 0.01, 0.03, 0.05
Tasks:  89 total,   1 running,  88 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.5 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st
KiB Mem :  8011076 total,  6377388 free,   229060 used,  1404628 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  7265724 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                  
 2374 root      20   0  394348  31376   8608 S   0.3  0.4  41:44.99 jdog-kunlunmirr                          
    1 root      20   0  125356   3796   2508 S   0.0  0.0   1:22.32 systemd                                  
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                 
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.08 ksoftirqd/0                              
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                             
    6 root      20   0       0      0      0 S   0.0  0.0   0:02.50 kworker/u4:0  

16.应用的安装和卸载

yum search httpd
yum install httpd

centos6:
service httpd status|start|stop  //1个应用httpd
centos7:
service httpd status|start|stop  //兼容
systemctl status|start|stop httpd app2 app3 app4  //一次性操作多个应用

搜索 卸载:
[root@ruozedata001 ~]# rpm -qa|grep http
httpd-2.4.6-90.el7.centos.x86_64
httpd-tools-2.4.6-90.el7.centos.x86_64
[root@ruozedata001 ~]# rpm -e 包名称 --nodeps
[root@ruozedata001 ~]# yum remove httpd-2.4.6-90.el7.centos.x86_64

17.进程 端口号

进程不一定都会起到端口号
但是 与其他服务通信 比如需要端口号!!!

场景: 去打开ip为xxx服务器的应用yyy的网页?你会涉及到哪些Linux命令?

  1. ps -ef|grep yyy --> pid
  2. netstat -nlp|grep pid --> port
  3. 浏览器: http://ip:port

注意:

[root@ruozedata001 ~]# netstat -nlp| grep 18670
tcp6       0      0 :::80                   		:::*                    LISTEN      18670/httpd         
tcp6       0      0 0.0.0.0:80                   	:::*                    LISTEN      18670/httpd         
tcp6       0      0 192.168.0.3:80                  :::*                    LISTEN      18670/httpd         
//以上3中IP写法可以对外服务。

tcp6       0      0 127.0.0.1:80                   :::*                    LISTEN      18670/httpd         
tcp6       0      0 localhost:80                   :::*                    LISTEN      18670/httpd         
//危险: 该服务只能自己服务器的里面自己访问自己  

测试ip和端口通不通:

ping   ip
telnet ip port

18.下载

两种方式,都需要连接网络,推荐使用wget。

wget https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.12/2.4.5/spark-core_2.12-2.4.5.jar
curl https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.12/2.4.5/spark-core_2.12-2.4.5.jar -O  spark-core_2.12-2.4.5.jar

19.压缩 解压

zip -r xxx.zip xxx/*
unzip xxx.zip

tar -czvf xxxx.tar.gz  xxxx/*     //打包压缩
tar -xzvf xxxx.tar.gz			  //解压

20.定时任务

面试题: 每隔10s打印一次 怎么做?(注意:*/6 * * * * 表示每6分钟)

[root@ruozedata001 ~]# vi ruoze.sh
#!/bin/bash
for((i=1;i<=6;i++));
do
	date
	sleep 10s
done

* * * * * sh ruoze.sh   //每分钟执行一次脚本。在脚本中实现每10秒打印。

21.后台执行脚本

nohup /root/ruoze.sh >> /root/ruoze.log 2>&1 &    
//生产标准写法
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值