Linux 系統基礎知識

 

內容目錄

1、Linux 系統概述

2、Linux 用戶和用戶組管理

3、Linux 文件和目錄管理

4、Linux 文件系統管理

5、Linux LVM 配置

6、Linux 網絡管理

7、Linux 進程與任務管理

8、Linux 系統監控

9、Linux 管道與I/O重定向


1、Linux 系統概述

  1. Linux 的發展:離不開它的前身 Unix

    • Unix 的發展:

      1970 年,Ken Thompson 研發出 Unix 內核;1970 年爲Unix 元年

      1973 年,Ritchie 用 C 語言編寫了 Unix 內核,Unix 正式誕生;

      1974 年,Unix 對外公佈,開始廣泛流行。

    • Linux 的產生和發展:

      1986 年,Tanenbaum 研發出 MINIX,並於次年發佈;

      1991 年,Linus 研發出 Linux 內核的雛形;

      1994 年,Linux 1.0 內核發佈;

      1995 年以後,各種不同的 Linux 發行版本相繼出現。

    • Linux 發行版本(內核是一樣的):

      Redhat 、SUSE Enterprise、CentOS:側重於網絡服務,企業管理

      Debian、Stackware:側重於服務器及其穩定性

      Ubuntu、Fedora、Open SUSE:側重於用戶體驗

    • Unix 和 Linux 的區別:

      Unix Linux
      商業付費 免費開源
      與硬件配套 跨平臺
      對硬件要求苛刻 對硬件要求很低
      安裝複雜 安裝簡單
      使用複雜 使用簡單
      穩定 次穩定(好於Windows)
  2. Linux 的結構:

    • 應用程序

    • 外殼(shell):用戶和內核之間的命令解釋器,可以根據自己的需求更換 shell,shell 與 kernel 可分離

      常見的 shell 有:bash(Linux 默認的 shell),sh(Unix 默認的 shell),ksh(korn shell),c shell 等等,其中以 bash(Bourne-Again Shell)最爲流行:它基於 Bourne shell,吸收了 C shell 和 Ksh 的一些特性。bash 完全兼容 sh,也就是說,用 sh 寫的腳本可以不加修改的在 bash 中執行

    • 內核(kernel):Linux 操作系統的核心,直接控制計算機資源

    • 硬件

  3. Linux 的特點:

    • 多任務,多用戶:CPU 時間分片,分給不同的進程;允許多個用戶同時登陸使用。

    • 管道:前一個程序的輸出作爲後一個程序的輸入,看起來好像管道一樣

    • 功能強大的 shell:shell 是一種解釋型高級語言

    • 安全保護機制,穩定性好:防止系統及其數據未經許可而被非法訪問,穩定性 Unix 好於 Linux,Linux 好於 Windows

    • 用戶界面:常用命令行的方式,同時提供圖形界面

    • 強大的網絡支持:TCP/IP 協議就是 Linux 的缺省網絡協議

    • 移植性好:源代碼用 C 語言寫成,便於移植到其它計算機上

2、Linux 用戶和用戶組管理

  1. Linux 的用戶和用戶組

    在 Linux 操作系統中,Linux 用戶會歸屬於用戶組,那麼歸屬於同一用戶組的不同用戶,它對一些公共文件具有相同的訪問權限,每個用戶對它所歸屬的文件具有其適用的訪問權限。

  2. Linux 通過 UID 和 GID 來管理用戶和用戶組

    • UID(User ID):通過配置文件 /etc/password 儲存,記錄的是單個用戶的登陸信息

        root:x:0:0:root:/root:/bin/bash  
      

      被冒號分成七個字段:分別爲:用戶名、密碼、UID、GID、用戶描述、用戶家目錄、用戶的 shell 類型

      擴展閱讀:

      Linux 系統中通常有三種類型的用戶:超級用戶(super user),常規用戶(regular user)和系統用戶(system user)。

      超級用戶的 UID 和 GID 都是 0。不管系統中有多少個系統管理員,都只有一個超級用戶帳號。超級用戶帳號,通常指的是 root user,對系統擁有完全的控制權。超級用戶是唯一的。

      常規用戶的 UID 500 - 60000。指那些登陸到 Linux 系統,但不執行管理任務的用戶,例如文字處理或者收發郵件等

      系統用戶的 UID 1 — 499系統用戶並不是一個人,也被稱爲邏輯用戶或僞用戶。系統用戶沒有相應的 /home 目錄和密碼。系統帳號通常是 Linux 系統使用的一個管理日常服務的管理帳號

    • GID(Group ID):通過配置文件 /etc/group 儲存的,記錄 GID 和用戶組組名的對應關係

        root:x:0:
      

      root 用戶組的 GID 爲0

        smc:!:1001:
      

      SMC 用戶組的 GID 爲1001

      擴展閱讀:

      沒有 supergroup
      Systemgroup:GID 0 - 499
      一般組:GID 500 - 60000

  3. 用戶管理的常用命令

    • 用戶查詢命令:

      id:查詢當前登陸用戶的 GID 和 UID。

      finger:查詢當前用戶的屬性信息,包含家目錄和 shell 類型。

    • 新增用戶:useradd[參數][用戶名]

        linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
      

      -d:設置用戶的家目錄

      -m:設置的家目錄不存在時自動創建

      -u:設置用戶的 UID

      -g:設置初始 GID 或組名

      -s:設置用戶的shell,如:/bin/csh

      上例最後的 ipcc 指的是該用戶的用戶名

        linux: ~ # useradd ipcc
      

      這個例子中沒有參數,直接創建用戶名爲 ipcc 的用戶,如果在新增用戶時沒有指定參數信息,系統就會去讀取 /etc/default/useradd 配置文件,它規定了默認的初始用戶組和 shell 等。

        linux: ~ # useradd –D
      

      如果需要查詢基本的設置,通過 useradd –D 讀取默認的配置。

    • 刪除用戶:userdel [參數] [用戶名]

        linux:~ # userdel ipcc
      

      刪除 ipcc 用戶

        linux:~ # userdel -r iptv 
      

      加上 -r,會將用戶的家目錄一起刪除。

    • 新增完用戶後,需要設置和修改用戶密碼:passwd[用戶名]。常規用戶只能不輸入用戶名,修改當前用戶的密碼,超級用戶可以加上用戶名修改其他用戶的密碼。輸入正確後,這個新口令被加密並放入 /etc/shadow 文件

      注意:在 ubuntu 的默認 shell 中,密碼不會顯示出來,且再修改密碼時,會多次提示你輸入密碼以確保正確性

    • 修改用戶屬性:usermod[參數][用戶名]

        linux:~ # usermod -d /opt/ipcc ipcc
      

      -d 修改用戶家目錄
      -g 修改初始用戶組

    擴展閱讀:su 命令用於變更爲其他使用者的身份,除 root 外,需要鍵入該使用者的密碼
    http://www.runoob.com/linux/linux-comm-su.html

  4. 用戶組管理常用命令

    • 新增用戶組:groupadd

        linux:~ # groupadd ipcc
      
        linux:~ # groupadd -g 2000 iptv
      

      -g 指定組 ID

    • 刪除用戶組:groupdel [用戶名]

        linux:~ # groupdel iptv
      
    • 修改用戶組:groupmod [參數] [用戶名] -

        linux:~ # groupmod -g 2500 -n ipcc1 ipcc
      

      g 修改組 ID -n 修改組名

3、Linux 文件和目錄管理

  1. Linux 的文件結構類似於倒樹形結構,樹的 root 是 / 文件夾

    • 根目錄下的子目錄以及存放的內容:

      2106579-ab12fa4fd5685ceb.png

    • 常用文件夾

      • /etc

        • 配置文件
        • 大部分是 *.conf
          • /etc/passwd , /etc/group , /etc/shadow 除外
      • /home

        • 用戶家目錄
        • /home/用戶名
      • /root

        • 超級用戶 root 的目錄
      • /tmp

        • 臨時文件區
      • /var/tmp

        • 臨時文件區
      • /boot

        • Boot filesystem
        • 啓動加載器
        • 內核及 init ram dist
      • /dev

        • 設備文件
        • /dev/sda 是硬盤
        • /dev/sda1 是分區
        • 注意:Linux 的思想,一切都是文件
      • /media

        • 本機硬盤以外的儲存設備
        • 例如:/media/CDROM
      • /mnt

        • 本機硬盤以外的儲存設備
        • Red Hat 習慣手動掛載於此
  2. 絕對路徑與相對路徑

    • 絕對路徑:由根目錄(/)開始寫起的文件名或者目錄名,例如: /home/student/file.txt

    • 相對路徑:基於當前路徑的的文件名或者目錄名寫法,. 代表當前目錄 .. 代表上一級目錄

      舉例:假如目前在 /home/smc 目錄下,想要切換到 /home/smc/bin/smc 目錄下,首先可以使用絕對路徑,命令如下:

        cd /home/smc/bin/smc
      

      操作完成後,想要回到剛纔的 /home/smc 目錄下,可以使用相對路徑,命令如下;

        cd ../..
      

      再舉例:目前在 /tmp,想要去 /home/student/file.txt

        ../home/student/file.txt
      

      再舉例:目前在 /home,想要去 /home/student/file.txt

        student/file.txt
      
  3. 文件和目錄的基本操作

    • 顯示當前目錄下的所有文件:ls (list segment)

      • ls -l :顯示出詳細信息
    • 顯示當前的工作目錄:pwd (print working directory

    • 變更工作目錄:cd

        cd 
        cd /home/smc/bin/smc
        cd ../..
      

      第一條指令,cd 後面不跟任何路徑,則是回到主目錄

    • 新增目錄(必須具備寫權限):mkdir[-m 模式][-p] 目錄名

        mkdir temp
        mkdir -m 777 temp/abc
      

      -m 指定存取模式,設置爲777,所有文件可讀可寫可執行
      -p 建立目錄時建立其所有不存在的父目錄

    • 刪除目錄(對父目錄具備寫權限):rmdir [-p] 目錄名

      用於刪除空目錄,如果刪除非空目錄,則使用 rm 再加上參數即可

      –p 刪除目錄及父目錄

    • 複製文件或目錄(對父目錄具備寫權限) :cp 源文件或目錄 目的文件或目錄

      • cp /etc/passwd /tmp/passwd :絕對路徑是最標準的寫法
      • cp /etc/passwd /tmp :相同文件名稱
      • cp /etc/passwd /tmp/. :在/tmp目錄下,相同名稱拷貝,與上結果一樣
      • cp /etc/passwd . :當前文件夾下,相同名稱拷貝
    • 移動文件或目錄(對父目錄具備寫權限):mv 源文件或目錄 目的文件或目錄

      • mv /tmp/passwd /tmp/abc :更改文件名稱
      • mv /tmp/passwd /var/tmp/passwd :移動文件,名稱不變
      • mv /tmp/passwd /var/tmp/abc:移動文件並更改文件名稱
      • 注意SELinux security context
    • 刪除文件或目錄(對父目錄具備寫權限):rm[-ir] 文件或目錄

      -name 以指定字符串開頭的文件名 -user 查找指定用戶所擁有的文件。

  4. 查看文件內容:

    • cat:直接查閱文件內容,不能翻頁

    • more:翻頁查看文件內容

    • less:翻頁閱讀,和 more 類似。但操作按鍵比 more 更加彈性。

    • head:查看文檔的頭部幾行內容,默認爲 10 行,可用-數字 來查看特定行數

    • tail:查看文件的尾部幾行內容,默認爲 10 行,可用-數字 來查看特定行數

4、Linux 文件系統管理

  1. 文件系統的概念:操作系統用於明確存儲和組織計算機數據的方法,使得對數據的查找和訪問變得更加容易。用戶不需要關心文件位於d硬盤的數據塊地址。

  2. 存儲在介質中數據的三個因素

    文件名:定位存儲的位置

    數據:文件的具體內容

    元數據 meta-data:文件有關的信息。例如文件的權限、所有者、文件的修 改時間等。

    Linux 支持的文件系統類型可查看 /etc/filesystems

  3. 文件系統的分類

    • 根據是否有日誌?

      • 傳統型文件系統:寫入文件內容的時候,先寫數據,再寫元數據,若寫元數據前斷電,則會造成文件不一致。典型的:ext2(Linux 默認的文件系統)

      • 日誌型文件系統:寫入文件內容的時候,先寫日誌記錄文件(更安全)。典型的:ext3 = ext2 + 日誌 ,ReiserFS (基於平衡樹,搜索快,節約空間)

    • 根據如何查找數據?

      • 索引式文件系統:文件屬性數據和實際內容放在不同的區塊,例如 Linux 中默認的 ext2 文件系統中,文件屬性數據存放在 inode(類似於指針),實際內容放在 block。ext2 一開始就規劃好了 inode 與 block ,所以數量龐大,不容易管理,所以有分組

        2106579-b71e3f2eb47dbf42.png

      • 非索引式文件系統:只有 block,數據需要一個 block 接一個 block 讀取(下一個 block 位置存放在上一個 block 中),效率低。 典型的:FAT(Windows 的文件系統)

        2106579-c0507b51e0e4840d.png

        碎片整理:寫入的數據的 block 太過分散,此時讀取的效率會很低。磁盤整理的目的,就是將這些分散的 block 儘量的集中起來。

  4. 配置文件系統分區

    • 創建分區:fdisk + 設備名,輸入完該命令之後,可以通過參數 m 查看按鍵操作說明,通過參數 p 可以得到本磁盤的相關信息,輸入 n 命令可以新建一個分區。使用完 n 命令之後,新建分區的步驟如下:

      選擇分區類型

      選擇分區開始的磁柱

      決定分區的大小

      保存新建的分區 (w 命令)

      通過重啓服務器或使用 partprobe 命令通知內核

    • 創建文件系統:mkfs [參數] 設備名。-t 指定文件系統類型,如 ext3。 -b 指定 block 大小,單位 bytes,ext2 和 ext3 僅支持 1024/2048/4096 三種。

    • 掛載文件系統:mount + 設備名 + 掛載點。掛載的過程就是將文件系統和目錄樹上的某一個目錄結合。 -t -b 同上。

        mount /dev/sda6/root/testmount
      
  5. 管理 Linux 文件系統

    • 查看分區使用情況:

      • df:查看文件系統的磁盤空間佔用情況,參數 –h 以容易理解的格式打印出文件系統大小,參數 –i 顯示 inode 信息而非塊使用量。

      • du:查看文件或目錄的磁盤使用空間,參數 –a 顯示目錄下的每個文件所佔的磁盤空間,參數 –s 只顯示大小的總和,參數 -h 以容易理解的格式輸出文件大小值,如多少 Mb

    • 查看系統打開的文件:lsof

      Isof filename 顯示打開指定文件的所有進程

      Isof –c string 顯示以指定字符開頭的進程所有打開的文件

      Isof –u username 顯示所屬 username 相關進程打開的文件

  6. 修復文件系統:

    • fsck 參數 設備名:檢查文件系統並嘗試修復錯誤。執行 fsck 時,必須首先要將修復的設備進行umount 後,再執行 fsck 命令。

    • e2fsck:檢查和修復 ext2 和 ext3 文件系統

5、Linux LVM 配置

LVM:Logical Volume Manager

  • 傳統:文件系統構建在物理分區(PP:physical partition)之上,物理分區的大小直接決定了文件系統的容量。LVM:使文件系統的調節更簡便,搭配 RAID 做容錯

  • LVM 結構:

    2106579-2c5ca1a7e33f6cf9.png

    PP:physical partition 物理分區,LVM 最底層

    PV:physical volume 物理卷,一個 PP 對應一個 PV

    PE:physical extends 物理擴展單元,組成PV的最小單元,也是的最小區塊,類似於文件系統的 block

    VG:volume group 卷組,可以看出由 LVM 組成的大磁盤

    LE:logical extends 邏輯擴展單元,組成LV的最小單元,對應一個PE

    LV:logical volume 邏輯卷, VG之上,文件系統之下,文件系統是基於邏輯卷的

  • VG、LV 和 PE 的關係

    LV 通過交換 PE 來實現彈性改變文件系統大小的效果,LV 移除一些 PE,文件系統大小即減小,VG 把一些 PE 給LV,文件系統大小即增加

    2106579-2bc6a3b02784a97e.png

    最多65534個PE,PE的大小可以影響到VG的容量

    LV與磁盤分區類似,能夠格式化

  • LVM 的優點:

    • 通過LVM,文件系統可以跨越多個磁盤

    • 動態地擴展文件系統的大小

    • 增加新磁盤到 LVM 的存儲池中

  • LVM 使用要點:

    • 按需分配文件系統大小

    • 把不同的數據放在不同的卷組中

  • LVM 配置步驟,創建邏輯卷的步驟

  • 物理卷管理命令

    • pvcreate 將普通的分區加上 PV 屬性
    • pvscan 查看物理卷信息
    • pvdisplay 查看各個物理卷的詳細參數
    • pvremve
  • 卷組管理

    • vgcreate vgname /dev/sdaN
      • vgname:卷組名稱
      • /dev/sdaN:要加入卷組的物理卷
    • vgscan
    • vgdisplay
    • vgreduce 縮小卷組,把物理卷從卷組中刪除
    • vgextend 擴展卷組,把某個物理卷添加到卷組中
    • vgremove
  • 邏輯卷管理命令

    • lvcreate -n lvname -L 2G vgname
      • lvname:邏輯卷名稱
      • -L 2G:邏輯卷大小
      • vgname:從卷組分配空間給邏輯卷
    • lvscan
    • lvdisplay
    • lvextend
    • lvreduce
    • lvrmove
  • 擴展卷組

    • 可在線擴展卷組
    • 不一定可以所見卷組
    • 命令:vgextend vgname /dev/sdaN
      • 將物理卷 /dev/sdaN,加到vgname
    • 必須要有未使用的物理卷
      • 必須先有未使用的分區或硬盤
  • 管理文件系統的空間(增大或減小)

    • 增大( 卷組必須要有足夠空間)

      • 先卸載邏輯卷

      • 然後通過vgextend、lvextend等命令增大LV的空間

        • lvextend -l +128 /dev/vgname/lvname
          • 再加大128個LE
        • lvextend -L +128M /dev/vgname/lvname
          • 再加大128 Mb
      • resize2fs -p /dev/vgname/lvname

        • 再使用resize2fs將邏輯卷容量增加,擴展文件系統
        • -p:顯示操作期間的進度
      • 最後將邏輯卷掛載到目錄樹

    • 減小

      • 先卸載邏輯卷
      • resize2fs -p /dev/vgname/lvname 512M
        • 再使用resize2fs將邏輯卷容量減小,文件系統調整爲512MB
      • lvreduce -L 512M /dev/vgname/lvname
        • 再通過lvreduce將邏輯卷容量減小,邏輯卷減小到512MB
      • 最後將邏輯卷掛載到目錄樹

    注意 lvextend -l +128 與 lvextend -L +128M 的區別。一個是增加128個PE,一個是增加128MB

6、Linux 網絡管理

  • ifconfig [接口]:查看IP地址,廣播地址,網口掩碼

    windowns 中用 ipconfig

    • ifconfig 網口[參數]:設置網口的參數,如IP地址,廣播地址,網口掩碼等,重啓網絡或系統後失效

        ifconfig eth3 192.168.100.128 broadcast 192.168.100.255 netmask 255.255.255.0
      
    • 若想修改一直有效,則需要去修改配置文件:/etc/sysconfig/network/ifcfg-網口

      編輯配置文件:

        vi ifcfg-eth4
      

      使用ifup命令,啓動網口:

        ifup ifcfg-eth4
      
  • route:查詢本機路由表

    Destination 目的地
    Gateway 網管
    Genmask
    Flags 標記,爲U:可用
    Iface 該路由的網絡出口

  • 新增路由:通過命令方式新建路由,會保存在內存中,重啓無效,若想持久保存,通過配置文件 /etc/sysconfig/network/routes 靜態保存路由信息,重啓網絡服務才能生效

  • 檢測本地端口

      netstat -tupln | grep:25
    
    • t:TCP僅顯示tcp相關選項
    • u:UDP僅顯示udp相關選項
    • p:Procedure顯示建立相關連接的程序名
    • l:List僅列出正在Listen(監聽)的服務
    • n:拒絕顯示別名,能顯示數字的全部轉化爲數字
  • 檢測遠程服務

    • nmap軟件包

    • 可以單獨檢測服務器

      • 如:nmap 192.168.0.101
    • 可檢測整個class C

      • 如:nmap 192.168.0.0/24
      • 不支持255.255.255.0的語法
    • 如果沒有防火牆干擾,結果應該與netstat一致

  • IP別名

    • 在相同的網卡以及MAC地址之下,配置不同的IP地址
    • 命名原則
      • eth0
      • eth0:0
      • eth0:1 ...
    • 哪些不支持IP別名
      • DHCP不支持別名
      • NetworkManager不支持別名
        • NetworkManager也不支持網卡綁定
        • service NetworkManager stop
        • chkconfig NetworkManager Off
  • ping -c 次數

  • traceroute 目的地址或主機名:追蹤包源到目的所經過的路由

  • 配置FTP服務,通過yast命令,yast界面可以修改網絡信息

  • 配置Telnet服務,進入yast界面

7、Linux 進程與任務管理

  • 概念

    • 程序:文件中保存的一系列可執行的命令

    • 進程:加載到內存中的程序,由CPU執行,由PID 標識

    • 守護進程:常駐內存,與終端無關的系統進程

    • 用戶進程:用戶通過終端加載的進程

  • 查看進程

    • ps 靜態查看某一時間點進程信息

      • a 顯示現行終端機下所有程序
      • x 顯示所有程序,不分終端機
      • u 以用戶爲主的格式來顯示程序狀況
      • f 用ASCII字符顯示樹狀結構
      • l 顯示進程的詳細信息,例如優先級(NI)
    • top 動態觀察進程動態,每三秒刷新一次(默認按CPU的使用率降序排列)

      • 熱鍵;
        • P:按處理器使用率排列進程
        • M:按內存使用率排列
        • d:控制即時顯示秒差
        • h:顯示更多熱鍵的用法
        • q:離開top
        • k:殺死某個進程,需要再輸入PID好
    • pstree 用ASCII字符顯示樹狀結構,-p 顯示進程ID,-u 顯示用戶名

  • 管理進程

    • Linux進程調度是CPU分爲時間片,每個進程將依次在CPU上運行,優先級高的先執行
    • 用戶可通過設置進程的 niceness(NI)值來影響進程的優先級。niceness值範圍:-20到+19,數字越小,優先級越高
    • root用戶(超級用戶)可調整優先級到-20,而非超級用戶只能把進程的優先級調低(即往+19調整),常規用戶所啓用的進程的niceness默認值爲0
    • 用法:
      • nice -n 1 ls:將 ls 的優先序加 1 並執行
      • nice ls:將 ls 的優先序加 10 並執行
      • renice +1 987 -u daemon root -p 32:將進程 id 爲 987 及 32 的進程與進程擁有者爲 daemon 及 root 的優先序號碼加 1
  • 結束進程

    • kill PID:結束進程和進程號PID,系統可能不響應
    • kill -9 PID:強制終止進程,一般不適用
    • killall PID:終止同一進程組內的所有進程
  • 任務管理

    • 任務:登錄系統取得shell後,再單一終端接口下啓動的進程

    • 前臺:在終端接口上,可以出現提示符讓用戶操作的環境

    • 後臺:不顯示再終端接口的環境

  • 任務管理相關命令

    • & 直接將程序放入後臺處理

        find /-name smcapp &
      
    • jobs 查看當前shell的後臺任務

    • ctrl+z 將正在運行的任務放入後臺暫停

      在vi命令編輯文件內容時,可以暫停(suspended)

    • fg %[job ID] 任務放入前臺,如果不加job ID,則默認把當前任務

    • bg %[job ID] 任務放入後臺

  • 管理週期計劃任務:crontab [-u user] [-e] -l [-r]。-u指定用戶,-e編輯crontab任務內容,-l查閱crontab任務內容,-r移除所有crontab的任務內容

    當用-e編輯時,程序會直接調用vi接口

    系統計劃任務保存在/etc/crontab文件中

  • 管理定時任務:at 安排一個任務在未來執行,必須先啓用atd進程

    • at -l:相當於atq,列出當前at任務
    • at -d[job ID]:相當於atrm,刪除一個at任務
    • at -c[job ID]:查看任務具體內容

    2106579-7879c6c3f7771854.png

    at 與 crontab的用法,from 鳥哥的linux私房菜:http://cn.linux.vbird.org/linux_basic/0430cron.php

8、Linux 系統監控

  • 監控系統啓動日誌

    想要查看啓動信息,調用命令 dmesg|less,或者查看 /var/log/boot.msg 日誌

  • 監控系統運行狀況

    • cat /proc/..

      /proc/cpuinfo

      /proc/bus

      /proc/scsi

    • fdisk 硬盤信息

      -l:查看服務器所掛硬盤個數及分區情況

    • lspci PCI信息

      -v:顯示PCI接口裝置的詳細信息

      -vv:更詳細的信息

    • iostat CPU和I/O信息

      -c:僅顯示CPU統計信息

      -d:僅顯示磁盤統計信息

      -k:以k爲單位顯示每秒磁盤的請求數

    • hwinfo 設備信息

      --disk 顯示磁盤信息

      --cpu 顯示CPU信息

      --memory 顯示內存信息

      --network 顯示網卡信息

      --short 顯示硬件的摘要信息

  • 監控系統和進程

    • top 進程的動態信息,CPU、內存信息

    • ps 靜態

    • uptime 系統開機時間以及系統平均負載

    • uname 查看系統版本信息,加 -a 會由更詳細的信息

    • netstat 顯示與IP、TCP、UDP相關的信息

  • 監控用戶登錄

    • who -H -m:查看當前登錄系統地用戶。-H:顯示各欄位的標題信息列,-m:效果等同於who am i,顯示出自己再系統地用戶名,登錄終端,登錄時間

    • w[參數][用戶]:查看當前登錄的用戶及用戶當前的工作。-u:後面接user,查看具體用戶信息,比who更詳細

    • finger[參數][用戶]:查看用戶詳細信息。-s:短格式顯示用戶信息,-l:長格式顯示用戶信息

    • last[參數]:查看曾經登錄過系統的用戶。-n num:設置列出名單的顯示列數,-F:顯示登錄和登出的詳細信息

    • lastlog[參數][用戶]:查看用戶前一次登錄信息。-t days:查看距今n天內登錄了系統的用戶的最近一次登錄信息,-u顯示登錄與登出的詳細信息

9、Linux 管道與I/O重定向

  • 命令行功能最強大的兩個功能:管道與I/O重定向

  • I/O重定向可將命令行的執行的輸出或錯誤消息重定向至文件,方便當下保存或稍後分析

  • 輸入輸出流

    • 標準輸入
      • 0:鍵盤默認
      • 又稱 STDIN
    • 標準輸出
      • 1:終端默認
      • 又稱STDOUT
    • 標準錯誤
      • 2:終端默認
      • 又稱STDERR
  • 重定向運算符號

    • > :將STDOUT重定向到文件

      • 文件內容會被覆蓋

      • 舉例:

          ls -Ra /etc > root/backup/config-file-lists
        
    • >> :將STDOUT重定向到文件

      • 文件內容會被添加

      • 舉例:

          (date;who -l) >> /root/monitor/who-online
        
    • < :重定向STDIN

      • 將鍵盤輸入改由讀入文件提供

      • 舉例:

          mail -s "Warning" root < /root/mail/record/alert-notify
        

    Shell 輸入 / 輸出重定向:http://www.runoob.com/linux/linux-shell-io-redirections.html

  • 管道使用

    • 運算符管道

      • |:將一個命令的STDOUT發送到另一個命令的STDIN

      • 舉例:

          grep pattern /var/log/messages | mail -s "Issue notify" root
        
    • 命令行T管道

      • tee:將上一個命令的STDOUT通過T管道重定向到該文件,再發送到另一個命令的STDIN

      • 舉例:

          ifconfig eth0 | grep pattern | tee /root/interface-info | cut -f2 -d: | cut -f1 -d" "
        
      • 再舉例:
        使用tee的示意圖:ls -l的輸出被導向 tee,並且複製到檔案 file.txt 以及下一個命令 less。tee 的名稱來自於這個圖示,它看起來像是大寫的字母 T。

  • 比較

    • 標準的命令用法:

        grep root /etc/passwd
      
    • 重定向:

        grep root < /etc/passwd
      
    • 管道:

        cat /etc/passwd | grep root
      
    • 三種原理不一樣,但結果一樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章