五、Linux 下獲取幫助 沒必要記住所有東西 Linux 提供了極為詳細的幫助工具及文檔,一定要養成查幫助文檔的習慣,可以大大減少需要記憶的東西並且提高效率 5.1、HELP 幾乎所有命令都可以使用 h 或 help 參數獲取使用方法、參數信息等。 5.2、MAN man 命令是 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