Linux基础命令三
2022/7/3 5:19:24
本文主要是介绍Linux基础命令三,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Linux基础三
目录
- Linux基础三
- 基础命令
- gz,bz2,xz,压缩解压命令
- zip,Z压缩解压命令
- tar归档工具,只归档不压缩 (只能对gzip,bz2,xz进行调用解压缩,不能对zip的进行使用)
- 查看文本
- cat拼接文件内容并输出至标准输出(屏幕)
- -n 显示行号
- more全屏查看文本文件内容,只能从前往后,不能从后往前文件内容,显示完后自动退出,不建议使用
- less 全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用
- head从头部(前面)开始打印文件内容,默认打印10行
- -n指定要打印的行数,可以是-n 15也可以是-15
- tail查看文本文件从尾部开始的内容
- -n指定要打印的行数,可以是-n 15也可以是-15
- 文本处理
- cut 截取文本内容
- -d指定字段分隔符,默认是空格
- -f指定要显示的字段
- awk基于列的文本报告工具
- sed 基于行的过滤和转换文本的流编辑器
- sort 默认升序排序,不是按数值大小排序的
- -n 根据数值大小进行排序
- -r 逆序排序
- -t 字段分隔符
- -k 以哪个字段为关键字进行排序
- -u 去重,排序后相同的行只显示一次
- -f 排序时忽略字符大小写
- uniq 报告重复的行(连续且完全相同方为重复)
- -c 显示文件中行重复的次数
- -d 只显示重复的行
- -u 只显示未重复的行
- 文本统计
- wc
- - c 显示字节数
- - l 显示行数
- - w 显示单词数
- 大小统计
- du 查看文件或目录占用的磁盘空间大小
- -h 以人类友好的方式显示大小
- -s 显示总的占用空间大小
- df 报告文件系统磁盘空间使用情况
- - h 以人类友好的方式显示大小
- -i 显示inode信息
- 主机名管理
- hostname是临时修改主机名
- hostnamectl是永久修改主机名
- 其他
- time 显示命令的执行时间
- clear清屏(ctrl+l)
- whoami 显示当前在线用户并显示其在执行的命令
- w 显示当前在线用户并显示其在运行的命令
- who 查看当前在线用户
- which 显示指定命令的绝对路径
- date 显示或设置日期与时间
- 不带参数的date用于显示当前系统日期与时间
- -s 以字符串方式设置时间
- 格式化输出时间:+
- %Y //年
- %m //月
- %d //日
- %H //时
- %M //分
- %S //秒
- ldd 查看指定程序有哪些依赖库文件
- 基础命令
基础命令
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) //可以看见这个命令依赖于这个里面的九个库文件
这篇关于Linux基础命令三的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南