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目錄下檔案及其子目錄
[root@cinder01 ~]# ls -l /home/
total 142448
drwxr-xr-x 2 root root 39 Feb 23 2017 files
-rw-r--r-- 1 root root 1486 Feb 23 2017 iperf.sh
drwxr-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.war
drwx------ 2 user001 user001 79 Aug 10 16:18 user001
顯示/home/jenkins 下的所有檔案以及子目錄的詳細資訊,並顯示檔案型別標記
[root@cinder01 jenkins]# ls -alF
total 20
drwx------ 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 .bashrc
drwxr-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
- 簡單示例
[root@cinder01 jenkins]# pwd
/home/jenkins
cd 命令
- 功能說明
改變當前工作目錄
語法結構:
cd [目錄名]
cd 命令的選項及其說明:
cd [目錄] 切換到指定目錄下
cd 或者 cd ~ 返回使用者的預設工作目錄下
cd ~[使用者名稱] 返回指定使用者的工作目錄下
cd .. 或者 cd../ 返回到上級工作目錄下
cd / 返回到根目錄下
- 簡單示例
切換到/usr/bin目錄下
[root@cinder01 ~]# cd /usr/bin/
[root@cinder01 bin]# pwd
/usr/bin
返回到上級目錄
[root@cinder01 bin]# cd ..
[root@cinder01 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”的組合
- 簡單示例:
不使用格式輸出時間
[root@cinder01 ~]# date
Tue Sep 26 15:48:43 CST 2017
用制定的格式顯示時間和日期
[root@cinder01 ~]# date "+%Y-%m-%d"
2017-09-26
修改系統時間
[root@cinder01 ~]# date -s 20160930
Fri Sep 30 00:00:00 CST 2016
passwd 命令
- 功能說明
用於設定使用者密碼
語法結構:
passwd [使用者名稱]
- 簡單示例
普通使用者修改密碼
[root@cinder01 ~]# passwd user001
Changing password for user user001.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@cinder01 ~]#
根據提示,連續輸入兩次密碼即可。
root 使用者修改密碼
[root@cinder01 ~]# passwd root
或:
[root@cinder01 ~]# passwd
su 命令
- 功能說明
su 命令主要用於改變使用者身份
語法結構:
su [選項] [使用者名稱]
su 命令的選項及其說明
-載入相應使用者下的環境變數
-l 使當前的shell成為改變身份後使用者預設的shell
-c 改變身份執行一個指令後就結束
-m 改變使用者身份,但不改變環境變數
- 簡單示例
普通使用者切換超級使用者
[user001@cinder01 ~]$ su -
Password:
輸入root密碼後即可進入root的bash shell環境下
clear 命令
- 功能說明
clear 命令用來清除螢幕資訊
語法結構:
clear
man 命令
- 功能說明
man命令用來顯示制定命令的幫助資訊
語法結構
man [命令全稱]
- 簡單示例
檢視ls命令的幫助資訊
[root@cinder01 ~]# man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
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使用者或所有者可寫,“?”表示遇到終端故障
- 簡單示例:
查詢系統的執行級別
[root@cinder01 ~]# who -r
run-level 3 2017-04-26 00:13
顯示系統最近啟動日期,以及當前每個使用者的登陸詳情,終端狀態
[root@cinder01 ~]# who -buT
system boot 2017-04-26 00:12
root + pts/0 2017-08-26 04:16 . 19192 (192.168.180.38)
w 命令
- 功能說明
用於顯示登陸到系統的使用者資訊
語法結構:
w [選項] [使用者]
w 命令的選項及其說明
-h 不顯示輸出資訊的標題
-l 用長格式輸出
-s 用短格式輸出,不顯示登入時間、JCPU 和 PCPU
-V 顯示版本資訊
[使用者] 表示當指定使用者後,只顯示該使用者的資訊
- 簡單示例
顯示當前使用者登入資訊
[root@cinder01 ~]# w
04:25:03 up 153 days, 20:03, 1 user, load average: 0.08, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.180.38 04:16 7.00s 1.13s 0.95s w
[root@cinder01 ~]#
解釋:
- 第一行輸出顯示當前的系統時間,系統從啟動到現在已經執行的時間,登陸到系統中的使用者數和系統平均負載
- USER 表示登入系統的使用者
- TTY 表示使用者使用的是TTY名稱
- FROM 表示使用者從哪裡登入進來,一般顯示遠端IP的地址或主機名
- LOGIN@ 使用者登入的日期和時間
- LDLE 表示某個程式上次從終端開始執行到現在所持續的時間
- JCPU 表示該終端上的所有程式及子程式使用系統的總時間
- PCPU 當前活動程式使用的系統時間
- WHAT 當前使用者執行的程式名稱和選項
uname 命令
- 功能說明
uname 命令用來顯示作業系統相關的資訊
語法結構:
uname [選項]
uname 命令的選項及其說明
-a 顯示作業系統全部資訊
-m 顯示系統CPU型別(32位或64位)
-n 顯示作業系統的主機名
-s 顯示作業系統型別
-r 顯示作業系統核心版本
- 簡單示例
[root@cinder01 ~]# uname -a
Linux 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
[root@cinder01 ~]# uname -m
x86_64
[root@cinder01 ~]# uname -n
cinder01
[root@cinder01 ~]# uname -s
Linux
[root@cinder01 ~]# uname -r
3.10.0-514.2.2.el7.x86_64
uptime 命令
- 功能說明
uptime 命令用來輸出系統任務佇列訊息
語法結構
uptime
uptime 輸出當前系統時間,系統開機到現在執行時間、目前有多少使用者線上和系統平均負載
- 簡單示例
[root@cinder01 ~]# uptime
04:46:21 up 153 days, 20:24, 1 user, load average: 0.00, 0.01, 0.05
[root@cinder01 ~]#
last 命令
- 功能說明
列出當前與過去登入系統的使用者相關資訊
語法結構
last [選項][-n(顯示行數)]
last命令選項及其說明
-a 把登入系統的主機名或IP地址顯示在最後一行
-R 不顯示登入系統的主機名或IP地址
-x 顯示系統關機,重新開機以及執行等級的改變資訊
-n 設定列出名單的顯示列數
-d 將顯示的IP地址轉換成主機名稱
- 簡單示例
顯示前5行的登入資訊
[root@cinder01 ~]# last -n 5
root 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:-17
root 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
[root@cinder01 ~]#
dmesg 命令
- 功能說明
顯示開機資訊
語法結構
dmesg [選項]
dmesg 命令的選項及其說明
-c 顯示開機資訊後,清除ring buffer資訊
-s 設定緩衝區大小,預設設定為8192
-n 設定記錄資訊的層級
- 簡單示例
顯示開機的詳細資訊
[root@cinder01 ~]# 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 不顯示系統緩衝區列
- 簡單示例
[root@cinder01 ~]# free -b
total used free shared buff/cache available
Mem: 3975155712 3379781632 207343616 50302976 388030464 277786624
Swap: 4294963200 15134720 4279828480
[root@cinder01 ~]#
[root@cinder01 ~]# free -m
total used free shared buff/cache available
Mem: 3791 3223 197 47 370 264
Swap: 4095 14 4081
[root@cinder01 ~]#
[root@cinder01 ~]# free
total used free shared buff/cache available
Mem: 3881988 3300568 202484 49124 378936 271276
Swap: 4194300 14780 4179520
[root@cinder01 ~]#
ps 命令
- 功能說明
ps 命令顯示系統程式在時間的執行動態
語法結構
ps [選項]
ps 常用選項介紹
-a 顯示所有使用者的程式,包含每個程式的完整路徑
-x 顯示所有系統程式,包括沒有終端的程式
-u 顯示所有者的名稱和起始時間
-f 詳細顯示程式執行的路徑群
-c 只顯示程式的名稱,不顯示程式完整路徑
-e 將除核心程式以外所有程式的資訊寫到標準輸出
- 簡單示例
檢視當前所有者的程式
[root@cinder01 ~]# ps
PID TTY TIME CMD
19192 pts/0 00:00:00 bash
19261 pts/0 00:00:00 ps
[root@cinder01 ~]#
解釋:
- PID: 程式的標識號
- TTY: 是程式所屬的終端控制檯
- TIME: 列出程式使用的總CPU時間
- CMD: 列出正在執行的命令列
檢視系統所有程式
[root@cinder01 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar25 ? 00:05:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 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命令
- 簡單示例
檢視當前系統活動的程式
[root@cinder01 ~]# top
top - 05:27:50 up 153 days, 21:06, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 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
... ...
[root@cinder01 ~]#
解釋:
- 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[緩衝的交換區總量]
參考自:<>