第一關課前練習題
1.1 第一關練習題
1.1.1 創建一個目錄/data
1.1.1.1 方法:mkdir 創建目錄
[[email protected] ~]# mkdir /data
[[email protected] ~]# 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
[[email protected]
1.1.2 在/data 下面建立一個文件 oldboy.txt
1.1.2.1 方法:touch 創建文件
[[email protected] ~]# touch /data/oldboy.txt
[[email protected] ~]# ls /data/
oldboy.txt
[[email protected] ~]#
1.1.3 為 oldboy.txt 增加內容為“I am studying linux.”
1.1.3.1 方法1:vim 文本編輯器
[[email protected] ~]# vim /data/oldboy.txt
I am studying linux.
~
-- INSERT --
1.1.3.2 方法2:echo > 顯示內容重定向到目標文件中
[[email protected] ~]# echo "I am studyinglinux." > /data/oldboy.txt
1.1.3.3 方法3:cat >> << 多行追加
[[email protected] ~]# cat >> /data/oldboy.txt <<EOF
> I am studying linux.
>EOF
[[email protected] ~]#
1.1.4 把 oldboy.txt 文件拷貝到/tmp 下
1.1.4.1 方法:cp 復制目錄或文件
[[email protected] ~]# cp /data/oldboy.txt /tmp
1.1.5 把/data 目錄移動到/root 下
1.1.5.1 方法:mv 移動目錄或文件
[[email protected] ~]# mv /data /root
[[email protected] ~]# ls /root
anaconda-ks.cfg data install.log.syslog test.txt
a.txt install.log oldboy.txt
[[email protected] ~]#
1.1.6 進入/root 目錄下的 data 目錄,刪除 oldboy.txt 文件
1.1.6.1 方法:cd 切換目錄
rm 刪除文件或目錄
[[email protected] ~]# cd /root/data/
[[email protected] data]# rm -f oldboy.txt ##-f 強制刪除
[[email protected] data]# ls
[[email protected] data]#
1.1.7 接第 6 題,退出到上一級目錄,刪除 data 目錄
1.1.7.1 方法:cd
[[email protected] data]# cd ..
[[email protected] ~]# rm -rf /root/data ## -r 刪除目錄
[[email protected] ~]# ls
anaconda-ks.cfg install.log oldboy.txt
a.txt install.log.syslog test.txt
[[email protected] ~]#
1.1.8 請給出輸出 test.txt 文件內容時,不包含 oldboy 字符串的命令
文件 test.txt 內容為: test
liyao
oldboy
先創建測試環境:
[[email protected] ~]# cat >test.txt<<eof
> test
> lidao
> oldboy
> eof
[[email protected] ~]# cat test.txt
test
lidao
oldboy
[[email protected] ~]#
1.1.8.1 方法1:grep 過濾
[[email protected] ~]# grep -v ‘oldboy‘ test.txt ## -v 排除
test
lidao
[[email protected] ~]#
1.1.8.2 方法2:sed 用於處理文本文件
[[email protected] ~]# sed ‘/oldboy/d‘ test.txt ## d 刪除
test
lidao
[[email protected] ~]#
1.1.8.3 方法3:awk 用於處理文本文件
[[email protected] ~]# awk ‘!/oldboy/‘ test.txt ## !在awk裏面表示取反
test
lidao
[[email protected] ~]#
1.1.9 請用一條命令完成創建目錄/oldboy/test,即創建/oldboy 目錄及/oldboy/test 目錄
1.1.9.1 方法:mkdir
[[email protected] ~]# mkdir -p /oldboy/test ## -p,遞歸,多級創建目錄
[[email protected] ~]#
1.1.10 復制讓系統不提示是否覆蓋
已知/tmp 下已經存在 test.txt文件,如何執行命令才能把/mnt/test.txt拷貝到/tmp 下覆蓋掉
/tmp/test.txt,而讓系統不提示是否覆蓋(root 權限下)
1.1.10.1 方法1:\ 臨時取消別名
[[email protected] ~]# \cp /mnt/test.txt /tmp/
[[email protected] ~]#
1.1.10.2 方法2:使用命令絕對路徑
which 查看命令絕對路徑
[[email protected] ~]# /bin/cp /mnt/test.txt /tmp/
[[email protected] ~]#
1.1.11 只查看 ett.txt 文件(共 100 行)內第 20 到第 30 行的內容
創建測試環境:
[[email protected] ~]# seq 100 >ett.txt ## seq 生成數字序列
1.1.11.1 方法1:head + tail
[[email protected] ~]# head -30 ett.txt | tail -11 ##head顯示前幾行
20 ##tail顯示後幾行
21
22
23
24
25
26
27
28
29
30
[[email protected] ~]#
1.1.11.2 方法2:sed
[[email protected] ~]# sed -n ‘20,30p‘ ett.txt ##-n 取消默認輸出
20
21
22
23
24
25
26
27
28
29
30
[[email protected] ~]#
1.1.11.3 方法3:awk
[[email protected] ~]# awk ‘NR==20,NR==30‘ ett.txt
20
21
22
23
24
25
26
27
28
29
30
[[email protected] ~]#
1.1.11.4 方法4:grep (碰巧)-A -B -C
[[email protected] ~]# grep -A10 ‘20‘ ett.txt ## -A10 輸入20行及其之後10行
20
21
22
23
24
25
26
27
28
29
30
[[email protected] ~]#
1.1.12 把/oldboy 目錄及其子目錄下所有以擴展名.sh 結尾的文件中包含oldboy 的字符串全部替換為oldgirl
創建測試環境
[[email protected] ~]# mkdir -p /oldboy/test
[[email protected] ~]# cd /oldboy
[[email protected] oldboy]# echo"oldboy">test/del.sh
[[email protected] oldboy]# echo"oldboy">test.sh
[[email protected] oldboy]# echo"oldboy">t.sh
[[email protected] oldboy]# touch oldboy.txt
[[email protected] oldboy]# touch alex.txt
1.1.12.1 方法1:find +‘ | xargs‘
[[email protected] oldboy]# find /oldboy/ -type f -name"*.sh"|xargssed -i ‘s#oldboy#oldgirl#g‘
[[email protected] oldboy]# find /oldboy/ -type f-name "*.sh"|xargs cat
oldgirl
oldgirl
oldgirl
1.1.12.2 方法2:sed $() 先執行小括號裏內容,留下東西給前邊的命令
[[email protected] oldboy]# sed -i ‘s#oldboy#oldgirl#g‘ $(find /oldboy/ -type f-name "*.sh")
1.1.12.3 方法3:-exec {} \; 固定搭配,把前邊內容給到‘{}‘裏
[[email protected] oldboy]# find /oldboy/ -type f -name"*.sh" -execsed -i ‘s#oldboy#oldgirl#g‘ {}\;
[[email protected] oldboy]#
本文出自 “12933988” 博客,請務必保留此出處http://12943988.blog.51cto.com/12933988/1950183
第一關課前練習題