ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux基础命令三

2022-07-02 23:37:41  阅读:284  来源: 互联网

标签:bin sbin tar -- 基础 命令 lnh Linux root


Linux基础三


目录

基础命令

gz,bz2,xz,压缩解压命令

-#      //#用1-9代替,指定压缩比,默认为6
[root@lnh ~]# touch 1101
[root@lnh ~]# touch 1102
[root@lnh ~]# touch 1103
[root@lnh ~]# ls
1101  1102  1103  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# gzip 1101
[root@lnh ~]# bzip2 1102
[root@lnh ~]# xz 1103
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# gzip -d 1101.gz 
[root@lnh ~]# bzip2 -d 1102.bz2 
[root@lnh ~]# xz -d 1103.xz 
[root@lnh ~]# ls
1101  1102  1103  anaconda-ks.cfg  tushanbu  xbz
//gz.bz2,xz,压缩和解压后其文件和压缩包都会被删除没有保存
[root@lnh ~]# gzip 1101
[root@lnh ~]# bzip2 1102
[root@lnh ~]# xz 1103
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# gunzip 1101.gz 
[root@lnh ~]# bunzip2 1102.bz2 
[root@lnh ~]# unxz 1103.xz 
[root@lnh ~]# ls
1101  1102  1103  anaconda-ks.cfg  tushanbu  xbz
//此解压方式一般都不常用,一般都是用上面-d的解压方式
[root@lnh ~]# gzip 1101
[root@lnh ~]# bzip2 1102
[root@lnh ~]# xz 1103
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# gzip -dk 1101.gz 
[root@lnh ~]# ls
1101  1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# bzip2 -dk 1102.bz2 
[root@lnh ~]# xz -dk 1103.xz 
[root@lnh ~]# ls
1101     1102      1103     anaconda-ks.cfg  xbz
1101.gz  1102.bz2  1103.xz  tushanbu
//-k是保留原文件进行压缩
[root@lnh ~]# vim 1101
[root@lnh ~]# vim 1102
[root@lnh ~]# vim 1103
[root@lnh ~]# cat 1101
hello tushanbu
[root@lnh ~]# cat 1102
xbz hello
[root@lnh ~]# cat 1103
hello lxb
[root@lnh ~]# gzip 1101 
[root@lnh ~]# bzip2 1102
[root@lnh ~]# xz 1103
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# zcat 1101.gz 
hello tushanbu
[root@lnh ~]# bzcat 1102.bz2 
xbz hello
[root@lnh ~]# xzcat 1103.xz 
hello lxb
[root@lnh ~]# gzip -cd 1101.gz 
hello tushanbu
[root@lnh ~]# bzip2 -cd 1102.bz2 
xbz hello
[root@lnh ~]# xz -cd 1103.xz 
hello lxb
//不解压查看压缩文件里面有啥子,虽然两种方法都可以,但是一般我们都是使用-cd的方法进行查看压缩文件里面是什么东西

zip,Z压缩解压命令

[root@lnh ~]# touch 1101
[root@lnh ~]# touch 1102
[root@lnh ~]# touch 1103
[root@lnh ~]# ls
1101  1102  1103  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# gzip 1101
[root@lnh ~]# bzip2 1102
[root@lnh ~]# xz 1103
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# zip lnh.zip 110*
  adding: 1101.gz (deflated 20%)
  adding: 1102.bz2 (stored 0%)
  adding: 1103.xz (deflated 3%)
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  lnh.zip  tushanbu  xbz
[root@lnh ~]# file lnh.zip 
lnh.zip: Zip archive data, at least v2.0 to extract
//此处是表示进行了归档打包
[root@lnh ~]# rm -f 110*
[root@lnh ~]# ls
anaconda-ks.cfg  lnh.zip  tushanbu  xbz
[root@lnh ~]# unzip lnh.zip 
Archive:  lnh.zip
  inflating: 1101.gz                 
 extracting: 1102.bz2                
  inflating: 1103.xz                 
[root@lnh ~]# ls
1101.gz  1102.bz2  1103.xz  anaconda-ks.cfg  lnh.zip  tushanbu  xbz
//可以发现解压后压缩包没有被删除
root@lnh ~]# file 110*
1101.gz:  gzip compressed data, was "1101", last modified: Thu Jun 30 00:16:47 2022, from Unix, original size 0
1102.bz2: bzip2 compressed data, block size = 900k
1103.xz:  XZ compressed data
//此处是被进行压缩了的意思
//zip是既可以进行压缩又可以归档的,上面的gz,bz2,xz,是只能进行压缩
//Z这个现在我们都几乎不用

tar归档工具,只归档不压缩 (只能对gzip,bz2,xz进行调用解压缩,不能对zip的进行使用)

//-zcf,zxf -jcf,jxf -Jcf,Jxf对应gzip,bz2,xz的压解缩,也可以直接用xf解压这三种格式
root@lnh ~]# ls 
1101  1102  1103  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# tar -cf test.tar 1101
[root@lnh ~]# ls
1101  1102  1103  anaconda-ks.cfg  test.tar  tushanbu  xbz
[root@lnh ~]# file test.tar 
test.tar: POSIX tar archive (GNU)
//此处进行了归档
root@lnh ~]# tar -zcf test.tar.gz 1101
[root@lnh ~]# ls
1101  1102  1103  anaconda-ks.cfg  test.tar  test.tar.gz  tushanbu  xbz
[root@lnh ~]# file test.tar*
test.tar:    POSIX tar archive (GNU)
test.tar.gz: gzip compressed data, last modified: Thu Jun 30 01:01:25 2022, from Unix, original size 10240
//test.tar是进行了归档,test.tar.gz此处是tar调用了gz的格式进行了压缩
[root@lnh ~]# tar -cf xxb.tar 1102
[root@lnh ~]# file xxb.tar 
xxb.tar: POSIX tar archive (GNU)
//进行了归档
[root@lnh ~]# tar -jcf xxb.tar.bz2 1102
[root@lnh ~]# ls
1101  1103             test.tar     tushanbu  xxb.tar
1102  anaconda-ks.cfg  test.tar.gz  xbz       xxb.tar.bz2
[root@lnh ~]# file xxb.tar*
xxb.tar:     POSIX tar archive (GNU)
xxb.tar.bz2: bzip2 compressed data, block size = 900k
//xxb.tar进行了归档,xxb.tar.bz2此处是tar调用了bz2的格式进行了压缩
oot@lnh ~]# tar -cf bbx.tar 1103
[root@lnh ~]# ls
1101  1103             bbx.tar   test.tar.gz  xbz      xxb.tar.bz2
1102  anaconda-ks.cfg  test.tar  tushanbu     xxb.tar
[root@lnh ~]# file bbx.tar 
bbx.tar: POSIX tar archive (GNU)
//进行了归档
[root@lnh ~]# tar -Jcf bbx.tar.xz 1103
[root@lnh ~]# file bbx.tar*
bbx.tar:    POSIX tar archive (GNU)
bbx.tar.xz: XZ compressed data
//bbx.tar进行了归档,bbx.tar.xz此处是tar调用了xz格式进行了压缩
[root@lnh ~]# tar -zcf 1111.tar.gz 1101
[root@lnh ~]# ls
1101  1103      1111.tar.gz  3333.tar         tushanbu
1102  1111.tar  2222.tar     anaconda-ks.cfg  xbz
[root@lnh ~]# file 1111.tar.gz 
1111.tar.gz: gzip compressed data, last modified: Thu Jun 30 02:15:32 2022, from Unix, original size 10240
[root@lnh ~]# tar -jcf 1111.tar.gz 1101
[root@lnh ~]# tar -zxf 1111.tar.gz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
[root@lnh ~]# file 1111.tar.gz 
1111.tar.gz: bzip2 compressed data, block size = 900k
[root@lnh ~]# tar -jxf 1111.tar.gz 
[root@lnh ~]# ls
1101  1103      1111.tar.gz  3333.tar         tushanbu
1102  1111.tar  2222.tar     anaconda-ks.cfg  xbz
//可以看见我们首先是用tar调用了gzip的格式对其进行压缩,然后进行查看发现是gz的格式,然后我们又用tar调用bz2的格式对其进行压缩,因为这个是我们自己提前知道改了格式,所以知道不能直接用gzip的格式去解压,不然就会出现上面那样子报错的情况,在linux里面是不存在什么后缀名的所以我们不能被其外表欺骗了,要先查看其格式,再用其正确的格式去解压
        -x      //还原归档
        -v      //显示归档过程
        -p      //归档时保留权限信息。只有管理员才有权限用此选项
        -C      //将展开的归档文件保存至指定目录下
        --delete    //从归档文件中删除文件
        --xattrs    //在归档时保留文件的扩展属性信息
        -c      //创建归档文件
        -f file.tar     //操作的归档文件(只能在其后面接文件名)

查看文本

cat拼接文件内容并输出至标准输出(屏幕)

-n 显示行号

[root@lnh ~]# touch 1111
[root@lnh ~]# touch 1112
[root@lnh ~]# touch 1113
[root@lnh ~]# vim 1111
[root@lnh ~]# vim 1112
[root@lnh ~]# vim 1113
[root@lnh ~]# cat 1111
xxxxxxx

[root@lnh ~]# cat 1112
wwwwww
[root@lnh ~]# cat 1113
ccccccc
[root@lnh ~]# cat 1111 1112
xxxxxxx

wwwwww
[root@lnh ~]# cat 1111 1112 1113
xxxxxxx

wwwwww
ccccccc
//可以进行拼接内容
[root@lnh ~]# cat -n 1111 1112 1113
     1	xxxxxxx
     2	
     3	wwwwww
     4	ccccccc
//-n显示有几行
//cat 只能用于小的文件查看,大的文件查看不了(因为它会一下子把打开的文件全部加载到你的内存里面,就会造成你的内存不够出现oom把你虚拟机弄死机)

more全屏查看文本文件内容,只能从前往后,不能从后往前文件内容,显示完后自动退出,不建议使用

[root@lnh ~]# ls
1111  1112  1113  anaconda-ks.cfg  tushanbu  xbz
[root@lnh ~]# more anaconda-ks.cfg 
#version=RHEL8
# Use graphical install
graphical


%packages
^minimal-environment
kexec-tools

%end

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network  --hostname=localhost.localdomain

# Use CDROM installation media
cdrom

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
autopart
# Partition clearing information
clearpart --none --initlabel

# System timezone
timezone Asia/Shanghai --isUtc --nontp

# Root password
rootpw --iscrypted $6$V1klyt8LakL.Q9IE$YkxB.X16Ya3ljFYQILaSZRpfaJQ7gARtCLgBG
f1rNeRT48PKEPq1t/n9sE1w7dmWIk0oAGWSuqgfwpYln9D3t/

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
//此处的文件比较小所以可以翻着看,一般公司里面的文件都比较大,所以不推荐使用

less 全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用

[root@lnh ~]# less anaconda-ks.cfg 
#version=RHEL8
# Use graphical install
graphical


%packages
^minimal-environment
kexec-tools

%end

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network  --hostname=localhost.localdomain

# Use CDROM installation media
cdrom

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
# Use CDROM installation media
cdrom

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
autopart
# Partition clearing information
clearpart --none --initlabel

# System timezone
timezone Asia/Shanghai --isUtc --nontp

# Root password
rootpw --iscrypted $6$V1klyt8LakL.Q9IE$YkxB.X16Ya3ljFYQILaSZRpfaJQ7gARtCLgBGf1rNeRT48PKEPq1t/n9sE1w7dmWIk0oAGWSuqgfwpYln9D3t/

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@lnh ~]# 
//按:然后q就退出来
//G到最后一行,小g到第一行,两个小g就是第二行依次推

head从头部(前面)开始打印文件内容,默认打印10行

-n指定要打印的行数,可以是-n 15也可以是-15

[root@lnh ~]# head anaconda-ks.cfg 
#version=RHEL8
# Use graphical install
graphical


%packages
^minimal-environment
kexec-tools

%end
[root@lnh ~]# cat -n anaconda-ks.cfg 
     1	#version=RHEL8
     2	# Use graphical install
     3	graphical
     4	
     5	
     6	%packages
     7	@^minimal-environment
     8	kexec-tools
     9	
    10	%end
    11	
    12	# Keyboard layouts
    13	keyboard --xlayouts='us'
    14	# System language
    15	lang en_US.UTF-8
    16	
    17	# Network information
    18	network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
    19	network  --hostname=localhost.localdomain
    20	
    21	# Use CDROM installation media
    22	cdrom
    23	
    24	# Run the Setup Agent on first boot
    25	firstboot --enable
    26	
    27	ignoredisk --only-use=sda
    28	autopart
    29	# Partition clearing information
    30	clearpart --none --initlabel
    31	
    32	# System timezone
    33	timezone Asia/Shanghai --isUtc --nontp
    34	
    35	# Root password
    36	rootpw --iscrypted $6$V1klyt8LakL.Q9IE$YkxB.X16Ya3ljFYQILaSZRpfaJQ7gARtCLgBGf1rNeRT48PKEPq1t/n9sE1w7dmWIk0oAGWSuqgfwpYln9D3t/
    37	
    38	%addon com_redhat_kdump --enable --reserve-mb='auto'
    39	
    40	%end
    41	
    42	%anaconda
    43	pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    44	pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    45	pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    46	%end
//可以看见一般hend查看时都是默认前面10行的内容

tail查看文本文件从尾部开始的内容

-n指定要打印的行数,可以是-n 15也可以是-15

[root@lnh ~]# tail anaconda-ks.cfg 

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@lnh ~]# cat -n anaconda-ks.cfg 
     1	#version=RHEL8
     2	# Use graphical install
     3	graphical
     4	
     5	
     6	%packages
     7	@^minimal-environment
     8	kexec-tools
     9	
    10	%end
    11	
    12	# Keyboard layouts
    13	keyboard --xlayouts='us'
    14	# System language
    15	lang en_US.UTF-8
    16	
    17	# Network information
    18	network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
    19	network  --hostname=localhost.localdomain
    20	
    21	# Use CDROM installation media
    22	cdrom
    23	
    24	# Run the Setup Agent on first boot
    25	firstboot --enable
    26	
    27	ignoredisk --only-use=sda
    28	autopart
    29	# Partition clearing information
    30	clearpart --none --initlabel
    31	
    32	# System timezone
    33	timezone Asia/Shanghai --isUtc --nontp
    34	
    35	# Root password
    36	rootpw --iscrypted $6$V1klyt8LakL.Q9IE$YkxB.X16Ya3ljFYQILaSZRpfaJQ7gARtCLgBGf1rNeRT48PKEPq1t/n9sE1w7dmWIk0oAGWSuqgfwpYln9D3t/
    37	
    38	%addon com_redhat_kdump --enable --reserve-mb='auto'
    39	
    40	%end
    41	
    42	%anaconda
    43	pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    44	pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    45	pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    46	%end
//可以看见tail查看时一般都是默认从后面开始的10行内容
//查看第五行的命令
[root@lnh ~]# head -5 anaconda-ks.cfg | tail -1

//查看倒数第二行的命令
[root@lnh ~]# tail -2 anaconda-ks.cfg | head -1
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty

文本处理

cut 截取文本内容

-d指定字段分隔符,默认是空格

-f指定要显示的字段

[root@lnh ~]# cp /etc/passwd .
[root@lnh ~]# ls
anaconda-ks.cfg  passwd  tushanbu
//把etc下面的passwd这个文件复制到当前这个位置
//下面是正规的格式
[root@lnh ~]# head -3 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
//查看passwd这个文件前三行的内容
//六个冒号隔开的七个内容(七列)
[root@lnh ~]# cut -d: -f1,6 passwd
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd
sync:/sbin
shutdown:/sbin
halt:/sbin
mail:/var/spool/mail
operator:/root
games:/usr/games
ftp:/var/ftp
nobody:/
dbus:/
systemd-coredump:/
systemd-resolve:/
tss:/dev/null
polkitd:/
sssd:/
sshd:/var/empty/sshd
rngd:/var/lib/rngd
//-d指定,冒号作分隔符 -f显示内容 后面接文件名(此处是查看的是第一列和第六列的内容)如果是第一列到第六列就去掉上面那个逗号改为横杠
[root@lnh ~]# cut -d: -f1,6 passwd |head -2
root:/root
bin:/bin
//第一列和第六列的前两行
[root@lnh ~]# cut -d: -f1,6 passwd |tail -2
sshd:/var/empty/sshd
rngd:/var/lib/rngd
//第一列和第六列的后两行

awk基于列的文本报告工具

[root@lnh ~]# head -3 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
[root@lnh ~]# awk -F: '{print $1,$6}' passwd |head -2
root /root
bin /bin
//这种是不规则的格式,所以用awk来进行表示,-F是指定 后面接需要进行打印的东西 再加上文件名
此处是查看第一列和第六列前两行的内容
[root@lnh ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             875M     0  875M   0% /dev
tmpfs                895M     0  895M   0% /dev/shm
tmpfs                895M  8.7M  886M   1% /run
tmpfs                895M     0  895M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  2.3G   63G   4% /
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                179M     0  179M   0% /run/user/0
[root@lnh ~]# df -h|awk '{print $4}'
Avail
875M
895M
886M
895M
63G
32G
837M
179M
//打印此处的第四列的内容,因为此处前面是空行所以直接默认空格就行不用分隔符

sed 基于行的过滤和转换文本的流编辑器

[root@lnh ~]# sed -n '2p' passwd 
bin:x:1:1:bin:/bin:/sbin/nologin
[root@lnh ~]# head -2 passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
//-n是关闭默认打印功能,2是打印第2行,p是打印,因为是只要第二行所以要用-n关闭默认打印
[root@lnh ~]# sed  '2p' passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
sssd:x:997:994:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:996:993:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
//如果没有-n就会把里面的东西都打印出来
[root@lnh ~]# ls
anaconda-ks.cfg  passwd  tushanbu
[root@lnh ~]# head -5 passwd >abc
//把passwd前五行的内容写入abc中
[root@lnh ~]# ls
abc  anaconda-ks.cfg  passwd  tushanbu
[root@lnh ~]# cat abc 
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
[root@lnh ~]# sed  's/0/5/' abc 
root:x:5: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
//s是替换的意思,把第一行的那个零改成为了五,零那一列如果还有零也会被改成五
[root@lnh ~]# 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
//再加上一个g就会把这一行的零都改成了五
//这些都只是临时显示出来,要再加上-i才是真正的执行
[root@lnh ~]# cat abc 
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
[root@lnh ~]# sed '3d' abc 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
//删除第三行
[root@lnh ~]# sed '1,3d' abc 
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
//删除第一到第三行
[root@lnh ~]# sed '1d;3d' abc 
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
//删除第一行和第三行
[root@lnh ~]# sed -e '1d' -e '3d' abc 
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
//删除第一行和第三行,每一个前面都要加-e
//这些也是都没有真正的删除,删除要加上-i

sort 默认升序排序,不是按数值大小排序的

-n 根据数值大小进行排序

-r 逆序排序

-t 字段分隔符

-k 以哪个字段为关键字进行排序

-u 去重,排序后相同的行只显示一次

-f 排序时忽略字符大小写

[root@lnh ~]# cat >abb<<EOF
> 1 2 3
> 3 2 1
> 5 4 2
> 4 6 2
> 1 5 7
> 3 3 6
> EOF
//次处是cat的特殊用法,以EOF开始又以它结束
[root@lnh ~]# cat abb
1 2 3
3 2 1
5 4 2
4 6 2
1 5 7
3 3 6
[root@lnh ~]# sort ab
abb  abc  
[root@lnh ~]# sort abb
1 2 3
1 5 7
3 2 1
3 3 6
4 6 2
5 4 2
//以第一列排序了
[root@lnh ~]# sort -r  abb
5 4 2
4 6 2
3 3 6
3 2 1
1 5 7
1 2 3
//以第一列倒序进行排序
[root@lnh ~]# cat >abb<<EOF
1 2 3
3 2 1
5 4 2
4 6 2
1 5 7
3 3 6
10 4 5

> 20 4 8
> EOF
[root@lnh ~]# sort abb

10 4 5
1 2 3
1 5 7
20 4 8
3 2 1
3 3 6
4 6 2
5 4 2
//此时发现它只是以第一位进行排序
[root@lnh ~]# sort  -n abb

1 2 3
1 5 7
3 2 1
3 3 6
4 6 2
5 4 2
10 4 5
20 4 8
//按第一列进行大小排序
[root@lnh ~]# sort -u abb

10 4 5
1 1 1
1 2 3
1 5 7
20 4 8
2  2 2
2 2 2
222
3 2 1
3 3 6
4 6 2
5 4 2
//除去重复的行
[root@lnh ~]# sort -un abb

1 2 3
2  2 2
3 2 1
4 6 2
5 4 2
10 4 5
20 4 8
222
//除去重复的行然后排序
[root@lnh ~]# sort -f xxb
aab
BBB
bbb
bbb
bbc
ccc
ccv
eof
vvv
YYB
//忽略大小写进行排序

uniq 报告重复的行(连续且完全相同方为重复)

-c 显示文件中行重复的次数

-d 只显示重复的行

-u 只显示未重复的行

[root@lnh ~]# sort -nr abb|uniq
222
20 4 8
10 4 5
5 4 2
4 6 2
3 3 6
3 2 1
2 2 2
2  2 2
1 5 7
1 2 3
1 1 1

[root@lnh ~]# sort -nr abb|uniq -c
      1 222
      1 20 4 8
      1 10 4 5
      1 5 4 2
      1 4 6 2
      1 3 3 6
      1 3 2 1
      2 2 2 2
      1 2  2 2
      1 1 5 7
      1 1 2 3
      2 1 1 1
      1 
[root@lnh ~]# sort -nr abb|uniq -d
2 2 2
1 1 1
[root@lnh ~]# sort -nr abb|uniq -u
222
20 4 8
10 4 5
5 4 2
4 6 2
3 3 6
3 2 1
2  2 2
1 5 7
1 2 3
[root@lnh ~]# sort -nr xxb|uniq
yyyc
yyyb
YYB
yyb
vvv
eof
ccv
ccc
bbc
BBB
bbb
aab
[root@lnh ~]# sort -nr xxb|uniq -c
      1 yyyc
      1 yyyb
      1 YYB
      1 yyb
      1 vvv
      1 eof
      1 ccv
      1 ccc
      1 bbc
      1 BBB
      2 bbb
      1 aab
[root@lnh ~]# sort -nr xxb|uniq -d
bbb
[root@lnh ~]# sort -nr xxb|uniq -u
yyyc
yyyb
YYB
yyb
vvv
eof
ccv
ccc
bbc
BBB
aab
//字母的话是一位一位进行比较

文本统计

wc

- c 显示字节数

- l 显示行数

- w 显示单词数

[root@lnh ~]# ls
abb  abc  anaconda-ks.cfg  passwd  tushanbu  xxb
[root@lnh ~]# wc -c xxb
54 xxb
[root@lnh ~]# wc -l xxb
13 xxb
[root@lnh ~]# wc -w xxb
13 xxb

大小统计

du 查看文件或目录占用的磁盘空间大小

-h 以人类友好的方式显示大小

-s 显示总的占用空间大小

[root@lnh ~]# du -h xxb
4.0K	xxb
[root@lnh ~]# du -s xxb
4	xxb

df 报告文件系统磁盘空间使用情况

- h 以人类友好的方式显示大小

-i 显示inode信息

[root@lnh ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             875M     0  875M   0% /dev
tmpfs                895M     0  895M   0% /dev/shm
tmpfs                895M  8.7M  886M   1% /run
tmpfs                895M     0  895M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  2.3G   63G   4% /
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                179M     0  179M   0% /run/user/0
[root@lnh ~]# df -i
Filesystem            Inodes IUsed    IFree IUse% Mounted on
devtmpfs              223976   400   223576    1% /dev
tmpfs                 228911     1   228910    1% /dev/shm
tmpfs                 228911   588   228323    1% /run
tmpfs                 228911    17   228894    1% /sys/fs/cgroup
/dev/mapper/cs-root 34158592 42722 34115870    1% /
/dev/mapper/cs-home 16678912     3 16678909    1% /home
/dev/sda1             524288   302   523986    1% /boot
tmpfs                 228911     5   228906    1% /run/user/0
[root@lnh ~]# dd if=/dev/zero of=test bs=100M count=1
1+0 records in
1+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.638193 s, 164 MB/s
//dd 创建 count=1执行一次
// /dev/zero吐零设备
// /dev/null黑洞设备
[root@lnh ~]# ll
total 102420
-rw-r--r--. 1 root root        86 Jun 30 14:58 abb
-rw-r--r--. 1 root root       183 Jun 30 14:23 abc
-rw-------. 1 root root      1003 Jun 28 04:46 anaconda-ks.cfg
-rw-r--r--. 1 root root      1004 Jun 30 12:14 passwd
-rw-r--r--. 1 root root 104857600 Jun 30 15:45 test
drwxr-xr-x. 2 root root        39 Jun 29 20:42 tushanbu
-rw-r--r--. 1 root root        54 Jun 30 15:16 xxb
[root@lnh ~]# ll -h
total 101M
-rw-r--r--. 1 root root   86 Jun 30 14:58 abb
-rw-r--r--. 1 root root  183 Jun 30 14:23 abc
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 1004 Jun 30 12:14 passwd
-rw-r--r--. 1 root root 100M Jun 30 15:45 test
drwxr-xr-x. 2 root root   39 Jun 29 20:42 tushanbu
-rw-r--r--. 1 root root   54 Jun 30 15:16 xxb
[root@lnh ~]# 
[root@lnh ~]# du -sh test 
100M	test
//创建了100M的文件

主机名管理

hostname是临时修改主机名

hostnamectl是永久修改主机名

[root@lnh ~]# hostname xbz
[root@lnh ~]# bash
[root@xbz ~]# ls
//临时的重新开机后会消失
[root@root ~]# hostnamectl set-hostname lnh
[root@root ~]# bash
[root@lnh ~]# ls
//永久修改主机名,重新开机后不会改变

其他

time 显示命令的执行时间

clear清屏(ctrl+l)

whoami 显示当前在线用户并显示其在执行的命令

w 显示当前在线用户并显示其在运行的命令

who 查看当前在线用户

which 显示指定命令的绝对路径

date 显示或设置日期与时间

不带参数的date用于显示当前系统日期与时间

-s 以字符串方式设置时间

格式化输出时间:+

%Y //年

%m //月

%d //日

%H //时

%M //分

%S //秒

[root@lnh ~]# sleep 3
//睡眠3秒
[root@lnh ~]# sleep 3;echo 123
123
//3秒后打印123
[root@lnh ~]# time sleep 3

real	0m3.021s
user	0m0.000s
sys	0m0.003s
//统计这个命令执行的时间
[root@lnh ~]# whoami
root
//我是谁
[root@lnh ~]# who am i
root     pts/0        2022-06-30 11:24 (192.168.222.1)
//我在哪里登录的  登录的时间  在哪个主机上面登录的
[root@lnh ~]# who
root     tty1         2022-06-29 23:00
root     pts/0        2022-06-30 11:24 (192.168.222.1)
//有哪些登录了我这个终端
[root@lnh ~]# w
 15:55:29 up 20:56,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                Wed23   11:24m  0.02s  0.02s -bash
root     pts/0    192.168.222.1    11:24    1.00s  0.69s  0.00s w
在哪里登录           登录的ip地址     什么时间点  登录时cpu的运行时间  这个家伙在干啥
[root@lnh ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@lnh ~]# which pwd
/usr/bin/pwd
[root@lnh ~]# which whoami
/usr/bin/whoami
//可以看见命令路径
[root@lnh ~]# date '+%Y%m%d'
20220630
[root@lnh ~]# date '+%Y%m%d%H%M%S'
20220630160552
[root@lnh ~]# date '+%Y-%m-%d  %H:%M:%S'
2022-06-30  16:07:14
年月日时分秒
[root@lnh ~]# date 1002083088.12
Sun Oct  2 08:30:12 CST 1988
1988年  十月二号 八点三十十二秒
[root@lnh ~]# date --help
//可以查看到
[root@lnh ~]# date -s '2022-7-2 23:00:01'
Sat Jul  2 23:00:01 CST 2022
//现在一般都是这样设置时间

ldd 查看指定程序有哪些依赖库文件

//库(别人开发好的某一种功能,而你在开发你的程序的时候刚好要用这个功能,所以进行调用它)
[root@lnh ~]# ldd /usr/bin/ls
	linux-vdso.so.1 (0x00007ffd849fc000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff41ae37000)
	libcap.so.2 => /lib64/libcap.so.2 (0x00007ff41ac31000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ff41a86f000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007ff41a5eb000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007ff41a3e7000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff41b284000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff41a1c7000)
//可以看见这个命令依赖于这个里面的九个库文件

标签:bin,sbin,tar,--,基础,命令,lnh,Linux,root
来源: https://www.cnblogs.com/tushanbu/p/16438896.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有