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 nash_su , 這個命令會執行以下操作:
- 命令 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 : 檔名
- drwxr-xr-- 2 nash_su training 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