根據直播講義整理的內容,從第四課開始。前三課的內容若後面有精力會一併整理進來。shell
touch
命令建立文件>$ touch file0 [file1 file2 ...] >$ touch file{0..9}.txt
touch
命令能夠建立空文件,將文件名做爲參數便可。傳遞多個文件名可同時建立多個文件。
若使用 file{0..9} 做爲參數,將自動建立10個空文件,名字分別爲file0.txt
、file1.txt
、...、file9.txt
。
若傳遞給touch
的文件已存在於磁盤上,則不會建立此文件,但會更新該文件的時間戳。vim
mkdir
命令建立目錄>$ mkdir [-p] dir1 [dir2 dir3 ...] >$ mkdir [-p] dir1{0..9}
mkdir
命令能夠建立目錄,將目錄名做爲參數便可。
傳遞多個目錄名可同時建立多個目錄。
若想同時建立子目錄,則須要使用-p
參數,不然只能建立空目錄。less
# 在當面目錄下建立名爲 dir1 的空目錄。 >$ mkdir dir1 # 在當前目錄的子目錄 dir1 內建立子目錄 dir2。 >$ mkdir dir1/dir2 # 錯誤:dir3 不存在,建立多級子目錄應使用 -p 參數。 >$ mkdir dir3/dir4 # 同時建立 dir3 目錄及其子目錄 dir4。 >$ mkdir -p dir3/dir4 # 建立 3 個目錄,名字分爲爲 dir五、dir六、dir7。 >$ mkdir dir{1..3}
rm
命令刪除文件或目錄>$ rm [-rf] dir1/file1 [dir2/file2 ...]
rm
命令能夠刪除文件或目錄。
-r
參數表示要刪除一個目錄。
-f
參數表示強制刪除,且靜默刪除,不會詢問用戶,被刪除的文件不存在也不會報錯。
注意:此命令較危險,被刪除的文件幾乎沒法恢復,使用時需謹慎。日誌
cp
命令複製目錄或文件>$ cp [-rfv] src dest
cp
命令將src
參數所指定的文件或目錄複製到dest
參數所指定的位置。
-r
參數用於遞歸複製目錄中的文件,若複製目錄時未使用此參數,則僅複製目錄自己,目錄中的文件及子目錄不會被複制。
-f
參數表示強制複製。
-v
參數表示打印複製的過程。code
mv
命令移動或重命名文件及目錄>$ mv [-fv] src dest
mv
命令有兩個做用,當src
參數所指定的文件或目錄與dest
參數所指定的路徑爲同一個目錄時,至關於作重命名,不然至關於將src
移動到dest
。
-f
參數表示強制移動或重命名。
-v
參數表示打印移動的過程。遞歸
# 當前目錄 dir 與文件 file1 在相同的目錄中。 >$ tree . ├── dir └── file1 1 directory, 1 file # 將 file1 重命名爲 file2。 >$ mv file1 file2 >$ tree . ├── dir └── file2 1 directory, 1 file # 將 file2 移動到 dir 目錄下。 >$ mv file2 dir >$ tree . └── dir └── file2 1 directory, 1 file
echo
命令輸出字符串echo [-n] "string"
使用echo
命令能夠將string
參數的字符串打印到控制檯上。
-n
參數表示不要輸出換行符\n
。字符串
實際上echo
命令是將string
參數的字符串寫入到其標準輸出流stdout
中了,但因爲默認的狀況下stdout
就是控制檯,因此看上去echo
命令就是向控制檯打印了字符串。直播
>
與>>
經過Shell的重定向運算符>
和>>
能夠將標準輸出流(stdout
)原本應該打印到控制檯的內容寫入(重定向)到文件中去。string
>$ echo "abc" > file1.txt >$ echo "def" >> file1.txt
>
重定向運算符將echo
命令向標準輸出流(stdout
)打印的字符串abc
寫入到文件file1.txt
中,此處file1.txt
的內容爲abc\n
。
其中\n
是Linux
系統的換行符。
若file1.txt
不存在則由重定向運算符自動建立。file
>>
重定向運算符將echo
命令向標準輸出流(stdout
)打印的字符串def
追加寫入到文件file1.txt
的末尾,此處file1.txt的內容爲abc\ndef\n
。
cat
命令查看文件所有內容>$ cat [-n] file1 [file2 ...]
cat
命令將文件fileN
的內容從頭到尾讀取出來,並打印到控制檯(其實是打印到標準輸出stdout
中)。
-n
參數表示打印行號。
>$ cat file1.txt abc def
若file1.txt
爲空文件,則cat
命令無任何輸出。
head
查看文件開頭部分>$ head [-n N] file
head
命令會從文件file
的第1行開始讀取數據,共讀取10行,打印到控制檯。
-n
參數能夠要求head
命令讀取N
行數據,N
默認爲10。
tail
查看文件末尾部分>$ tail [-n N] [-f] file.log
tail
命令與head
命令偏偏相反,從文件的末尾第N
行開始讀取數據,並打印到控制檯,N
默認爲10行,一樣能夠經過-n
參數來指定。
-f
參數很是有用,若file.log
文件中不斷有內容寫入,則tail
命令能夠監聽到這種變化,並不斷的將最新的內容打印到控制檯上。一般查看日誌的時候會用到此參數。
more
命令按頁查看文件>$ more file.txt
當要查看的文件file.txt
的內容特別長的時候,使用cat
命令查看並不方便,而more
命令恰好能夠知足這種需求。
more
命令會從頭讀取file.txt
文件的內容,恰好讀滿整個屏幕的數據做爲一頁顯示。當咱們按下回車鍵(Enter)時,滾動顯示下一行的內容;當咱們按下空格鍵(Space)時,滾動顯示下一頁的內容。直到到達文件file.txt
的末尾時more
命令纔會退出。
more
命令適合瀏覽長文件時使用或在純Shell(非模擬終端)場景使用。
less
命令更靈活的按頁查看文件>$ less file.txt
less
命令與more
命令很是類似,能夠看作是增強版的more
命令。
less
命令不只支持與more
命令相同的分頁顯示、回車鍵
和空格鍵
向後讀取文件,還支持使用光標控制鍵(上下箭頭)
、vim光標控制鍵(j、k)
和Emacs光標控制鍵(C-n、C-p)
來向後或向前讀取文件。使用戶能夠用更加靈活的方式查看文件。