linux學習筆記二

zhumeilu發表於2018-02-27

連結檔案

linux具有為一個檔案起多個名字的功能,稱為連結.
每個連結可以有不同的許可權,不同的命名.
複製程式碼

硬連結

ln預設建立硬連結

不能對目錄檔案建立硬連結 不能在不同的檔案系統中之間做硬連結.就是說,連結檔案和被連結檔案必須位於同一個檔案系統中.

符號連結

符號連結也成軟連結,是將一個路徑名連結到一個檔案.這些檔案是一種特別型別的檔案.事實上,它只是一個文字檔案,其中包含它提供連結的另一個檔案的路徑名. 與硬連結不同,符號連結確實是一個新檔案,而硬連結並沒有建立新檔案. 符號連結沒有硬連結的限制,可以對目錄檔案建立符號連結,也可以在不同檔案系統之間建立符號連結.

符號連結保持了連結與原始檔或目錄之間的區別:

  • 刪除原始檔或目錄,只刪除資料,不會刪除連結.一旦以同樣檔案建立原始檔,連結將繼續指向該檔案的新資料.
  • 在目錄長列表中,符號連結以一種特殊的檔案型別顯示出來,其中第一個字母是l
  • 符號連結的大小是其連結檔案的路徑名的位元組數
  • 當用ls -l命令列出檔案時,可以看到符號連結名後有一個箭頭指向原始檔或目錄 例:/root/test->/home/test

ln命令

ln命令用來建立連結 -s,--symbolic 建立符號連結,而不是硬連結. 符號連結檔案不是一個獨立的檔案,它的許多屬性依賴於原始檔,所以給符號連結檔案設定存取許可權是沒有意義的.

關於使用者和許可權

檔案主

linux為每個檔案都分配了一個檔案所有者,即檔案主,並賦予檔案主唯一的註冊名.對檔案的控制取決於檔案主或超級使用者root

檔案或目錄的建立者對建立的檔案或目錄擁有特別的使用權. 檔案的所有關係是可變的,可以將檔案或目錄的所有權裝讓給其他使用者,但是隻有檔案主或root才有權改變檔案的所有關係.檔案所有權的標誌的使用者ID(UID) 利用chown命令可以修改檔案或目錄的檔案主

使用者組

當系統管理員為使用者建立賬號之後,會分配一個組ID和一個特定的使用者組名。通常這些組名包含有相同需求的使用者。採用組方式也有助於增強系統使用的安全性

雖然已經分配了一個標記註冊組的組ID,但是該組也可以是其他組的成員。如果目前從事的專案涉及多個使用者組,那麼它可能不止屬於屬於一個組,從而可以與那些組中的使用者共享資訊。

在linux系統中,每個檔案隸屬於一個使用者組。當建立一個檔案或目錄時,系統會賦予它一個使用者組關係,使用者組的所有成員都可以使用此檔案或目錄。 檔案使用者組關係的標誌是GID。檔案的GID只能由檔案主或超級管理員來修改。利用chgrp命令可以改變檔案的GID

存取許可權

linux系統中的每個檔案和目錄都有存取許可許可權。

linux系統規定了4中不同型別的使用者。

  • 檔案主owner
  • 同組使用者group
  • 可以訪問系統的其他使用者others
  • 超級使用者root

存取許可權規定了三種訪問檔案或目錄的方式

  • 讀r
  • 寫w
  • 可執行或可查詢x

使用ls -l 可以顯示該檔案或目錄的許可權 分別為 檔案主許可權,組使用者許可權,其他使用者許可權

chmod命令

  • 以符號模式改變許可權

chmod key 檔名 key:[who] [操作符號] [mode]

who 操作物件可以是下面字母中的任一一個或者它們的組合 u 使用者user,即檔案或目錄的所有者 g 同組group使用者,即與檔案主由相同組ID的所有使用者 o 其他使用者others a 所有使用者all,它是系統預設值

操作符 + 新增某個許可權 - 取消某個許可權 = 富裕給定許可權並取消其他所有許可權(如果有的話)

mode 所表示的許可權可用下面字母的任意組合 r 可讀 w 可寫 x 可執行 X 只有目標檔案對某些使用者是可執行的,或該目標檔案是目錄時,才追加x(可執行)屬性 u 與檔案主擁有一樣的許可權 g 與檔案主同組的使用者擁有一樣的許可權 o 與其他使用者有用一樣的許可權

可以有多個key,但必須以逗號分隔開

chmod u=r,ug=x file

  • 以絕對方式改變許可權

chmod mode 檔名

rwxrwxrwx 如果有許可權,則為1沒有則為0 rwxr-xr-x 111101101表示755 檔案主有讀寫執行許可權,組使用者和其他使用者擁有讀,執行權利

ps命令

列出每個與當前shell有關的程式的基本資訊

PID TTY TIME CMD

PID 程式標誌號
TTY 該程式建立時所對應的終端,"?" 表示該經常不佔用終端
TIME 報告程式累計使用的CPU時間.注意,儘管有些命令(如sh)已經運轉了很長時間,但是它們真正使用CPU的時間往往很短.所以該欄位的值往往是00:00:00
CMD 執行程式的命令名,是command的縮寫
複製程式碼

ps -ef

顯示系統中所有程式的全面資訊
複製程式碼

UID PID PPID C STIME TTY TIME CMD

UID 程式屬主的使用者id
PPID 父程式的ID號
C 程式最近使用CPU的估算
STIME 程式開始時間,以"小時:分"的形式給出
複製程式碼

ps aux 顯示所有終端上所有使用者的有關程式的所有資訊

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

USER 啟動程式的使用者
%CPU 執行該程式佔用CPU的時間與該程式總執行時間的比例
%MEM 該程式佔用記憶體和總記憶體的比例
VSZ 虛擬記憶體的大小,以KB為單位
RSS 任務使用的不被交換實體記憶體的數量,以KB為單位
STAT 用多個字元表示程式的執行狀態,其中包括以下幾種程式碼
複製程式碼

kill

用來終止一個程式的執行

  • -s 指定需要傳送的訊號,該訊號既可以是訊號名,也可以是對應訊號的號碼
  • -p 指定kill命令只是顯示程式的PID 並不是真正發出結束訊號
  • -l 顯示訊號名稱列表,

kill命令可以帶訊號選項,也可以不帶.如果沒有帶訊號號碼,kill命令就會發出終止訊號(TERM),該訊號可以被程式捕獲,是程式在退出之前清理並釋放資源.

普通使用者只能使用不帶訊號引數的kill命令或至多使用訊號9

只有萬不得已時,才用kill訊號(9)

相關文章