大数据开发常用Linux命令

  |   0 评论   |   482 浏览

日期操作

#以默认格式显示当前时间
[root@cxy7 shell]# date
2018年 07月 19日 星期四 23:47:25 CST
#获取当前时间距离1970年0时0分0秒所经历的秒数
[root@cxy7 shell]# date +%s
1532015393
#基于基准日期进行计算
[root@cxy7 shell]# date -d "20180101 -1 day" +%Y%m%d
20171231
[root@cxy7 shell]# date -d "20180101 -1 month" +%Y%m%d
20171201
[root@cxy7 shell]# date -d "20180101 +1 day" +%Y%m%d
20180102

压缩与解压

tar.gz

[root@cxy7 shell]# tar -cvzf sample.txt.tar.gz sample.txt
sample.txt
[root@cxy7 shell]# ll
总用量 16
-rwxr-xr-x 1 root root   50 7月  19 22:40 demo.sh
-rw-r--r-- 1 root root   10 7月  19 20:49 sample.txt
-rw-r--r-- 1 root root  130 7月  19 22:55 sample.txt.tar.gz
drwxr-xr-x 2 root root 4096 7月  19 22:55 tmp
[root@cxy7 shell]# tar zxvf sample.txt.tar.gz -C tmp/
sample.txt
[root@cxy7 shell]# ll tmp/
总用量 4
-rw-r--r-- 1 root root 10 7月  19 20:49 sample.txt

image.png

tar.xz

[root@cxy7 shell]# tar -cvJf sample.txt.tar.xz sample.txt
sample.txt
[root@cxy7 shell]# ll
总用量 16
-rwxr-xr-x 1 root root   50 7月  19 22:40 demo.sh
-rw-r--r-- 1 root root   10 7月  19 20:49 sample.txt
-rw-r--r-- 1 root root  184 7月  19 22:56 sample.txt.tar.xz
drwxr-xr-x 2 root root 4096 7月  19 22:56 tmp
[root@cxy7 shell]# tar xvJf sample.txt.tar.xz -C tmp/
sample.txt
[root@cxy7 shell]# ll tmp/
总用量 4
-rw-r--r-- 1 root root 10 7月  19 20:49 sample.txt

image.png

gzip

image.png

系统管理

查看加载的类库

pmap -x pid

image.png

查看内存

free -g

查看cpu信息

cat /proc/cpuinfo

查看内存条组成

dmidecode | grep -A16 "Memory Device$"|grep Size|grep -v "No Module Installed"

查看CPU个数

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

查看系统位数

getconf LONG_BIT

查看时区

cat /etc/localtime

查看系统启动时间

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

查看当前操作系统内核信息

uname -a

查看当前操作系统发行版信息

cat /etc/issue
cat /etc/redhat-release

查使用内存最多的10个进程

ps -aux | sort -k4nr | head -n 10

查使用CPU最多的10个进程

ps -aux | sort -k3nr | head -n 10

用户管理

useradd

  • -g 指定要加入的组

  • -M 不要自动建立用户的登入目录。

  • -n 取消建立以用户名称为名的群组。

示例

#创建组
[root@t3 ~]# groupadd mm
#创建用户
[root@t3 ~]# useradd test_a
#查看用户
[root@t3 ~]# id test_a
uid=1000(test_a) gid=1001(test_a) groups=1001(test_a)
#创建用户,不建立家目录和同名用户组
[root@t3 ~]# useradd -n -M -g mm test_b
[root@t3 ~]# id test_b
uid=1001(test_b) gid=1000(mm) groups=1000(mm)
#给用户添加组
[root@t3 ~]# usermod -G mm test_a
[root@t3 ~]# id test_a
uid=1000(test_a) gid=1001(test_a) groups=1001(test_a),1000(mm)
#直接删除用户,保留家目录
[root@t3 ~]# userdel test_a
[root@t3 ~]# ll /home/test_a/
total 0
#删除用户,并删除家目录
[root@t3 ~]# userdel -r test_a
[root@t3 ~]# ll /home/test_a
ls: cannot access /home/test_a: No such file or directory

其他常用命令

sed

替换文件中的字符串

sed -i "s/latin1/utf8/g" ETL_DDL/*.sql

查找并替换

sed -i "s/192.168.10.100/192.168.10.1/g" `grep 192.168 -rl /etc/sysconfig/iptables`

按行查看文件指定范围的内容

sed -n '39362,40362 p' nohup.out

scp

拷贝到远程

scp info.tar.gz ssh.cxy7.com:/home/cxy/

从远程拷贝到本地

scp ssh.cxy7.com:/home/cxy/ info.tar.gz

uniq

删除文本文件中重复的行

image.png

sort

排序

  • -n 转化为数字来排序

  • -k 指定根据第几列来排序

  • -r 倒序排列

image.png

find

  • -type 指定匹配目录或文件

  • -name 指定按文件名匹配,支持通配符

  • -exec 对找到的文件执行的命令,{}指代当前文件

image.png

软件管理

yum

yum -y install 包名(支持*) :自动选择y,全自动

yum install 包名(支持*) :手动选择y or n

yum remove 包名(不支持*)

rpm

rpm -ivh 包名(支持*) 安装rpm包

rpm -e 包名(不支持*) 卸载rpm包

rpm -qpi 包名 查看软件包的详细信息