1.使用shell脚本,找出/etc目录下以.conf 结尾文件复制到/tmp下面
find /etc/ -type f -name "*.conf" |xargs cp -t /tmp/
cp $(find /etc/ -type f -name "*.conf") /tmp
find /etc/ -type f -name "*.conf" -exec cp {} /tmp \;
find /etc/ -type f -name "*.conf" |xargs -i cp {} /tmp/
xargs -i 让xargs后面可以使用{}| 表示前面find找出的文件 类似 -exec 里面的{}
打包备份/etc目录到/backup 下面 保证每天备份的压缩包名字不同
tar zcf /backup/etc-$(date +%F).tar.gz /etc/
取出网卡ip地址:
使用 ip a s eth0
1.方法1 sed 正则
[root@oldboyedu59 ~]# ip a s eth0 |sed -n '3p' |sed 's#^.*t ##g'
10.0.0.201/24 brd 10.0.0.255 scope global eth0
[root@oldboyedu59 ~]# ip a s eth0 |sed -n '3p' |sed 's#^.*t ##g'|sed 's#/.*$##g'
10.0.0.201
2.方法2 sed反向引用
[root@oldboyedu59 ~]# ip a s eth0 |sed -n 3p |sed -r 's#^.*t (.*)/.*$#\1#g'
10.0.0.201
2.awk 三剑客老大 擅长取行取列 统计计算
格式:
sed ‘找谁干啥’
awk ‘找谁{干啥}’
找谁 条件 模式
干啥 命令 动作 print (显示)
awk的执行过程
取行和取列
行 record 记录 行号写成NR(number of record)
awk 'NR==1' lidao.txt 显示第一行
[root@oldboy ~]# awk 'NR==2' /oldboy/oldboy.txt
I teach linux.
[root@olbdoy ~]#
awk '/oldboy/' lidao.txt 显示含有oldboy的行
[root@oldboy ~]# awk '/oldboy/' /oldboy/oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
[root@oldboy ~]#
列 field 字段
取列 默认分隔符为空格
awk '{print1,$2}' oldboy.txt 显示第一列和第二列
[root@oldboy ~]# awk '{print$1,$2}' /oldboy/oldboy.txt
I am
I teach
I like
my blog
our size
my qq
not 4900000448.
my god
$$$$$$$
[root@oldboy ~]#
awk 'NR=4{print$1}' oldboy.txt 显示第四行第一列
[root@oldboy ~]# awk 'NR==5{print$2}' /oldboy/oldboy.txt
blog
[root@oldboy ~]#
awk -F"," '{print1}' oldboy.txt 指定多种分隔符
awk '{print$NF}' oldboy.txt 取最后一列
[root@oldboy ~]# awk -F ":" '{print$NF}' /etc/passwd
bin/bash
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
bin/sync
sbin/shutdown
sbin/halt
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
sbin/nologin
bin/bash
[root@oldboy ~]#
比较
找出/etc/passwd下第三列大于999的行
awk -F":" '$3>999' /etc/passwd
[root@oldboy ~]# awk -F":" '$3>999' /etc/passwd
oldboy:x:1000:1000::/home/oldboy:/bin/bash
[root@oldboy ~]#
找出/etc/passwd下第三列大于0小于1000的行
awk -F":" '$3<1000&&$3>0' /etc/passwd
[root@oldboy ~]# awk -F":" '$3<1000&&$3>0' /etc/passwd
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:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@oldboy ~]#
过滤
条件