Linxu_檔案管理命令
檔案操作命令
- cd [目錄名 ] 切換到指定目錄(目錄可以是一條路徑(絕對路徑 /相對路徑))
cd是 change directory 的縮寫
當前在 /var/log/目錄下
切換到 home目錄
cd ../../../home
cd /home
cd ../ 返回上一級
cd ../..返回上兩級目錄
cd / 切換到根目錄
cd - 返回上一次操作所在的目錄
cd ~ 返回家目錄
- pwd 檢視當前位置(以絕對路徑顯示)
- ls [引數 ] 檢視目錄下的檔案
(1) -a顯示隱藏檔案( . 開頭的檔案是隱藏檔案)
(2) -l (list)檢視詳細的檔案資訊( ls -l 可以簡寫為 ll )
引數可以連用
ls -l /var/log
- mkdir [檔名 ] 建立資料夾(目錄檔案)
mkdir [A] [B] [C] [D]建立多個資料夾
檔名最長為 255個位元組
mkdir -p E/F/G/H 建立遞迴目錄
- touch [檔名 ] 建立檔案
在 A目錄中
touch A B C D建立檔案(一次性建立 A B C D 四個檔案)
- rmdir 刪除空目錄(目錄下沒有檔案或資料夾)
(1) -p 遞迴刪除
如果被刪除目錄非空或者非目錄,無法刪除
- rm 檔名(沒有引數的時候,刪除普通檔案)
(1) -r 刪除目錄檔案
(2) -f取消提示(又叫強制刪除)
在不知道被刪除檔案的作用時,不要用 rm -r -f( rm -rf )
- cp 原始檔 目的檔案 ( 可以更改檔名字 )
複製檔案(將原始檔複製到目的檔案,可以新增路徑,預設複製檔案)
-r複製目錄
cp 123 456複製檔案 123為 456
cp -r /opt/20190301/ .把 opt目錄下的 20190301 目錄複製到當前目錄下( . 代表當前目錄)
cp -r /opt/20190301/ test把 opt目錄下的 20190301 目錄複製到當前目錄下並改名為 test
- mv 原始檔 目的檔案
剪下(移動)
mv abc def
把 abc重新命名為 def
mv /opt/20190301 /home/
把目錄 20190301移動 home 目錄下
- cat 檔案(可加路徑)
-n顯示行號
檢視檔案內容
- head 檔名(預設前十行)
-n數字 顯示前 n 行
head -n 5 /etc/group顯示 /etc/group 的前五行內容
- tail 檔名(預設後十行)
-n數字 顯示後 N 行
-f實時檢視 (跟蹤顯示,迴圈顯示,常用於檢視日誌資訊 /var/log/xxx.log )
tail -n 5 -f /etc/group
tail -5f /etc/group
- more 檔案(檢視檔案內容,按照比例一頁一頁檢視)
空格 下一頁
Enter下一行
q退出,離開
b返回上一次操作
- less 檔名(一頁一頁檢視,顯示的是一屏(根據你的螢幕大小顯示))
空格 翻一頁
Pageup向上一頁
Pagedown向下翻一頁
G跳到最後一行
g跳到第一行
q離開
/關鍵字 向下查詢
?關鍵字向上查詢
- sort 檔名
將檔案內容排序(按照 access表排序,從小到大)
- echo [內容 ] 回顯 / 列印內容(常用於指令碼中將結果顯示到螢幕上)
- 重定向
① >覆蓋重定向(原內容不存在) 將前一個命令的結果(必須是有輸出結果的,例如: ls, pwd , cat , more 等)匯入到後一個命令中
② >> 追加重定向(原內容存在,追加到最後一行)將前一個命令的結果(必須是有輸出結果的,例如: ls, pwd , cat , more 等)匯入到後一個命令中
- vim(vi) 文字編輯器(相當於 Windows 的記事本,多平臺的)
(1) 模式
① 一般模式(游標的移動,搜尋,代替,複製,貼上,刪除等功能)
② 命令模式(儲存,讀取其他的額外功能,標誌左下角有冒號游標)
③編輯模式(插入資訊,編輯文字等功能 ,標誌左下角有插入或者 input )
命令模式的命令
④ wq儲存退出
⑤ q不儲存退出(編輯的檔案沒有儲存)
⑥ wq!強制儲存退出
⑦ q!強制不儲存退出
⑧ w檔名 另存為對應的檔案
⑨ set nu顯示行號
⑩ set nonu取消顯示行號
n1,n2 s/關鍵字 1/ 關鍵字 2/g 從 n1行到 n2 行,用關鍵字 2 替換關鍵字 1
1,5 s/root/中國 /g 替換 1-5 行(用中國替換掉 root )
% s/root/中國 /g 替換一屏
一般模式命令
⑪ dd刪除游標所在的一行
⑫ ndd刪除游標所在行以及下面的 n-1 行( n 必須大於 0 )
⑬ D刪除游標及游標之後的內容
⑭ x刪除游標所在位置的字元
⑮ nx刪除游標所在位置以及後面的 n-1 個字元
⑯ NX刪除游標之前的字元及前面的 n-1 個字元
⑰ u撤銷
⑱ yy複製游標所在的一行
⑲ Nyy複製游標游標所在行以及下面的 n-1 行
⑳ p(小寫 ) 在游標下一行貼上
21 P(大寫 ) 在游標上一行貼上
22 v選中文字(游標所在的字元,按 y 複製, p 貼上 ,d 刪除,退出 v )
23 V選中文字(游標所在的一行,按 y 複製, p 貼上 ,d 刪除,退出 V )
24 gg游標跳到第一行( ngg 跳到指定行 ,nG 跳到指定行)
25 G游標跳到最後一行
26 ^游標移動到行首
27 $游標移動到行尾( ^$ 代表空行)
28查詢關鍵字 /關鍵字 向下查詢
?關鍵字 向上查詢
交換檔案(是因為一個檔案同時被多個人開啟,解決方法:把 .xxx.swp的隱藏檔案刪除,或者強制寫入(一直按確認鍵))
- clear 清屏(把內容推送到上一屏)
- wc( Word Count) 檔名 統計檔案中的資訊(多少行,片語)
(1) -l統計檔案有多少行
(2) -w統計檔案中有多少片語(單詞)
(3) -c統計檔案中有多少位元組(檔案大小,中文是 4B ( 多箇中文的情況下,第一個是 4B,其他的是 3B ,例如:一二三四五六七八九十,一是 4B, 二到十都是 3B ,一共是 31B ),英文或者字元或者數字 2B)
- find 路徑(搜尋範圍) -name 檔名(目錄名或檔名)
查詢檔案(磁碟中查詢,速度慢)
gvfs檔案 許可權不足是因為該目錄是個空的,查不查都沒關係
- locate 檔名 (從資料庫查詢,速度快)
資料庫存放的是檔名字等資訊,預設一天更新一次
查詢當天檔案時,需要更新資料庫 updatedb
一般使用前,先更新 updatedb再查詢 locate
- grep 關鍵字 檔名
從檔案中過濾出來含有關鍵字的行
-n顯示行號
-v反向過濾(關鍵字所在的行不顯示)
grep ^關鍵字 etc.txt 以關鍵字開頭的行
grep關鍵字 $ etc.txt 以關鍵字結尾的行
grep ^$ etc.txt過濾空行
- gzip 檔名 壓縮檔案(只能壓縮普通檔案,預設的字尾名 .gz )
① 壓縮格式
1) Rar
2) Zip
3) Tar
4) Jar
- gunzip 檔名 檔案的解壓縮
- zip 壓縮後的檔名 想要壓縮的檔名(可以壓縮目錄,預設字尾名是 .zip )
- unzip 檔名 解壓縮
- tar 引數 (打包後的檔名 ) 檔案
打包(由多個檔案(包括資料夾)形成一個檔案)
壓縮(由一個體積大的檔案形成一個體積小的檔案)
引數
-c打包
-v顯示打包過程中的詳細資訊
-f後面緊跟打包檔名
-x解包
-z使用 gzip 壓縮方式壓縮
-t檢視包中內容
-C(大寫) 解包到指定目錄
##
tar -cvf abc.tar A B C將 A B C 三個檔案打包為 abc.tar 並顯示打包過程
tar -cvzf abc.tar A B C將 A B C 三個檔案打包為 abc.tar 並壓縮且顯示打包過程
tar -xvf abc.tar將 abc.tar 解包為 A B C 三個檔案
tar -xvf abc.tar -C路徑
將 abc.tar解包到指定路徑下
tar -tvf abc.tar檢視 abc.tar 包中內容
- ln -s 原始檔名 連結檔名
建立軟連線
ln原始檔 連結檔名
建立硬連結(相當於備份,實時更新)
刪除原始檔之後,軟連線不能工作(沒有那個目錄或檔案呢),硬連結正常工作
軟連線佔用空間小,硬連結佔用空間的原始檔一樣
相同點:隨著原始檔的更新而更新
- chmod 許可權 檔名
更改檔案許可權
- 全部更改
(1) rwx分別對應二進位制,轉換為十進位制
例如: rw_r_ _ _wx
110 100 011
6 4 3擁有者的許可權是 rw,所屬組的許可權是 r ,其他人的許可權是 wx
- 單獨更改
擁有者 u(user)
所屬組 g(group)
其他人 o(other)
所有人 a(all)
+增加許可權 - (減號) 減少許可權 = 賦予許可權
示例
chmod u+r,g+w ls.txt
- sed 引數 動作(行編輯器)
(1) 引數
① -n列印檔案內容
② -i編輯檔案內容(修改原檔案內容)
③ -e編輯檔案內容(不修改原檔案內容)
(2) 動作
① a增加
② p列印
③ s替換
④ d刪除
示例
- sed -n “7p” ls.txt 顯示第七行內容
- sed -n “4,7p” ls.txt 顯示第四五六七行
- sed -n “/關鍵字 /p ” 檔名 顯示關鍵字所在的行
sed -n “/^$/p”檔名 過濾空行
- sed -e “s/關鍵字 1/ 關鍵字 2/g ” 檔名
用關鍵字 2替換掉關鍵字 1 (原文中是關鍵字 1 )
Sed -e “s/關鍵字 1/ 關鍵字 2\n/g ” ls.txt
\n是換行符
轉義符
5.sed -e “4a\你在哪一步? ” ls.txt
在第四行插入資料你在哪一步(資料在第五行)
sed -e “a\你在哪一步? ” ls.txt
如果沒有行號,就在原文中每一行的下一行新增:你在哪一步
6.sed -e “3d” ls.txt
刪除第 3行資料
sed -e “3,10d” ls.txt
刪除 3至 10 行資料
- awk 列編輯器
1) 域(區域)
- 以關鍵字為分隔符,劃分的 N個區域
- 依次 $1,$2......$N
awk -F “目” ‘{print $1}’ ls.txt
awk -F “目” ‘{print $1,$2....}’ ls.txt
如果以空格為分隔符
awk ‘{print $1,$3....}’ ls.txt
- cut [引數 ] 列數 檔名
切割顯示檔案內容
引數
-b以位元組進行定位
-c以字元進行定位
-f以域(欄位)進行定位(與 -d 連用,等同於 awk )
示例:
cut -nb 3 test( -n 顯示中文)
以位元組進行定位,顯示 test檔案中每行的第三個位元組的內容
cut -c 5 test
顯示 test檔案中每行的第五個字元
cut -c 5,9 test
只顯示第五個字元和第九個字元
cut -c 5-9 test
顯示第五個字元至第九個字元
cut -c 3,5-9 test
顯示第三個字元,第五個字元至第九個字元