內容目錄
1、Linux 系統概述
-
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)
-
-
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 操作系統的核心,直接控制計算機資源
-
硬件
-
-
Linux 的特點:
-
多任務,多用戶:CPU 時間分片,分給不同的進程;允許多個用戶同時登陸使用。
-
管道:前一個程序的輸出作爲後一個程序的輸入,看起來好像管道一樣
-
功能強大的 shell:shell 是一種解釋型高級語言
-
安全保護機制,穩定性好:防止系統及其數據未經許可而被非法訪問,穩定性 Unix 好於 Linux,Linux 好於 Windows
-
用戶界面:常用命令行的方式,同時提供圖形界面
-
強大的網絡支持:TCP/IP 協議就是 Linux 的缺省網絡協議
-
移植性好:源代碼用 C 語言寫成,便於移植到其它計算機上
-
2、Linux 用戶和用戶組管理
-
Linux 的用戶和用戶組
在 Linux 操作系統中,Linux 用戶會歸屬於用戶組,那麼歸屬於同一用戶組的不同用戶,它對一些公共文件具有相同的訪問權限,每個用戶對它所歸屬的文件具有其適用的訪問權限。
-
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
-
-
用戶管理的常用命令
-
用戶查詢命令:
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 -
-
用戶組管理常用命令
-
新增用戶組: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 文件和目錄管理
-
Linux 的文件結構類似於倒樹形結構,樹的 root 是 / 文件夾
-
根目錄下的子目錄以及存放的內容:
-
常用文件夾
-
/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 習慣手動掛載於此
-
-
-
絕對路徑與相對路徑
-
絕對路徑:由根目錄(/)開始寫起的文件名或者目錄名,例如: /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
-
-
文件和目錄的基本操作
-
顯示當前目錄下的所有文件: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 查找指定用戶所擁有的文件。
-
-
查看文件內容:
-
cat:直接查閱文件內容,不能翻頁
-
more:翻頁查看文件內容
-
less:翻頁閱讀,和 more 類似。但操作按鍵比 more 更加彈性。
-
head:查看文檔的頭部幾行內容,默認爲 10 行,可用
-數字
來查看特定行數 -
tail:查看文件的尾部幾行內容,默認爲 10 行,可用
-數字
來查看特定行數
-
4、Linux 文件系統管理
-
文件系統的概念:操作系統用於明確存儲和組織計算機數據的方法,使得對數據的查找和訪問變得更加容易。用戶不需要關心文件位於d硬盤的數據塊地址。
-
存儲在介質中數據的三個因素
文件名:定位存儲的位置
數據:文件的具體內容
元數據 meta-data:文件有關的信息。例如文件的權限、所有者、文件的修 改時間等。
Linux 支持的文件系統類型可查看 /etc/filesystems
-
文件系統的分類
-
根據是否有日誌?
-
傳統型文件系統:寫入文件內容的時候,先寫數據,再寫元數據,若寫元數據前斷電,則會造成文件不一致。典型的:ext2(Linux 默認的文件系統)
-
日誌型文件系統:寫入文件內容的時候,先寫日誌記錄文件(更安全)。典型的:ext3 = ext2 + 日誌 ,ReiserFS (基於平衡樹,搜索快,節約空間)
-
-
根據如何查找數據?
-
索引式文件系統:文件屬性數據和實際內容放在不同的區塊,例如 Linux 中默認的 ext2 文件系統中,文件屬性數據存放在 inode(類似於指針),實際內容放在 block。ext2 一開始就規劃好了 inode 與 block ,所以數量龐大,不容易管理,所以有分組
-
非索引式文件系統:只有 block,數據需要一個 block 接一個 block 讀取(下一個 block 位置存放在上一個 block 中),效率低。 典型的:FAT(Windows 的文件系統)
碎片整理:寫入的數據的 block 太過分散,此時讀取的效率會很低。磁盤整理的目的,就是將這些分散的 block 儘量的集中起來。
-
-
-
配置文件系統分區
-
創建分區: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
-
-
管理 Linux 文件系統
-
查看分區使用情況:
-
df:查看文件系統的磁盤空間佔用情況,參數 –h 以容易理解的格式打印出文件系統大小,參數 –i 顯示 inode 信息而非塊使用量。
-
du:查看文件或目錄的磁盤使用空間,參數 –a 顯示目錄下的每個文件所佔的磁盤空間,參數 –s 只顯示大小的總和,參數 -h 以容易理解的格式輸出文件大小值,如多少 Mb
-
-
查看系統打開的文件:lsof
Isof filename 顯示打開指定文件的所有進程
Isof –c string 顯示以指定字符開頭的進程所有打開的文件
Isof –u username 顯示所屬 username 相關進程打開的文件
-
-
修復文件系統:
-
fsck 參數 設備名:檢查文件系統並嘗試修復錯誤。執行 fsck 時,必須首先要將修復的設備進行umount 後,再執行 fsck 命令。
-
e2fsck:檢查和修復 ext2 和 ext3 文件系統
-
5、Linux LVM 配置
LVM:Logical Volume Manager
-
傳統:文件系統構建在物理分區(PP:physical partition)之上,物理分區的大小直接決定了文件系統的容量。LVM:使文件系統的調節更簡便,搭配 RAID 做容錯
-
LVM 結構:
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,文件系統大小即增加
最多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
- vgcreate vgname /dev/sdaN
-
邏輯卷管理命令
- lvcreate -n lvname -L 2G vgname
- lvname:邏輯卷名稱
- -L 2G:邏輯卷大小
- vgname:從卷組分配空間給邏輯卷
- lvscan
- lvdisplay
- lvextend
- lvreduce
- lvrmove
- lvcreate -n lvname -L 2G vgname
-
擴展卷組
- 可在線擴展卷組
- 不一定可以所見卷組
- 命令: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
- lvextend -l +128 /dev/vgname/lvname
-
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]:查看任務具體內容
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
-
三種原理不一樣,但結果一樣
-