linux基础二
一、压缩/解压缩命令
1.gzip
gzip: //压缩后的文件以.gz结尾 压缩完成后会删除原文件
[root@192 ~]# gzip anaconda-ks.cfg
[root@192 ~]# ls
anaconda-ks.cfg.gz
gzip -d : //解压缩,解压完成后会删除原文件
[root@192 ~]# gzip -d anaconda-ks.cfg.gz
[root@192 ~]# ls
anaconda-ks.cfg
gunzip //解压缩,解压完成后会删除原文件
[root@192 ~]# gunzip anaconda-ks.cfg.gz
[root@192 ~]# ls
anaconda-ks.cfg
2.bzip2
bzip2: //压缩后的文件以.bz2结尾 压缩完成后会删除原文件
[root@192 ~]# bzip2 anaconda-ks.cfg.bz2
[root@192 ~]# ls
anaconda-ks.cfg.bz2
bzip2 -d: //解压缩,解压完成后会删除原文件
[root@192 ~]# bzip2 -d anaconda-ks.cfg.bz2
[root@192 ~]# ls
anaconda-ks.cfg
bunzip2: //解压缩,解压完成后会删除原文件
[root@192 ~]# bunzip2 anaconda-ks.cfg.bz2
[root@192 ~]# ls
anaconda-ks.cfg
3.xz
xz //压缩后的文件以.xz结尾 压缩完成后会删除原文件
[root@192 ~]# xz anaconda-ks.cfg
[root@192 ~]# ls
anaconda-ks.cfg.xz
xz -d: //解压缩,解压完成后会删除原文件
[root@192 ~]# xz -d anaconda-ks.cfg.xz
[root@192 ~]# ls
anaconda-ks.cfg
unxz: //解压缩,解压完成后会删除原文件
[root@192 ~]# unxz anaconda-ks.cfg.xz
[root@192 ~]# ls
anaconda-ks.cfg
4.tar //归档工具,只归档不压缩,
tar -cf: //-c 创建归档文件 -f 操作的归档文件
[root@192 ~]# tar -cf 222 /usr/local/
tar: Removing leading `/' from member names
[root@192 ~]# file 222
222: POSIX tar archive (GNU)
tar -x: //还原归档
[root@192 ~]# tar -xf 222
[root@192 ~]# ls
111 222 anaconda-ks.cfg usr
tar -zcf: //归档并调用gzip压缩
[root@192 ~]# tar -zcf sysconfig.tar.gz /etc/sysconfig/
tar: Removing leading `/' from member names
[root@192 ~]# ls
anaconda-ks.cfg sysconfig.tar.gz
tar -zxf: //调用gzip解压缩并展开归档
[root@192 ~]# tar -zxf sysconfig.tar.gz
[root@192 ~]# ls
anaconda-ks.cfg etc sysconfig.tar.gz
tar -jcf: //归档并调用bzip2压缩
[root@192 ~]# tar -jcf sysconfig.tar.bz2 /etc/sysconfig/
tar: Removing leading `/' from member names
[root@192 ~]# file sysconfig.tar.bz2
sysconfig.tar.bz2: bzip2 compressed data, block size = 900k
[root@192 ~]# ls
anaconda-ks.cfg sysconfig.tar.bz2
tar -jxf: //调用bzip2解压缩并展开归档
[root@192 ~]# tar -jxf sysconfig.tar.bz2
[root@192 ~]# ls
anaconda-ks.cfg etc sysconfig.tar.bz2
tar -Jcf: //归档并调用xz压缩
[root@192 ~]# tar -Jcf sysconfig.tar.xz /etc/sysconfig/
tar: Removing leading `/' from member names
[root@192 ~]# file sysconfig.tar.xz
sysconfig.tar.xz: XZ compressed data
[root@192 ~]# ls
anaconda-ks.cfg sysconfig.tar.xz
tar -Jxf: //调用xz解压缩并展开归档
[root@192 ~]# tar -Jxf sysconfig.tar.xz
[root@192 ~]# ls
anaconda-ks.cfg etc sysconfig.tar.xz
二、查看文件
1.cat
cat: //拼接文件内容并输出至标准输出(屏幕)
[root@192 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd:x:996:993:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
cat -n: //-n 显示行号
[root@192 ~]# cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
14 dbus:x:81:81:System message bus:/:/sbin/nologin
15 systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
16 systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
17 tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
18 polkitd:x:998:996:User for polkitd:/:/sbin/nologin
19 unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
20 sssd:x:996:993:User for sssd:/:/sbin/nologin
21 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
2.more
//全屏查看文本文件内容,只能从前往后,不能从后往前。文件内容显示完后自动退出
3.less
//全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用
4.head
head: //开始打印文件内容,默认打印10行
[root@192 ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
head -n: ////指定要打印的行数,可以是-n 5也可以是-5
[root@192 ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
5.tail
tail: //查看文本文件尾部内容
[root@192 ~]# tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd:x:996:993:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tail -n: //指定要打印的行数,可以是-n 5也可以是-5
[root@192 ~]# tail -5 /etc/passwd
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd:x:996:993:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
6.head和tail的结合
[root@192 ~]# head -5 /etc/passwd |tail -1 //查看/etc/passwd的第五行内容
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
三、文件处理
1.cut
cut: //截取文本内容
-d //指定字段分隔符,默认是空格
-f //指定要显示的字段
[root@192 ~]# cut -d ":" -f 1,7 |head -5 //截取/etc/passwd的第一列和第七列内容,显示前五行
root:/bin/bash
bin:/sbin/nologin
daemon:/sbin/nologin
adm:/sbin/nologin
lp:/sbin/nologin
[root@192 ~]#
2.sed
sed: //基于行的过滤和转换文本的流编辑器
[root@192 ~]# sed 's/0/5/g' abc //替换指定文件的字符串
root:x:5:5:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:5:sync:/sbin:/bin/sync
[root@192 ~]# sed -i 's/0/5/g' abc //-i 更改文件内容,永久更改
[root@192 ~]# cat abc
root:x:5:5:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:5:sync:/sbin:/bin/sync
3.awk
awk: ////基于列的文本报告工具
[root@192 ~]# awk -F : '{print $1,$6}' passwd | head -2
root /root
bin /bin
四、文件排序
1.sort
sort: //默认升序排序,不是按数值大小排序的
[root@192 ~]# sort abc
1 2 3
2 5 8
3 2 1
3 6 9
4 6 8
5 4 2
6 6 6
7 7 7
8 5 2
sort -n: //根据数值大小进行排序
[root@192 ~]# sort -n abc
1 1 4
1 2 3
1 2 4
1 4 7
2 4 6
2 5 8
3 6 9
7 5 9
7 8 9
sort -r: //逆序排序
[root@192 ~]# sort -nr abc
7 8 9
7 5 9
3 6 9
2 5 8
2 4 6
1 4 7
1 2 4
1 2 3
1 1 4
-t //字段分隔符
-k //以哪个字段为关键字进行排序
-u //去重,排序后相同的行只显示一次
-f //排序时忽略字符大小写
2.uniq
uniq: //报告重复的行(连续且完全相同方为重复)
[root@192 ~]# sort -nr abc|uniq
7 7 7
6 6 6
5 4 8
4 2 8
4 2 8
1 5 9
1 2 3
1 2 3
uniq -c //显示文件中行重复的次数
[root@192 ~]# sort -nr abc|uniq -c
1 7 7 7
1 6 6 6
1 5 4 8
1 4 2 8
1 1 5 9
1 1 2 3
2 1 2 3
uniq -d: //只显示重复的行
[root@192 ~]# sort -nr abc|uniq -d
1 2 3
uniq -u: //只显示未重复的行
[root@192 ~]# sort -nr abc|uniq -u
6 6 6
5 4 8
4 2 8
1 5 9
1 2 3
五、文本统计
1.wc
wc -c: //显示字节数
[root@192 ~]# cat abc | wc -c
46
wc-l: //显示行数
[root@192 ~]# cat abc | wc -l
7
wc-w: //显示单词数
[root@192 ~]# cat abc | wc -w
21
六、大小统计
du //查看文件或目录占用的磁盘空间大小
-h //以人类友好的方式显示大小
-s //显示总的占用空间大小
[root@192 ~]# du -hs abc
4.0K abc
df //报告文件系统磁盘空间使用情况
-h //以人类友好的方式显示大小
-i //显示inode信息
[root@192 ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 460K 384 459K 1% /dev
tmpfs 464K 1 464K 1% /dev/shm
tmpfs 464K 636 464K 1% /run
tmpfs 464K 17 464K 1% /sys/fs/cgroup
/dev/mapper/cl-root 32M 45K 32M 1% /
/dev/mapper/cl-home 16M 3 16M 1% /home
/dev/sda1 512K 310 512K 1% /boot
tmpfs 464K 5 464K 1% /run/user/0
七、主机名管理
1.hostname
hostname: // //查看或临时修改主机名,重开终端有效,重启失效
[root@192 ~]# hostname yy
[root@192 ~]# hostname
yy
2.hostnamectl //查看或永久修改主机名,重开终端生效,重启依然有效
[root@192 ~]# hostnamectl set-hostname yy
[root@192 ~]# hostname
yy
[root@192 ~]# bash
[root@yy ~]#
八、其他
1.time
time : //显示命令的执行时间,例如time ls /etc
[root@yy ~]# time sleep 3
real 0m3.001s
user 0m0.001s
sys 0m0.000s
2.clear //清屏:ctrl+l
3.whoami
whoami: //显示当前登录用户
4.w //显示当前在线用户并显示其在运行的命令
5.who //查看当前在线用户
[root@yy ~]# whoami
root
6.which
which: ////显示指定命令的绝对路径
[root@yy ~]# which echo
/usr/bin/echo
7.date
date: ////显示或设置日期与时间
[root@yy ~]# date
Fri Jul 1 21:54:57 CST 2022
//不带参数的date用于显示当前系统日期与时间
-s //以字符串方式设置时间
//格式化输出时间:+
%Y //年
%m //月
%d //日
%H //时
%M //分
%S //秒
[root@yy ~]# date +"%Y-%m-%d %H:%M.%S"
2022-07-01 22:01.27
8.ldd
ldd: //查看指定程序有哪些依赖库文件
[root@yy ~]# ldd /bin/chown
linux-vdso.so.1 (0x00007fff284f5000)
libc.so.6 => /lib64/libc.so.6 (0x00007f562953c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5629b12000)
[root@yy ~]#
//月
%d //日
%H //时
%M //分
%S //秒
[root@yy ~]# date +"%Y-%m-%d %H:%M.%S"
2022-07-01 22:01.27
8.ldd
ldd: //查看指定程序有哪些依赖库文件
[root@yy ~]# ldd /bin/chown
linux-vdso.so.1 (0x00007fff284f5000)
libc.so.6 => /lib64/libc.so.6 (0x00007f562953c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5629b12000)
[root@yy ~]#