linux筆記

1 [wang@localhost etc]$

那個 ~ 符號代表的是『用戶的家目錄』的意思,他是個『變量!』 。舉例來說,root 的家目錄在/root, 所以 ~ 就代表
/root 的意思。而 wang 的家目錄在/home/wang, 所以如果你以 wang 登入時,
他看到的 ~ 就會等亍/home/wang 喔!
至于提示字符方面,在Linux當中,默認root的提示字符為#,而一般身份用戶的提示字符為$

2 重要的幾個熱鍵[Tab], [ctrl]-c, [ctrl]-d

這個[Tab]熱鍵算是 Linux 的 Bash shell 最棒的功能之一了!他具有『命令補全』不『檔案補齊
的功能。

  • [Tab] 接在一串指令的第一個字的后面,則為命令補全;
  • [Tab] 接在一串指令的第二個字以后時,則為『檔案補齊』!

[Ctrl]-c 按鍵 中斷目前程序

[Ctrl]-d 按鍵 鍵盤輸入結束

3 Linux 系統的在線求助 man page 與 info page

man page:man 是 manual(操作說明)的簡寫。

迚入 man 挃令的功能后,你可以挄下『空格鍵』往下翻頁,可以按下『q 』按鍵來離開 man 的環境。 如果你知道某些關鍵詞的話, 那你可以在任何時候輸入『/word』,來主動搜尋關鍵詞,?/word是向上搜尋

info page:info page 則是將文件數據拆成一個一個的段落,每個段落用自
己的頁面來撰寫, 幵且在各個頁面中還有類似網頁的『超鏈接』來跳到各個同的頁面中,每個獨立的
頁面也被稱為一個節點(node)。 所以,你可以將 info page 想成是文本模式的網頁顯示數據。

丌過你要查詢的目標數據的說明文件必須要以 info 的格式來寫成才能夠使用 info 的特殊功能(例如赸鏈
接)。

/usr/share/doc/:你只要到這個目錄底下,就會發現好多好多的說明文件檔。

4 超簡單文書編輯器: nano

  • [ctrl]-G:取得聯機幫助(help),徑有用的!
  • [ctrl]-X:離開 naon 軟件,若有修改過檔案會提示是否需要儲存喔!
  • [ctrl]-O:儲存檔案,若你有權限的話就能夠儲存檔案了;
  • [ctrl]-R:從其他檔案讀入資料,可以將某個檔案的內容貼在本檔案中;
  • [ctrl]-W:搜尋字符串,這個也是徑有幫助的指令喔!
  • [ctrl]-C:說明目前光標所在處的行數與列數等信息;
  • [ctrl]-_:可以直接輸入行號,讓光標忚速移動到該行;
  • [alt]-Y:校正語法功能開啟或關閉(單擊開、再單擊關)
  • [alt]-M:可以支持鼠標來移動光標的功能

5 正確的關機方法

  • 觀察系統的使用狀態:如果要看目前有誰在在線,可以下達『 who』這個指令,而如果要看網絡的聯機狀態,可以下達
    『netstat -a 』這個指令,而要看背景執行的程序可以執行『ps -aux 』這個指令。
  • 關機/重新啟動相關的指令:將內存中的數據同步寫入硬盤中的指令: sync;慣用的關機指令: shutdown;重新啟勱,關機: reboot, halt, poweroff;

6 (1)使用者及(2)群組不(3)非本群組外的其他人

在 Linux 里面,任何一個檔案都具有『 User, Group 及 Others』三
種身份的個別權限。

用戶記錄在/etc/passwd,個人的密碼則是記錄在/etc/shadow,Linux 所有的組名都紀錄在/etc/group 內。

7 Linux 檔案權限概念

使用ll查看文件屬性

[root@localhost kencery]# ll
total 8
drwxr-xr-x. 8 root root 4096 May 22 08:30 jdk1.8
drwxr-xr-x. 9 root root 4096 May 22 18:17 tomcat

r可讀,w可寫,x可執行,如果沒有x權限就不能cd到該目錄下,d表示文件屬性。可以看出來rwxr-xr-x有三組權限,第一種為用戶自己,第二組為同群組的,第三組為其他非本群組的權限。

刪除文件的權限需要上級文件夾的權限w,可以不需要對文件有任何權限就可刪除文件、

后面兩個root,一個代表文件的所屬用戶,一個代表文件的所屬群組。

1 如何改變文件屬性與權限

  • chgrp :改變檔案所屬群組。chgrp wang test
  • chown :改變檔案擁有者,也能改變群組。chown wang:root test;
  • chmod :改變檔案的權限, SUID, SGID, SBIT 等等的特性。權限的設定方法有兩種, 分別可以使用數字或者是
    符號來進行權限的變更,r:4,w:2,x:1。chmod 777 test;chmod u=rwx,g=rx,o=r test,chmod a-x test,chmod a+x test。

你想要教一個朋友如何讓一個程序可以擁有執行的權限, 但你又不知道該檔案原本的權限為何,此時,利用
『 chmod a+x filename』 ,就可以讓該程序擁有執行的權限了。是否很方便?

基本上,Linux 系統上的文件名真的只是讓你了解該檔案可能的用途而已, 真正的執行與否仍然需要權限的規范才行。

2 Linux 目錄配置

亊實上,FHS 針對目錄樹架構僅定義出三層目錄底下應該放置什么數據而已:

  • / (root, 根目錄):與開機系統有關;
  • /usr (unix software resource):與軟件安裝/執行有關;

FHS 建議所有軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行建立該軟件自己獨立的目彔。

  • /var (variable):與系統運作過程有關。
  • /bin:在/bin 底下的指令可以被 root 與一般賬號所使用

/bin 主要放置在開機時,以及進入單人維護模式后還能夠被使用的指令,至于/usr/bin 則是大部分軟件提供的指令放置處。

  • /home:這是系統默認的用戶家目錄(home directory)。
  • /etc:系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務的啟始檔等等。
  • /proc:他放置的數據都是在內存當中,例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等。

另外要注意的是,因為根目錄與開機有關,開機過程中僅有根目錄會被掛載, 其他分割槽則是在開機完成之后才會持續的進行掛載的行為。/etc:配置文件,/bin:重要執行檔,/dev:所需要的裝置檔案,/lib:執行檔所需的函式庫不核心所需的模塊,/sbin:重要的系統執行文件;這五個目錄千萬不可與根目錄分開在不同的分割槽!

3 絕對路徑與相對路徑

  • 絕對路徑:由根目錄(/)開始寫起的文件名或目錄名稱,例如/home/dmtsai/.bashrc;

  • 相對路徑:相對于目前路徑的文件名寫法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正開頭不是 / 就屬于相對路徑的寫法

  • . :代表當前的目錄,也可以使用 ./ 來表示;

若你的執行文件放置在本目錄,并且本目錄并非正規的執行文件目錄(/bin, /usr/bin等為正規),則需要如『./run.sh』指定執行檔,『./run.sh』代表『執行本目錄下, 名為 run.sh 的檔案』

  • .. :代表上一層目錄,也可以 ../ 來代表。
    • : 代表前一個工作目錄。
  • ~ :代表『目前用戶身份』所在的家目錄。
  • ~account 代表 account 這個用戶的家目錄(account 是個賬號名稱)

4 關于執行文件路徑的變量: $PATH

PATH(一定是大寫)這個變量的內容是由一堆目錄所組成的,每個目錄中間用冒號(:)分隔開, 每個目錄是有『順序』之分的。

  • 不同身份使用者預設的 PATH 不同,默認能夠隨意執行的指令也不同
  • PATH 是可以修改的,所以一般使用者還是可以透過修改 PATH 來執行某些位于/sbin 或/usr/sbin 下的指令來查詢;
  • 使用絕對路徑或相對路徑直接指定某個指令的文件名來執行,會比搜尋 PATH 來的正確;
  • 指令應該要放置到正確的目錄下,執行才會比較方便;
  • 本目錄(.)最好不要放到 PATH 當中。

5 目錄的相關操作:

  • cd:變換目錄
  • pwd:顯示當前目錄
  • mkdir:建立一個新的目錄
  • rmdir:刪除一個空的目錄
  • ls:檔案與目錄的查看。如ll
  • cp: (復制檔案或目錄)。如cp -p(復制屬性);cp -s(符號鏈接)
  • rm:移除檔案與目錄。如rm -i test;rm -r test;
  • mv:移勱檔案與目錄,或更名。mv test cache;mv cache cache2;
  • 文檔查閱:cat,由第一行開始顯示檔案內容;tac,從最后一行開始顯示,可以看出 tac 是 cat 是倒著寫!less 與 more 類似,一頁一頁的顯示檔案內容,空格翻頁,less可以往前翻頁。
  • touch:修改檔案時間或新建。touch test,修改mtime與atime為當前時間,如果文件不存在則創建。

6 檔案與目錄的默認權限與隱藏權限

  • 檔案預設權限:umask。下面代表其他人默認權限沒有w
[wang@localhost test]$ umask
0002

要注意的是,umask 的分數指的是『該默認值需要減掉的權限!』因為 r、 w、 x 分別是 4、 2、 1 分。這樣新建的目錄默認是drwxrwxr-x ,文檔是-rw-rw-r--。

  • 檔案隱藏屬性:chattr 指令只能在 Ext2/Ext3 的
    文件系統上面生效, 其他的文件系統可能就無法支持這個指令了。+i 可以讓一個檔案無能被刪除、改名、設定連結也無法,+a設定后,這個檔案將只能增加數據,而不能刪除也不能修改數據,叧有root才能設定這個屬性。
  • Set UID:當 s 這個標志出現在檔案擁有者的 x 權限上時,例如剛剛提到的 /usr/bin/passwd 這個檔案的權限狀
    忞:『-rwsr-xr-x』,此時就被稱為 Set UID,簡稱為 SUID 癿特殊權限。 passwd 的擁有者是 root 這個賬號,當普通用戶運行它時會暫時擁有root權限,從而可以修改/etc/shadow。

SUID 權限僅對二進制程序(binary program)有效;執行者對于該程序需要具有 x 的可執行權限;本權限僅在執行該程序的過程中有效 (run-time);執行者將具有該程序擁有者 (owner) 的權限。

  • Set GID:當 s 標志在檔案擁有者的 x 項目為 SUID,那 s 在群組的 x 時則稱為 Set GID, SGID 。對于二進制檔案來說,用戶會獲得它群組的權限;對于目錄來說,若用戶在此目錄下具有w的權限(可以新建檔案),則使用者所建立的新檔案,該新檔案的群組與此目錄的群組相同。

用戶若對于此目錄具有 r 不 x 的權限時,該用戶能夠進入此目錄;
用戶在此目錄下的有效群組(effective group)將會變成該目錄的群組;

  • Sticky Bit:目前只針對目錄有效,對于檔案已經沒有效果了。當甲這個用戶于 A 目錄是具有群組或其他人的身份,并且擁有該目錄 w 的權限,甲只能夠針對自己建立的檔案或目錄進行刪除/更名/移動等動作,而無法刪除他人的檔案

  • SUID/SGID/SBIT 權限設定:4 為 SUID,2 為 SGID,1 為 SBIT。

chmod 4664 test1
-rwSrw-r--.  1 wang wang         0 Jul 13 23:20 test1

大寫S表示用戶沒有x權限,無法執行也就無法給別人用了。

7 指令與檔案的搜尋

  • 腳本文件名的搜尋:which。which 是根據用戶所規定的 PATH 變量內的目錄去搜尋可執行文件的。
[wang@localhost test]$ which ll
alias ll='ls -l --color=auto'
    /bin/ls
  • 檔案檔名的搜尋:通常我們都是先使用 whereis 或者是 locate 來檢查,如果真的找不到了,才以 find 來搜尋。因為 whereis 與 locate 是利用數據庫來搜尋數據,而且并沒有實際的搜尋硬盤。
[wang@localhost test]$ whereis test
test: /usr/bin/test /usr/share/man/man1/test.1.gz /usr/share/man/man1p/test.1p.gz

locate 的使用更簡單,直接在后面輸入部分文件名。但它是通過數據庫查詢,而數據庫的建立默認是在每天執行一次,如果查找的檔案新建在更新之后,則查找不到。這是需要執行

updatedb

updatedb 指令會去讀取 /etc/updatedb.conf 這個配置文件的設定,然
后再去硬盤里面進行搜尋文件名的動作,最后就更新整個數據庫檔案。

  • find。
查找4天內,+4代表5天前的,4代表4天前那天的
[wang@localhost test]$ find ./ -mtime -4
./
./cache2
./test1

查找當前目錄下屬于wang的檔案
[wang@localhost test]$ find . -user wang

查找當前目錄下名為test1的文件
[wang@localhost test]$ find ./ -name test1
./test1

找出 /var 目錄下,文件類型為 Socket 的文件有哪些?
find /var -type s

找出 當前目錄下擁有SGID 或 SUID 或 SBIT 屬性的文件,并用ll指令列出來。find 額外動作的開始 (-exec) 到結束 (\;)
[wang@localhost test]$ find . perm +7000 -exec ls -l {} \;

8 權限與指令間的關系:

  • 進入目錄的權限:使用cd進入目錄時,一定要有x權限才能進入目錄;ls查閱文件還需要目錄的r權限。
  • 讀取目錄里的文件:使用cat等查看文件時,目錄至少要有x權限,檔案要有r權限。
  • 對檔案進行修改:使用nano等進行修改時,所在目錄至少要x權限,檔案要r,w權限。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容