1. 程式人生 > >Linux的命令及三劍客(grep sed awk )

Linux的命令及三劍客(grep sed awk )

txt 當前 修改 刪除 root alex bak 過濾 dbo

令的介紹
1.1 mv 修改兼移動命令
1.1.1 移動命令mv

1.1.2 修改命令mv
[root@oldboy ~]# mv oldboy.txt oldgirl.txt
mv: cannot stat `oldboy.txt‘: No such file or directory
[root@oldboy ~]# ls -l
total 44
-rw-------. 1 root root 1161 Jul 13 18:28 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Jul 13 18:33 data
-rw-r--r--. 1 root root 21736 Jul 13 18:28 install.log

-rw-r--r--. 1 root root 5890 Jul 13 18:25 install.log.syslog
1.2 rm 命令刪除使用絕對地址
1.2.1 強制刪除rm -f
[root@oldboyedu50 data]# rm -f /root/data/oldgirl.txt
[root@oldboyedu50 data]# ls -l /root/data/
total 12
-rw-r--r--. 1 root root 7 Jul 11 02:13 alex.txt
-rw-r--r--. 1 root root 14 Jul 11 01:16 lidao.txt
-rw-r--r--. 1 root root 254 Jul 11 02:56 oldboy.txt.bak
1.2.2 強制刪除目錄rm –fr/rf
root@oldboyedu50 data]# rm -rf /tmp/data/
[root@oldboyedu50 data]# ls -l /tmp/data
ls: cannot access /tmp/data: No such file or directory

rm -rf /tmp/data/
rm -fr /tmp/data/
1.3 創建環境touch
touch /root/oldboy.txt /root/alex.txt /root/lidao.txt
1.4 find查找文件
1.4.1 #find命令
[root@oldboyedu50 data]# #find 在××× -類型 f -名字 "oldboy.txt"

[root@oldboyedu50 data]#
[root@oldboyedu50 data]# find /root/ -type f -name "oldboy.txt"
/root/oldboy.txt
-type 找什麽類型的 f file (文件)
d directory (目錄)
-name "叫什麽名字的"

1.4.2 find+ |xargs 配合
找出文件交給|xgars 註意“|”的意思是把前一個的命令出傳遞給後一個命令
1.4.3 查找以.txt為後綴的所有文件

oldboy.txt lidao.txt alex.txt
[root@oldboyedu50 data]# find /root/ -type f -name ".txt"
/root/oldboy.txt
/root/lidao.txt
/root/alex.txt
/root/data/lidao.txt
/root/data/alex.txt
[root@oldboyedu50 data]# #
所有字符 任意字符

[root@oldboyedu50 data]# find /root/ -type f -name ".txt"
/root/oldboy.txt
/root/lidao.txt
/root/alex.txt
/root/data/lidao.txt
/root/data/alex.txt
[root@oldboyedu50 data]# find /root/ -type f -name "
.txt"|xargs ls -l
-rw-r--r--. 1 root root 0 Jul 11 03:21 /root/alex.txt
-rw-r--r--. 1 root root 7 Jul 11 02:13 /root/data/alex.txt
-rw-r--r--. 1 root root 14 Jul 11 01:16 /root/data/lidao.txt
-rw-r--r--. 1 root root 0 Jul 11 03:21 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 11 03:21 /root/oldboy.txt
1.5 寫出上一級目錄cd 命令
1)進入上一級目錄 cd ..
2) 查看多個上一級目錄 cd../../../../../../../
3)進入當前目錄 cd
第2章 Linux三劍客的使用
2.1 grep(過濾)三劍客老三

方法1 -grep
[root@oldboyedu50 data]# #grep 過濾 顯示你要或不要的內容
[root@oldboyedu50 data]# grep "oldboy" /data/test.txt
oldboy
[root@oldboyedu50 data]# grep -v "oldboy" /data/test.txt
test
liyao
2.2 head和tail 的使用
1) head顯示文件前幾行內容 默認為十行
[root@oldboy data]# head -3 /data/ett.txt
1
2
3
2) tail 顯示文件最後幾行 默認為十行
[root@oldboy data]# tail -11 /data/ett.txt
40
41
42
43
44
45
46
47
48
49
50
3) head和tail的共同使用
[root@oldboy data]# head -30 /data/ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30
2.3 三劍客老二sed命令

2.4 三劍客老大 awk命令
[root@oldboy data]# awk ‘! /oldboy/‘ /data/test.txt
test
liyao
最後說一下sed(擅長取行) sed ‘3p’ /data/ett.txt 默認輸出會在行列中多增加一個“3”而你輸入sed –n ‘3p’ /data/ett.txt結果會是只顯示“3” sed –n ‘3,5p’ data/ett.txt 結果是3到5行之間的數字。註意這裏-n是取消默認行輸出。
awk(擅長去列)例如 awk ‘NR’==3+地址’結果是顯示第3行的。awk ‘NR’>3+地址輸出大於第三行的行列 awk ‘NR’<3+地址 顯示小於3的行列 awk ‘NR==3,NR==5’+地址顯示3到5行的。
[root@oldboy data]# awk ‘NR<2‘ /data/ett.txt
1
[root@oldboy data]# awk ‘NR==10,NR==20‘ /data/ett.txt
10
11
12
13
14
15
16
17
18
19
20

Linux的命令及三劍客(grep sed awk )