Linux系統管理和維護常用指令
ls 指令功能說明ls 指令顯示指定工作目錄下的内容,列出工作目錄所包含的檔案及子目錄。文法結構:ls [選項] [路徑或檔案]
ls 選項及說明-a 顯示指定目錄下的所有檔案以及子目錄,包含隐藏檔案-d 隻顯示目錄清單,不顯示檔案-l 除檔案名稱外,同時将檔案或者子目錄的權限,使用者和檔案大小等詳細資訊列出-s 在每個檔案名後輸出該檔案的大小-k 以k位元組的形式表示檔案的大小-u 以檔案上次被通路的時間排序-t 以時間排序-o 顯示除組外的詳細資訊-x 按列輸出,橫向排序-r 對目錄反向排序-q 用“?”代替不可輸出的字元-m 橫向輸出檔案名,并以“,”作為分隔符-S 以檔案大小排序-R 列出所有子目錄下的檔案-pF 在每個檔案名後附上一個字元以說明該檔案的類型。“*”表示可執行的普通檔案,“/”表示目錄,“@”表示符号連結,“|”表示FIFO,“=”表示套接字(socket)-C 按列輸出,縱向排序-Q 把輸出的檔案名用雙引号括起來
簡單示例列出/home目錄下檔案及其子目錄[[email protected] ~]# ls -l /home/
total 142448drwxr-xr-x 2 root root 39 Feb 23 2017 files
-rw-r--r-- 1 root root 1486 Feb 23 2017 iperf.shdrwxr-xr-x 8 root root 4096 Feb 17 2017 jdk
drwx------ 6 jenkins jenkins 145 Sep 12 17:01 jenkins-rw-r--r-- 1 root root 67025973 Aug 26 2016 op-adapter.war-rw-r--r-- 1 root root 78829122 Aug 26 2016 op-user.wardrwx------ 2 user001 user001 79 Aug 10 16:18 user001
顯示/home/jenkins 下的所有檔案以及子目錄的詳細資訊,并顯示檔案類型标記[[email protected] jenkins]# ls -alF
total 20drwx------ 6 jenkins jenkins 145 Sep 12 17:01 ./drwxr-xr-x. 8 root root 4096 Sep 21 10:33 ../
-rw------- 1 jenkins jenkins 187 Jul 20 20:04 .bash_history-rw-r--r-- 1 jenkins jenkins 18 Dec 7 2016 .bash_logout-rw-r--r-- 1 jenkins jenkins 193 Dec 7 2016 .bash_profile-rw-r--r-- 1 jenkins jenkins 231 Dec 7 2016 .bashrcdrwxr-xr-x 3 jenkins jenkins 19 Sep 12 17:01 .groovy/
drwxr-xr-x 2 jenkins jenkins 39 Sep 12 16:52 .oracle_jre_usage/
drwx------ 2 jenkins jenkins 58 Jul 20 17:49 .ssh/drwxr-xr-x 2 root root 58 Aug 2 10:34 xies03_new/
pwd 指令功能說明顯示目前的工作目錄,執行pwd指令可得知目前所在的工作目錄的絕對路徑名稱文法結構:pwd
簡單示例[[email protected] jenkins]# pwd/home/jenkins
cd 指令功能說明改變目前工作目錄文法結構:cd [目錄名]
cd 指令的選項及其說明:cd [目錄] 切換到指定目錄下cd 或者 cd ~ 傳回使用者的預設工作目錄下cd ~[使用者名] 傳回指定使用者的工作目錄下cd .. 或者 cd../ 傳回到上級工作目錄下cd / 傳回到根目錄下
簡單示例切換到/usr/bin目錄下[[email protected] ~]# cd /usr/bin/[[email protected] bin]# pwd/usr/bin
傳回到上級目錄[[email protected] bin]# cd ..[[email protected] usr]# pwd/usr
date 指令功能說明顯示或者修改目前的系統時間和日期(root使用者才能使用date修改設定系統時間)文法結構:date [選項] 顯示時間格式(以+開頭,後面接時間格式)
date 指令的選項及其說明-s --set: 設定系統時間-d --date: 顯示描述的日期
時間顯示格式:%H 顯示小時,表示格式範圍00~23%I 顯示小時,表示格式範圍00~12%k 顯示小時,表示格式範圍0~23%M 顯示分鐘,顯示格式範圍00~59%S 顯示秒鐘,顯示格式範圍00~59%p 顯示是AM(上午)還是PM(下午)
%r 顯示時間,格式為 hh:mm:ss AM或者PM
%T 顯示時間,格式為 hh:mm:ss
%x 顯示年份和日期,格式為 mm/dd/yyyy
%X 顯示時間格式,相當于%H:%M:%S的組合
%a 顯示星期幾
%b 顯示月份,月份的簡稱
%B 顯示月份,月份的全稱
%m 顯示月份,表示格式為01~12%Z 顯示時區
%d 顯示一個月的第幾天
%D 顯示年份和月份,格式mm/dd/yy
%Y 顯示年份,顯示完整的年份
%y 顯示年份,顯示年份的最後兩個數字
%c 顯示日期和時間格式,相當于“%a%d%b%Y%r%Z”的組合
簡單示例:不使用格式輸出時間[[email protected] ~]# dateTue Sep 26 15:48:43 CST 2017
用制定的格式顯示時間和日期[[email protected] ~]# date "+%Y-%m-%d"2017-09-26
修改系統時間[[email protected] ~]# date -s 20160930Fri Sep 30 00:00:00 CST 2016
passwd 指令功能說明用于設定使用者密碼文法結構:passwd [使用者名]
簡單示例普通使用者修改密碼[roo[email protected] ~]# passwd user001Changing password for user user001.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
根據提示,連續輸入兩次密碼即可。
root 使用者修改密碼[[email protected] ~]# passwd root或:
[[email protected] ~]# passwd
su 指令功能說明su 指令主要用于改變使用者身份文法結構:su [選項] [使用者名]
su 指令的選項及其說明-加載相應使用者下的環境變量-l 使目前的shell成為改變身份後使用者預設的shell-c 改變身份運作一個指令後就結束-m 改變使用者身份,但不改變環境變量
簡單示例普通使用者切換超級使用者[[email protected] ~]$ su -Password:
輸入root密碼後即可進入root的bash shell環境下
clear 指令功能說明clear 指令用來清除螢幕資訊文法結構:clear
man 指令功能說明man指令用來顯示制定指令的幫助資訊文法結構man [指令全稱]
簡單示例檢視ls指令的幫助資訊[[email protected] ~]# man lsLS(1) User Commands LS(1)NAME
ls - list directory contentsSYNOPSIS
ls [OPTION]... [FILE]...DESCRIPTION
who 指令功能說明who 指令顯示目前登陸到系統的使用者文法結構who [選項] [file]
who 指令的一般輸出格式如下:名稱 [狀态] 終端時間 [活動] [程序辨別] (主機名)
名稱:使用者的登入名
狀态:表明終端是否對使用者都是可寫的
時間:使用者登入系統的時間
活動:某個使用者在自己的終端上最後一次活動發生以來到現在的時間
程序辨別:使用者登入shell的程序id主機名:登陸到linux系統上的用戶端機器辨別
who 指令的選項及說明:-a 列出所有資訊,相當于所有選項-b 列出系統最近啟動的日期-l 列車所有可登入的終端資訊-m 僅列出關于目前zhong-q 列出在本地系統上的使用者和使用者數的清單-r 顯示目前系統的運作級别-s 僅顯示名稱、終端和時間字段資訊(who的預設輸出)-u 顯示目前每個使用者的使用者名,登入終端、終端活動和程序辨別-T或-w 顯示tty終端的狀态,“+”表示對任何人可寫,“-”表示僅對root使用者或所有者可寫,“?”表示遇到終端故障
簡單示例:查詢系統的運作級别[[email protected] ~]# who -r
run-level 3 2017-04-26 00:13
顯示系統最近啟動日期,以及目前每個使用者的登陸詳情,終端狀态[[email protected] ~]# who -buT
system boot 2017-04-26 00:12root + pts/0 2017-08-26 04:16 . 19192 (192.168.180.38)
w 指令功能說明用于顯示登陸到系統的使用者資訊文法結構:w [選項] [使用者]
w 指令的選項及其說明-h 不顯示輸出資訊的标題-l 用長格式輸出-s 用短格式輸出,不顯示登入時間、JCPU 和 PCPU-V 顯示版本資訊
[使用者] 表示當指定使用者後,隻顯示該使用者的資訊
簡單示例顯示目前使用者登入資訊[[email protected] ~]# w
04:25:03 up 153 days, 20:03, 1 user, load average: 0.08, 0.04, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.180.38 04:16 7.00s 1.13s 0.95s w
[[email protected] ~]#
解釋:第一行輸出顯示目前的系統時間,系統從啟動到現在已經運作的時間,登陸到系統中的使用者數和系統平均負載
USER 表示登入系統的使用者
TTY 表示使用者使用的是TTY名稱
FROM 表示使用者從哪裡登入進來,一般顯示遠端IP的位址或主機名
LOGIN@ 使用者登入的日期和時間
LDLE 表示某個程式上次從終端開始執行到現在所持續的時間
JCPU 表示該終端上的所有程序及子程序使用系統的總時間
PCPU 目前活動程序使用的系統時間
WHAT 目前使用者執行的程序名稱和選項
uname 指令功能說明uname 指令用來顯示作業系統相關的資訊文法結構:uname [選項]
uname 指令的選項及其說明-a 顯示作業系統全部資訊-m 顯示系統CPU類型(32位或64位)-n 顯示作業系統的主機名-s 顯示作業系統類型-r 顯示作業系統核心版本
簡單示例[[email protected] ~]# uname -aLinux cinder01 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux[[email protected] ~]# uname -mx86_64
[[email protected] ~]# uname -ncinder01
[[email protected] ~]# uname -sLinux
[[email protected] ~]# uname -r3.10.0-514.2.2.el7.x86_64
uptime 指令功能說明uptime 指令用來輸出系統任務隊列消息文法結構uptime
uptime 輸出目前系統時間,系統開機到現在運作時間、目前有多少使用者線上和系統平均負載
簡單示例[[email protected] ~]# uptime
04:46:21 up 153 days, 20:24, 1 user, load average: 0.00, 0.01, 0.05[[email protected] ~]#
last 指令功能說明列出目前與過去登入系統的使用者相關資訊文法結構last [選項][-n(顯示行數)]
last指令選項及其說明-a 把登入系統的主機名或IP位址顯示在最後一行-R 不顯示登入系統的主機名或IP位址-x 顯示系統關機,重新開機以及執行等級的改變資訊-n 設定列出名單的顯示列數-d 将顯示的IP位址轉換成主機名稱
簡單示例顯示前5行的登入資訊[[email protected] ~]# last -n 5root pts/0 192.168.180.38 Sat Aug 26 04:16 still logged in root pts/0 192.168.180.38 Tue Sep 26 15:03 - 02:46 (-31+-12:-17root pts/2 192.168.180.38 Tue Sep 26 10:26 - 13:27 (03:01)
root pts/0 192.168.180.38 Tue Sep 26 09:48 - 12:00 (02:11)
root pts/0 192.168.180.38 Thu Sep 21 17:40 - 19:51 (02:11)
wtmp begins Tue Dec 20 16:13:46 2016[[email protected] ~]#
dmesg 指令功能說明顯示開機資訊文法結構dmesg [選項]
dmesg 指令的選項及其說明-c 顯示開機資訊後,清除ring buffer資訊-s 設定緩沖區大小,預設設定為8192-n 設定記錄資訊的層級
簡單示例顯示開機的詳細資訊[[email protected] ~]# dmesg | less
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
......
free 指令功能說明free 指令用來顯示系統記憶體狀态,具體包含系統實體記憶體,虛拟記憶體,共享記憶體和系統緩存文法結構:free [選項] [-s (間隔秒數)]
free 指令的選項及其說明-b 以位元組為機關顯示記憶體使用情況-m 以MB為機關顯示記憶體使用情況-K 以KB為機關顯示記憶體使用情況-t 顯示記憶體總和列-s 根據指定的間隔秒數持續顯示記憶體使用情況-o 不顯示系統緩沖區列
簡單示例[[email protected] ~]# free -b
total used free shared buff/cache availableMem: 3975155712 3379781632 207343616 50302976 388030464 277786624Swap: 4294963200 15134720 4279828480[[email protected] ~]# [[email protected] ~]# free -m
total used free shared buff/cache availableMem: 3791 3223 197 47 370 264Swap: 4095 14 4081[[email protected] ~]# [[email protected] ~]# free
total used free shared buff/cache availableMem: 3881988 3300568 202484 49124 378936 271276Swap: 4194300 14780 4179520[[email protected] ~]#
ps 指令
功能說明ps 指令顯示系統程序在時間的運作動态文法結構ps [選項]
ps 常用選項介紹-a 顯示所有使用者的程序,包含每個程式的完整路徑-x 顯示所有系統程式,包括沒有終端的程式-u 顯示所有者的名稱和起始時間-f 詳細顯示程式執行的路徑群-c 隻顯示程序的名稱,不顯示程序完整路徑-e 将除核心程序以外所有程序的資訊寫到标準輸出
簡單示例檢視目前所有者的程序[[email protected] ~]# ps
PID TTY TIME CMD19192 pts/0 00:00:00 bash19261 pts/0 00:00:00 ps
[[email protected] ~]#
解釋:PID: 程序的辨別号
TTY: 是程序所屬的終端控制台
TIME: 列出程序使用的總CPU時間
CMD: 列出正在執行的指令行
檢視系統所有程序[[email protected] ~]# ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 Mar25 ? 00:05:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 21root 2 0 0 Mar25 ? 00:00:05 [kthreadd]
root 3 2 0 Mar25 ? 00:00:04 [ksoftirqd/0]
root 7 2 0 Mar25 ? 00:00:36 [migration/0]
root 8 2 0 Mar25 ? 00:00:00 [rcu_bh]
root 9 2 0 Mar25 ? 00:31:24 [rcu_sched]
root 10 2 0 Mar25 ? 00:01:15 [watchdog/0]
root 11 2 0 Mar25 ? 00:01:40 [watchdog/1]
......
[注]:ps 最常用的指令組合 ps -ef | ps -aux
top 指令
top 指令提供對系統處理器狀态的實時監控,顯示系統的各個程序資源占用狀況功能說明檢視即時活躍的程序文法格式:top [選項]
top 指令的常用選項說明-d 指定每兩次螢幕資訊重新整理之間的時間間隔-i 不顯示閑置或者僵死的程序資訊-c 顯示程序的整個指令路徑,而不隻顯示指令名稱-s 使top指令在安全模式下運作-b 分屏顯示輸出資訊,結合“-n”選項可以将螢幕資訊輸出到文檔-n top輸出資訊更新的次數,完成後退出top指令
簡單示例檢視目前系統活動的程序[[email protected] ~]# toptop - 05:27:50 up 153 days, 21:06, 1 user, load average: 0.00, 0.01, 0.05Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881988 total, 201788 free, 3300988 used, 379212 buff/cache
KiB Swap: 4194300 total, 4179520 free, 14780 used. 270844 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
666 root 20 0 24324 1540 1280 S 0.3 0.0 1:31.81 systemd-logind
1 root 20 0 190676 3260 2088 S 0.0 0.1 5:06.45 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:05.54 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:04.42 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:36.34 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 31:24.74 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 1:15.65 watchdog/0... ...
[[email protected] ~]#
解釋:top - 09:44:56[目前系統時間],
16 days[系統已經運作了16天],
1 user[個使用者目前登入],
load average: 9.59, 4.75, 1.92[系統負載,即任務隊列的平均長度]
Tasks: 145 total[總程序數],
2 running[正在運作的程序數],
143 sleeping[睡眠的程序數],
0 stopped[停止的程序數],
0 zombie[當機程序數],
Cpu(s): 99.8%us[使用者空間占用CPU百分比],
0.1%sy[核心空間占用CPU百分比],
0.0%ni[使用者程序空間内改變過優先級的程序占用CPU百分比],
0.2%id[空閑CPU百分比],
0.0%wa[等待輸入輸出的CPU時間百分比],
0.0%hi[], 0.0%st[], Mem: 4147888k total[實體記憶體總量],
2493092k used[使用的實體記憶體總量],
1654796k free[空閑記憶體總量],
158188k buffers[用作核心緩存的記憶體量]
Swap: 5144568k total[交換區總量],
56k used[使用的交換區總量],
5144512k free[空閑交換區總量],
2013180k cached[緩沖的交換區總量]
參考自:<>