1. 程式人生 > >Linux基礎練習一

Linux基礎練習一

1.建立一個目錄檔案/data。
解答:
方法一:
[[email protected] ~]# cd /          相對路徑
[[email protected] /]# mkdir data 
方法二:    絕對路徑
[[email protected] /]# mkdir /data
方法三:   ;封號 多個命令的分隔符
[[email protected] ~]# cd /;mkdir data
mkdir    mkdir


2.在/data下面建立一個名叫shizhi.txt的檔案。
解答:
[[email protected] /]# touch /data/shizhi.txt
touch:建立空檔案  如果檔案已經存在更新時間戳




3.為shizhi.txt檔案增加內容為“I am studying linux.”。
解答:
方法一:
[
[email protected]
/]# vim /data/shizhi.txt 
[[email protected] /]# cat /data/shizhi.txt 
I am studying linux.
方法二:
[[email protected] /]# cat >>/data/shizhi.txt<<EOF
> I am studying linux too.
> EOF
[[email protected] /]# cat /data/shizhi.txt 
I am studying linux.
I am studying linux too.
方法三:
[
[email protected]
/]# echo 'I am studying linux.' >/data/shizhi.txt
[[email protected] /]# echo 'I am studying linux.' >>/data/shizhi.txt 
> 輸出重定向(箭頭的朝向就是資料的流向,如果檔案不存會建立檔案,會覆蓋原始檔內的所有內容)
>> 追加重定向(箭頭的朝向就是資料的流向,如果檔案不存會建立檔案,在原始檔的末尾新增內容)


4.把shizhi.txt檔案拷貝到/tmp目錄下。
解答:[[email protected]
/]# cp /data/shizhi.txt /tmp
cp 複製檔案或目錄  預設情況下不能拷貝目錄 
引數:-r 遞迴 使之能拷貝目錄  -a=all -a=-rdp  -d 儲存link屬性 -p儲存檔案屬性


5.把/data目錄移動到/root目錄下。
解答:
[[email protected] /]# mv /data /root
mv 移動或重新命名檔案(目錄)




6.進入/root目錄下的data目錄,刪除shizhi.txt檔案。
解答:
方法一: rm命令使用比較危險  儘量不要使用 使用的話儘量-rf引數不要一起加
[[email protected] ~]# cd /root/data/
[[email protected] data]# pwd
/root/data
[[email protected] data]# rm shizhi.txt 
rm 刪除檔案或目錄  -f force 強制   -r 遞迴(使之能刪除目錄)
刪除儘量使用find 結合rm 
find 很重要的命令  *****  
方法一:
[[email protected] data]# find /root/data -type f -name "shizhi.txt" |xargs rm -f
(推薦使用)
方法二:
[[email protected] data]# find . -type f -name "*.txt" -exec rm {} \; 


7.在第6題的基礎上,退出到上一級目錄,刪除data目錄。
解答:
.當前目錄
.. 上一級目錄
方法一:
[[email protected] data]# cd ..
[[email protected] ~]# pwd
/root
[[email protected] ~]# rm -r data
方法二:rmdir 刪除空目錄
[[email protected] ~]# rmdir data


8.已知/root/test.txt檔案的內容為
hangzhou
shizhi
xinxi
要求列印test.txt內容時,不顯示包含該hangzhou字串。
解答:
[[email protected] ~]# cat test.txt 
hangzhou
shizhi
xinxi
方法一:
[[email protected] ~]# grep -v hangzhou test.txt 
shizhi
xinxi
grep 過濾  -v 排除   非常重要的命令  *****  linux三劍客之老三
方法二:
[[email protected] ~]# sed -n '2,3p' test.txt 
shizhi
xinxi
sed 流編輯器 擅長處理行       非常重要的命令  *****  三劍客老二
-n 取消預設輸出   p print  列印 
方法三:
[[email protected] ~]# sed /hangzhou/d test.txt 
shizhi
xinxi
/ / 之間是匹配的內容  d 刪除
方法四:
[[email protected] ~]# tail -2 test.txt 
shizhi
xinxi


9.請使用一條命令完成建立目錄/shizhi/text,即同時建立/shizhi目錄與
text目錄。
解答:
mkdir -p /shizhi/test






10.已知/tmp目錄下有test.txt檔案,要如何執行命令才能用/mnt/test.txt直接覆蓋掉/tmp/test.txt系統不詢問?
解答:
別名:
為什麼會進行互動,因為mv cp rm 都設定了別名


alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'   互動 
方法一:    \的作用:使用cp命令時不呼叫別名(預設情況下優先呼叫別名)
[[email protected] ~]# \cp /tmp/test.txt /mnt/test.txt 
方法二:    使用全路徑 跳過別名
[[email protected] ~]# which cp    查詢命令全路徑的命令 which
alias cp='cp -i'
/bin/cp
[[email protected] ~]# /bin/cp /tmp/test.txt /mnt/test.txt 
方法三:      取消別名
[[email protected] ~]# unalias cp
alias 作用 : 檢視系統已經設定的別名、設定別名
1、通過給危險的命令加一些保護引數,防止人為誤操作
2、可以把很多複雜的字串或命令變成一個簡單的字元或命令
預設情況下設定的別名都是臨時生效 重啟後消失 僅對當前使用者生效
如果想要對當前使用者永久生效:就需要將別名寫入到~/.bashrc   不會立即生效
                          想要立即生效 source ~/.bashrc   . ~/.bashrc
如果要使別名對當前裝置永久生效:將別名寫入到 /etc/bashrc或者/etc/profile
                           不會立即生效 如果想要生效
unalias 取消別名 










11.已知ett.txt檔案內容共有100行,現在要求只檢視第20行到30行的內容,如何操作?
解答:
方法一:
[[email protected] ~]# sed -n '20,30p' ett.txt
20
21
22
23
24
25
26
27
28
29
30
方法二:
[[email protected] ~]# head -30 ett.txt |tail -11 
head 預設檢視檔案頭10行 -n 30 n省略  -30 
tail 預設檢視檔案尾10行 -n 11 n省略  -1
| 管道符 
方法三:
[[email protected] ~]# awk '{if(NR>19&&NR<=30)print $0}' ett.txt 
20
21
22
23
24
25
26
27
28
29
30
[[email protected] ~]# awk 'NR>19&&NR<31' ett.txt
20
21
22
23
24
25
26
27
28
29
30
awk 過濾  擅長處理列      *****   非常重要   三劍客老大
&&表示並且   NR行    $0 表示整行
問題:11行內容   現在要列印1行的內容  sed怎麼操作?  awk怎麼操作?
方法四:
grep -A 10 20 ett.txt
grep -B 10 30 ett.txt
grep -C 5 25 ett.txt