. 代表此層目錄
.. 代表上一層目錄
- 代表前乙個工作目錄
~ 代表「目前使用者身份」所在的主資料夾
~account 代表 account 這個使用者的主資料夾(account是個帳號名稱)
我們知道查閱檔案屬性的指令ls完整檔名為:/bin/ls(這是絕對路徑),但是我們在任何目錄下輸入 ls 就一定可以顯示出一些訊息,這是因為環境變數 path 的幫助所致。
當我們在執行乙個指令的時候,舉例來說「ls」好了,系統會依照path的設定去每個path定義的目錄下搜尋檔名為ls的可可執行檔案, 如果在path定義的目錄中含有多個檔名為ls的可可執行檔案,那麼先搜尋到的同名指令先被執行!echo $path:
[**@someone ~]$ echo $path
/usr/local/jdk1.8.0_111/bin:/usr/local/jdk/bin:/usr/local/bin:/usr/bin/mysql:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
無論是root還是其它使用者都有 /bin 或 /usr/bin, 這個目錄在path變數內,所以當然就能夠在任何地方執行ls來找到/bin/ls可執行檔案。
但是對於我們自己解壓安裝的某些程式包,如某些web容器tomcat或者jetty,當我們要執行bin目錄的某些sh指令碼,需要使用絕對路徑或者./start.sh這樣的相對路徑。
常見的檔案內容查閱命令:
cat 由第一行開始顯示檔案內容
tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
nl 顯示的時候,順道輸出行號!
more 一頁一頁的顯示檔案內容
less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
head 只看頭幾行
tail 只看尾巴幾行
od 以二進位制的方式讀取檔案內容!
[root@study ~]# cat [-abentv]
選項與引數:
-a :相當於 -vet 的整合選項,可列出一些特殊字元而不是空白而已;
-b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!
-e :將結尾的斷行字元 $ 顯示出來;
-n :列印出行號,連同空白行也會有行號,與 -b 的選項不同;
-t :將 [tab] 按鍵以 ^i 顯示出來;
-v :列出一些看不出來的特殊字元
[root@study ~]# nl [-bnw] 檔案
選項與引數:
-b :指定行號指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(預設值);
-n :列出行號表示的方法,主要有三種:
-n ln :行號在螢幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示,且加 0 ;
-w :行號欄位的占用的字元數。
nl 可以將輸出的檔案內容自動的加上行號!其預設的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。
空白鍵: 代表向下翻一頁;
enter : 代表向下翻「一行」;
/字串 : 代表在這個顯示的內容當中,向下搜尋「字串」這個關鍵字;
:f : 立刻顯示出檔名以及目前顯示的行數;
q : 代表立刻離開 more ,不再顯示該檔案內容。
b 或 [ctrl]-b :代表往回翻頁,不過這動作只對檔案有用,對管線無用。
空白鍵 : 向下翻動一頁;
[pagedown]:向下翻動一頁;
[pageup] : 向上翻動一頁;
/字串 : 向下搜尋「字串」的功能;
?字串 : 向上搜尋「字串」的功能;
n :重複前乙個搜尋 (與 / 或 ? 有關!)
n :反向的重複前乙個搜尋 (與 / 或 ? 有關!)
g :前進到這個資料的第一行去;
g :前進到這個資料的最後一行去 (注意大小寫);
q :離開 less 這個程式;
less 的用法比起 more 又更加的有彈性,在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往後翻看檔案。
[root@study ~]# head [-n number] 檔案
選項與引數:
-n :後面接數字,代表顯示幾行的意思
[root@study ~]# head /etc/man_db.conf
# 預設的情況中,顯示前面十行!若要顯示前 20 行,就得要這樣:
[root@study ~]# head -n 20 /etc/man_db.conf
[root@study ~]# tail -n 20 /etc/man_db.conf
範例一:如果不知道/etc/man_db.conf有幾行,卻只想列出100行以後的資料時?
[root@study ~]# tail -n +100 /etc/man_db.conf
範例二:持續偵測/var/log/messages的內容
[root@study ~]# tail -f /var/log/messages
<==要等到輸入[crtl]-c之後才會離開tail這個指令的偵測!
通常用這個tail來刷日誌。
根據path這個環境變數所規範的路徑去查詢「執行檔案」的檔名。所以,重點是找出執行檔案而已。
因為 whereis 與 locate 是利用資料庫來查詢資料,所以速度相當快,find 要實際查詢硬碟。
-b: 只找二進位制格式的檔案
-m: 只找在說明檔案 manual 路徑下的檔案
-s: 只找 source 原始檔
-u: 查詢不在上述三個選項當中的其他特殊檔案
locate 尋找資料是由已建立的資料庫 /var/lib/mlocate/ 裡面的資料所查詢的,而資料庫的建立預設是每天執行一次,新建的檔案直接查詢會找不到,需要手動更新資料庫,直接輸入「updatedb」就可以了。
與時間有關的引數:
-mtime n : n為數字,意義為在n天之前的「一天之內」被更改過的檔案
-mtime +n : 列出在n天之前的(不含n本身)被更改過的檔名
-mtime -n : 列出在n天之內(含n天本身)被更改過的檔名
-newer file: file為乙個存在的檔案,列出此file還有新的檔名
時間軸表示:
|4|-4|---------->
<----------|+4
<------7-6-5-4-3-2-1-now--------
範例:
# 將過去系統上面24小時內有改動的檔案列出
find / -mtime 0
# 尋找 /etc 下面的檔案,如果檔案日期比 /etc/passwd 新就列出
find /etc -newer /etc/passwd
與使用者或使用者組名有關的引數:
-uid n: n為數字,這個數字是使用者的賬號id,即uid,這個uid是記錄在/etc/passed 裡面與賬號名稱對應的數字
-gid n: n為數字,這個數字是使用者組名的id,即gid,這個gid記錄在/etc/group中
-user name: name為使用者賬號名稱
-group name: name為使用者組名
-nouser: 尋找檔案的所有者不存在/etc/passwd 的人
-nogroup: 尋找檔案的所有使用者組不存在於 /etc/group 中的檔案
範例:
# 查詢/home 下面屬於 vbird 的檔案
# 可以利用這個命令將屬於某個使用者的所有檔案都找出來
find /home -user vbird
# 查詢系統中不屬於任何人的檔案
# 通過這個命令可以找出那些不太正常的檔案
find / -nouser
與檔案許可權及名稱有關的引數:
-name filename: 查詢檔案名為 filename 的檔案
-size [+-]size: 查詢比size還要大(+)或小(-)的檔案,這個size的規格有:c-byte k-1024bytes
-type type: 查詢檔案的型別為type的,型別主要有:一般正規檔案(f)、裝置檔案(b,c)、目錄檔案(d)、連線檔案(l)、socket(s)、fifo(p)等
-perm mode: 查詢檔案許可權「剛好等於mode的檔案」 mode類似chmod的屬性值,如-rwxr-xr-x的屬性值為4755
Linux 檔案與目錄管理
特殊目錄 當前目錄 上一層目錄 上乙個工作目錄 當前使用者的家目錄 username username的家目錄 ls,重要選項 a 顯示隱藏部分,r 遞迴顯示資料夾內容 l 顯示詳細資訊 ll等價與 ls l file 顯示文件到屬性,如binary or ascii等 which command ...
Linux檔案與目錄管理
1 幾個常見的處理目錄的指令 cd 變換目錄 change directory 注意 目錄名稱與cd指令之間存在乙個空格 pwd 顯示當前目錄 print working directory pwd p 顯示完整路徑 mkdir 建立乙個新的目錄 make directory mkdir p tes...
Linux 檔案與目錄管理
1 當前目錄 上層目錄 cd cc 由aa bb 目錄切換到 aa cc 目錄下 上一工作目錄 相當於視窗中alt tab 當前使用者身份到主資料夾 2.cd 目錄切換 change directory 3.pwd顯示目前所在目錄 print working directory 4.mkdir 建立...