1. 程式人生 > >Linux入門基礎之 中

Linux入門基礎之 中

五、Linux 下獲取幫助

  • 沒必要記住所有東西
  • Linux 提供了極為詳細的幫助工具及文件,一定要養成查幫助文件的習慣,可以大大減少需要記憶的東西並且提高效率

5.1、HELP

  • 幾乎所有命令都可以使用 -h 或 --help 引數獲取使用方法、引數資訊等。

5.2、MAN

  • man 命令是 Linux 中最為常用的幫助命令,將要獲取幫助的命令作為引數執行 man 命令就可以獲取相應的文件幫助
  • man 文件分為很多型別
部分 型別
1 使用者命令
2 核心引數呼叫
3 庫函式
4 特殊檔案和裝置
5 檔案格式和規範
6 遊戲
7 規範、標準和其他頁面
8 系統管理頁面
9 Linux 核心 API
  • man -k 關鍵字,可以用來查詢包含該關鍵字的文件

5.3、INFO

  • info 與 man 類似,但是提供的資訊更為詳細深入,以類似網頁的形式顯示
  • info 與 man 一樣都可以通過 “/+關鍵字” 方式進行搜尋

5.4、DOC

  • 很多程式、命令都帶有詳細的文件,以 TXT、 HTML、 PDF 等方式儲存在 /usr/share/doc 目錄中,這些文件是相應程式最為詳盡的文件

六、使用者及許可權基礎

6.1、Linux 使用者基礎

6.1.1 使用者、組

  • 當我們使用 Linux 時,需要以一個使用者的身份登入,一個程序也需要以一個使用者的身份執行,使用者限制使用者或程序可以使用、不可以使用哪些資源。
  • 組用來方便組織管理使用者
    • 每個使用者擁有一個 UserID ,作業系統實際使用的是使用者 ID ,而非使用者名稱
    • 每個使用者屬於一個主組,屬於一個或多個附屬組
    • 每個組擁有一個 GroupID
    • 每個程序以一個使用者身份執行,並受該使用者可訪問的資源限制
    • 每個可登入使用者擁有一個指定的 shell

6.1.2 使用者

  • 使用者 ID 為32位,從0開始,但是為了和老式系統相容,使用者 ID 限制在60000以下
  • 使用者分為以下三種:
    • -root 使用者:ID 為0的使用者為 root 使用者
    • 系統使用者:1~499
    • 普通使用者:500以上
  • 系統中的檔案都有一個所屬使用者及所屬組
  • 使用 id 命令可以顯示當前使用者的資訊
  • 使用 passwd 命令可以修改當前使用者密碼

6.1.3 相關檔案

  • /etc/passwd 儲存使用者資訊
  • /etc/shadow 儲存使用者密碼(加密的)
  • /etd/group 儲存組資訊

6.1.4 檢視登入的使用者

  • 命令 whoami 顯示當前使用者
  • 命令 who 顯示有哪些使用者已經登入系統
  • 命令 w 顯示有哪些使用者已經登入並且在幹什麼

6.1.5 建立一個使用者

  • 命令 useradd 用以建立一個新使用者
    • useradd nash_su , 這個命令會執行以下操作:
      • 1 在 /etc/passwd 中新增使用者資訊
      • 2 如果使用 passwd 命令建立密碼,則將密碼加密儲存在 /etc/shadow 中
      • 3 為使用者建立一個新的家目錄 /home/nash_su
      • 4 將 /etc/skel 中的檔案複製到使用者的家目錄中
      • 5 建立一個與使用者使用者名稱相同的組,新建使用者預設屬於這個同名組
  • 命令 useradd 支援以下引數:
    • -d 家目錄
    • -s 登入shell
    • -u userid
    • -g 主組
    • -G 附屬組(最多31個,用 “ , ”分隔)
    • 也可通過直接修改 /etc/passwd 的方式實現,但是不建議

6.1.6 修改使用者資訊

  • 命令 usermod 用來修改使用者資訊
    • usermod 引數 username
  • 命令 usermod 支援以下引數:
    • -l 新使用者名稱
    • -u 新 userid
    • -d 使用者家目錄位置
    • -g 使用者所屬主組
    • -G 使用者所屬附屬組
    • -L 鎖定使用者使其不能登入
    • -U 解除鎖定

6.1.7 刪除使用者

  • 命令 userdel 用以刪除指定使用者:
    • userdel nash_su ( 保留使用者的家目錄 )
    • userdel -r nash_su ( 同時刪除使用者的家目錄 )

6.2、組

6.2.1 組

  • 幾乎所有作業系統都有組的概念,通過組,我們可以更加方便的歸類、管理使用者。一般來講,我們使用部門、職能或地理區域的分類方式來建立使用組。
    • 每個組有一個組 ID
    • 組資訊儲存在 /etc/group 中
    • 每個使用者擁有一個主組,同時還可以擁有最多31個附屬組

6.2.2 建立、修改、刪除組

  • 命令 groupadd 用以建立組
    • groupadd linuxcast
  • 命令 groupmod 用以修改組資訊
    • groupmod -n newname oldname 修改組名
    • groupmod -g newGid oldGid 修改組 ID
  • 命令 groupdel 用以刪除組
    • groupdel linuxcast
  • 示例
    • 現在有三個部門,每個部門有兩個員工,下面分別建立組和使用者
先建立組:
groupadd training
groupadd market
groupadd manage

再建立使用者:
useradd -G training nash_su
useradd -G training bob
useradd -G market alice
useradd -G market john
useradd -G manage steve
useradd -G manage david

6.3、Linux 許可權機制

6.3.1 許可權概念

  • 許可權是作業系統用來限制對資源訪問的機制,許可權一般分為 讀、寫、執行。系統中每個檔案都擁有特定的許可權、所屬使用者及所屬組,通過這樣的機制來限制哪些使用者、哪些組可以對特定檔案進行什麼樣的操作。
  • 每個程序都是以某個使用者的身份執行,所以程序的許可權與該使用者的許可權一樣,使用者的許可權大,該程序擁有的許可權就大。

6.3.2 檔案許可權

  • Linux 中,每個檔案擁有以下三種許可權:
許可權 對檔案的影響 對目錄的影響
r (讀取) 可讀取檔案內容 可列出目錄內容
w (寫入) 可以修改檔案內容 可在目錄中建立刪除檔案
x (執行) 可以作為命令執行 可訪問目錄內容
  • 目錄必須擁有 x 許可權,否則無法檢視其內容

6.3.3 UGO

  • Linux 許可權基於 UGO 模型進行控制
    • U 代表 User ,G 代表 Group , O 代表 Other
    • 每一個檔案的許可權基於 UGO 進行設定
    • 許可權三個一組(rwx),對應 UGO 分別設定
    • 每一個檔案擁有一個所屬使用者和所屬組,對應 UG ,不屬於該檔案所屬使用者或所屬組的使用 O 許可權
  • 命令 ls -l 可以檢視當前目錄下檔案的詳細資訊
    • drwxr-xr-- 2 nash_su training 208 Oct 1 13:50 linuxcast.net
      • d : 檔案型別
      • rwxr-xr-- : UGO
        • rwx : U 許可權
        • r-x : G 許可權
        • r-- : O 許可權
      • 2 : 連結數量
      • nash_su : U 所屬使用者
      • training : G 所屬組
      • 208 : 大小
      • Oct 1 13:50 : 時間
      • linuxcast.net : 檔名

6.3.4 修改檔案所屬使用者、組

  • 命令 chown 用以改變檔案的所屬使用者
    • chown nash_su linuxcast.net
    • -R 引數遞迴的修改目錄下的所有檔案的所屬使用者
  • 命令 chgrp 用以改變檔案的所屬組
    • chgrp nash_su linuxcast.net
    • -R 引數遞迴的修改目錄下的所有檔案的所屬組

6.3.5 修改檔案許可權

  • 命令 chmod 用以修改檔案的許可權

    • chmod 模式 檔案
  • 模式為如下格式:

    • u、g、o 分別代表使用者、組和其他
    • a 可以代指 ugo
    • +、- 代表加入或刪除對應許可權
    • r、w、x 代表三種許可權
  • 模式示例:

    • chmod u+rw linuxcast.net
    • chmod g-x linuxcast.net
    • chmod go+r linuxcast.net
    • chmod a-x linuxcast.net

  • 命令 chmod 也支援以數字方式修改許可權,三個許可權分別由上數字表示:

    • -r = 4 (2^2)
    • -w = 2 (2^1)
    • -x = 1 (2^0)
  • 使用數字表示許可權時,每組許可權分別為對應數字之和:

    • rw = 4+2 = 6
    • rwx = 4+2+1=7
    • r-x = 4+1=5
  • 所以,使用數字表示 ugo 許可權使用如下方式表示

    • chmod 660 linuxcast.net == rw-rw----
    • chmod 775 linuxcast.net == rwxrwxr-x
  • 例項:

    • 假設 LinuxCast.net 使用者、組如下:
    使用者
    training nash_su 、 bob
    market alice 、 john
    manage steve 、 david
    • 現要求為各部門、員工建立相應的工作資料夾,要求如下:
      • 所有目錄、檔案儲存在統一的一個資料夾下
      • 每個部門擁有一個獨立的資料夾
      • 不同部門之間不可訪問各自資料夾
      • 每個員工在所在部門資料夾下擁有一個所屬的資料夾
      • 同部門不同員工之間可以檢視各自資料夾內容,但不可修改,使用者僅能夠修改自己的內容
groupadd training
groupadd market
groupadd manage

useradd -G training nash_su
useradd -G training bob
useradd -G market alice
useradd -G market john
useradd -G manage steve
useradd -G manage david

根目錄下建立資料夾:
mkdir linuxcast.net

cd linuxcast.net

mkdir training
mkdir market
mkdir manage

chgrp manage manage/
chgrp market market/
chgrp training training/

chmod o-rx manage/
chmod o-rx market/
chmod o-rx training/

cd training/
mkdir nash_su
mkdir bob
chown nash_su nash_su
chown bob bob
chgrp training bob
chgrp training nash_su
chmod o-rx bob
chmod o-rx nash_su

cd ..
cd market/
mkdir alice
mkdir john
chown alice alice
chown john john
chgrp market alice
chgrp market john
chmod o-rx alice
chmod o-rx john

cd ..
cd manage
mkdir steve
mkdir david
chown steve steve
chown david david
chgrp manage steve
chgrp manage david
chmod o-rx steve
chmod o-rx david

6.4、Linux 擴充套件許可權

6.4.1 預設許可權

  • 每一個終端都擁有一個 umask 屬性,來確定新建檔案、資料夾的預設許可權
  • umask 使用數字許可權方式表示,如:022
  • 目錄的預設許可權是:777-umask
  • 檔案的預設許可權是:666-umask
  • 一般,普通使用者的預設 umask 是002,root 使用者的預設 umask 是022
  • 也就是說,對於普通使用者來講:
    • 新建檔案的許可權是:666-002=664
    • 新建目錄的許可權是:777-002=775
  • 命令 umask 用以檢視設定 umask 值
    • umask 022

6.4.2 特殊許可權

  • 除了普通許可權以外,還有三個特殊許可權
許可權 對檔案的影響 對目錄的影響
suid 以檔案的所屬使用者身份執行,而非執行檔案的使用者
sgid 以檔案所屬組身份執行 在該目錄中建立的任意新檔案的所屬組與該目錄的所屬組相同
sticky 對目錄擁有寫入許可權的使用者僅可以刪除其擁有的檔案,無法刪除其他使用者所擁有的檔案
  • 設定特殊許可權

    • 設定 suid : chmod u+s linuxcast.net
    • 設定 sgid : chmod g+s linuxcast.net
    • 設定 sticky : chmod o+t linuxcast.net
  • 與普通許可權一樣,特殊許可權也可以使用數字方式表示

    • -SUID = 4
    • -SGID = 2
    • -Sticky = 1
    • 所以,我們可以通過以下命令設定:
    chmod 4755 linuxcast.net

七、Linux 網路基本配置

7.1、網路基礎

7.1.1 網路編址

  • 網路編址就相當於身份證上的家庭住址和姓名,功能就是在網際網路中唯一的定位一臺裝置,可以是計算機,可以是伺服器,也可以是其他一些網路服務裝置等等

7.1.2 IP 編址

  • IP 編址是一個雙層編址方案,一個 IP 地址標識一個主機(或一個網絡卡介面)
  • 現在應用最為廣泛的是IPv4 編址,已經開始逐漸向 IPv6 編址切換
  • IPv4 地址為32位長,IPv6 地址為128位長
  • 一個 IPv4 地址分為兩個部分:網路部分 和 主機部分
  • 網路部分用來標識所屬區域,相當於身份證的地址;主機部分用來標識該區域中的哪個主機,相當於身份證的姓名。

7.1.3 IP 地址

  • IPv4 地址共32位,通常使用點分十進位制方式表示
  • 整個 IP 地址分為4個部分,每個部分8位
  • 例如:
    • ​ 192 . 168 . 1 . 1
    • 11000000.10101000.00000001.00000001

7.1.4 子網掩碼

  • IPv4 地址的 32bit 分為網路部分和主機部分
  • 我們通過子網掩碼來確定網路部分的位數
  • 子網掩碼與 IP 地址一樣,擁有 32bit ,每一位與 IP 地址中的每一位一一對應
  • IP 地址中相對應子網掩碼中為1的部分為網路部分
  • 例如:

    IP: 192 . 168 . 1 . 1

​ 11000000.10101000.00000001.00000001

子網掩碼: 255 . 255 . 255 . 0

​ 11111111.11111111.11111111.00000000

  • 證明此 IP 地址前24位是網路部分,也就是說,與此 IP 地址處在同一網路的其他主機的 IP 地址前24位相同,以證明他們在同一網路
  • 例:通過比較網路部分是否相同來判斷是否處於同一網路

如上圖所示,有三個網段在三個區域,北京地區的網段是 192.168.1.0,/24 是子網掩碼的簡寫,代表前24位是網路部分,寫成點分十進位制就是 255.255.255.0 ,主機A、B、C 都是屬於192.168.1.0 網段,/24 的子網掩碼代表A、B、C 或者其他主機只要是在這個網段之內,它的前24位或者前三部分必然都是 192.168.1 ,分別用 .1 、 .2 、.3 去標識這個網段中不同的主機。同樣,處於西安地區的網路是 172.16.1.0 ,也是 /24 的網路,表示這個網路當中所有主機的前3部分都是172.16.1 ,分別用 .1 、 .2 、 .3 去標識不同的主機。那上海地區的網路是 10.0.0.0 /8 ,也就是說第一個8位組或者點分十進位制的第一部分或者二進位制部分的前8位是用來規定網路部分的,這個網路中只要是以 10. 開頭的網路都屬於同一網段,如 10.0.0.1 , 10.1.1.1 ,10.100.32.45 等都是屬於這同一個網段。

7.1.5 同一個網路主機之間的通訊

  • 同一個網路內主機之間的通訊還需要用到一個編址就是 MAC 地址
  • MAC 地址就是用來在同一個網路之內的主機之間通訊的,通常同一個網路之內主機都是直接連線的
  • ARP :地址解析協議

7.1.6 不同網路之間通訊

  • 只要是去訪問不在同一網段的網路,都需要使用到路由器去轉發,路由器就是一箇中間人的角色

7.1.7 路由

  • 在不同網路之間傳輸資料的功能叫做路由功能,一般有多個介面,連線到不同的網路中,並且通過路由表進行資料轉發,

  • 路由表
目標網路 子網掩碼 出介面
192.168.1.0 255.255.255.0 eth0
172.16.1.0 255.255.0.0 eth1
61.1.1.0 255.255.255.252 eth2
  • 通常指的閘道器就是路由器的 IP 。

7.1.8 域名

  • IP 地址往往難以記憶,所以我們一般使用域名進行管理,例如:www.baidu.com
  • 域名分為三個部分,用 “ . ” 分隔
    • 型別 :標識此域名的型別,如:com、net、org、edu、gov 等
    • 域名 :域名稱,如:baidu
    • 主機名:該域中的某臺主機名稱,如:www
  • 域名大小寫不敏感

  • 主機名是可以隨變起的,之所以大家都用 www 是因為約定俗成 www 是網頁伺服器,網頁伺服器也可以不叫這個名字,隨變叫什麼都可以

7.1.9 DNS

  • 每個域名代表一個 IP ,而 DNS 服務就是用來在 IP 與域名之間進行轉換的

7.1.10 基本網路引數

  • 要配置一個區域網通訊的計算機:

    • IP 地址
    • 子網掩碼
  • 要配置一個跨網段通訊的計算機:

    • IP 地址
    • 子網掩碼
    • 閘道器
  • 要配置一個可上網的計算機:

    • IP 地址
    • 子網掩碼
    • 閘道器
    • DNS

7.2、Linux 網路基礎配置

7.2.1 乙太網連線

  • 在 Linux 中,乙太網介面被命名為: eth0、eth1 等,0、1代表網絡卡編號
  • 通過 lspci 命令可以檢視網絡卡硬體資訊(如果是 usb 網絡卡,則可能需要使用 lsusb 命令)
  • 命令 ifconfig 用來檢視介面資訊
    • ifconfig -a 檢視所有介面
    • ifconfig eth0 檢視特定介面
  • 命令 ifup 、 ifdown 用來啟用、禁用一個介面
    • ifup eth0
    • ifdown eth0

7.2.2 配置網路資訊

  • 使用 setup 命令可以配置網路資訊,配置一個或多個網絡卡步驟如下,
    • setup -> Network configuration -> Device configuration -> eth0...(如果是多個網絡卡,第二次這個頁面選擇 New Device ) -> 按下鍵選到 Use DHCP 按空格鍵,預設選擇的* 會消失掉 ,Static IP 輸入:192.168.1.210,Netmask 輸入:255.255.255.0,Default gateway IP 輸入:192.168.1.1,Primary DNS Server 輸入:61.134.1.4,還可以配置多個 DNS ,在 Secondary DNS Server 輸入:210.30.19.40,設定完成後選擇 OK 鍵,Select A Device 頁面選擇 Save 儲存,再選擇 SaveQuit 儲存退出,最後選擇 Quit 退出。(輸入的 IP 地址要根據自己的實際情況輸入!)
  • 配置完成後,使用 ifup 啟用網絡卡,並使用 ifconfig 命令檢視資訊
    • ifup eth0

7.2.3 網路相關配置檔案

  • 網絡卡配置檔案
    • /etc/sysconfig/network-scripts/ifcfg-eth0
  • DNS 配置資訊
    • /etc/resolv.conf
  • 主機名配置檔案
    • /etc/sysconfig/network
  • 靜態主機名配置檔案
    • /etc/hosts

7.2.4 網路測試命令

  • 測試網路連通性 ( Ctrl + C 結束 )
    • ping 192.168.1.1
    • ping www.linuxcast.net
  • 測試 DNS 解析
    • host www.linuxcast.net
    • dig www.linuxcast.net
  • 顯示路由表
    • ip route
  • 追蹤到達目的地址的網路路徑
    • traceroute www.linuxcast.net
    • traceroute www.douban.com
  • 使用 mtr 進行網路質量測試 (結合了 traceroute 和 ping)
    • mtr www.linuxcast.net

7.2.5 修改主機名

  • 實時修改主機名(重啟後會恢復)
    • hostname train.linuxcast.net
  • 永久性修改主機名
    • /etc/sysconfig/network 檔案下修改 HOSTNAME = train.linuxcast.net

7.2.6 故障排查

  • 網路故障排查遵循 從底層到高層、從自身到外部 的流程進行
  • 先檢視網路配置資訊是否正確
    • IP 網址
    • 子網掩碼
    • 閘道器
    • DNS
  • 再檢視到達閘道器是否連通
    • ping 閘道器 IP 地址
  • 再檢視 DNS 解析是否正常
    • host www.linuxcast.net
    • host www.126.com
    • host www.douban.com