Linux系統的基本操做

20200727前端

Linux目錄結構

基本介紹

  • Linux的文件系統是採用層級式的樹狀結構,在此結構中的最上層是/根目錄
  • tip1:在Linux世界裏,一切皆是文件
示例
  • /bin
    bin是Binary的縮寫, 這個目錄存放着最常用的命令。mysql

  • /boot:
    這裏存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件。linux

  • /dev :
    dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。程序員

  • /etc:
    這個目錄用來存放全部的系統管理所須要的配置文件和子目錄。sql

  • /home
    用戶的主目錄,在Linux中,每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。數據庫

  • /lib
    這個目錄裏存放着系統最基本的動態鏈接共享庫,其做用相似於Windows裏的DLL文件。幾乎全部的應用程序都須要用到這些共享庫。編程

  • /lost+found
    這個目錄通常狀況下是空的,當系統非法關機後,這裏就存放了一些文件。vim

  • /media
    linux 系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。windows

  • /mnt
    系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將光驅掛載在/mnt/上,而後進入該目錄就能夠查看光驅裏的內容了。緩存

  • /opt
    這是給主機額外安裝軟件所擺放的目錄。好比你安裝一個ORACLE數據庫則就能夠放到這個目錄下。默認是空的。

  • /proc
    這個目錄是一個虛擬的目錄,它是系統內存的映射,咱們能夠經過直接訪問這個目錄來獲取系統信息。
    這個目錄的內容不在硬盤上而是在內存裏,咱們也能夠直接修改裏面的某些文件,好比能夠經過下面的命令來屏蔽主機的ping命令,使別人沒法ping你的機器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。

  • /sbin
    s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。

  • /selinux
    這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,相似於windows的防火牆,可是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

  • /srv
    該目錄存放一些服務啓動以後須要提取的數據。

  • /sys

    這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

    sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統。

    該文件系統是內核設備樹的一個直觀反映。

    當一個內核對象被建立的時候,對應的文件和目錄也在內核對象子系統中被建立。

  • /tmp
    這個目錄是用來存放一些臨時文件的。

  • /usr
    這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似於windows下的program files目錄。

  • /usr/bin:
    系統用戶使用的應用程序。

  • /usr/sbin:
    超級用戶使用的比較高級的管理程序和系統守護程序。

  • /usr/src:
    內核源代碼默認的放置目錄。

  • /var
    這個目錄中存放着在不斷擴充着的東西,咱們習慣將那些常常被修改的目錄放在這個目錄下。包括各類日誌文件。

  • /run
    是一個臨時文件系統,存儲系統啓動以來的信息。當系統重啓時,這個目錄下的文件應該被刪掉或清除。若是你的系統上有 /var/run 目錄,應該讓它指向 run。

遠程登錄配置

  • 配置遠程登錄以前,須要在Linux上須要開啓sshd服務,該服務監聽22號端口

Vi和Vim

  • 全部的 Unix Like 系統都會內建 vi 文書編輯器,其餘的文書編輯器則不必定會存在。
  • 可是目前咱們使用比較多的是 vim 編輯器。
  • vim 具備程序編輯的能力,能夠主動的以字體顏色辨別語法的正確性,方便程序設計。

Vim

  • Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用。
  • 簡單的來講, vi 是老式的字處理器,不過功能已經很齊全了,可是仍是有能夠進步的地方。 vim 則能夠說是程序開發者的一項很好用的工具。
模式分辨
  • 基本上 vi/vim 共分爲三種模式,分別是命令模式(Command mode)輸入模式(Insert mode)底線命令模式(Last line mode)
命令模式
  • 用戶剛剛啓動 vi/vim,便進入了命令模式。

  • 此狀態下敲擊鍵盤動做會被Vim識別爲命令,而非輸入字符。好比咱們此時按下i,並不會輸入一個字符,i被看成了一個命令。

  • 如下是經常使用的幾個命令:

    • i 切換到輸入模式,以輸入字符。
    • x 刪除當前光標所在處的字符。
    • : 切換到底線命令模式,以在最底一行輸入命令。
  • 若想要編輯文本:啓動Vim,進入了命令模式,按下i,切換到輸入模式。

  • 命令模式只有一些最基本的命令,所以仍要依靠底線命令模式輸入更多命令。

輸入模式
  • 在命令模式下按下i就進入了輸入模式。
  • 在輸入模式中,可使用如下按鍵:
    • 字符按鍵以及Shift組合,輸入字符
    • ENTER,回車鍵,換行
    • BACK SPACE,退格鍵,刪除光標前一個字符
    • DEL,刪除鍵,刪除光標後一個字符
    • 方向鍵,在文本中移動光標
    • HOME/END,移動光標到行首/行尾
    • Page Up/Page Down,上/下翻頁
    • Insert,切換光標爲輸入/替換模式,光標將變成豎線/下劃線
    • ESC,退出輸入模式,切換到命令模式
底線命令模式
  • 在命令模式下按下:(英文冒號)就進入了底線命令模式。
  • 底線命令模式能夠輸入單個或多個字符的命令,可用的命令很是多。
  • 在底線命令模式中,基本的命令有(已經省略了冒號):
  • q 退出程序
    • w 保存文件
  • 按ESC鍵可隨時退出底線命令模式。
使用示例
  • 建立或者修改某文件vim filename (進入通常模式)
  • 在通常模式之中,只要按下 i, o, a 等字符就能夠進入輸入模式了!
  • 輸入完成按下esc 以後輸入:wq(:q!) 保存並退出 (不保存退出)

Vim按鍵說明

移動光標的方法
h 或 向左箭頭鍵(←) 光標向左移動一個字符
j 或 向下箭頭鍵(↓) 光標向下移動一個字符
k 或 向上箭頭鍵(↑) 光標向上移動一個字符
l 或 向右箭頭鍵(→) 光標向右移動一個字符
若是你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一塊兒的,所以可使用這四個按鈕來移動光標。 若是想要進行屢次移動的話,例如向下移動 30 行,可使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動做便可!
[Ctrl] + [f] 屏幕『向下』移動一頁,至關於 [Page Down]按鍵 (經常使用)
[Ctrl] + [b] 屏幕『向上』移動一頁,至關於 [Page Up] 按鍵 (經常使用)
[Ctrl] + [d] 屏幕『向下』移動半頁
[Ctrl] + [u] 屏幕『向上』移動半頁
+ 光標移動到非空格符的下一行
- 光標移動到非空格符的上一行
n 那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20 則光標會向後面移動 20 個字符距離。
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字符處 (經常使用)
$ 或功能鍵[End] 移動到這一行的最後面字符處(經常使用)
H 光標移動到這個屏幕的最上方那一行的第一個字符
M 光標移動到這個屏幕的中央那一行的第一個字符
L 光標移動到這個屏幕的最下方那一行的第一個字符
G 移動到這個檔案的最後一行(經常使用)
nG n 爲數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu)
gg 移動到這個檔案的第一行,至關於 1G 啊! (經常使用)
n n 爲數字。光標向下移動 n 行(經常使用)
搜索替換
/word 向光標之下尋找一個名稱爲 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 便可! (經常使用)
?word 向光標之上尋找一個字符串名稱爲 word 的字符串。
n 這個 n 是英文按鍵。表明重複前一個搜尋的動做。舉例來講, 若是剛剛咱們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 後,會向下繼續搜尋下一個名稱爲 vbird 的字符串。若是是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱爲 vbird 的字符串!
N 這個 N 是英文按鍵。與 n 恰好相反,爲『反向』進行前一個搜尋動做。 例如 /vbird 後,按下 N 則表示『向上』搜尋 vbird 。
使用 /word 配合 n 及 N 是很是有幫助的!可讓你重複的找到一些你搜尋的關鍵詞!
:n1,n2s/word1/word2/g n1 與 n2 爲數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,並將該字符串取代爲 word2 !舉例來講,在 100 到 200 行之間搜尋 vbird 並取代爲 VBIRD 則: 『:100,200s/vbird/VBIRD/g』。(經常使用)
:1,$s/word1/word2/g:%s/word1/word2/g 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !(經常使用)
:1,$s/word1/word2/gc:%s/word1/word2/gc 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !且在取代前顯示提示字符給用戶確認 (confirm) 是否須要取代!(經常使用)
刪除、複製與貼上
x, X 在一行字當中,x 爲向後刪除一個字符 (至關於 [del] 按鍵), X 爲向前刪除一個字符(至關於 [backspace] 亦便是退格鍵) (經常使用)
nx n 爲數字,連續向後刪除 n 個字符。舉例來講,我要連續刪除 10 個字符, 『10x』。
dd 刪除遊標所在的那一整行(經常使用)
ndd n 爲數字。刪除光標所在的向下 n 行,例如 20dd 則是刪除 20 行 (經常使用)
d1G 刪除光標所在到第一行的全部數據
dG 刪除光標所在到最後一行的全部數據
d$ 刪除遊標所在處,到該行的最後一個字符
d0 那個是數字的 0 ,刪除遊標所在處,到該行的最前面一個字符
yy 複製遊標所在的那一行(經常使用)
nyy n 爲數字。複製光標所在的向下 n 行,例如 20yy 則是複製 20 行(經常使用)
y1G 複製遊標所在行到第一行的全部數據
yG 複製遊標所在行到最後一行的全部數據
y0 複製光標所在的那個字符到該行行首的全部數據
y$ 複製光標所在的那個字符到該行行尾的全部數據
p, P p 爲將已複製的數據在光標下一行貼上,P 則爲貼在遊標上一行! 舉例來講,我目前光標在第 20 行,且已經複製了 10 行數據。則按下 p 後, 那 10 行數據會貼在本來的 20 行以後,亦即由 21 行開始貼。但若是是按下 P 呢? 那麼本來的第 20 行會被推到變成 30 行。 (經常使用)
J 將光標所在行與下一行的數據結合成同一行
c 重複刪除多個數據,例如向下刪除 10 行,[ 10cj ]
u 復原前一個動做。(經常使用)
[Ctrl]+r 重作上一個動做。(經常使用)
這個 u 與 [Ctrl]+r 是很經常使用的指令!一個是復原,另外一個則是重作一次~ 利用這兩個功能按鍵,你的編輯,嘿嘿!很快樂的啦!
. 不要懷疑!這就是小數點!意思是重複前一個動做的意思。 若是你想要重複刪除、重複貼上等等動做,按下小數點『.』就行了! (經常使用)
進入輸入或取代的編輯模式
i, I 進入輸入模式(Insert mode): i 爲『從目前光標所在處輸入』, I 爲『在目前所在行的第一個非空格符處開始輸入』。 (經常使用)
a, A 進入輸入模式(Insert mode): a 爲『從目前光標所在的下一個字符處開始輸入』, A 爲『從光標所在行的最後一個字符處開始輸入』。(經常使用)
o, O 進入輸入模式(Insert mode): 這是英文字母 o 的大小寫。o 爲『在目前光標所在的下一行處輸入新的一行』; O 爲在目前光標所在處的上一行輸入新的一行!(經常使用)
r, R 進入取代模式(Replace mode): r 只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字,直到按下 ESC 爲止;(經常使用)
上面這些按鍵中,在 vi 畫面的左下角處會出現『--INSERT--』或『--REPLACE--』的字樣。 由名稱就知道該動做了吧!!特別注意的是,咱們上面也提過了,你想要在檔案裏面輸入字符時, 必定要在左下角處看到 INSERT 或 REPLACE 才能輸入喔!
[Esc] 退出編輯模式,回到通常模式中(經常使用)
指令行的儲存、離開等指令
:w 將編輯的數據寫入硬盤檔案中(經常使用)
:w! 若文件屬性爲『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 仍是跟你對該檔案的檔案權限有關啊!
:q 離開 vi (經常使用)
:q! 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案。
注意一下啊,那個驚歎號 (!) 在 vi 當中,經常具備『強制』的意思~
:wq 儲存後離開,若爲 :wq! 則爲強制儲存後離開 (經常使用)
ZZ 這是大寫的 Z 喔!若是修改過,保存當前文件,而後退出!效果等同於(保存並退出)
ZQ 不保存,強制退出。效果等同於 :q!
:w [filename] 將編輯的數據儲存成另外一個檔案(相似另存新檔)
:r [filename] 在編輯的數據中,讀入另外一個檔案的數據。亦即將 『filename』 這個檔案內容加到遊標所在行後面
:n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案。
:! command 暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如 『:! ls /home』便可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息!
vim 環境的變動
:set nu 顯示行號,設定以後,會在每一行的前綴顯示該行的行號
:set nonu 與 set nu 相反,爲取消行號!

關機

sync 將數據由內存同步到硬盤中。

shutdown 關機指令,你能夠man shutdown 來看一下幫助文檔。例如你能夠運行以下命令關機:

shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴你們,計算機將在10分鐘後關機,而且會顯示在登錄用戶的當前屏幕中。

shutdown –h now 立馬關機

shutdown –h 20:25 系統會在今天20:25關機

shutdown –h +10 十分鐘後關機

shutdown –r now 系統立馬重啓

shutdown –r +10 系統十分鐘後重啓

reboot 就是重啓,等同於 shutdown –r now

halt 關閉系統,等同於shutdown –h now 和 poweroff
  • 最後總結一下,無論是重啓系統仍是關閉系統,首先要運行 sync 命令,把內存中的數據寫到磁盤中。
  • 關機的命令有 shutdown –h now halt poweroffinit 0 , 重啓系統的命令有 shutdown –r now reboot init 6

用戶管理

用戶的註銷登錄

  • 在真實的項目開發中儘可能避免使用root帳號登錄,由於該用戶的權限過高,避免一些誤操做二而形成一些沒法挽回的損失
  • 註銷用戶logout
    • tip:圖形界面沒有效果,在運行級別3下有效

用戶和用戶組管理

基本瞭解
  • Linux系統是一個多用戶多任務的分時操做系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個帳號,而後以這個帳號的身份進入系統。
  • 用戶的帳號一方面能夠幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另外一方面也能夠幫助用戶組織文件,併爲用戶提供安全性保護。
  • 每一個用戶帳號都擁有一個惟一的用戶名和各自的口令。
  • 用戶在登陸時鍵入正確的用戶名和口令後,就可以進入系統和本身的主目錄。
  • 實現用戶帳號的管理,要完成的工做主要有以下幾個方面:
    • 用戶帳號的添加、刪除與修改。
    • 用戶口令的管理。
    • 用戶組的管理
添加用戶
  • 語法:useradd 選項 用戶名

  • 參數說明:

    • 選項:

      • -c comment 指定一段註釋性描述。
      • -d 目錄 指定用戶主目錄,若是此目錄不存在,則同時使用-m選項,能夠建立主目錄。
      • -g 用戶組 指定用戶所屬的用戶組。
      • -G 用戶組,用戶組 指定用戶所屬的附加組。
      • -s Shell文件 指定用戶的登陸Shell。
      • -u 用戶號 指定用戶的用戶號,若是同時有-o選項,則能夠重複使用其餘用戶的標識號。
    • 用戶名:

      指定新帳號的登陸名。

  • 示例:useradd –d /home/sam -m sam

    • 此命令建立了一個用戶sam,其中-d和-m選項用來爲登陸名sam產生一個主目錄 /home/sam(/home爲默認的用戶主目錄所在的父目錄)。
  • 示例2:useradd -s /bin/sh -g group –G adm,root gem

    • 此命令新建了一個用戶gem,該用戶的登陸Shell是 /bin/sh,它屬於group用戶組,同時又屬於adm和root用戶組,其中group用戶組是其主組。
    • 這裏可能新建組:#groupadd group及groupadd adm
    • 增長用戶帳號就是在/etc/passwd文件中爲新用戶增長一條記錄,同時更新其餘系統文件如/etc/shadow, /etc/group等。
    • Linux提供了集成的系統管理工具userconf,它能夠用來對用戶帳號進行統一管理。
刪除帳號
  • 若是一個用戶的帳號再也不使用,能夠從系統中刪除。刪除用戶帳號就是要將/etc/passwd等系統文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。
  • 刪除一個已有的用戶帳號使用userdel命令 userdel 選項 用戶名
    • 經常使用的選項是 -r,它的做用是把用戶的主目錄一塊兒刪除。
    • 此命令刪除用戶在系統文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除用戶的主目錄。
修改帳號
  • 修改用戶帳號就是根據實際狀況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登陸Shell等。
  • 修改已有用戶的信息使用usermod命令 usermod 選項 用戶名
    • 經常使用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項同樣,能夠爲用戶指定新的資源值。
    • 另外,有些系統可使用選項:-l 新用戶名,這個選項指定一個新的帳號,即將原來的用戶名改成新的用戶名。
  • 示例:usermod -s /bin/ksh -d /home/z –g developer sam
    • 此命令將用戶sam的登陸Shell修改成ksh,主目錄改成/home/z,用戶組改成developer。
用戶口令的管理
  • 用戶管理的一項重要內容是用戶口令的管理。用戶帳號剛建立時沒有口令,可是被系統鎖定,沒法使用,必須爲其指定口令後纔可使用,即便是指定空口令。
  • 指定和修改用戶口令的Shell命令是passwd。超級用戶能夠爲本身和其餘用戶指定口令,普通用戶只能用它修改本身的口令。命令的格式爲:passwd 選項 用戶名
  • 可以使用的選項:
    • -l 鎖定口令,即禁用帳號。
    • -u 口令解鎖。
    • -d 使帳號無口令。
    • -f 強迫用戶下次登陸時修改口令。
    • 若是默認用戶名,則修改當前用戶的口令。

用戶組的管理

  • 每一個用戶都有一個用戶組,系統能夠對一個用戶組中的全部用戶進行集中管理。不一樣Linux 系統對用戶組的規定有所不一樣,如Linux下的用戶屬於與它同名的用戶組,這個用戶組在建立用戶時同時建立。
  • 用戶組的管理涉及用戶組的添加、刪除和修改。組的增長、刪除和修改實際上就是對/etc/group文件的更新。
增長新的用戶組
  • 格式:groupadd 選項 用戶組
    • 可使用的選項有:
      • -g GID 指定新用戶組的組標識號(GID)。
      • -o 通常與-g選項同時使用,表示新用戶組的GID能夠與系統已有用戶組的GID相同。
    • 默認新組的組標識號是在當前已有的最大組標識號的基礎上加1
  • 示例:groupadd -g 101 group2
    • 此命令向系統中增長了一個新組group2,同時指定新組的組標識號是101。
刪除一個已有的用戶組
  • 格式:groupdel 用戶組
修改用戶組的屬性
  • 格式:groupmod 選項 用戶組
    • 經常使用的選項有:
      • -g GID 爲用戶組指定新的組標識號。
      • -o 與-g選項同時使用,用戶組的新GID能夠與系統已有用戶組的GID相同。
      • -n新用戶組 將用戶組的名字改成新名字
  • 示例: groupmod –g 10000 -n group3 group2
    • 此命令將組group2的標識號改成10000,組名修改成group3。
切換當前用戶組
  • 若是一個用戶同時屬於多個用戶組,那麼用戶能夠在用戶組之間切換,以便具備其餘用戶組的權限
  • 用戶能夠在登陸後,使用命令newgrp切換到其餘用戶組,這個命令的參數就是目的用戶組。例如:newgrp root
    • 這條命令將當前用戶切換到root用戶組,前提條件是root用戶組確實是該用戶的主組或附加組。相似於用戶帳號的管理,用戶組的管理也能夠經過集成的系統管理工具來完成。

與用戶帳號相關的系統文件

  • 完成用戶管理的工做有許多種方法,可是每一種方法實際上都是對有關的系統文件進行修改。
  • 與用戶和用戶組相關的信息都存放在一些系統文件中,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。

/etc/passwd文件是用戶管理工做涉及的最重要的一個文件。

  • Linux系統中的每一個用戶都在/etc/passwd文件中有一個對應的記錄行,它記錄了這個用戶的一些基本屬性。

    這個文件對全部用戶都是可讀的

    # cat /etc/passwd
    
    root:x:0:0:Superuser:/:
    daemon:x:1:1:System daemons:/etc:
    bin:x:2:2:Owner of system commands:/bin:
    sys:x:3:3:Owner of system files:/usr/sys:
    adm:x:4:4:System accounting:/usr/adm:
    uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
    auth:x:7:21:Authentication administrator:/tcb/files/auth:
    cron:x:9:16:Cron daemon:/usr/spool/cron:
    listen:x:37:4:Network daemon:/usr/net/nls:
    lp:x:71:18:Printer administrator:/usr/spool/lp:
    sam:x:200:50:Sam san:/home/sam:/bin/sh
  • /etc/passwd中一行記錄對應着一個用戶,每行記錄又被冒號(:)分隔爲7個字段,其格式和具體含義爲:用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登陸Shell

  • 詳解:

    1)"用戶名"是表明用戶帳號的字符串。

    一般長度不超過8個字符,而且由大小寫字母和/或數字組成。登陸名中不能有冒號(😃,由於冒號在這裏是分隔符。

    爲了兼容起見,登陸名中最好不要包含點字符(.),而且不使用連字符(-)和加號(+)打頭。

    2)「口令」一些系統中,存放着加密後的用戶口令字。

    雖然這個字段存放的只是用戶口令的加密串,不是明文,可是因爲/etc/passwd文件對全部用戶均可讀,因此這還是一個安全隱患。所以,如今許多Linux 系統(如SVR4)都使用了shadow技術,把真正的加密後的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如「x」或者「*」。

    3)「用戶標識號」是一個整數,系統內部用它來標識用戶。

    通常狀況下它與用戶名是一一對應的。若是幾個用戶名對應的用戶標識號是同樣的,系統內部將把它們視爲同一個用戶,可是它們能夠有不一樣的口令、不一樣的主目錄以及不一樣的登陸Shell等。

    一般用戶標識號的取值範圍是0~65 535。0是超級用戶root的標識號,1~99由系統保留,做爲管理帳號,普通用戶的標識號從100開始。在Linux系統中,這個界限是500。

    4)「組標識號」字段記錄的是用戶所屬的用戶組。

    它對應着/etc/group文件中的一條記錄。

    5)「註釋性描述」字段記錄着用戶的一些我的狀況。

    例如用戶的真實姓名、電話、地址等,這個字段並無什麼實際的用途。在不一樣的Linux 系統中,這個字段的格式並無統一。在許多Linux系統中,這個字段存放的是一段任意的註釋性描述文字,用作finger命令的輸出。

    6)「主目錄」,也就是用戶的起始工做目錄。

    它是用戶在登陸到系統以後所處的目錄。在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登陸名。各用戶對本身的主目錄有讀、寫、執行(搜索)權限,其餘用戶對此目錄的訪問權限則根據具體狀況設置。

    7)用戶登陸後,要啓動一個進程,負責將用戶的操做傳給內核,這個進程是用戶登陸到系統後運行的命令解釋器或某個特定的程序,即Shell。

    Shell是用戶與Linux系統之間的接口。Linux的Shell有許多種,每種都有不一樣的特色。經常使用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。

    系統管理員能夠根據系統狀況和用戶習慣爲用戶指定某個Shell。若是不指定Shell,那麼系統使用sh爲默認的登陸Shell,即這個字段的值爲/bin/sh。

    用戶的登陸Shell也能夠指定爲某個特定的程序(此程序不是一個命令解釋器)。

    利用這一特色,咱們能夠限制用戶只能運行指定的應用程序,在該應用程序運行結束後,用戶就自動退出了系統。有些Linux 系統要求只有那些在系統中登記了的程序才能出如今這個字段中。

    8)系統中有一類用戶稱爲僞用戶(pseudo users)。

    這些用戶在/etc/passwd文件中也佔有一條記錄,可是不能登陸,由於它們的登陸Shell爲空。它們的存在主要是方便系統管理,知足相應的系統進程對文件屬主的要求。

    常見的僞用戶以下所示:

    僞 用 戶 含 義 
    bin 擁有可執行的用戶命令文件 
    sys 擁有系統文件 
    adm 擁有賬戶文件 
    uucp UUCP使用 
    lp lp或lpd子系統使用 
    nobody NFS使用

擁有帳戶文件

  • 除了上面列出的僞用戶外,還有許多標準的僞用戶,例如:audit, cron, mail, usenet等,它們也都各自爲相關的進程和文件所須要。

    • 因爲/etc/passwd文件是全部用戶均可讀的,若是用戶的密碼太簡單或規律比較明顯的話,一臺普通的計算機就可以很容易地將它破解,所以對安全性要求較高的Linux系統都把加密後的口令字分離出來,單獨存放在一個文件中,這個文件是/etc/shadow文件。 有超級用戶才擁有該文件讀權限,這就保證了用戶密碼的安全性。
  • /etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生

    • 它的文件格式與/etc/passwd相似,由若干個字段組成,字段之間用":"隔開。這些字段是:登陸名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

    • 詳解:

      • "登陸名"是與/etc/passwd文件中的登陸名相一致的用戶帳號
      • "口令"字段存放的是加密後的用戶口令字,長度爲13個字符。若是爲空,則對應用戶沒有口令,登陸時不須要口令;若是含有不屬於集合 { ./0-9A-Za-z }中的字符,則對應的用戶不能登陸。
      • "最後一次修改時間"表示的是從某個時刻起,到用戶最後一次修改口令時的天數。時間起點對不一樣的系統可能不同。例如在SCO Linux 中,這個時間起點是1970年1月1日。
      • "最小時間間隔"指的是兩次修改口令之間所需的最小天數。
      • "最大時間間隔"指的是口令保持有效的最大天數。
      • "警告時間"字段表示的是從系統開始警告用戶到用戶密碼正式失效之間的天數。
      • "不活動時間"表示的是用戶沒有登陸活動但帳號仍能保持有效的最大天數。
      • "失效時間"字段給出的是一個絕對的天數,若是使用了這個字段,那麼就給出相應帳號的生存期。期滿後,該帳號就再也不是一個合法的帳號,也就不能再用來登陸了。
    • 示例:

      # cat /etc/shadow
      
      root:Dnakfw28zf38w:8764:0:168:7:::
      daemon:*::0:0::::
      bin:*::0:0::::
      sys:*::0:0::::
      adm:*::0:0::::
      uucp:*::0:0::::
      nuucp:*::0:0::::
      auth:*::0:0::::
      cron:*::0:0::::
      listen:*::0:0::::
      lp:*::0:0::::
      sam:EkdiSECLWPdSa:9740:0:0::::
  • 用戶組的全部信息都存放在/etc/group文件中。
    • 將用戶分組是Linux 系統中對用戶進行管理及控制訪問權限的一種手段。

    • 每一個用戶都屬於某個用戶組;一個組中能夠有多個用戶,一個用戶也能夠屬於不一樣的組。

    • 當一個用戶同時是多個組中的成員時,在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登陸時所屬的默認組,而其餘組稱爲附加組。

    • 用戶要訪問屬於附加組的文件時,必須首先使用newgrp命令使本身成爲所要訪問的組中的成員。

    • 用戶組的全部信息都存放在/etc/group文件中。此文件的格式也相似於/etc/passwd文件,由冒號(:)隔開若干個字段,這些字段有:組名:口令:組標識號:組內用戶列表

      • "組名"是用戶組的名稱,由字母或數字構成。與/etc/passwd中的登陸名同樣,組名不該重複。
      • "口令"字段存放的是用戶組加密後的口令字。通常Linux 系統的用戶組都沒有口令,即這個字段通常爲空,或者是*。
      • "組標識號"與用戶標識號相似,也是一個整數,被系統內部用來標識組。
      • "組內用戶列表"是屬於這個組的全部用戶的列表/b],不一樣用戶之間用逗號(,)分隔。這個用戶組多是用戶的主組,也多是附加組。
    • 示例:

      root::0:root
      bin::2:root,bin
      sys::3:root,uucp
      adm::4:root,adm
      daemon::5:root,daemon
      lp::7:root,lp
      users::20:root,sam

文件的基本屬性

  • Linux系統是一種典型的多用戶系統,不一樣的用戶處於不一樣的地位,擁有不一樣的權限。爲了保護系統的安全性,Linux系統對不一樣的用戶訪問同一文件(包括目錄文件)的權限作了不一樣的規定。

  • 在Linux中咱們可使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組。

  • 示例:

    [root@www /]# ls -l
    total 64
    dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
    dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
    ……
    • 當爲[ d ]則是目錄
    • 當爲[ - ]則是文件;
    • 如果[ l ]則表示爲連接文檔(link file);
    • 如果[ b ]則表示爲裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
    • 如果[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
  • 接下來的字符中,以三個爲一組,且均爲『rwx』 的三個參數的組合。其中,[ r ]表明可讀(read)、[ w ]表明可寫(write)、[ x ]表明可執行(execute)。 要注意的是,這三個權限的位置不會改變,若是沒有權限,就會出現減號[ - ]而已。

  • 每一個文件的屬性由左邊第一部分的10個字符來肯定(以下圖)。

文件的屬主和屬組

  • 對於文件來講,它都有一個特定的全部者,也就是對該文件具備全部權的用戶。

    同時,在Linux系統中,用戶是按組分類的,一個用戶屬於一個或多個組。

    文件全部者之外的用戶又能夠分爲文件全部者的同組用戶和其餘用戶。

    所以,Linux系統按文件全部者、文件全部者同組用戶和其餘用戶來規定了不一樣的文件訪問權限。

    在以上實例中,mysql 文件是一個目錄文件,屬主和屬組都爲 mysql,屬主有可讀、可寫、可執行的權限;與屬主同組的其餘用戶有可讀和可執行的權限;其餘用戶也有可讀和可執行的權限。

    對於 root 用戶來講,通常狀況下,文件的權限對其不起做用。

更改文件屬性

更改文件屬組
  • 語法1:chgrp [-R] 屬組名 文件名

    • 參數選項
      • -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,若是加上-R的參數,那麼該目錄下的全部文件的屬組都會更改。
  • 語法2:

    chown [–R] 屬主名 文件名
    chown [-R] 屬主名:屬組名 文件名
  • 示例1:

    • 進入 /root 目錄(~)將install.log的擁有者改成bin這個帳號:

      [root@www ~] cd ~
      [root@www ~]# chown bin install.log
      [root@www ~]# ls -l
      -rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
    • 將install.log的擁有者與羣組改回爲root:

      [root@www ~]# chown root:root install.log
      [root@www ~]# ls -l
      -rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
更改文件九個屬性chmod
  • Linux文件屬性有兩種設置方法,一種是數字,一種是符號。

  • Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有本身的read/write/execute權限。

  • 文件的權限字符爲:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,咱們可使用數字來表明各個權限,各權限的分數對照表以下:

    • r:4
    • w:2
    • x:1
  • 每種身份(owner/group/others)各自的三個權限(r/w/x)分數是須要累加的,例如當權限爲: [-rwxrwx---] 分數則是:

    • owner = rwx = 4+2+1 = 7
    • group = rwx = 4+2+1 = 7
    • others= --- = 0+0+0 = 0
  • 因此等一下咱們設定權限的變動時,該文件的權限數字就是770啦!變動權限的指令chmod的語法是這樣的: chmod [-R] xyz 文件或目錄

    • 選項與參數:
      • xyz : 就是剛剛提到的數字類型的權限屬性,爲 rwx 屬性數值的相加。
      • -R : 進行遞歸(recursive)的持續變動,亦即連同次目錄下的全部文件都會變動
  • 示例:若是要將.bashrc這個文件全部的權限都設定啓用,那麼命令以下:

    [root@www ~]# ls -al .bashrc
    -rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# chmod 777 .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

文件與目錄管理

  • 絕對路徑與相對路徑:
    • 絕對路徑:
      路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。
    • 相對路徑:
      路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,能夠寫成: cd ../man 這就是相對路徑的寫法啦!
處理目錄經常使用命令
  • ls: 列出目錄及文件名

    • 選項與參數:
      • -a :所有的文件,連同隱藏文件( 開頭爲 . 的文件) 一塊兒列出來(經常使用)
      • -d :僅列出目錄自己,而不是列出目錄內的文件數據(經常使用)
      • -l :長數據串列出,包含文件的屬性與權限等等數據;(經常使用)
  • cd 路徑:切換目錄

    # 表示回到本身的家目錄,亦便是 /root 這個目錄
    [root@www runoob]# cd ~
    
    # 表示去到目前的上一級目錄,亦便是 /root 的上一級目錄的意思;
    [root@www ~]# cd ..
  • pwd:顯示目前的目錄

    • 選項與參數:
      • -P :顯示出確實的路徑,而非使用連結 (link) 路徑。
  • mkdir 文件名:建立一個新的目錄

    • 選項與參數:
      • -m :配置文件的權限喔!直接配置,不須要看默認權限 (umask) 的臉色~
      • -p :幫助你直接將所須要的目錄(包含上一級目錄)遞歸建立起來!(加了這個 -p 的選項,能夠自行幫你建立多層目錄!)
  • rmdir 文件名:刪除一個空的目錄

    • 選項與參數:
      • -p :連同上一級『空的』目錄也一塊兒刪除
  • cp 來源路徑 目標路徑: 複製文件或目錄

    • 選項與參數:
      • -a:至關於 -pdr 的意思,至於 pdr 請參考下列說明;(經常使用)
      • -d:若來源檔爲連結檔的屬性(link file),則複製連結檔屬性而非文件自己;
      • -f:爲強制(force)的意思,若目標文件已經存在且沒法開啓,則移除後再嘗試一次;
      • -i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動做的進行(經常使用)
      • -l:進行硬式連結(hard link)的連結檔建立,而非複製文件自己;
      • -p:連同文件的屬性一塊兒複製過去,而非使用默認屬性(備份經常使用);
      • -r:遞歸持續複製,用於目錄的複製行爲;(經常使用)
      • -s:複製成爲符號連結檔 (symbolic link),亦即『捷徑』文件;
      • -u:若 destination 比 source 舊才升級 destination
  • rm 文件或者目錄: 移除文件或目錄

    • 選項與參數:
      • -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
      • -i :互動模式,在刪除前會詢問使用者是否動做
      • -r :遞歸刪除啊!最經常使用在目錄的刪除了!這是很是危險的選項!!!
  • mv: 移動文件與目錄,或修改文件與目錄的名稱

    • 語法:

      [root@www ~]# mv [-fiu] source destination
      [root@www ~]# mv [options] source1 source2 source3 .... directory
    • 選項與參數:

      • -f :force 強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋;
      • -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
      • -u :若目標文件已經存在,且 source 比較新,纔會升級 (update)
文件內容查看

Linux系統中使用如下命令來查看文件的內容:

  • cat 由第一行開始顯示文件內容
    • 選項與參數:
      • -A :至關於 -vET 的整合選項,可列出一些特殊字符而不是空白而已;
      • -b :列出行號,僅針對非空白行作行號顯示,空白行不標行號!
      • -E :將結尾的斷行字節 $ 顯示出來;
      • -n :列印出行號,連同空白行也會有行號,與 -b 的選項不一樣;
      • -T :將 [tab] 按鍵以 ^I 顯示出來;
      • -v :列出一些看不出來的特殊字符
  • tac 從最後一行開始顯示,能夠看出 tac 是 cat 的倒着寫!
  • nl 顯示的時候,順道輸出行號!
    • 選項與參數:
      • -b :指定行號指定的方式,主要有兩種:
        -b a :表示不管是否爲空行,也一樣列出行號(相似 cat -n);
        -b t :若是有空行,空的那一行不要列出行號(默認值);
      • -n :列出行號表示的方法,主要有三種:
        -n ln :行號在熒幕的最左方顯示;
        -n rn :行號在本身欄位的最右方顯示,且不加 0 ;
        -n rz :行號在本身欄位的最右方顯示,且加 0 ;
      • -w :行號欄位的佔用的位數
  • more 一頁一頁的顯示文件內容
    • 在 more 這個程序的運行過程當中,你有幾個按鍵能夠按的:
      • 空白鍵 (space):表明向下翻一頁;
      • Enter :表明向下翻『一行』;
      • /字串 :表明在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
      • :f :馬上顯示出檔名以及目前顯示的行數;
      • q :表明馬上離開 more ,再也不顯示該文件內容。
      • b 或 [ctrl]-b :表明往回翻頁,不過這動做只對文件有用,對管線無用。
  • less 與 more 相似,可是比 more 更好的是,他能夠往前翻頁!
    • less運行時能夠輸入的命令有:
      • 空白鍵 :向下翻動一頁;
      • [pagedown]:向下翻動一頁;
      • [pageup] :向上翻動一頁;
      • /字串 :向下搜尋『字串』的功能;
      • ?字串 :向上搜尋『字串』的功能;
      • n :重複前一個搜尋 (與 / 或 ? 有關!)
      • N :反向的重複前一個搜尋 (與 / 或 ? 有關!)
      • q :離開 less 這個程序
  • head 只看頭幾行
    • -n :後面接數字,表明顯示幾行的意思
  • tail 只看尾巴幾行
    • 選項與參數:
      • -n :後面接數字,表明顯示幾行的意思
      • -f :表示持續偵測後面所接的檔名,要等到按下[ctrl]-c纔會結束tail的偵測

yum命令

  • yum( Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。
  • 基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟體包,無須繁瑣地一次次下載、安裝。
  • yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。
  • 語法:yum [options] [command] [package ...]
    • options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇所有爲"yes"),-q(不顯示安裝的過程)等等。
    • command:要進行的操做。
    • package操做的對象。

經常使用命令

  • 1.列出全部可更新的軟件清單命令:yum check-update
  • 2.更新全部軟件命令:yum update
  • 3.僅安裝指定的軟件命令:yum install <package_name>
  • 4.僅更新指定的軟件命令:yum update <package_name>
  • 5.列出全部可安裝的軟件清單命令:yum list
  • 6.刪除軟件包命令:yum remove <package_name>
  • 7.查找軟件包 命令:yum search
  • 8.清除緩存命令:
    • yum clean packages: 清除緩存目錄下的軟件包
    • yum clean headers: 清除緩存目錄下的 headers
    • yum clean oldheaders: 清除緩存目錄下舊的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的headers
相關文章
相關標籤/搜索