關機 重啓 註銷和查看系統信息的命令(6個命令)
- shutdown命令
shutdown命令:用來系統關機命令。shutdown指令可以關閉所有程序,並依用戶的需要,進行重新開機或關機的動作。
參數:
-c | 當執行“shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令 |
-f | 重新啓動時不執行fsck |
-F | 重新啓動時執行fsck |
-h | 將系統關機 |
-k | 只是送出信息給所有用戶,但不會實際關機 |
-n | 不調用init程序進行關機,而由shutdown自己進行 |
-r | shutdown之後重新啓動 |
-t<秒數> | 送出警告信息和刪除信息之間要延遲多少秒 |
例子:
#指定現在立即關機:
shutdown -h now
#指定5分鐘後關機,同時送出警告信息給登入用戶:
shutdown +5 "System will shutdown after 5 minutes"
- halt命令
halt命令:用來關閉正在運行的Linux操作系統。halt命令會先檢測系統的runlevel,若runlevel爲0或6,則關閉系統,否則即調用shutdown來關閉系統。
參數:
-d | 不要在wtmp中記錄 |
-f | 不論目前的runlevel爲何,不調用shutdown即強制關閉系統 |
-i | 在halt之前,關閉全部的網絡界面 |
-n | halt前,不用先執行sync |
-p | halt之後,執行poweroff |
-w | 僅在wtmp中記錄,而不實際結束系統 |
- poweroff命令
poweroff命令:用來關閉計算機操作系統並且切斷系統電源。
參數:
-n | 關閉操作系統時不執行sync操作 |
-w | 不真正關閉操作系統,僅在日誌文件“/var/log/wtmp”中 |
-d | 關閉操作系統時,不將操作寫入日誌文件“/var/log/wtmp”中添加相應的記錄 |
-f | 強制關閉操作系統 |
-i | 關閉操作系統之前關閉所有的網絡接口 |
-h | 關閉操作系統之前將系統中所有的硬件設置爲備用模式 |
- logout命令
logout命令:用於退出當前登錄的Shell,logout指令讓用戶退出系統,其功能和login指令相互對應。
- exit命令
exit命令:同於退出shell,並返回給定值。
在shell腳本中可以終止當前腳本執行。執行exit可使shell以指定的狀態值退出。若不設置狀態值參數,則shell以預設值退出。狀態值0代表執行成功,其他值代表執行失敗。
例子:
# 設置exit返回值爲2
[root@xxx ~]# vim 1
[root@xxx ~]# cat 1
exit 2
# 運行結束狀態值爲2
[root@xxx ~]# chmod u+x 1
[root@xxx ~]# bash 1
[root@xxx ~]# echo $?
2
- ctrl+d
ctrl+d: 退出當前登錄的 Shell 的快捷鍵。
內置命令及其他(19個)
- cd … :回退到上一層目錄
- help:顯示所有內置命令列表,或者顯示一個具體命令的用法(如下圖所示就是執行help命令之後顯示的我的系統下的所有內置命令)
- echo:用來顯示顯示一行文字,默認自動換行
- printf :顯格式字符串,格式:printf “格式字符串” 參數
- history:查看以往使用的所有命令
- :(冒號命令):空操作
- . 或者source :後面加上./shell腳本表示可直接執行shell腳本
- exit:退出當前進程
- set:列出所有的變量和函數的內容
- read:從標準輸入讀取一行數據
- time:打印設置命令執行的real user sys 時間
- exec:該命令後面直接跟命令或者程序,執行後即取代了原來的shell執行環境,也就是執行重定向生效例如:exec < +文件名錶示所有的由標準輸入讀入的數據的操作都將更改爲由文件讀入
- bg :把作業放到後臺
- bind:顯示當前的套接字與函數的綁定情況
- enable:啓用或者禁用shell內置命令
- dirs :顯示當前記錄的目錄
- export:設置環境變量
- kill [-signal process] :想由PID 號或作業號指定的進程發送信號,輸入kill -l信號列表
- test:檢查文件類型,並計算條件表達式
查看系統用戶登陸信息的命令(7個)
- whoami:顯示當前有效的用戶名稱,相當於執行id -un命令
命 令:id
功能說明:查看顯示目前登陸賬戶的uid和gid及所屬分組及用戶名
語 法:id [-gGnru][–help][–version][用戶名稱]
補充說明:id會顯示用戶以及所屬羣組的實際與有效ID。若兩個ID相同,則僅顯示實際ID。若僅指定用戶名稱,則顯示目前用戶的ID,這個命令在溢出時經常用到,查看是不是溢出root成功,執行一下id命令,顯示uid=0,則成功了。
參 數:
-g或–group | 顯示用戶所屬羣組的ID |
-G或–groups | 顯示用戶所屬附加羣組的ID |
-n或–name | 顯示用戶,所屬羣組或附加羣組的名稱 |
-r或–real | 顯示實際ID |
-u或–user | 顯示用戶ID |
-help | 顯示幫助 |
-version | 顯示版本信息 |
- who:顯示目前登錄系統的用戶信息
who命令是顯示目前登錄系統的用戶信息。執行who命令可得知目前有那些用戶登入系統,單獨執行who命令會列出登入帳號,使用的終端機,登入時間以及從何處登入或正在使用哪個X顯示器。
語法:who(選項)(參數)
選 項:
-H或–heading | 顯示各欄位的標題信息列 |
-i或-u或–idle | 顯示閒置時間,若該用戶在前一分鐘之內有進行任何動作,將標示成"."號,如果該用戶已超過24小時沒有任何動作,則標示出"old"字符串 |
-m | 此參數的效果和指定"am i"字符串相同 |
-q或–count | 只顯示登入系統的帳號名稱和總人數 |
-s | 此參數將忽略不予處理,僅負責解決who指令其他版本的兼容性問題 |
-w或-T或–mesg或–message或–writable | 顯示用戶的信息狀態欄 |
–help | 在線幫助 |
–version | 顯示版本信息 |
- w:顯示已經登陸系統的用戶列表,並顯示用戶正在執行的指令
w命令用於顯示已經登陸系統的用戶列表,並顯示用戶正在執行的指令。執行這個命令可得知目前登入系統的用戶有那些人,以及他們正在執行的程序。單獨執行w命令會顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息。
語法格式:w [參數]
常用參數:
-h/–no-header | 不打印頭信息 |
-u/–no-current | 當顯示當前進程和cpu時間時忽略用戶名 |
-s/–short | 使用短輸出格式 |
-f/–from | 顯示用戶從哪登錄 |
-o/–old-style | 老式輸出 |
-i/–ip-addr | 顯示IP地址而不是主機名(如果可能) |
–help | 顯示此幫助並退出 |
-V/–version | 顯示版本信息 |
- last:顯示登入系統的用戶
作爲Linux運維我們常常需要查看最近登錄到系統的用戶,此時我們可以使用last命令來查看。last命令用於顯示用戶最近登錄信息。單獨執行last命令,它會讀取/var/log/wtmp的文件,並把該給文件的內容記錄的登入系統的用戶名單全部顯示出來。
語法:last(選項)(參數)
選項:
-a | 把從何處登入系統的主機名稱或ip地址,顯示在最後一行 |
-d | 將IP地址轉換成主機名稱 |
-f <記錄文件> | 指定記錄文件 |
-n <顯示列數>或-<顯示列數> | 設置列出名單的顯示列數 |
-R | 不顯示登入系統的主機名稱或IP地址 |
-x | 顯示系統關機,重新開機,以及執行等級的改變等信息 |
當我們直接執行last時,默認會取出在過去所有的登錄信息,如需要取出最後指定的幾條比如5條我們可以執行 last -5 命令即可;
命令輸出:
第一列 : 用戶名
第二列:登錄終端
第三列:登錄IP
第四列:登錄時間
第五列:退出時間(在線時間)
[root@xxoo ~]# last -5
root pts/2 192.168.199.226 Wed Oct 10 16:08 still logged in
root pts/1 192.168.199.226 Wed Oct 10 16:07 still logged in
root pts/0 192.168.199.226 Wed Oct 10 16:07 still logged in
root tty1 Wed Oct 10 16:06 still logged in
reboot system boot 3.10.0-862.11.6. Wed Oct 10 16:06 - 16:35 (00:29)
- lastlog:顯示系統中所有用戶最近一次登錄信息
lastlog文件在每次有用戶登錄時被查詢。可以使用lastlog命令檢查某特定用戶上次登錄的時間,並格式化輸出上次登錄日誌/var/log/lastlog的內容。它根據UID排序顯示登錄名、端口號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示Never logged。注意需要以root身份運行該命令。
語法:lastlog(選項)
選項:
-b<天數> | 顯示指定天數前的登錄信息 |
-h | 顯示召集令的幫助信息 |
-t<天數> | 顯示指定天數以來的登錄信息 |
-u<用戶名> | 顯示指定用戶的最近登錄信息 |
- users:顯示當前登錄系統的所有用戶的用戶列表
users命令用於顯示當前登錄系統的所有用戶的用戶列表。每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數。
語法:users(選項)
選項:
–help | 顯示命令的幫助信息 |
–version | 顯示命令的版本信息 |
- finger:查找並顯示用戶信息
finger命令用於查找並顯示用戶信息。包括本地與遠端主機的用戶皆可,帳號名稱沒有大小寫的差別。單獨執行finger指令,它會顯示本地主機現在所有的用戶的登陸信息,包括帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話。
語法:finger(選項)(參數)
選項:
-l | 列出該用戶的帳號名稱,真實姓名,用戶專屬目錄,登入所用的Shell,登入時間,轉信地址,電子郵件狀態,還有計劃文件和方案文件內容 |
-m | 排除查找用戶的真實姓名 |
-s | 列出該用戶的帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話 |
-p | 列出該用戶的帳號名稱,真實姓名,用戶專屬目錄,登入所用的Shell,登入時間,轉信地址,電子郵件狀態,但不顯示該用戶的計劃文件和方案文件內容 |
進程管理相關命令(15個)
- bg(back go):將後臺的命令,放置後臺(back)繼續執行
- fg(fore go):將後臺的命令,放置前臺(fore)繼續執行
- jobs(選項)(參數)
-p | 僅任務對應的顯示進程號; |
-n | 顯示任務狀態的變化; |
-l | 顯示進程號; |
-r | 僅輸出運行狀態(running)的任務; |
-s | 僅輸出停止狀態(stoped)的任務; |
jobs -l | #顯示當前系統的任務列表; |
- kill(選項)(進程號)
-l | 信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱 |
-a | 當處理當前進程時,不限制命令名和進程號的對應關係 |
-p | 指定kill 命令只打印相關進程的進程號,而不發送任何信號 |
-s | 指定發送信號 |
-u | 指定用戶 |
- killall(參數)(進程名)
-Z | 只殺死擁有scontext 的進程 |
-e | 要求匹配進程名稱 |
-I | 忽略小寫 |
-g | 殺死進程組而不是進程 |
-i | 交互模式,殺死進程前先詢問用戶 |
-l | 列出所有的已知信號名稱 |
-q | 不輸出警告信息 |
-s | 發送指定的信號 |
-v | 報告信號是否成功發送 |
-w | 等待進程死亡 |
–help | 顯示幫助信息 |
–version | 顯示版本顯示 |
- pkill :pkill和killall 應用方法差不多,也是直接殺死運行中的程式;如果你想殺掉單個進程,請用kill 來殺掉。
應用方法:#pkill 正在運行的程式名 - crontab
-e | 編輯用戶的crontab |
-l | 列出用戶的crontab的內容 |
-r | 刪除用戶的crontab的內容 |
-u<用戶名稱> | 指定要設定計時器的用戶名稱 |
- ps
-A | 所有的 process 均顯示出來,與 -e 具有同樣的效用 |
-a | 不與 terminal 有關的所有 process |
-u | 有效使用者 (effective user) 相關的 process |
-x | 通常與 -a 這個參數一起使用,可列出較完整信息 |
-l | 較長、較詳細的將該 PID 的的信息列出 |
-j | 工作的格式 (jobs format) |
-f | 做一個更爲完整的輸出 |
- pstree
-a | 顯示每個程序的完整指令,包含路徑,參數或是常駐服務的表示 |
-c | 不使用精簡表示法 |
-G | 使用VT100終端機的列繪圖字符 |
-h | 列出樹狀圖時,特別標明現在執行的程序 |
-l | 採用長列格式顯示樹狀圖 |
-n | 用程序識別碼排序,預設是以程序名稱來排序 |
-u | 顯示用戶名稱 |
-U | 使用UTF-8列繪圖字符 |
-V | 顯示版本信息 |
-p | 顯示程序識別碼 |
- nice/renice
nice | nice [-n <優先等級>][–help][–version][執行指令] |
---|---|
-n | <優先等級>或-<優先等級>或–adjustment=<優先等級> 設置欲執行的指令的優先權等級。等級的範圍從-20-19,其中-20最高,19最低,只有系統管理者可以設置負數的等級 |
–help | 在線幫助 |
–version | 顯示版本信息 |
renice | renice [優先等級][-g <程序羣組名稱>…][-p <程序識別碼>…][-u <用戶名稱>…] |
-g | <程序羣組名稱> 使用程序羣組名稱,修改所有隸屬於該程序羣組的程序的優先權 |
-p | <程序識別碼> 改變該程序的優先權等級,此參數爲預設值 |
-u | <用戶名稱> 指定用戶名稱,修改所有隸屬於該用戶的程序的優先權 |
- nohup
nohup命令:如果你正在運行一個進程,而且希望退出賬戶時該進程不會結束,那麼可以使用nohup命令,該命令可以在你退出賬戶/關閉終端之後繼續運行相應的進程。
nohup就是不掛起的意思(no hang up)
一般在linux下nohup格式
nohup command 或者 nohup command &
- pgrep
-a或 --text | 不要忽略二進制的數據 |
-A<顯示行數> 或 --after-context=<顯示行數> | 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容 |
-b 或 --byte-offset | 在顯示符合樣式的那一行之前,標示出該行第一個字符的編號 |
-B<顯示行數> 或 --before-context=<顯示行數> | 除了顯示符合樣式的那一行之外,並顯示該行之前的內容 |
-c 或 --count | 計算符合樣式的列數 |
-C<顯示行數> 或 --context=<顯示行數>或-<顯示行數> | 除了顯示符合樣式的那一行之外,並顯示該行之前後的內容 |
-d <動作> 或 --directories=<動作> | 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作 |
-e<範本樣式> 或 --regexp=<範本樣式> | 指定字符串做爲查找文件內容的樣式 |
-E 或 --extended-regexp | 將樣式爲延伸的普通表示法來使用 |
-f<規則文件> 或 --file=<規則文件> | 指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式爲每行一個規則樣式 |
-F 或 --fixed-regexp | 將樣式視爲固定字符串的列表 |
G 或 --basic-regexp | 將樣式視爲普通的表示法來使用 |
-h 或 --no-filename | 在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱 |
-H 或 --with-filename | 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱 |
-i 或 --ignore-case | 忽略字符大小寫的差別 |
-l 或 --file-with-matches | 列出文件內容符合指定的樣式的文件名稱 |
-L 或 --files-without-match | 列出文件內容不符合指定的樣式的文件名稱 |
-n 或 --line-number | 在顯示符合樣式的那一行之前,標示出該行的列數編號 |
-q 或 --quiet或–silent | 不顯示任何信息 |
-r 或 --recursive | 此參數的效果和指定"-d recurse"參數相同 |
-s 或 --no-messages | 不顯示錯誤信息 |
-v 或 --revert-match | 顯示不包含匹配文本的所有行 |
-V 或 --version | 顯示版本信息 |
-w 或 --word-regexp | 只顯示全字符合的列 |
-x --line-regexp | 只顯示全列符合的列 |
-y | 此參數的效果和指定"-i"參數相同 |
- runlevel
run level 0 | 系統停機狀態,系統默認運行級別不能設爲0,否則不能正常啓動,關機 |
run level 1 | 單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸 |
run level 2 | 多用戶狀態(沒有NFS) |
run level 3 | 完全的多用戶狀態(有NFS),登陸後進入控制檯命令行模式。純命令行模式 |
run level 4 | 系統未使用,保留 |
run level 5 | X11控制檯,登陸後進入圖形GUI模式。含有圖形界面模式 |
run level 6 | 系統正常關閉並重啓,默認運行級別不能設爲6,否則不能正常啓動,重啓 |
- init
init 0 | 停機(千萬不能把initdefault 設置爲0 ) |
init 1 | 單用戶模式 |
init 2 | 多用戶,沒有 NFS 不聯網 |
init 3 | 完全多用戶模式(標準的運行級) |
init 4 | 沒有用到 |
init 5 | X11 (xwindow) 圖形化界面模式 |
init 6 | 重新啓動 (千萬不要把initdefault 設置爲6 ) |
- service:service命令用於對系統服務進行管理,比如啓動(start)、停止(stop)、重啓(restart)、查看狀態(status)等
service <服務名稱> | 打印指定服務的命令行使用幫助 |
service <服務名稱> start | 啓動指定的系統服務 |
service <服務名稱> stop | 停止指定的系統服務 |
service <服務名稱> restart | 重新啓動指定的系統服務,即先停止(stop),然後再啓動(start) |
系統管理與性能監視命令(9個)
chkconfig | 管理Linux系統開機啓動項 |
vmstat | 虛擬內存統計 |
mpstat | 顯示各個可用CPU的狀態統計 |
iostat | 統計系統IO |
sar | 全面地獲取系統的CPU、運行隊列、磁盤 I/O、分頁(交換區)、內存、 CPU中斷和網絡等性能數據 |
ipcs | 用於報告Linux中進程間通信設施的狀態,顯示的信息包括消息列表、共享內存和信號量的信息 |
ipcrm | 用來刪除一個或更多的消息隊列、信號量集或者共享內存標識 |
strace | 用於診斷、調試Linux用戶空間跟蹤器。我們用它來監控用戶空間進程和內核的交互,比如系統調用、信號傳遞、進程狀態變更等 |
ltrace | 命令會跟蹤進程的庫函數調用,它會顯現出哪個庫函數被調用 |
chkconfig命令:檢查、設置系統的各種服務。這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操作系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接。
vmstat命令:顯示虛擬內存狀態(“Virtual Memory Statistics”),但是它可以報告關於進程、內存、I/O等系統整體運行狀態。
mpstat命令:用於多CPU環境下,它顯示各個可用CPU的狀態系你想。這些信息存放在/proc/stat文件中。在多CPUs系統裏,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息
iostat命令:用於監視系統輸入輸出設備和CPU的使用情況。它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU使用情況。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。
sar命令:Linux下系統運行狀態統計工具,它將指定的操作系統狀態計數器顯示到標準輸出設備。sar工具將對系統當前的狀態進行取樣,然後通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據。取樣數據和分析的結果都可以存入文件,使用它時消耗的系統資源很小。
ipcs命令:用於報告Linux中進程間通信設施的狀態,顯示的信息包括消息列表、共享內存和信號量的信息。
ipcrm命令:用來刪除一個或更多的消息隊列、信號量集或者共享內存標識。
strace命令:一個集診斷、調試、統計與一體的工具,我們可以使用strace對應用的系統調用和信號傳遞的跟蹤結果來對應用進行分析,以達到解決問題或者是瞭解應用工作過程的目的。當然strace與專業的調試工具比如說gdb之類的是沒法相比的,因爲它不是一個專業的調試器。
ltrace命令:用來跟蹤進程調用庫函數的情況。