1. 程式人生 > >Linux零基礎入門第四課

Linux零基礎入門第四課

string 內容 文件中 零基礎入門 文件名 輸出 運算 未使用 當前

根據直播講義整理的內容,從第四課開始。前三課的內容若後面有精力會一並整理進來。

文件的基本操作(上)

  1. 創建、刪除、復制、移動和重命名

    touch命令創建文件
    語法
    >$ touch file0 [file1 file2 ...]
    >$ touch file{0..9}.txt
    touch命令可以創建空文件,將文件名作為參數即可。傳遞多個文件名可同時創建多個文件。
    若使用 file{0..9} 作為參數,將自動創建10個空文件,名字分別為file0.txtfile1.txt、...、file9.txt
    若傳遞給touch的文件已存在於磁盤上,則不會創建此文件,但會更新該文件的時間戳。


mkdir命令創建目錄
語法
>$ mkdir [-p] dir1 [dir2 dir3 ...]
>$ mkdir [-p] dir1{0..9}

mkdir命令可以創建目錄,將目錄名作為參數即可。
傳遞多個目錄名可同時創建多個目錄。
若想同時創建子目錄,則需要使用-p參數,否則只能創建空目錄。

示例
# 在當面目錄下創建名為 dir1 的空目錄。
>$ mkdir dir1
# 在當前目錄的子目錄 dir1 內創建子目錄 dir2。
>$ mkdir dir1/dir2
# 錯誤:dir3 不存在,創建多級子目錄應使用 -p 參數。
>$ mkdir dir3/dir4
# 同時創建 dir3 目錄及其子目錄 dir4。
>$ mkdir -p dir3/dir4
# 創建 3 個目錄,名字分為為 dir5、dir6、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參數表示打印復制的過程。


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

  1. 文件讀寫

echo命令輸出字符串
語法
echo [-n] "string"

使用echo命令可以將string參數的字符串打印到控制臺上。
-n參數表示不要輸出換行符\n

實際上echo命令是將string參數的字符串寫入到其標準輸出流stdout中了,但由於默認的情況下stdout就是控制臺,所以看上去echo命令就是向控制臺打印了字符串。

Shell重定向運算符>>>

通過Shell的重定向運算符>>>可以將標準輸出流(stdout)本來應該打印到控制臺的內容寫入(重定向)到文件中去。

語法
>$ echo "abc" > file1.txt
>$ echo "def" >> file1.txt

>重定向運算符將echo命令向標準輸出流(stdout)打印的字符串abc寫入到文件file1.txt中,此處file1.txt的內容為abc\n
其中\nLinux系統的換行符。
file1.txt不存在則由重定向運算符自動創建。

>>重定向運算符將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)向後向前讀取文件。使用戶可以用更加靈活的方式查看文件。

Linux零基礎入門第四課