Linux基礎練習一
阿新 • • 發佈:2018-12-25
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
解答:
方法一:
[[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] /]# 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
> 輸出重定向(箭頭的朝向就是資料的流向,如果檔案不存會建立檔案,會覆蓋原始檔內的所有內容)
>> 追加重定向(箭頭的朝向就是資料的流向,如果檔案不存會建立檔案,在原始檔的末尾新增內容)
4.把shizhi.txt檔案拷貝到/tmp目錄下。
解答:[[email protected]
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