###########diff在比较文件过程中,结果的读取方式。
[root@desktop Desktop]# diff westos westos1 ##直接用diff来比较两个文件
1a2 ##a表示添加,1要添加2中的部分内容才能和2一样123 ##比westos1少了123
[root@desktop Desktop]# diff westos1 westos
2d1 ##westos要删除123才能和为westos1相同
< 123
##重新编辑westos和westos1后
[root@desktop Desktop]# diff westos1 westos ###比较两者
1c1 ##c表示更改,westos1要添加内容之后才能和westos一样
< hello world ##两者的区别在于在文件中加了空格,diff时可以比较出来的 hello world[root@desktop Desktop]# diff -b westos1 westos ##-b是不比较空格,可以看到上边westos与westos1唯一区别是空格不再显示
##重新编辑westos和westos1
[root@desktop Desktop]# diff westos westos1 ##比较两者
1a2,3 ##第二个文件中有多与的空白行 [root@desktop Desktop]# diff -B westos westos1 ##不检测空白行-B,可以看到不再显示差别
##重新编辑两个文件
[root@desktop Desktop]# diff westos westos1 ###两个文件的内容
1c1,2 ##可以看到区别,在westos中加了空格
< hello worldhello world ##在westsos1中没有空格
123 ##westos1中的第二行有123
[root@desktop Desktop]# diff -c westos westos1 ###显示全部信息
*** westos 2019-08-16 21:42:19.300858507 -0400
--- westos1 2019-08-16 21:50:39.076858507 -0400* 1 **
! hello world ##不同之处在于在前面用!表示不同的行有哪些
--- 1,2 ----
! hello world
! 123
####查看两个目录之中的不同
[root@desktop Desktop]# mkdir westos2 lee2 ##建立两个文件夹
[root@desktop Desktop]# touch westos2/hello ##在westos2中建立hello文件
[root@desktop Desktop]# diff -r /root/Desktop/westos2 /root/Desktop/lee2 ##-r用来便是两个文件夹的为区别在哪
Only in /root/Desktop/westos2: hello ##我们可以看到仅在westos2中有hello这个文件
#########path怎么给不一样的文建中自动添加补丁,使之变成一样的。
[root@desktop Desktop]# diff -u westos westos1 ##用diff比较两个文件的不同.-u表示和在一起显示
--- westos 2019-08-16 22:05:25.728858507 -0400 ##“--”表示westos
+++ westos1 2019-08-16 22:06:05.922858507 -0400 ##“++”表示westos1
@@ -1,2 +1,2 @@
-lee ##在westos中多了lee
-hello world
+hello worlD
+test ##在wesots1中多了test
[root@desktop Desktop]# diff -u westos westos1 > westos3.path ##我们把合并显示的东西放到westos3.path中
[root@desktop Desktop]# cat westos3.path ##查看westos3.path
--- westos 2019-08-16 22:05:25.728858507 -0400
+++ westos1 2019-08-16 22:06:05.922858507 -0400
@@ -1,2 +1,2 @@
-lee
-hello world
+hello worlD
+test
[root@desktop Desktop]# patch -b westos westos3.path ##path是需要下载的,可字行下载。要打补丁的文件在左边
patching file westos
[root@desktop Desktop]# cat westos westos1 ##我们在来用cat查看westos和westos1.两者时没有区别的
hello worlD
test
hello worlD
test
[root@desktop Desktop]#
#########截取信息
[root@desktop Desktop]# cp /etc/passwd passwd ###从配置文件中移动一份用户资料
[root@desktop Desktop]# mv passwd /mnt ##移动到手动挂载点上
[root@desktop mnt]# cat passwd ##查看。只裂出了部分
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
[root@desktop mnt]# cut -d : -f 1-2 passwd ##-d表示分割符号为“:”,-f表示分隔符的第几行,passwd中的
root:x ##我们可以看到分隔出了两行
bin:x
daemon:x
adm:x
lp:x
sync:x
shutdown:x
halt:x
[root@desktop mnt]# cut -c 1-4 passwd ##-c表示分割出几个字符我们分割的是1到4个字符
root
bin:
daem
adm:
lp:x
sync
shut
![在这里插入图片描述]()
#######怎么使用管道截取ip地址
[root@desktop mnt]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.25.254.100 netmask 255.255.255.0 broadcast 172.25.254.255
inet6 fe80::5054:ff:fef8:cb66 prefixlen 64 scopeid 0x20
ether 52:54:00:f8:cb:66 txqueuelen 1000 (Ethernet)
RX packets 578 bytes 62953 (61.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 308 bytes 43804 (42.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@desktop mnt]# ifconfig eth0 | cut -c 13-28 | head -n 2 | tail -n 1 ##先截取字符从第13-28,通过管道显示头两行,通过管道显示最后一行
172.25.254.100
############sort命令,用于字符排序
[root@desktop mnt]# cat file ###通过cat命令我们看文件中的数字
1
23
4
5
1
32
4
65
5
23
[root@desktop mnt]# sort file ##我们用sort排序,不过是第一行的大小来排的
1
1
23
23 ##23<32但是是安第一行来排序的
32
4
4
5
5
65
[root@desktop mnt]# sort -n file ##-n表示以纯数据的方式排序
1
1
4
4
5
5
23
23
32
65
[root@desktop mnt]# sort -nr file ##-r是倒叙排序,我们可以看到
65
32
23
23
5
5
4
4
1
1
[root@desktop mnt]# sort -nru file ##加上-u表示去掉重复的
65
32
23
5
4
1
############uniq我们和sort部分参数一起
[root@desktop mnt]# sort -n file | uniq -d ##转换成数字排序,uniq -d表示留下重复的
1
4
5
23
[root@desktop mnt]# sort -n file | uniq -c ##uniq -c 表示把所有的统计后排序,只显示一次
2 1
2 4
2 5
2 23
1 32
1 65
[root@desktop mnt]# sort -n file | uniq -u ##显示唯一的,不重复的,并进行排序
32
65
[root@desktop mnt]# sort -nr file | uniq -c | sort -t " " -k 2 -r
2 5 ##这个就用了-t分隔符-k指定第几行。先倒叙排序,然后将他门重复的进行统计,在然后以分割符为空格,的第2行倒叙排序
2 4
2 23
2 1
1 65
1 32
#############将fstab目录中的文件按照大小排序后,之显示前五行的名字
[root@desktop mnt]# cp /etc/*.conf /mnt ##复制一份到mnt下
[root@desktop mnt]# ls ##只展示部分
asound.conf hba.conf locale.conf pbm2ppa.conf sutofs.conf
autofs_ldap_auth.conf host.conf logrotate.conf pnm2ppa.conf sysctl.conf
[root@desktop mnt]# ll ##查看文件大小,只展示部分
总用量 256
-rw-r--r-- 1 root root 55 8月 17 16:34 asound.conf
-rw------- 1 root root 232 8月 17 16:34 autofs_ldap_auth.conf
-rw-r--r-- 1 root root 21929 8月 17 16:34 brltty.conf
[root@desktop mnt]# ls -S | head -n 6 ##通过ls -S排序文件大小,输出后,通过管道显示前6汉
dnsmasq.conf
brltty.conf
pnm2ppa.conf
kdump.conf
man_db.conf
######另外一种方法用的是sort。是用ls显示出来大小,用sort选取文件的大小进行排序,才然后输出前五行,进接着就是节取字符43之后的
[root@desktop mnt]# ls -l | sort -t " " -k 5 -nr | head -n 5 | cut -c 43-
dnsmasq.conf
brltty.conf
pnm2ppa.conf
kdump.conf
man_db.conf
######这个命令是ping通ip输出up否则down,&&是正确的,||是错误的
[root@desktop mnt]# ping -c1 -w1 172.25.254.71 &> /dev/null && echo up || echo down
up ##可以看到是起来的
###有交户的ping
[root@desktop dev]# vim ping ##建立程序文件
#!/bin/bash
ping -c1 -w1 $1 &> /dev/null && { ##&&正确的起来
echo $1 is up ##“$1”表示是人们在外面输入的地址
}||{
echo $1 is down ##错误的下来
}
[root@desktop dev]# sh ping 172.25.254.71 ##实验,成功
172.25.254.71 is up[root@desktop dev]# vim check_nmu
#!/bin/bash
[ "$1" -gt "0" -a "$1" -le "10" ] && echo yes || echo no
##################################test命令
[root@desktop mnt]# a=5;b=8
[root@desktop mnt]# test "$a" = "$b" && echo yes || echo no ##字符两边相等
no
[root@desktop mnt]# test "$a" != "$b" && echo yes || echo no ##字符两边不相等
yes
[root@desktop mnt]# test "$a" -ne "$b" && echo yes || echo no ##ne两边不相等
yes
[root@desktop mnt]# test "$a" -eq "$b" && echo yes || echo no ##eq两边是相等的
no
[root@desktop mnt]# [ "$a" = "$b" ] && echo yes || echo no ##以【】替代test时可以的
no
-ef ##文件1与文件2在相同的设备和相同的节点
-ge ##大于等于
-gt ##大于
-nt ##前面的比后边的时间考前
-ot ##文件1比文件2建的时间较晚
-e ##文件存在
-f ##文件存在并且是正规文件
-b ##块设备
-c ##字符设备
-l ##软连接
[root@desktop Desktop]# ls -i ##查看两个文件的节点
41999619 file 41999620 waring_check
[root@desktop Desktop]# [ "file" -ef "waring_check" ] && echo yes || echo no ##如果文件节点相同
no ##输出no
[root@desktop Desktop]# ls ##现有三个文件
file waring_check westos
[root@desktop Desktop]# ln -s waring_check westos1 ##软连接一个
[root@desktop Desktop]# ll
总用量 8
-rw-r--r-- 1 root root 0 8月 17 18:03 file
-rw-r--r-- 2 root root 132 8月 17 17:48 waring_check
-rw-r--r-- 2 root root 132 8月 17 17:48 westos
lrwxrwxrwx 1 root root 12 8月 17 18:07 westos1 -> waring_check
[root@desktop Desktop]# ls -i ##再次查看设备节点
41999619 file 41999620 waring_check 41999620 westos 41999621 westos1 ##两个相同
[root@desktop Desktop]# [ "westos" -ef "waring_check" ] && echo yes || echo no ##用test查询
yes ##得到答案
##########可以用脚本查询文件的类型
[kiosk@foundation71 ~]$ vim check_file.sh
[ -z "$1" ] &&{ ##-z是否是空文件
echo please input filename following scripts!!
exit
}
[ -e "$1" ] ||{ ##存在
echo $1 is not exit
exit
}
[ -L "$1" ] && { ##链接
echo $1 is softlink file
exit
}
[ -f "$1" ] && { ##公共文件
echo $1 is common file
exit
}
[ -d "$1" ] && { ##目录
echo $1 is directory
exit
}
[ -b "$1" ] && { ##块设备
echo $1 is a block
exit
}
[ -c "$1" ] && { ##字符设备
echo $1 is acharacter device
exit
}
#####以脚本的方式来放代码
[root@desktop mnt]# vim check_num ##建立脚本的文件
#!/bin/bash
[ "$1" -gt "0" -a "$1" -le "10" ] && echo yes || echo no ] ##大于0,同时小于等于10,在这里面的输出yes,在这外面的输出no
[root@desktop mnt]# sh check_num 3 ##验证数字三
yes
##########将系统挂载的vda输出,当挂载超过30%。进行发送警告
[root@desktop Desktop]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/vda1 10473900 3374140 7099760 30% /
devtmpfs 469332 0 469332 0% /dev
tmpfs 484920 80 484840 1% /dev/shm
tmpfs 484920 12764 472156 3% /run
tmpfs 484920 0 484920 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2340 451839 1% /home
[root@desktop Desktop]#
[root@desktop Desktop]# vim waring_check ##编写文件
#!/bin/bash
[ df / | tail -n 1 | awk '{print $5}' | cut -d % -f 1 -ge "30" ]&&{ ##截取最后一行找到第5列,如果大于30,输出
logger Waring: System root is full !! ##这个所写的
}
[root@desktop Desktop]# tail /var/log/messages ##看到大于30%
Aug 17 03:01:01 desktop systemd: Starting Session 53 of user root.
Aug 17 03:01:01 desktop systemd: Started Session 53 of user root.
Aug 17 03:08:02 desktop root: Waring: System root is full !!
Aug 17 03:08:12 desktop root: Waring: System root is full !!
Aug 17 03:08:15 desktop root: Waring: System root is full !!
Aug 17 03:08:16 desktop root: Waring: System root is full !!
Aug 17 03:08:17 desktop root: Waring: System root is full !!
Aug 17 03:08:17 desktop root: Waring: System root is full !!
Aug 17 03:08:18 desktop root: Waring: System root is full !!
Aug 17 03:08:19 desktop root: Waring: System root is full !!
####大小写转换
[root@desktop Desktop]# echo hell0 HELLO ##输出两个单词
hell0 HELLO
[root@desktop Desktop]# echo hello HELLO | tr 'a-z' 'A-Z' ##tr小写转换成大写
HELLO HELLO
[root@desktop Desktop]# echo hello HELLO | tr 'A-Z' 'a-z' ##tr大写转换成小写
hello hello
[root@desktop Desktop]#
###########grep
[root@desktop Desktop]# grep root passwd ###从passwd中搜索root
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
test:root:test
test:test:root
test:test:root:test:test:root
[root@desktop Desktop]# grep -E "root|ROOT" passwd ##搜索小写root以及大写ROOT
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
test:root:test
TESTROOTTEST
TEST:TEST:ROOT
test:test:root
test:test:root:test:test:root
[root@desktop Desktop]# grep -Ei "root" passwd ##-i忽略大小写
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
test:root:test
TESTROOTTEST
TEST:TEST:ROOT
test:test:root
test:test:root:test:test:root
[root@desktop Desktop]# grep -Ei "^root" passwd ##root在首行的
root❌0:0:root:/root:/bin/bash
[root@desktop Desktop]# grep -Ei "root$" passwd ##root在末行的
TEST:TEST:ROOT
test:test:root
test:test:root:test:test:root
[root@desktop Desktop]# grep -Ei "^root|root$" passwd ##选择root在首行或者root在后行的,并忽略大小写
root❌0:0:root:/root:/bin/bash
TEST:TEST:ROOT
test:test:root
test:test:root:test:test:root
[root@desktop Desktop]# grep -Ei "^root|root$" passwd -v ##-v除过root大写或小写在首行和尾行的
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
tcpdump❌72:72::/:/sbin/nologin
apache❌48:48:Apache:/usr/share/httpd:/sbin/nologin
test:root:test
TESTROOTTESTsquid❌23:23::/var/spool/squid:/sbin/nologin
[root@desktop Desktop]# grep -Ei "^root|root$" passwd -v | grep root ##将中间的root选出来
operator❌11:0:operator:/root:/sbin/nologin
test:root:test[root@desktop Desktop]# grep ROOT passwd -n ##显示行号
42:TESTROOTTEST
43:TEST:TEST:ROOT
[root@desktop Desktop]# grep ROOT passwd -n 2 ##ROOT前边有文件名地点
passwd:42:TESTROOTTEST
passwd:43:TEST:TEST:ROOT
grep: 2: No such file or directory
[root@desktop Desktop]# grep ROOT passwd -n2 ##显示ROOT上下的两行
40-apache❌48:48:Apache:/usr/share/httpd:/sbin/nologin
41-test:root:test
42:TESTROOTTEST
43:TEST:TEST:ROOT
44-test:test:root
45-test:test:root:test:test:root
[root@desktop Desktop]# grep ROOT passwd -1 ##显示ROOT上下的一行不带行号
test:root:test
TESTROOTTEST
TEST:TEST:ROOT
test:test:root
[root@desktop Desktop]# grep ROOT passwd -A1 ##显示ROOT下边以行的
TESTROOTTEST
TEST:TEST:ROOT
test:test:root
[root@desktop Desktop]# grep ROOT passwd -B1 ##显示ROOT上边一行的
test:root:test
TESTROOTTEST
TEST:TEST:ROOT
[root@desktop Desktop]# grep ROOT passwd
TESTROOTTEST
TEST:TEST:ROOT
###############grep中的正则表达
[root@desktop Desktop]# vim file ##重新编辑文件
[root@desktop Desktop]# grep x....y file ##xy中间可以有4个
xyxyxyxyxy
[root@desktop Desktop]# grep x.y file ##xy中间可以有一个
xxy
xxoy
[root@desktop Desktop]# grep x..y file ##xy中间可以有两个
xooy
xxoy
xyxyxyxyxy
[root@desktop Desktop]# vim file
[root@desktop Desktop]# grep xy file ##表示x之后可以跟0-10个字符后再接y
xy
xxy
xooy
xxoy
xyxyxyxyxy
[root@desktop Desktop]# vim file ##重新编辑后看效果
[root@desktop Desktop]# grep x*y file
xy
xxy
ty
xooy
xxoy
xyxyxyxyx
[root@desktop Desktop]# grep x?y file ##不加-E,‘?’无法显示
[root@desktop Desktop]# grep -E x?y file ##?表示可以出现0-1次
xy
xxy
ty
xooy
xxoy
xyxyxyxyxy
[root@desktop Desktop]# grep -E x+y file #+表示字符出现1-任意次
xy
xxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E x{1}y file #{数字}表示出现1次
xy
xxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "x{1}y" file
xy
xxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "<x{1}y" file ##把前面的清空
xy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "x{1}y>" file ##把后面的清空
xy
xxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "/<x{2,}y>" file #2-任意数字中间
[root@desktop Desktop]# grep -E "/<x{1,}y>" file #1-任意数字中间
[root@desktop Desktop]# grep -E xy file
xy
xxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "/<x{0,}y>" file ##0-任意次
[root@desktop Desktop]# ls
check_file file file1 mm passwd waring_check
[root@desktop Desktop]# vim file
[root@desktop Desktop]# grep -E "<x{0,}y>" file ##前后清空,xy中间0-n次
xy
xxy
xxxxy
xxxxxxy
xxxxy
[root@desktop Desktop]# grep -E "<x{3,}y>" file ##前后清空,xy中间3-n次
xxxxy
xxxxxxy
xxxxy
[root@desktop Desktop]# grep -E "<x{1}y>" file ##字符出现一次
xy
[root@desktop Desktop]# grep -E "<x{4}y>" file ##字符出现4次
xxxxy
xxxxy
[root@desktop Desktop]# grep -E "x{4}y" file ##字符出现4次
xxxxy
xxxxxxy
xxxxy
[root@desktop Desktop]# grep -E "xy{4,}" file ##y出现4次
[root@desktop Desktop]# grep -E "xy{2,}" file ##y出现2次
[root@desktop Desktop]# grep -E "xy{1,}" file ##y出现1次
xy
xxy
xxxxy
xxxxxxy
xxxxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "xy{0}" file ##y出现0次
xy
xxy
xxxxy
xxxxxxy
xxxxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "(xy){1,}" file ##表示xy一共出现1-n次
xy
xxy
xxxxy
xxxxxxy
xxxxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "(xy){2,}" file ##xy一共出现2-n次
xyxyxyxyxy
[root@desktop Desktop]# grep -E "(xy){,2}" file ##xy一共出现0-2次
tt
xy
xxy
xxxxy
ty
xxxxxxy
xxxxy
xyxyxyxyxy
[root@desktop Desktop]# grep -E "(xy){,1}" file ##xy一共出现0-1次
tt
xy
xxy
xxxxy
ty
xxxxxxy
xxxxy
xyxyxyxyxy
[root@desktop mnt]# cp /etc/fstab fstab
[root@desktop mnt]# cat fstab ##复制一份文件,查看它
1
#2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed 5p fstab ##用sed来加第5行,由于中间少标了号,所以,在下面则是多了第四行
1
#2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 2014445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed -n 5p fstab ##-n可以只显示增加的那一行4[root@desktop mnt]# sed -n '/#/'p fstab ##表示显示/中间的,可以看到后面的UUID已经找不到了,中间的加过东西
#2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7[root@desktop mnt]# sed -n '!/#/'p fstab ##!方错了地方,命令没有反应
[root@desktop mnt]# sed '/#/p' fstab ##少了-n,和!除过,查看里面有#的行,都加了一份
1 #
1 #
2# /etc/fstab
2# /etc/fstab
3# Created by anaconda on Wed May 7 01:22:57 2014
3# Created by anaconda on Wed May 7 01:22:57 2014
4#
4#
5# Accessible filesystems, by reference, are maintained under '/dev/disk'
5# Accessible filesystems, by reference, are maintained under '/dev/disk'
6# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
6# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
7#
7#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed -n '/#/!p' fstab ##除过#我们可以看到增加的两行
1
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0 [root@desktop mnt]# sed -n '/UUID/!p' fstab ##除过UUID的我们都加了一行,并且显示出来
1
#2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed -n '/UUID/p' fstab ##只曾加UUID的显示
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
###########这里我们重新编过fstab的内容
[root@desktop mnt]# sed -n '2p' fstab ##将第二行增加的显示出来
@@
[root@desktop mnt]# sed -n '2,4p' fstab ##查看第二行到第四行
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 2014[root@desktop mnt]# sed -n '2p;4p' fstab ##这里查看第二行及第四行
@@ 4 Created by anaconda on Wed May 7 01:22:57 2014[root@desktop mnt]# sed '/#/d' fstab ##d表示删除,也就是除了#之外的增加并显示
1
@@
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0[root@desktop mnt]# sed -n '/^#/p' fstab ##"^"查看前面是#号的2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7[root@desktop mnt]#
[root@desktop mnt]# sed '/^#/d' fstab ##-d删除前面#的
1
@@
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed '/^#/!d' fstab ##增加!删除,除过前面是#号的2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7[root@desktop mnt]#
[root@desktop mnt]# sed -n '/^UUID/p' fstab ###增加并显示UUID这一行
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
[root@desktop mnt]# sed '/^UUID/p' fstab ##增加UUID这一行,并且将所有都显示出来
1
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed '/^UUID/ahello westos' fstab ##-a在UUID这一行下一行输出
1
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
hello westos
/dev/vg0/vo /home ext4 defaults 0 0[root@desktop mnt]# sed '/^UUID/ahello\nwestos ' fstab ##\n在hello之后换行输出westos
1
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
hello
westos
/dev/vg0/vo /home ext4 defaults 0 0[root@desktop mnt]# sed '/^UUID/i\hello\nwestos' fstab ##在UUID的上一行输出hello并且换行输出westos
1
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7hello
westos
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed '/^UUID/i\hello \n\westos' fstab ##跟上面一样的输出不过用\分开了分隔符
1
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7hello
westos
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0[root@desktop mnt]# sed '/^#/chello westos' fstab ##替换#
1
@@
hello westos
hello westos
hello westos
hello westos
hello westos
hello westos
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed '/^#/w /mnt/westosfile' fstab #将有#的导入westosfile
1
@@ 2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# ls
fstab westosfile
[root@desktop mnt]# cat westosfile ###显示westos2 /etc/fstab3 Created by anaconda on Wed May 7 01:22:57 201445 Accessible filesystems, by reference, are maintained under '/dev/disk'6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info7[root@desktop mnt]#
[root@desktop mnt]# sed '/^#/=' fstab ###有#显示行号
1
@@
32 /etc/fstab43 Created by anaconda on Wed May 7 01:22:57 20145465 Accessible filesystems, by reference, are maintained under '/dev/disk'76 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info87UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed '/^#/=w file1' fstab ##不能实现
sed: -e expression #1, char 6: extra characters after command
[root@desktop mnt]# sed '/^#/=' fstab > file1 ##将fatab的内容导入file1
[root@desktop mnt]# cat file12
#
3/etc/fstab4Created by anaconda on Wed May 7 01:22:57 20145
#
6Accessible filesystems, by reference, are maintained under '/dev/disk'7See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info8
#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed -n '/^[0-9]/p' file1 ##将所有的存到file1,-n可以看到修改的是行好
2
3
4
5
6
7
8[root@desktop mnt]# sed '/^[0-9]/d' -i file1 ##-i将行号删除
[root@desktop mnt]# cat file1 #/etc/fstabCreated by anaconda on Wed May 7 01:22:57 2014#Accessible filesystems, by reference, are maintained under '/dev/disk'See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]#
[root@desktop mnt]# sed '4r /mnt/test' file1 ##-r将两个文件合并#/etc/fstabCreated by anaconda on Wed May 7 01:22:57 2014hello world
#Accessible filesystems, by reference, are maintained under '/dev/disk'See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# vim rule ##编辑文件
1 /^UUID/d
2 /^#/cwestos
[root@desktop mnt]# sed -f rule fstab ##-f将rule中的程序在fstab中执行westos
westos
westos
westos
westos
westos
westos
/dev/vg0/vo /home ext4 defaults 0 0[root@desktop mnt]# sed 's/#//g' fstab ##将全文的#替换成空格
1
2 /etc/fstab
3 Created by anaconda on Wed May 7 01:22:57 2014
4
5 Accessible filesystems, by reference, are maintained under '/dev/disk'
6 See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
7
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0[root@desktop mnt]# sed '1,5s/#//g' fstab ##1,5行换#
1
2 /etc/fstab
3 Created by anaconda on Wed May 7 01:22:57 2014
4
5 Accessible filesystems, by reference, are maintained under '/dev/disk'
6# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
7#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vg0/vo /home ext4 defaults 0 0
[root@desktop mnt]# sed 's/\//#####/g' fstab ##将/替换成#####号
1 #
2# #####etc#####fstab
3# Created by anaconda on Wed May 7 01:22:57 2014
4#
5# Accessible filesystems, by reference, are maintained under '#####dev#####disk'
6# See man pages fstab(5), findfs(8), mount(8) and#####or blkid(8) for more info
7#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ##### xfs defaults 1 1
#####dev#####vg0#####vo #####home ext4 defaults 0 0[root@desktop mnt]# sed 's@/@######@g' fstab ##与上面的命令一样,不过变得是把用来分割的/换为@
1 #
2# ######etc######fstab
3# Created by anaconda on Wed May 7 01:22:57 2014
4#
5# Accessible filesystems, by reference, are maintained under '######dev######disk'
6# See man pages fstab(5), findfs(8), mount(8) and######or blkid(8) for more info
7#
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ###### xfs defaults 1 1
######dev######vg0######vo ######home ext4 defaults 0 0[root@desktop mnt]# cat passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
[root@desktop mnt]# sed 's/sbin/westos/g' passwd ##全文的sbin替换成westos
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/westos/nologin
daemon❌2:2:daemon:/westos:/westos/nologin
adm❌3:4:adm:/var/adm:/westos/nologin
lp❌4:7:lp:/var/spool/lpd:/westos/nologin
sync❌5:0:sync:/westos:/bin/sync
shutdown❌6:0:shutdown:/westos:/westos/shutdown
halt❌7:0:halt:/westos:/westos/halt
mail❌8:12:mail:/var/spool/mail:/westos/nologin[root@desktop mnt]# sed 'G' passwd ##-G每一行下边添加空行
root❌0:0:root:/root:/bin/bashbin❌1:1:bin:/bin:/sbin/nologindaemon❌2:2:daemon:/sbin:/sbin/nologinadm❌3:4:adm:/var/adm:/sbin/nologinlp❌4:7:lp:/var/spool/lpd:/sbin/nologinsync❌5:0:sync:/sbin:/bin/syncshutdown❌6:0:shutdown:/sbin:/sbin/shutdownhalt❌7:0:halt:/sbin:/sbin/haltmail❌8:12:mail:/var/spool/mail:/sbin/nologin[root@desktop mnt]#
[root@desktop mnt]# sed '$!G' passwd ##最后一行下边不做改变
root❌0:0:root:/root:/bin/bashbin❌1:1:bin:/bin:/sbin/nologindaemon❌2:2:daemon:/sbin:/sbin/nologinadm❌3:4:adm:/var/adm:/sbin/nologinlp❌4:7:lp:/var/spool/lpd:/sbin/nologinsync❌5:0:sync:/sbin:/bin/syncshutdown❌6:0:shutdown:/sbin:/sbin/shutdownhalt❌7:0:halt:/sbin:/sbin/haltmail❌8:12:mail:/var/spool/mail:/sbin/nologin ##下面没空格
[root@desktop mnt]#
[root@desktop mnt]# sed '=' passwd#########################加上行号
1
root❌0:0:root:/root:/bin/bash
2
bin❌1:1:bin:/bin:/sbin/nologin
3
daemon❌2:2:daemon:/sbin:/sbin/nologin
4
adm❌3:4:adm:/var/adm:/sbin/nologin
5
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
6
sync❌5:0:sync:/sbin:/bin/sync
7
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
8
halt❌7:0:halt:/sbin:/sbin/halt
9
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
[root@desktop mnt]# sed '=' passwd | sed 'N;s/\n/ /g' ##用管道输出后替换换行符号成空格
1 root❌0:0:root:/root:/bin/bash
2 bin❌1:1:bin:/bin:/sbin/nologin
3 daemon❌2:2:daemon:/sbin:/sbin/nologin
4 adm❌3:4:adm:/var/adm:/sbin/nologin
5 lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync❌5:0:sync:/sbin:/bin/sync
7 shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
8 halt❌7:0:halt:/sbin:/sbin/halt
9 mail❌8:12:mail:/var/spool/mail:/sbin/nologin
###############awk报告生成器。他会逐行处理文本,支持在处理第一行之前做一些准备工作,以及在处理万最后一行做一些总结性质的工作
[root@desktop mnt]# awk '{print FILENAME}' passwd ##逐行显示文件名称
passwd
passwd
passwd
passwd
passwd
passwd
passwd
passwd
passwd
[root@desktop mnt]#
[root@desktop mnt]# awk '{print NF}' passwd ##逐行打印第几列
1
1
1
1
1
1
1
1
1
[root@desktop mnt]#
[root@desktop mnt]# awk -F : '{print NF}' passwd ##分隔符是:,打印每一行有几列
7
7
7
7
7
7
7
7
7
[root@desktop mnt]# [root@desktop mnt]# awk '{print NR}' passwd ##表示是第集行
1
2
3
4
5
6
7
8
9
[root@desktop mnt]# awk -F : 'BEGIN{print "NAME"}{print NR}END{print "END"}' passwd
NAME ###在开始和结尾写上东西
1
2
3
4
5
6
7
8
9
END
[root@desktop mnt]# [root@desktop mnt]# awk -F : 'BEGIN{print "NAME"}{print $1="";print $0}END{print "END"}' passwd
NAME #每一列加上空格,并将所有的添加上去 x 0 0 root /root /bin/bash x 1 1 bin /bin /sbin/nologin x 2 2 daemon /sbin /sbin/nologin x 3 4 adm /var/adm /sbin/nologin x 4 7 lp /var/spool/lpd /sbin/nologin x 5 0 sync /sbin /bin/sync x 6 0 shutdown /sbin /sbin/shutdown x 7 0 halt /sbin /sbin/halt x 8 12 mail /var/spool/mail /sbin/nologin
END
[root@desktop mnt]# awk '/bash$/{print}' passwd ##末尾是bash的
root❌0:0:root:/root:/bin/bash
[root@desktop mnt]# awk '!/bash$/{print}' passwd ##末尾不是bash的
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin[root@desktop mnt]# awk '!/bash$/&&!/nologin/{print}' passwd ##末尾不是bash以及nologin的
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
[root@desktop mnt]# awk -F : '/bash$/{print $1}' /etc/passwd ##用户以bash结尾
root
student
[root@desktop mnt]# awk -F : '/bash$/||/sh$/{print $1}' /etc/passwd ##用户bash或sh结尾
root
student
[root@desktop mnt]# awk -F : '$6!?/<home/[root@desktop mnt]# awk -F : '/bash$/||/sh$/||/halt$/{print $1}' /etc/passwd
root ##在bash或sh的外还有halt的第一列
halt
student
[root@desktop mnt]# [root@desktop mnt]# awk 'BEGIN{n=0}/bash/{n++}END{print n}' /etc/passwd ##bash结尾有几个
2
[root@desktop mnt]# awk 'BEGIN{n=0}/halt/{n++}END{print n}' /etc/passwd ##halt结尾有几个
1
[root@desktop mnt]# [root@desktop mnt]# awk '/^r/{print}' passwd ##查看r开头的
root❌0:0:root:/root:/bin/bash
[root@desktop mnt]# awk -F : '$6~/bin/{print}' passwd ##第6列后面有bin的
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
[root@desktop mnt]# awk -F : '$6~/<bin/{print}' passwd ##第6列后面是bin的,且前面没有其它
bin❌1:1:bin:/bin:/sbin/nologin[root@desktop mnt]# awk -F : '$6!~/<bin/{print}' passwd ##第6列后面排除bin的
root❌0:0:root:/root:/bin/bash
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin[root@desktop mnt]# awk -F : 'BEGIN{N=0}/bash$/{n++}END{print n}' /etc/passwd ##尾部是bash的有几个
2
[root@desktop mnt]# awk -F : 'BEGIN{N=0}/bash$/&&6!~/^\/home/{print}END{print n}' /etc/passwd
root❌0:0:root:/root:/bin/bash
student❌1000:1000:Student User:/home/student:/bin/bash
##这条命令是尾部是bash名且除过第六列后面是以\开头的。将其展示出来,并且自加1的方式显示,个数。
[root@desktop mnt]# awk -F : 'BEGIN{N=0}/bash$/&&6!~/^\/home/{print;n++}END{print n}' /etc/passwd
root❌0:0:root:/root:/bin/bash
student❌1000:1000:Student User:/home/student:/bin/bash
###############################抓取eth0网卡的ip
desktop mnt]# ifconfig eth0 #############可以看到eth0全部
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.25.254.138 netmask 255.255.255.0 broadcast 172.25.254.255
inet6 fe80::5054:ff:fe00:260a prefixlen 64 scopeid 0x20<link>
ether 52:54:00:00:26:0a txqueuelen 1000 (Ethernet)
RX packets 190196 bytes 14810746 (14.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9853 bytes 1480384 (1.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@desktop mnt]# ifconfig eth0 | awk '/inet>/{print $2}' ###找到eth0,下来显示inet后面没有附加在inet上的字符,的所有东西,然后显示第二列
172.25.254.138