BigData Linux 文件和目錄常用命令

目標

  • 查看目錄內容
    • ls
  • 切換目錄
    • cd
  • 創建和刪除操作
    • touch
    • rm
    • mkdir
  • 拷貝和移動文件
    • cp
    • mv
  • 查看文件內容
    • cat
    • less
    • grep
  • 其他
    • echo
    • 重定向 >>>
    • 管道 |

01.查看目錄內容

1.1 終端使用技巧

自動補全

  • 在敲出 文件/ 目錄 / 命令 的前幾個字母之後, 按下 tab
  • 如果還存在其他 文件 / 目錄 / 命令, 再按一下tab鍵, 系統會提示可能存在的命令

曾經使用過的命令

  • 使用 / 光標鍵可以在曾經使用過的命令之間來回切換
  • 如果想要退出選擇, 並且不想執行當前選中的命令, 可以按 ctrl + c

1.2 ls命令說明

  • ls 是英文單詞list的簡寫, 其功能爲列出目錄的內容,是用戶最常用的命令之一
  • 因爲需要編輯服務器上的文件, 所以需要先確認指定目錄下 是否存在

linux 下文件和目錄的特點

  • linux文件 或者 目錄 名稱最長可以 256 個字符
  • . 開頭的文件爲隱藏文件, 需要用 -a 參數才能顯示
  • . 代表當前目錄
  • .. 代表上一級目錄

1.3 ls常用選項

如果 只使用ls命令 就只能看到當前目錄下 非隱藏 文件。

如果想增強功能,就需要學習更多的選項

選項 含義
-a 顯示指定目錄下所有子目錄與文件, 包含隱藏文件
-l 以列表方式顯示文件的詳細信息
-h 配合 -l 以人性化的方式顯示文件大小

演練:
在這裏插入圖片描述

計算機中文件大小的表示方式(科普)

單溫 英文 含義
字節 B(byte) 在計算機中作爲一個數字單元,一般爲8位二進制數
K(Kibibyte) 1KB = 1024 B, 千字節( 1024 = 2的10次方)
M(Mebibyte) 1MB = 1024 KB, 百萬字節
千兆 G(Gigabytee) 1GB = 1024 MB, 十億字節, 千兆字節
T(Terabyte) 1 TB = 1024 GB, 萬億字節, 太字節
P(Petabyte) 1 PB = 1024 PB, 百萬億字節, 拍字節

1.4 ls 和通配符的使用

準備工作

# 切換到臨時目錄
cd /usr/tmp

# 清空目錄內容
rm -rf *

# 創建文件
touch a23.txt 11.txt 111.txt 112.txt 123.txt 223.txt 323.txt 423.txt 523.txt

# 查看目錄內容
ls
通配符 含義
* 代表 任意個數 的字符
? 代表任意一個字符, 且只能是一個

演練:

1 查看以 1 開頭的文件或目錄
2 查看以 3.txt 結尾的 文件或目錄
3 查看含有3的文件列表
4 查看第二個字符是2的文件

[root@k8s-master tmp]# ls 1*.txt
111.txt  112.txt  11.txt  123.txt
[root@k8s-master tmp]# ls *3.txt
123.txt  223.txt  323.txt  423.txt  523.txt  a23.txt
[root@k8s-master tmp]# ls *3*.txt
123.txt  223.txt  323.txt  423.txt  523.txt  a23.txt
[root@k8s-master tmp]# ls ?2?.txt
123.txt  223.txt  323.txt  423.txt  523.txt  a23.txt
[root@k8s-master tmp]# 

通配符 含義
[abc] 匹配a、b、c中任意一個
[a-f] 匹配從a到f範圍內的任意一個字符

演練:

1 查看 第一個字符是 1到5, 以23.txt結尾 的 目錄或文件名
[root@k8s-master tmp]# ls [1-5]23.txt
123.txt  223.txt  323.txt  423.txt  523.txt
[root@k8s-master tmp]# 


02.切換目錄

2.1 cd

  • cd 是英文單詞 change directory 的縮寫, 其功能爲 更改當前的工作目錄, 是用戶最常用的命令之一

    注意: linux的所有 目錄文件名 都是大小寫敏感的

命令 含義
cd 目錄 切換到指定目錄下
cd … 切換到上級目錄
cd - 可以在最近的兩次目錄之間切換

演練:

1 查看當前所在目錄
2 切換到 /usr/local
3 切換到 上一級目錄 /usr
4 後退到上一次訪問的目錄中

[root@k8s-master tmp]# pwd
/usr/tmp
[root@k8s-master tmp]# cd /usr/local
[root@k8s-master local]# cd ../
[root@k8s-master usr]# cd -
/usr/local
[root@k8s-master local]# 

2.2 相對路徑和絕對路徑

2.2.1 目標 : 通過路徑找到目標
2.2.2 如何分步驟實現:

​ 第一步: 使用相對路徑定位目標

​ 第二步: 使用絕對路徑定位目標

2.2.3 第一步: 使用相對路徑定位目標
  1. 特徵: 相對路徑 輸入路徑時, 最前面不是以 “/” 開始的, 表示相對 當前目錄 所在的位置
  2. 缺點: 參照工作目錄 發生變化 相對路徑也要發生變化
演練:
當前工作目錄是 /usr, 使用相對路徑 切換到 /usr/tmp 目錄下 
當前工作目錄是 /root, 使用相對路徑 切換到 /usr/tmp 目錄下 
 
[root@k8s-master local]# clear
[root@k8s-master local]# cd /usr
[root@k8s-master usr]# cd tmp/
[root@k8s-master tmp]# cd /root
[root@k8s-master ~]# cd ../usr/tmp/
[root@k8s-master tmp]# 

2.2.4 第二步: 使用絕對路徑定位目標
  1. 特徵: 絕對路徑 在輸入路徑時, 最前面是以 / 開始的, 表示 從 根目錄 開始的具體目錄位置
  2. 優點: 定位準確, 不會因爲 工作目錄變化 而變化
演練:
 當前工作目錄是 /usr, 使用絕對路徑 切換到 /usr/tmp 目錄下 
 當前工作目錄是 /root, 使用絕對路徑 切換到 /usr/tmp 目錄下 

[root@k8s-master tmp]# cd /usr
[root@k8s-master usr]# cd /usr/tmp/
[root@k8s-master tmp]# cd /root
[root@k8s-master ~]# cd /usr/tmp
[root@k8s-master tmp]# 
2.2.5 小總結
  • 相對路徑 在輸入路徑時, 最前面不是以 / 開始的 , 表示相對 當前目錄 所在的目錄位置
  • 絕對路徑 在輸入路徑時, 最前面是以 / 開始的, 表示 從 根目錄 開始的具體目錄位置

03.創建和刪除操作

3.1 touch

3.1.1 目標
  • 通過 touch 命令 創建文件
3.1.2 路徑
  • 第一步: 創建一個空白文件
  • 第二步: 修改文件的末次修改日期
3.1.3 實現
3.1.3.1 第一步: 創建一個空白文件
touch 不存在的文件
3.1.3.2 第二步: 修改文件的末次訪問時間
touch 存在的文件

3.1.4 小結

通過 touch 文件名 創建文件 和 修改文件的末次訪問時間

3.2 mkdir

3.2.1 目標:
  • 通過 mkdir 命令 創建目錄
3.2.2 路徑:
  • 第一步: 創建 沒有層級關係的目錄
  • 第二步: 創建 有層級關係的目錄
3.2.3 實現
3.2.3.1 第一步: 創建 沒有層級關係的目錄
mkdir 目錄名
3.2.3.2 第二步: 創建 有層級關係 的目錄
mkdir -p 目錄1/目錄2/目錄3
  • 創建一個新的目錄
選項 英文 含義
-p parent 可以遞歸創建目錄
3.2.4 小結

通過 mkdir -p 目錄名 命令 創建目錄

注意: 新建目錄的名稱 不能與當前目錄中 已有的目錄或文件 同名

3.3 rm

3.3.1 目標

通過 rm 文件/目錄 命令實現刪除 文件和目錄的功能, rm 對應的英文是 remove 含義: 刪除

3.3.2 路徑
  • 第一步: 刪除文件 (有提示)
  • 第二步: 刪除文件 (取消提示)
  • 第三步: 刪除目錄
  • 第四步: rm 結合 通配符
3.3.3 實現
3.3.3.1 第一步: 刪除文件 (有提示)
rm 文件
3.3.3.2 第二步: 刪除文件 (取消提示)
rm -f 文件
參數 英文 含義
-f force (強制) 強制刪除,忽略不存在的文件, 無需提示
3.3.3.3 第三步: 刪除有內容的目錄
rm -rf 目錄
參數 英文 含義
-r recursive (遞歸) 遞歸地刪除目錄下的內容, 刪除文件夾 時必須加此參數
3.3.3.4 第四步: rm 結合 通配符 * ? [abc][a-z]
rm -rf *.txt
3.3.4 小結
  • 通過 rm -rf 文件/目錄 完成刪除 文件或目錄的功能.
  • 注意: 使用 rm 命令要小心, 因爲文件刪除後不能恢復

04.拷貝和移動文件

序號 命令 對應英文 作用
01 tree [目錄名] tree 以樹狀圖 列出目錄中的內容
02 cp 源文件 目標文件 copy 複製文件或者目錄
03 mv 源文件 目標文件 move 移動文件或目錄 或者 重命名

4.1 tree (擴展)

4.2.1 目標
  • 通過 tree 命令可以以樹狀圖列出文件目錄結構.
4.2.2 路徑
  • 第一步: 以樹形結構顯示目錄中的文件和目錄
  • 第二步: 只顯示 當前目錄中的目錄
  • 第三步: 顯示指定的兩層
4.2.3 實現

準備工作

# 創建目錄
mkdir -p /export/aaa/bbb/ccc

# 創建文件
touch /export/aaa/01.txt /export/aaa/02.txt
touch /export/aaa/bbb/03.txt /export/aaa/bbb/04.txt
touch /export/aaa/bbb/ccc/05.txt /export/aaa/bbb/ccc/06.txt

默認沒有安裝 tree 組件, 需要聯網時安裝:

# 安裝 tree組件
yum -y install tree

# 卸載 tree組件
yum -y remove tree
4.2.3.1 第一步: 以樹形結構顯示目錄中的文件和目錄
tree [目錄]
  • 如果指定目錄, 就顯示指定目錄的內容
  • 如果不指定目錄,就顯示當前目錄的內容
4.2.3.2 第二步: 只顯示 當前目錄中的目錄
tree -d [目錄]
選項 英文 含義
-d derictory (目錄) 只顯示目錄, 不顯示文件
4.2.3.3 第三步: 顯示指定的兩層
tree -L n [目錄]
選項 英文 含義
-L level (層級) 顯示幾層目錄
4.2.4 小結
  • 通過 tree 目錄 命令可以以樹狀圖列出文件目錄結構.

4.2 cp

4.2.1 目標
  • 通過 cp 實現複製將指定的 文件 或 目錄 複製到 兩一個 文件 或 目錄中
4.2.2 路徑
  • 第一步: 備份指定文件
  • 第二步: 將文件複製到目錄中
  • 第三步: 將文件複製到另一個文件中, 實現覆蓋效果
  • 第四步: 複製目錄 到指定 目錄中
4.2.3 實現
4.2.3.1 第一步: 備份指定文件
cp  文件1  備份文件名
4.2.3.2 第二步: 將文件複製到目錄中
cp 文件1 目錄/
4.2.3.3 第三步: 將文件複製到另一個文件中, 實現覆蓋效果
cp 文件1 文件2(存在的)
4.2.3.4 第四步: 複製目錄 到指定 目錄中
cp -r 目錄1/ 目錄2/
命令 英文 作用
-r recursive (遞歸) 遞歸複製目標目錄的內容
4.2.4 小結
  • cp命令的功能是將給出的 文件 或 目錄 複製到另一個 文件 或 目錄

4.3 mv

4.3.1 目標
  • 通過mv 命令可以用來 移動 文件 或 目錄, 也可以給 文件或目錄重命名
4.3.2 路徑
  • 第一步: 將文件 移動 另一個目錄中
  • 第二步: 重命名
  • 第三步: 將目錄移動到 另一個目錄中
4.3.3 實現
4.3.3.1 第一步: 將文件 移動 另一個目錄中
mv 文件 目錄/
4.3.3.2 第二步: 重命名
mv 舊文件名 新文件名
4.3.3.3 第三步: 將目錄移動 到 另一個目錄中
mv 被移動目錄 目標目錄
4.3.4 小結
  • mv 可以用來 移動 文件 或 目錄, 也可以給 文件或目錄重命名

05.查看文件內容

序號 命令 對應英文 作用
01 cat 文件名 concatenate 查看小文件內容
02 less -N 文件名 less 分頻 顯示大文件內容
03 head -n 文件名 查看文件的前一部分
04 tail -n 文件名 查看文件的最後部分
05 grep 搜索文本 文件名 grep 根據關鍵詞, 搜索文本文件內容

準備工作

# 清空指定目錄內容
cd /export/ 
rm -rf *

# 複製 /etc/passwd 文件 到 /export/ 目錄中
cp /etc/passwd /export/

# 複製 /etc/profile 文件 到 /export/ 目錄中
cp /etc/profile /export/

# 羅列目錄中內容
tree /export

5.1 cat

5.1.1 目標

通過 cat 會一次顯示所有的內容, 適合 查看內容較少 的文本文件

5.1.2 路徑
  • 第一步: 顯示文件內容
  • 第二步: 顯示文件內容(顯示行號 包含空行)
  • 第三步: 顯示文件內容(顯示行號 排除空行)
5.1.3 實現
5.1.3.1 第一步: 顯示文件內容(不顯示行號)
cat 文件名
5.1.3.2 第二步: 顯示文件內容(顯示行號 包含空行)
cat -n 文件名
參數 英文 含義
-n number 顯示行號
  • 缺點: 空行也顯示行號
5.1.3.3 第三步: 顯示文件內容(顯示行號 排除空行)
cat -b 文件名
參數 英文 含義
-b number-nonblank 非空行 顯示行號
  • nl 文件名 也可以實現 非空行顯示行號的效果
命令 英文 含義
nl 文件 number lines of files 查看文件內容非空行顯示行號
5.1.4 小結
  • 通過 cat 文件名 查看 小文件內容
  • 準備工作
# >> 重定向這個命令, 爲了課程需要 我們先用, 後面我們會講

# 將文件 /etc/profile 的內容 追加到 /export/01.txt目錄中
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt

5.2 less

5.2.1 目標
  • 通過 less [參數] 文件名 命令可以用於分屏顯示文件內容, 每次只顯示一頁內容
  • less 命令適合查看 內容較多 的文本文件
5.2.2 路徑
  • 第一步 : 分屏顯示文件內容
  • 第二步 : 根據關鍵詞搜索內容
5.2.3 實現
5.2.3.1 第一步 : 分屏顯示文件內容
命令 作用
less -N 文件名 分屏展示文件內容, 適合 大文件
參數 英文 含義
-N number 顯示文件內容 且 顯示行號

使用 more 的操作鍵:

操作鍵 功能
空格鍵 顯示手冊頁的下一屏幕
Enter 鍵 一次滾動手冊頁的一行
b 回滾一屏
f 向前一屏
q 退出
/word 搜索word字符串
5.2.3.2 第二步: 根據關鍵詞 搜索
# 根據關鍵詞搜索
/word
操作鍵 功能
n 向下找
N 向上找
5.2.4 小結
  • less 命令適合查看 內容較多 的文本文件

  • 準備工作

# 準備一個26個字母的文件, 使用 WINscp客戶端 上傳到 /export/ 目錄下

5.3 head

5.3.1 目標
  • 通過 head 命令查看文檔的前幾行內容
5.3.2 路徑
  • 第一步: 查看文件的前5行內容
5.3.3 實現
5.3.3.1 第一步:查看文件的前5行內容
head -n 數字 文件
參數 英文 含義
-n number 表示顯示前幾行內容
5.3.4 小結
  • 通過 head 命令查看文檔的前幾行內容

5.4 tail

5.4.1 目標
  • 需求: 查看文檔(日誌)的後幾行內容
5.4.2 路徑
  • 第一步: 查看文檔的最後10行內容
  • 第二步: 動態顯示文檔的最後內容,一般用來查看日誌
  • 第三步: 動態顯示文檔的最後10行內容
5.4.3 實現
  • 第一步: 查看文檔的最後10行內容
tail -10 文件
  • 第二步: 動態顯示文檔的最後內容,一般用來查看日誌
tail -f 文件名

  • 第三步: 動態顯示文檔的最後100行內容
tail -100f 文件名
5.4.4 小結
  • 通過 tail -10f 文件 命令 查看文檔(日誌)的後幾行內容

5.5 grep

5.5.1 目標
  • 通過 grep 命令 搜索存在 關鍵字 的行
5.5.2 路徑
  • 第一步: 搜索 存在關鍵字 的行
  • 第二步: 搜索 存在關鍵字 的行 且 顯示行號
  • 第三步: 忽略大小寫 搜索 存在關鍵字 的行
  • 第四步: 搜索 不存在關鍵字 的行
  • 第五步: 搜索 以關鍵字開始 的行 或 以關鍵字結尾 的行
5.5.3 實現
5.5.3.1 第一步: 搜索 存在關鍵字 的行
grep 關鍵字 文件名
5.5.3.2 第二步: 搜索 存在關鍵字 的行 且 顯示行號
grep -n 關鍵字 文件名
選項 英文 含義
-n number 顯示匹配行和行號
5.5.3.3 第三步: 忽略大小寫 搜索 存在關鍵字 的行
grep -i 關鍵字 文件名
選項 英文 含義
-i ignore-case 忽略大小寫
5.5.3.4 搜索 不存在關鍵字 的行
grep -v 關鍵字 文件名
選項 英文 含義
-v invert-match 顯示 不包含關鍵字 的所有行
5.5.3.5 第五步: 搜索 以關鍵字開始 的行 或 以關鍵字結尾 的行
grep 正則 文件名
參數 含義
^a 行首,搜索以a開頭的行
ke$ 行尾,搜索以ke結束的行
5.3.4 小結
  • 通過 grep 命令 搜索存在 關鍵字 的行

06 其他

6.1 管道 |

6.1.1 目標
  • 通過 命令1 | 命令2 可以將命令1的結果 通過 命令2 作進一步的處理
6.1.2 路徑
  • 第一步 : 過濾 /etc/ 目錄下 以 pro 開頭的文件
  • 第二步 : 搜索 存在關鍵字 的行數
6.1.3 實現
第一步 : 過濾 /etc/ 目錄下 以 pro 開頭的文件
ls /etc/ | grep ^pro
第二步 : 搜索存在關鍵字的行數
ls /etc | grep ^pro |  wc -l
英文 作用
命令: wc [參數] [文件] 打印文件的行數, 單詞數, 字節數
參數: -l line 行 顯示 行數
6.1.4 小結
  • 通過 命令1 | 命令2 可以將命令1的結果 通過 命令2 作進一步的處理

6.2 echo 文字內容

  • echo string 將字符串輸出到控制檯 , 通常回和 重定向 聯合使用
echo hello

# 如果字符串有空格, 爲了避免歧義 請增加 雙引號 或者 單引號
echo "hello world"

6.3 重定向 > 和 >>

6.2.1 目標
  • 默認情況下 命令的結果 輸出到 控制檯
  • 通過 重定向 可以將結果 輸出到文件
6.2.2 路徑
  • 第一步: 將 命令的成功結果 覆蓋 指定文件內容
  • 第二步: 將 命令的成功結果 追加 指定文件的後面
6.2.3 實現
  • 第一步: 將命令的成功結果 覆蓋 指定文件內容
echo 2222 > 01.txt
命令 作用
結果 > 文件名 > 表示輸出, 會覆蓋文件的原有內容
  • 第二步: 將命令的成功結果 追加 指定文件的後面
echo 3333333 >> 01.txt
命令 作用
命令 >> 文件名 >> 表示追加, 會將內容追加到已有文件的末尾
  • 第三步: 將 命令的失敗結果 追加 指定文件的後面
cat 不存在的目錄  &>>  error.log
命令 作用
命令 &>> 文件 &>> 表示不區分錯誤類型 通通放到 日誌中
6.2.4 小結
  • 通過 命令 > 文件命令的成功結果 覆蓋 指定文件內容
  • 通過 命令 >> 文件命令的成功結果 追加 指定文件的後面
  • 通過 命令 &>> 文件命令的失敗結果 追加 指定文件的後面

6.4 && 和 ||

6.4.1 目標
  • 如果 創建 目錄 成功, 就提示 創建成功
  • 如果 創建 目錄 失敗, 就提示 創建失敗
6.4.2 實現
第一步: 如果 創建 目錄 成功, 就提示 創建成功
命令 作用
命令1 && 命令2 如果 命令1執行成功了, 才執行 命令2
mkdir -p 正確目錄 && echo "提示創建目錄成功"
第二步: 如果 創建 目錄 失敗, 就提示 創建失敗
命令 作用
命令1 || 命令2 如果 命令1 執行失敗了, 才執行 命令2
mkdir 錯誤目錄 || echo "提示創建目錄失敗"
6.4.3 小結:
  • 通過 命令1 && 命令2 實現 如果 命令1 執行成功, 就執行 命令2的效果
  • 通過 命令1 || 命令2 實現 如果 命令1 執行失敗, 就執行 命令2的效果

準備工作

0 清空/export目錄中內容
cd /export && rm -rf *

# 1 創建目錄
mkdir -p /export/aaa/bbb/ccc/ddd/eee

# 2 創建文件
touch /export/aaa/bbb/ccc/ddd/eee/01.txt /export/aaa/bbb/ccc/ddd/eee/02.txt

# 3 切換到 /export/aaa/bbb/ccc/ddd/eee/ 目錄下 且 查看內容
# 3.1 cd /export/aaa/bbb/ccc/ddd/eee/ && ll
# 3.2 軟鏈接(快捷方式)   cd 軟鏈接 && ll

6.5 軟鏈接

  • 在linux中 文件名內容 是兩個文件, 分開的!
6.5.1 目標
  • 因爲 某些文件和目錄 的 路徑很深, 所以 需要增加 軟鏈接(快捷方式)
6.5.2 實現

語法如下:

命令 英文 作用
ln -s 目標文件絕對路徑 快捷方式路徑 link 給目標文件增加一個軟鏈接, 通俗講就是快捷方式
6.5.3 小結
  • 通過 ln -s 源文件的絕對路徑 快捷方式路徑目標文件 增加 快捷方式
  • 注意: 必須 增加 -s , 否則 就變成了 硬鏈接(同樣指向真是存在的目標內容),
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章