Linux文件目錄命令
pwd,查看當前工作目錄的完整路徑
- pwd:/root
ls,用來打印當前目錄的清單,可以指定其他目錄
-a:列出目錄下所有的文件,包括以"."開頭的隱藏文件
-l:除了文件名外,還列出文件權限、所有者、大小等詳細信息
-r:反向次序排列
-t:以文件修改時間排序
-g:類似-l,但是不列出所有者
-h:以容易理解的文件格式列出(如1K、234M、2G)
例如:
ls -l t*:列出所有文件名以"t"開頭的文件信息
cd,切換文件目錄至dirName
例如:
cd /:進入系統根目錄
cd aa/bb/cc:跳轉到指定目錄,注意這里"aa"前沒有"/",指從當前目錄跳轉到指定目錄
cd ~:進入系統主目錄
cd ..:跳轉到上一級
mkdir
用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄
-m:創建目錄的時候設定權限
-p:若創建目錄的路徑中有些路徑不存在,可一次性地建立多個目錄
例如:
mkdir test1:創建一個空目錄test1
mkdir -p test1/test2:遞歸創建多個目錄
mkdir -m 777 test:在創建目錄test3的時候給此目錄賦予777的權限
rm
刪除一個目錄中的一個或多個文件或目錄,它可以將某個目錄及其下所有文件及子目錄刪除。對於鏈接文件,只是刪除了鏈接,原有文件均保持不變
-f:強制刪除且不給出提示
-r:將參數中列出的目錄路和子目錄均遞歸刪除
-v:顯示詳細進行的步驟
例如:
rm -rf *.log:刪除任何.log文件並且不詢問用戶
touch,創建一個新文件
- touch a.txt:創建了一個 a.txt 文件
mv
可以用來移動文件或者將文件改名,常用來備份文件或目錄
例如:
mv log1.txt log.txt test3:將log1.txt、log2.txt移動到test3文件夾中
mv dir1 dir2:如果dir2不存在,則將dir1改名為dir2;如果dir2存在,則將dir1移入dir2中
mv * ../:移動當前文件夾下所有文件至上一級目錄
mv test3/*.txt test5:將test目錄下所有的.txt文件全部移動到test5文件夾下
cp,復制文件或目錄
例如:
cp log.log test6:將log.log復制進入test6目錄下
cat,主要有三個功能:
1、一次性顯示整個文件
2、從鍵盤創建一個文件
3、將幾個文件合並為一個文件
順便提一句,tac這個命令和cat一樣,無非是將文件內容從最后一行到第一行顯示而已。
-E:在每行結束顯示"$"
-n:對輸出的所有行進行從1開始的編號
-s:對連續兩行的空白行代替為一行
-T:將跳格字符(tab)顯示為"^I"
例如:
cat -n log1.log log2.log:將log1.log加上行號后輸入到log2.log文件中,log2.log在目錄中必須存在
cat -n log1.log > log.log:將log1.log加上行號后輸入到log.log文件中,log.log在目錄中不存在
more
類似cat,不過more不是將整個文件內容從上到下顯示在屏幕上的,而是以一頁一頁的顯示方便使用者逐頁閱讀。more最基本的指令就是space即往下翻一頁,b即往回翻一頁顯示,而且還有搜索字符串的功能
+n:從第n行開始顯示
-n:定義屏幕大小為n行
+/pattern:在每個檔案顯示前搜索該字符串patern,然后從該字符串前兩行之后顯示
-p:通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s:把連續的多個空行顯示為一行
-u:把文件內容中的下划線去掉
常用操作命令:
Enter:向下n行,需要定義,默認為1行
空格鍵:向下滾動一屏
b:向上滾動一屏
=:輸出當前行號
V:調用vi編輯器
q:退出more
例如:
more +3 log1.log:從第3行起顯示log1.log里面的內容
more +/day3 log1.log:從文件中查找第一個出現'day3'的字符串的行,並從該行前兩行開始顯示輸出
more -5 log1.log:設定每屏顯示行數
ls -l | more -5:more常與別的命令連用,一般是因為某些命令輸出的內容太多,所以使用more來分頁顯示
diff
比較單個文件或目錄內容,如果指定比較的是文件,則只有當輸入為文本文件時才有效。以逐行的方式,比較文本文件的異同處。如果指定的是目錄,diff命令會比較兩個目錄下名字相同的文本文件,列出不同的二進制文件、公共子目錄和只在一個目錄下出現的文件。
-b:不檢查空格字符的不同
-B:不檢查空白行
-i:不檢查大小寫的不同
-q:只顯示有無差別,不現實詳細信息
-y:以並排方式顯式文件的異同處
-w:在使用參數-y時,指定欄寬
例如:
diff log1.log log2.log:比較兩個文件,輸出結果比如"3c3"和"8c8"表示兩個文件在第三行和第8行有所不同,"11,12d10"表示第一個文件比第二個文件多了第11行、第12行。diff命令的normal格式模式顯示三種提示,即a-add、c-change、d-delete
diff test3 test4:比較test3和test4兩個文件夾的不同
diff log1.log log2.log -y -w 50:並排輸出,並制定欄寬為50
追加和重定向
> 輸出重定向、>> 追加
- ls -l > a.txt :列表的內容寫入文件(覆蓋寫)
- ls -al >> a.txt:列表的內容寫入文件(追加寫)
echo,輸出內容到控制台
-
echo 123
-
echo $PATH
-
echo abcd > 1.txt
-
echo 1234 >> 1.txt
head,顯示文件開頭內容
-n:顯示多少行
--version:顯示head的版本信息
- head 文件名:查看文件前10行內容
- head -n 5 文件名 :查看文件對的前 5 行
tail,用於顯示指定文件末尾內容,不指定文件時,作為信息輸入進行處理。常用查看日志文件
-f:不斷讀取,循環刷新,這樣可以看到最新的文件內容
-q:不顯示處理信息
-v:顯示詳細的處理信息
-c<數目>:顯示的字節數
-n<行數>:顯示的行數
例如:
tail -n 5 log1.log:顯示log1.log最后5行的內容
tail -f log1.log:循環查看log1.log的內容
ln,創建一個軟連接:快捷方式
-
ln -s 【原文件或目錄】【軟連接名】
-
rm -rf 軟連接名:刪除軟連接
history,查看歷史指令
- 查看所有歷史指令:history
- 查看最近執行的10個指令:history 10
- 執行歷史指令為5號的指令: !5
which
在PATH變量指定的路徑中,搜索某個系統命令的位置,並返回第一個搜索結果。即,which命令可以看到某個系統命令是否存在以及執行的到底是哪一個位置的命令
