第一關課前練習題

1.1 第一關練習題

1.1.1 創建一個目錄/data

1.1.1.1 方法:mkdir 創建目錄

[root@oldboyedu-39 ~]# mkdir /data    

[root@oldboyedu-39 ~]# ls /           

a    data  etc   lib64      mnt     proc  selinux tmp

bin  date  home  lost+found oldboy  root  srv     usr

boot dev   lib   media      opt     sbin  sys     var

[root@oldboyedu-39 ~]#

1.1.2 /data 下面建立一個文件 oldboy.txt

1.1.2.1 方法:touch         創建文件

[root@oldboyedu-39 ~]# touch /data/oldboy.txt

[root@oldboyedu-39 ~]# ls /data/

oldboy.txt

[root@oldboyedu-39 ~]#

1.1.3 oldboy.txt 增加內容爲“I am studying linux.

1.1.3.1 方法1vim  文本編輯器

[root@oldboyedu-39 ~]# vim /data/oldboy.txt                

I am studying linux.

                                                                        

~                                                                          

-- INSERT --   

1.1.3.2 方法2echo >            顯示內容重定向到目標文件中

[root@oldboyedu-39 ~]# echo "I am studyinglinux." > /data/oldboy.txt

1.1.3.3 方法3cat  >>  <<        多行追加

[root@oldboyedu-39 ~]# cat >> /data/oldboy.txt <<EOF

> I am studying linux.

>EOF

[root@oldboyedu-39 ~]#

1.1.4 oldboy.txt 文件拷貝到/tmp

1.1.4.1 方法:cp       複製目錄或文件

[root@oldboyedu-39 ~]# cp /data/oldboy.txt /tmp   

1.1.5 /data 目錄移動到/root

1.1.5.1 方法:mv             移動目錄或文件

[root@oldboyedu-39 ~]# mv /data /root

[root@oldboyedu-39 ~]# ls /root

anaconda-ks.cfg data        install.log.syslog  test.txt

a.txt           install.log  oldboy.txt

[root@oldboyedu-39 ~]#

1.1.6 進入/root 目錄下的 data 目錄,刪除 oldboy.txt 文件

1.1.6.1 方法:cd 切換目錄

              rm         刪除文件或目錄

[root@oldboyedu-39 ~]# cd /root/data/

[root@oldboyedu-39 data]# rm -f oldboy.txt         ##-f 強制刪除

[root@oldboyedu-39 data]# ls

[root@oldboyedu-39 data]#

1.1.7 接第 6 題,退出到上一級目錄,刪除 data 目錄

1.1.7.1 方法:cd

[root@oldboyedu-39 data]# cd ..

[root@oldboyedu-39 ~]# rm -rf /root/data       ## -r       刪除目錄

[root@oldboyedu-39 ~]# ls

anaconda-ks.cfg install.log         oldboy.txt

a.txt           install.log.syslog  test.txt

[root@oldboyedu-39 ~]#

1.1.8 請給出輸出 test.txt 文件內容時,不包含 oldboy 字符串的命令

文件 test.txt 內容爲: test

liyao

oldboy

先創建測試環境:

[root@oldboyedu-39 ~]# cat >test.txt<<eof

> test

> lidao

> oldboy

> eof

[root@oldboyedu-39 ~]# cat test.txt

test

lidao

oldboy

[root@oldboyedu-39 ~]#

1.1.8.1 方法1grep 過濾

[root@oldboyedu-39 ~]# grep -v 'oldboy' test.txt   ## -v   排除

test

lidao

[root@oldboyedu-39 ~]#

1.1.8.2 方法2sed          用於處理文本文件

[root@oldboyedu-39 ~]# sed '/oldboy/d' test.txt    ## d 刪除

test

lidao

[root@oldboyedu-39 ~]#

1.1.8.3 方法3awk 用於處理文本文件

[root@oldboyedu-39 ~]# awk '!/oldboy/' test.txt       ## !在awk裏面表示取反

test

lidao

[root@oldboyedu-39 ~]#

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

1.1.9.1 方法:mkdir

[root@oldboyedu-39 ~]# mkdir -p /oldboy/test       ## -p,遞歸,多級創建目錄

[root@oldboyedu-39 ~]#

1.1.10 複製讓系統不提示是否覆蓋

已知/tmp 下已經存在 test.txt文件,如何執行命令才能把/mnt/test.txt拷貝到/tmp 下覆蓋掉

/tmp/test.txt,而讓系統不提示是否覆蓋(root 權限下)

1.1.10.1 方法1\            臨時取消別名

[root@oldboyedu-39 ~]# \cp /mnt/test.txt /tmp/

[root@oldboyedu-39 ~]#

1.1.10.2 方法2:使用命令絕對路徑

which  查看命令絕對路徑

[root@oldboyedu-39 ~]# /bin/cp /mnt/test.txt /tmp/

[root@oldboyedu-39 ~]#

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

創建測試環境:

[root@oldboyedu-39 ~]# seq 100 >ett.txt        ## seq  生成數字序列

1.1.11.1 方法1head + tail

[root@oldboyedu-39 ~]# head -30 ett.txt | tail -11    ##head顯示前幾行

20                                                    ##tail顯示後幾行

21

22

23

24

25

26

27

28

29

30

[root@oldboyedu-39 ~]#

 

1.1.11.2 方法2sed

[root@oldboyedu-39 ~]# sed -n '20,30p' ett.txt            ##-n    取消默認輸出

20

21

22

23

24

25

26

27

28

29

30

[root@oldboyedu-39 ~]#

1.1.11.3 方法3awk     

[root@oldboyedu-39 ~]# awk 'NR==20,NR==30' ett.txt

20

21

22

23

24

25

26

27

28

29

30

[root@oldboyedu-39 ~]#

1.1.11.4 方法4grep      (碰巧)-A  -B  -C

[root@oldboyedu-39 ~]# grep -A10 '20' ett.txt      ## -A10 輸入20行及其之後10行

20

21

22

23

24

25

26

27

28

29

30

[root@oldboyedu-39 ~]#

1.1.12 /oldboy 目錄及其子目錄下所有以擴展名.sh 結尾的文件中包含oldboy 的字符串全部替換爲oldgirl

創建測試環境

[root@oldboyedu-39 ~]# mkdir -p /oldboy/test

[root@oldboyedu-39 ~]# cd /oldboy

[root@oldboyedu-39 oldboy]# echo"oldboy">test/del.sh

[root@oldboyedu-39 oldboy]# echo"oldboy">test.sh

[root@oldboyedu-39 oldboy]# echo"oldboy">t.sh

[root@oldboyedu-39 oldboy]# touch oldboy.txt

[root@oldboyedu-39 oldboy]# touch alex.txt

1.1.12.1 方法1find +' | xargs'   

[root@oldboyedu-39 oldboy]# find /oldboy/ -type f -name"*.sh"|xargssed -i 's#oldboy#oldgirl#g'

[root@oldboyedu-39 oldboy]# find /oldboy/ -type f-name "*.sh"|xargs cat

oldgirl

oldgirl

oldgirl

1.1.12.2 方法2sed  $()      先執行小括號裏內容,留下東西給前邊的命令

[root@oldboyedu-39 oldboy]# sed -i 's#oldboy#oldgirl#g' $(find /oldboy/ -type f-name "*.sh")

1.1.12.3 方法3-exec    {} \;       固定搭配,把前邊內容給到'{}'

[root@oldboyedu-39 oldboy]# find /oldboy/ -type f -name"*.sh" -execsed -i 's#oldboy#oldgirl#g' {}\;

[root@oldboyedu-39 oldboy]#


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