1. 程式人生 > >2017.12.22 2周5次課

2017.12.22 2周5次課

linux學習

2017.12.22 二周第五次課

2.23/2.24/2.25 find命

2.26 文件名後綴

2.23/2.24/2.25 find命令

1.學會使用快捷鍵

1)ctrl+C:結束(終止)當前命令。如果你輸人了一大串字符,但不想運行,可以按ctrl+C組合鍵,此時光標將跳入下一行,而在剛剛的光標處會留下一個^C的標記.

2)Tab:實現自動補全功能。這個鍵比較重要,使用頻率也很高。當你輸人命令、文件或目錄的前幾個字符時,它會自動幫你補全。

3)ctrl+D:退出當前終端。同樣,你也可以輸人命令exit實現該功能。

4)ctrl+Z: 暫停當前進程。這和ctrl+C是有區別的,暫停後, 使用fg命令恢復該進程,該知識點以後會介紹到。

5)ctrl+L: 清屏,使光標移動到屏幕的第一行。當命令和顯示的結果占滿整個屏幕時,我們每運行一個命令,都會在最後一行顯示,這樣看起來不太方便,此時就可以使用這個快捷 鍵,讓光標移動到屏幕第一行, 也就是所謂的清屏。

6)ctrl+A: 可以讓光標移動到命令的最前面。有時候一條命令很長,快敲完時發現前面某個字母不對,此時可以直接用這個快捷鍵把光標定位到行首,然後再用左右方向鍵微調光標的位置。

7)ctrl+E:可以讓光標移動到最後面, 作用同上。

8)Ctrl+U:刪除光標之前到行首的字符

9)Ctrl+K : 刪除光標之前到行尾的字符

2. 用which命令查找可執行文件的絕對路徑

前面已經用過which命令,但需要註意的是,which只能用來查找PATH環境變量中出現的路徑下的可執行文件。這個命令比較常用,有時我們不知道某個命令的絕對路徑, 用which查找就很容易知道了。

技術分享圖片

3. 用whereis命令

通過預先生成的一個文件列表庫查找與給出的文件名相關的文件, 其格式為 whereiS [-bms ] [文件名稱], 其中各選項的含義如下所示。

1)-b:只查找二進制文件。

2)-m:只查找幫助文件(在m目錄下的文件)。

3)-s:只查找源代碼文件。

技術分享圖片

4. locate命令查找文件

locate命令類似於whereis ,也是通過查找預先生成的文件列表庫來告訴用戶要查找的文件在哪裏,後面直接跟文件名。如果你的Linux沒有這個命令,請安裝mlocate軟件包

技術分享圖片

安裝好mlocate軟件包後,初次運行locate命令會報錯,這是因為系統還沒有生成那個文件列表庫。可以使用updatedb命令立即生成(或更新)這個庫。如果你的服務器上正執行著重要的業務,那麽最好不要去運行這個命令,因為一旦運行,服務器的壓力會增大。默認情況下,這個數據庫每周更新一次。如果使用locate命令搜索一個文件,而該文件正好是在兩次更新時間段內創建的,那肯定得不到結果。我們可以到文件/etc/updated.conf中配置這個數據庫生成(或更新)的規則。

技術分享圖片

locate所搜索到的文件列表,不管是目錄名還是文件名,只要包含我們要搜索的關鍵詞,都會列出來,所以locate不適合精準搜索

簡單介紹下它的兩個選項:

# -i //查找文件的時候不區分大小寫 比如:locate –i passwd

# -n //只顯示查找結果的前N行 比如:locate -n 5 passwd

技術分享圖片

5. 使用find搜索文件

find這個搜索工具是用得最多的一個,其格式為: find [路徑] [參數]。

1)按文件名和inode號查找

#-name //根據文件名精確查找

#-iname //根據文件名忽略大小寫的精確查找

#-inum n //根據inode號查找(只顯示名稱,長列出則加-ls)

#-samefile //根據相同inode號的查找(查找硬鏈接)

#-links n //硬鏈接為n的文件

#-regex “PATTERN” 支持正則(默認只支持範圍,不支持通配符)

技術分享圖片

技術分享圖片

這裏另外介紹下文件名通配的知識

*:表示通配任意的字符

?:表示通配任意的單個字符

[ ] :表示通配括號裏面的任意一個字符

2)根據文件類型來查找文件:

-type filetype

f // 普通文件

d //目錄文件

l //鏈接文件

b //塊設備文件

c //字符設備文件

p //管道文件

s //socket文件

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

3)根據文件時間戳的相關屬性來查找文件

一天為單位 -atime +n/-n:訪問或執行時間大於或小於n天的文

-mtime +n/-n:內容修改時間大於或小於n天的文件

-ctime +n/-n:屬性修改大於或小於n天的文件 以分鐘為單位: -amin +n/-n:訪問或執行時間大於或小於n分鐘的文件

-mmin +n/-n:內容修改時間大於或小於n分鐘的文件 -cmin +n/-n:屬性修改大於或小於n分鐘的文

+n/-n:大於n/小於n

我們可以使用stat命令來查看一個文件的具體信息

技術分享圖片

“ -ctime”改動

技術分享圖片

“-mtime”改動,同時“ -ctime”同步改動

技術分享圖片

“-atime”改動

技術分享圖片

查找etc目錄裏1天以內修改的文件

技術分享圖片

加了多個判斷條件。是並且的意思

技術分享圖片

4)組合條件查找

# -o :連接兩個不同的條件(兩個條件滿足其一即可)

技術分享圖片

# -not :對條件取反的

# -a :與

5)查找完執行的動作

# -print //默認情況下的動作

# -ls //查找到後用ls 顯示出來

# -ok [command] //查找後執行命令的時候詢問用戶是否要執行

# -exec [command] //查找後執行命令的時候不詢問用戶,直接執行

註:使用-ok和-exec時,必須以“ \;”結尾。

【{}】 //表示find出來的文件的列表

技術分享圖片

更改文件名:

技術分享圖片

技術分享圖片

6)按文件大小查找

#-size [+|-] //根據文件大小來查找

常用單位:k, M, G,c(byte)

技術分享圖片

技術分享圖片

7)根據文件權限查找文件

# -perm

技術分享圖片

2.26 文件名後綴

在linux下的命令和文件是區分大小寫的

在Linux系統中,文件的後綴名沒有具體意義。加或者不加都無所謂。我們可以自定義文件名,文件的後綴。但是為了便於區分,我們習慣在定義文件名時加一個後綴名。這樣當用戶 看到這個文件名時,就會很快知道它到底是一個什麽文件,例如l.sh、2.tar.gz、my.cnf、test.zip等

如果你首次接觸這些文件,也許會很疑惑,但沒關系,深人學習之後, 你就會逐漸了解這些文件。所列舉的幾個文件名中,1.sh代表它是一個shell腳本,2.tar.gz代表它是一個壓縮包,my.cnf代表它一個配置文件,test.zip代表它是一個壓縮文件。

在新的linux系統中,文件名可以最長可達255個字符。


2017.12.22 2周5次課