Linux三劍客及常用命令

要記住的符號:

>
2>>
2>&1

6.1 把 /data 移動到 /root目錄下面
#move mv

[root@oldboyedu50 ~]# mv /data/ /root/
[root@oldboyedu50 ~]# ls -l /data
ls: cannot access /data: No such file or directory
[root@oldboyedu50 ~]# ls -l /root/
total 44
-rw-------. 1 root root 1124 Jul 10 18:25 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Jul 11 02:13 data
-rw-r--r--. 1 root root 21736 Jul 10 18:25 install.log
-rw-r--r--. 1 root root 5890 Jul 10 18:24 install.log.syslog

6.2 【管道的概念】進入/root目錄下的data目錄,刪除oldboy.txt文件

實例6-1 #如何備份?
[root@oldboyedu50 ~]# cd /root/data/
[root@oldboyedu50 data]# pwd
/root/data
[root@oldboyedu50 data]# ls -l
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 01:08 oldboy.txt
[root@oldboyedu50 data]# cp oldboy.txt oldboy.txt.bak
[root@oldboyedu50 data]# ls -l
total 16
-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 01:08 oldboy.txt
-rw-r--r--. 1 root root 254 Jul 11 02:56 oldboy.txt.bak

.bak === backup
實例6-2 #修改文件名 重命名
[root@oldboyedu50 data]# mv oldboy.txt oldgirl.txt
[root@oldboyedu50 data]# ls -l
total 16
-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
-rw-r--r--. 1 root root 254 Jul 11 01:08 oldgirl.txt

6.3 #強制刪除
[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

6.4 #強制刪除目錄
[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/

6.5 #怎麼樣防止 誤刪除

#創建環境

touch /root/oldboy.txt /root/alex.txt /root/lidao.txt

6.6 #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 "叫什麼名字的"

#喜歡送/root 以.txt結尾的文件
oldboy.txt lidao.txt alex.txt
6.7 模糊查找
[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
6.8 管道
[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

find +|xargs 配合
|與|xargs區別
老男孩教育每日一題-2017年5月18日-說說|(管道)與|xargs(管道xargs)的區別
http://blog.51cto.com/lidao/1927347

#7 接第6題,退出到上一級目錄刪除 data目錄。(原來在/root/data)
cd .. 進入當前目錄的上一級目錄
cd . 進入當前目錄
#移動xxxxx文件 到當前目錄
#複製xxxxx文件 到當前目錄
[root@oldboy50 tmp]# cp /root/oldboy.txt .
cp: overwrite `./oldboy.txt'? y
[root@oldboy50 tmp]# ls -l
total 4
-rw-r--r--. 1 root root 32 Jul 13 17:01 oldboy.txt
-rw-------. 1 root root 0 Jul 11 16:19 yum.log

6.9 進入當前目錄

[root@oldboyedu50 /]# cd /root/data/
[root@oldboyedu50 data]# pwd
/root/data
[root@oldboyedu50 data]# cp /root/oldboy.txt .

4.8 已知文件test.txt內容
test
lidao
oldboy
創建測試文件:
mkdir -p /data
cat >/data/test.txt<<EOF
test
liyao
oldboy
EOF
6.10 請給出輸出test.txt文件內容時,不包含oldboy字符串的命令。

實例6-3 方法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 -head
[root@oldboyedu50 data]# head -n2 /data/test.txt
test
liyao
[root@oldboyedu50 data]# head -2 /data/test.txt
test
liyao

#head 顯示文件的前幾行內容 默認顯示前10行
#tail 顯示文件的最後幾行內容 默認顯示最後10行

6.11 #顯示文件最後一行
[root@oldboyedu50 data]# tail -1 /data/test.txt
oldboy

實例6-4 #方法3 awk
[root@oldboyedu50 data]# #awk
[root@oldboyedu50 data]# #gawk
[root@oldboyedu50 data]# awk '/oldboy/' /data/test.txt
oldboy
[root@oldboyedu50 data]# awk '!/oldboy/' /data/test.txt
test
liyao

實例6-5 #方法4 sed
[root@oldboyedu50 data]# sed '/oldboy/d' /data/test.txt
test
liyao
[root@oldboyedu50 data]# #delete

小結:
1.grep 過濾
2.head tail
3.sed awk (瞭解)

6.12 #9 請用一條命令完成創建目錄/oldboy/test,即創建/oldboy目錄及/oldboy/test

[root@oldboyedu50 data]# mkdir -p /oldboy/test
[root@oldboyedu50 data]# ls /oldboy/
test
#-p 創建多層目錄

6.13 #11 只查看ett.txt文件(共100行)內第20到第30行的內容

[root@oldboyedu50 data]# seq 10
1
2
3
4
5
6
7
8
9
10

seq 40 >/data/ett.txt

實例6-6 #方法1 head + tail
root@oldboyedu50 data]# head -30 /data/ett.txt |tail
21
22
23
24
25
26
27
28
29
30
[root@oldboyedu50 data]# head -30 /data/ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30

6.14 #顯示文件的第30到40行
重點命令:
(1).head -40 /data/ett.txt |tail -11
(2).tail -11 /data/ett.txt

實例6-7 #方法2 sed 取行
[root@oldboyedu50 data]# sed -n '3p' /data/ett.txt
3
#-n 取消默認輸出(sed命令不會把文件內容都顯示出來)
[root@oldboyedu50 data]# sed -n '3p' /data/ett.txt
3
#print (顯示的意思)
[root@oldboyedu50 data]# sed -n '20p' /data/ett.txt
20

6.15 取20行到30行
[root@oldboyedu50 data]# sed -n '20,30p' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30

實例6-8 #方法3 awk
[root@oldboyedu50 data]# awk 'NR==3' /data/ett.txt
3
[root@oldboyedu50 data]# # 'NR行號 等於 3'
[root@oldboyedu50 data]# awk 'NR==20,NR==30' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30

mv
[root@oldboy50 ~]# mv oldboy.txt oldgirl.txt
[root@oldboy50 ~]# ls -l
total 44
-rw-------. 1 root root 1133 Jul 11 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 21736 Jul 11 16:23 install.log
-rw-r--r--. 1 root root 5890 Jul 11 16:22 install.log.syslog
-rw-r--r--. 1 root root 40 Jul 13 15:29 oldgirl.txt

6.16 如何備份?
cd 備份

6.17 rm刪除文件
rm -f強制刪除文件
rm –r 刪除目錄
rm –rf 強制 刪除目錄
rm –fr 強制 刪除目錄

注意
[root@oldboyedu50 data]# #“”‘’:《《》》。
[root@oldboyedu50 data]# #""'': <<>> .

6.18 怎麼樣防止誤刪
創建環境
find查找
[root@oldboy50 ~]# find /root/ -type f -name "oldboy.txt"
/root/oldboy.txt
[root@oldboy50 ~]#
find模糊查找
[root@oldboy50 ~]# find /root/ -type f -name ".txt"
/root/oldboy.txt
/root/oldgirl.txt
-type 找什麼類型
f fire(文件)
d directory (目錄)
-name (名字)
6.19 管道(防止誤刪)
[root@oldboy50 ~]# find /root/ -type f -name "
.txt"|xargs ls -l
-rw-r--r--. 1 root root 0 Jul 13 15:56 /root/oldboy.txt
-rw-r--r--. 1 root root 40 Jul 13 15:29 /root/oldgirl.txt

6.20 小結:
1.head+tail
2.sed
3.awk

6.21 總結:
1.簡單的命令
2.find +|xargs
3.三劍客 grep sed (過濾 取行) awk 取行 sed替換

6.22 預習:
1.sed替換
2.設置別名
linux基礎優化:
1.添加用戶
2.劫財劫色(iptables selinux)關閉
3.如何修改系統的字符集

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章