Ⅰ. 常用系統工作命令 1. echo 命令 echo命令用於在終端輸出字元串貨變數提取後的值,格式為"echo [字元串 | $變數]" 例:把指定字元串"LinxuHat"輸出到終端屏幕的命令為: [root@linuxprobe Desktop]# echo LinuxHat 該命令會在終端屏 ...
Ⅰ. 常用系統工作命令
1. echo 命令
echo命令用於在終端輸出字元串貨變數提取後的值,格式為"echo [字元串 | $變數]"
例:把指定字元串"LinxuHat"輸出到終端屏幕的命令為:
[root@linuxprobe Desktop]# echo LinuxHat |
該命令會在終端屏幕上顯示如下信息:
LinuxHat |
使用$變數的方式提取變數SHELL的值,並將其輸出到屏幕上:
[root@linuxprobe Desktop]# echo $SHELL /bin/bash |
2. date 命令
date命令用於顯示及設置系統的時間或日期,格式為"date [選項] [+指定的格式]"
參數 |
作用 |
%t |
跳格 |
%H |
小時(00..23) |
%I |
小時(01..12) |
%M |
分鐘(00..59) |
%S |
秒(00..61) |
%j |
一年中的第幾天 (001..366) |
按照預設格式查看當前系統時間的date命令如下所示:
[root@linuxprobe Desktop]# date Tue Aug 13 17:36:08 CST 2019 |
按照"年-月-日 小時:分鐘:秒"的格式查看當前系統時間的date命令如下所示:
[root@linuxprobe Desktop]# date "+%Y-%m-%d %H:%M:%S" 2019-08-13 17:37:57 |
將系統的當前時間設置為2019年9月1日9點0分的date命令如下所示:
[root@linuxprobe Desktop]# date -s "20190901 9:00:00" Sun Sep 1 09:00:00 CST 2019 |
再次使用date命令並按照預設的格式查看當前的系統時間,如下所示:
[root@linuxprobe Desktop]# date Sun Sep 1 09:00:43 CST 2019 |
date命令中的參數%j可用來查看今天是當年中的第幾天
[root@linuxprobe Desktop]# date "+%j" 244 |
3. reboot 命令
reboot命令用於重啟系統,其格式為reboot:
由於重啟電腦這種操作會涉及硬體資源的管理許可權,因此預設只能使用root管理員來重啟,其命令如下:
[root@linuxprobe Desktop]# reboot |
4. poweroff 命令
poweroff命令用於關閉系統,其格式為poweroff
由於關閉電腦這種操作會涉及硬體資源的管理許可權,因此預設只能使用root管理員來重啟,其命令如下:
[root@linuxprobe Desktop]# poweroff |
5. wget 命令
wget命令用於在終端中下載網路文件,格式為"wget [參數] 下載地址"
[root@linuxprobe Desktop]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf |
6. ps 命令
ps命令用於查看系統中的進程狀態,格式為"ps [參數]"
l -A 列出所有的行程(包括其他用戶的進程)
l -u 用戶以及其他詳細信息
l -x 顯示沒有控制終端的進程
進程有5種狀態,分別為運行、中斷、不可中斷、僵死與停止
· R(運行):進程正在運行或在運行隊列中等待
· S(中斷):進程處於休眠中,當某個條件形成後或者接收到信號時,則脫離該狀態
· D(不可中斷):進程不響應系統非同步信號,即便用kill命令也不能將其中斷
· Z(僵死):進程以及終止,但進程描述符依然存在,直到父進程調用wait4()系統函數後將進程釋放
· T(停止):進程收到停止信號後停止運行
[root@linuxprobe Desktop]# ps -aux |
進程狀態
7. top 命令
top命令用於動態地監視進程活動與系統負載等信息,其格式為top
top命令相當於Windows任務管理器
[root@linuxprobe Desktop]# top |
top命令的運行界面
· 第1行:系統時間、運行時間、登錄終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)
· 第2行:進程總數、運行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數
· 第3行:用戶占用資源百分比、系統內核占用資源百分比、改變過優先順序的進程資源百分比、空閑的資源百分比等
· 第4行:物理記憶體總量、記憶體使用量、記憶體空閑量、作為內核緩存的記憶體量
· 第5行:虛擬記憶體總量、虛擬記憶體使用量、虛擬記憶體空閑量、已被提前載入的記憶體量
8. pidof 命令
pidof命令用於查詢某個指定服務進程的PID值,格式為"pidof [參數] [服務名稱]"
[root@linuxprobe Desktop]# pidof sshd 1805 |
9. kill 命令
kill命令用於終止某個指定PID的服務進程,格式為"kill [參數] [進程PID]"
[root@linuxprobe Desktop]# kill 1805 |
10. killall 命令
killall命令用於終止某個指定名稱的服務所對應的全部進程,格式為:"killall [參數] [進程名稱]"
[root@linuxprobe Desktop]# pidof httpd 13581 13580 13579 13578 13577 13576 [root@linuxprobe Desktop]# killall httpd [root@linuxprobe Desktop]# pidof httpd [root@linuxprobe Desktop]# |
Ⅱ. 系統狀態監檢測命令
1. ifconfig 命令
ifconfig命令用於獲取網卡配置與網路狀態等信息,格式為"ifconfig [網路設備] [參數]"
[root@linuxprobe Desktop]# ifconfig |
2. uname 命令
uname命令用於查看系統內核與系統版本等信息,格式為"uname [-a]"
[root@linuxprobe Desktop]# uname -a Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux |
順帶一提,如果要查看當前系統版本的詳細信息,則需要查看redhat-release文件,其命令以及相應的結果如下:
[root@linuxprobe Desktop]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) |
3. uptime 命令
uptime命令用於查看系統的負載信息,格式為"uptime"
[root@linuxprobe Desktop]# uptime 23:51:53 up 49 min, 2 users, load average: 0.05, 0.15, 0.19 |
4. free 命令
free用於顯示當前系統中記憶體的使用量信息,格式為"free [-h]"
[root@linuxprobe Desktop]# free -h |
· total:記憶體總量
· used:已用量
· free:可用量
· shared:進程共用的記憶體量
· buffers:磁碟緩存的記憶體量
· cached:緩存的記憶體量
5. who命令
who命令用於查看當前登入主機的用戶終端信息,格式為"who [參數]"
[root@linuxprobe Desktop]# who |
· 第1列:登錄的用戶名
· 第2列:終端設備
· 第3列:登錄到系統的時間
6. last命令
last命令用於查看所有系統的登錄記錄,格式為"last [參數]"
[root@linuxprobe Desktop]# last |
7. history命令
history命令用於顯示歷史執行過的命令,格式為"history [-c]"
說明:
① 使用-c參數則會清空所有的命令歷史記錄
② 可以使用"!編碼數字" 的方式來重覆執行某一次的命令
[root@linuxprobe Desktop]# history |
8. sosreport命令
sosreport命令用於手機系統配置及架構信息並輸出診斷文檔,格式為"sosreport"
[root@linuxprobe Desktop]# sosreport |
· quit:此處敲擊回車來確認收集信息
· name:此處敲擊回車來確認主機編號
· for:此處敲擊回車來確認主機編號
Ⅲ. 工作目錄切換命令
1. pwd命令
pwd命令用於顯示用戶當前所處的工作目錄,格式為"pwd [選項]"
[root@linuxprobe ~]# pwd /root |
2. cd命令
cd命令用於切換工作路徑,格式為"cd [目錄名稱]"
例:切換到/etc目錄中
[root@linuxprobe ~]# cd /etc [root@linuxprobe etc]# |
例:切換到/bin目錄中
[root@linuxprobe etc]# cd /bin [root@linuxprobe bin]# |
例:返回到上一次的目錄(即/etc目錄)
[root@linuxprobe bin]# cd - /etc [root@linuxprobe etc]# |
例:快速切換到用戶的家目錄
[root@linuxprobe etc]# cd ~ [root@linuxprobe ~]# |
3. ls命令
ls命令用於顯示目錄中的文件信息,格式為"ls [選項] [文件]"
[root@linuxprobe ~]# ls -al total 52 dr-xr-x---. 17 root root 4096 Aug 13 23:40 . drwxr-xr-x. 17 root root 4096 Aug 14 2019 .. -rw-------. 1 root root 1032 Aug 14 2019 anaconda-ks.cfg -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc drwx------. 10 root root 4096 Aug 13 23:40 .cache drwx------. 15 root root 4096 Aug 13 23:37 .config -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc drwx------. 3 root root 24 Aug 13 17:40 .dbus drwxr-xr-x. 2 root root 6 Aug 13 23:40 Desktop drwxr-xr-x. 2 root root 6 Aug 13 23:37 Documents drwxr-xr-x. 2 root root 6 Aug 13 23:37 Downloads -rw-------. 1 root root 16 Aug 13 23:37 .esd_auth drwx------. 3 root root 19 Aug 13 23:40 .gnome2 drwx------. 2 root root 6 Aug 13 23:40 .gnome2_private -rw-------. 1 root root 314 Aug 13 23:37 .ICEauthority -rw-r--r--. 1 root root 1083 Aug 13 17:43 initial-setup-ks.cfg drwx------. 3 root root 18 Aug 13 23:37 .local drwxr-xr-x. 4 root root 37 Aug 13 23:40 .mozilla drwxr-xr-x. 2 root root 6 Aug 13 23:37 Music drwxr-xr-x. 2 root root 6 Aug 13 23:37 Pictures drwxr-xr-x. 2 root root 6 Aug 13 23:37 Public -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc drwxr-xr-x. 2 root root 6 Aug 13 23:37 Templates drwxr-xr-x. 2 root root 6 Aug 13 23:37 Videos |
若想查看目錄屬性信息,則需要額外添加一個-d參數。
例:查看/etc目錄的許可權與屬性信息
[root@linuxprobe ~]# ls -ld /etc drwxr-xr-x. 132 root root 8192 Aug 13 23:42 /etc |
Ⅳ. 文本文件編輯命令
1. cat命令
cat命令用於查看純文本文件(內容較少),格式為"cat [選項] [文件]"
[root@linuxprobe ~]# cat -n initial-setup-ks.cfg |
2. more命令
more命令用於查看純文本文件(內容較多的),格式為"more [選項]文件"
[root@linuxprobe ~]# more initial-setup-ks.cfg |
3. head命令
head命令用於查看純文本文檔的前N行,格式為"head [選項] [文件]"
[root@linuxprobe ~]# head -n 20 initial-setup-ks.cfg |
4. tail命令
tail命令用於查看純文本文檔的後N行或持續刷新內容,格式為"tail [選項] [文件]"
[root@linuxprobe ~]# tail -f /var/log/messages |
5. tr命令
tr命令用於替換文本文件中的字元,格式為"tr [原始字元] [目標字元]"
例:把anaconda文件的文本全部替換成大寫
[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z] |
6. wc命令
wc命令用於統計指定文本的行數、字數、位元組數,格式為"wc [參數] 文本"
[root@linuxprobe ~]# wc -l /etc/passwd 38 /etc/passwd |
7. stat命令
stat命令用於查看文件的具體存儲信息和時間等信息,格式為"stat 文檔名稱"
[root@linuxprobe ~]# stat anaconda-ks.cfg File: ‘anaconda-ks.cfg’ Size: 1032 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68915660 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:admin_home_t:s0 Access: 2019-08-14 00:27:15.065788018 +0800 Modify: 2019-08-14 01:25:23.744928793 +0800 Change: 2019-08-14 01:25:23.744928793 +0800 Birth: - |
8. cut命令
cut命令用於按"列"提取文本字元,格式為"cut [參數] 文本"
[root@linuxprobe ~]# head -n 2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@linuxprobe ~]# cut -d: -f1 /etc/passwd root bin daemon adm lp sync shutdown halt operator games ftp nobody dbus polkitd unbound colord usbmuxd avahi avahi-autoipd libstoragemgmt saslauth qemu rpc rpcuser nfsnobody rtkit radvd ntp chrony abrt pulse gdm gnome-initial-setup postfix sshd tcpdump linuxprobe |
9. diff命令
diff命令用於比較多個文本文件的差異,格式為"diff [參數] 文件"
[root@linuxprobe ~]# cat diff_A.txt [root@linuxprobe ~]# cat diff_B.txt |
使用diff --brief命令顯示比較後的結果,判斷文件是否相同:
[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt |
使用帶有-c參數的diff命令來描述文件內容具體的不同
[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt |
Ⅴ. 文件目錄管理命令
1. touch命令
touch命令用於創建空白文件或設置文件的時間,格式為"touch [選項] [文件]"
· a 僅修改"讀取時間(atime)"
· m 僅修改"修改時間(mtime)"
· d 同時修改atime與mtime
[root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1032 Aug 14 2019 anaconda-ks.cfg [root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg [root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1079 Aug 14 00:40 anaconda-ks.cfg [root@linuxprobe ~]# touch -d "2017-05-04 15:30" anaconda-ks.cfg [root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1079 May 4 2017 anaconda-ks.cfg |
2. mkdir命令
mkdir命令用於創建空白的目錄,格式為"mkdir [選項] 目錄"
[root@linuxprobe ~]# mkdir linuxprobe [root@linuxprobe ~]# cd linuxprobe [root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e [root@linuxprobe linuxprobe]# cd a [root@linuxprobe a]# cd b [root@linuxprobe b]# |
說明:結合-p參數來遞歸創建出具有嵌套疊層關係的文件目錄
3. cp命令
cp命令用於複製文件或目錄,格式為"cp [選項] 源文件 目錄文件"
說明:在Linux系統中,複製操作具體分為3種情況:
① 如果目標文件是目錄,則會把源文件複製到該目錄中
② 如果目標文件也是普通文件,則會詢問是否要覆蓋它
③ 如果目標文件不存在,則執行正常的複製操作
· -a:相當於-pdr(p、d、r為上述參數)
· -d:若對象為"鏈接文件",則保留該"鏈接文件"的屬性
· -i :若目標文件存在則詢問是否覆蓋
· -p:保留原始文件的屬性
· -r :遞歸持續賦值(用於目錄)
[root@linuxprobe b]# touch install.log [root@linuxprobe b]# cp install.log x.log [root@linuxprobe b]# ls c install.log x.log [root@linuxprobe b]# |
4. mv命令
mv命令用於剪切文件或將文件重命名,格式為"mv [選項] 源文件 [目標路徑|目標文件名]"
[root@linuxprobe b]# mv x.log linux.log [root@linuxprobe b]# ls c install.log linux.log [root@linuxprobe b]# |
5. rm命令
rm命令用於刪除文件或目錄,格式為"rm [選項] 文件"
[root@linuxprobe b]# rm install.log rm: remove regular empty file ‘install.log’? y [root@linuxprobe b]# rm -f linux.log [root@linuxprobe b]# ls c [root@linuxprobe b]# |
6. dd命令
dd命令用於按照指定大小和個數的數據塊來複制文件或轉換文件,格式為"dd [參數]"
· if:輸入的文件名稱
· of:輸出的文件名稱
· bs:設置每個"塊"的大小
· count:設置要複製"塊"的個數
[root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M 1+0 records in 1+0 records out 587202560 bytes (587 MB) copied, 1.3667 s, 430 MB/s |
例:將光碟製作成ISO格式的鏡像文件
[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso |
7. file命令
file命令用於查看文件的類型,格式為"file 文件名"
[root@linuxprobe ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text [root@linuxprobe ~]# file /dev/sda /dev/sda: block special |
Ⅵ. 打包壓縮與搜索命令
1. tar命令
tar命令用於對文件進行打包壓縮或解壓,格式為"tar [選項] [文件]"
· -c:創建壓縮文件
· -x:解開壓縮文件
· -t:查看壓縮包內有哪些文件
· -z:用Gzip壓縮或解壓
· -j:用bzip2壓縮或解壓
· -v:顯示壓縮或解壓的過程
· -f:目標文件名
· -p:保留原始的許可權與屬性
· -P:使用絕對路徑來壓縮
· -C:指定解壓到的目錄
說明:
① 一般使用" tar -czvf 壓縮包名稱.tar.gz 要打包的目錄"來進行文件打包壓縮操作
② 一般使用" tar -xzvf 壓縮包名稱.tar.gz"來進行文件解壓操作
例:壓縮操作
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc |
例:解壓操作
[root@linuxprobe ~]# tar -xzvf etc.tar.gz -C /root/etc |
2. grep命令
grep命令用於在文本中執行關鍵詞搜索,並顯示匹配的結果,格式為"grep [選項] [文件]"
· -b:將可執行文件(binary)當作文本文件(test)來搜索
· -c:僅顯示找到的行數
· -i:忽略大小寫
· -n:顯示行號
· -v:反向旋轉—僅列出沒有"關鍵詞"的行
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd |
3. find命令
find命令用於按照指定條件來查找文件,格式為"find [查找路徑] 尋找條件 操作"
· -name:匹配名稱
· -perm:匹配許可權(mode為完全匹配,-mode為包含即可)
· -user:匹配所有者
· -group:匹配所有組
· -mtime -n +n:匹配修改內容的時間(-n指n天以內,+n指n天以前)
· -atime -n +n:匹配訪問文件的時間(-n指n天以內,+n指n天以前)
· -ctime -n +n:匹配修改文件許可權的時間(-n指n天以內,+n指n天以前)
· -nouser:匹配無所有者的文件
· -nogroup:匹配無所有組的文件
· -newer f1 !f2:匹配比文件f1新但比f2舊的文件
· --type b/d/e/p/l/f:匹配文件類型(後面的字母參數依次表示塊設備、目錄、字元設備、管道、鏈接文件、文本文件)
· -size:匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小於50KB的文件)
· -prune:忽略某個目錄
· -exec `````` { } \;:後面可跟用於進一步處理搜索結果的命令
例:獲取到該目錄中所有已host開頭的文件列表
[root@linuxprobe ~]# find /etc -name "host*" -print /etc/avahi/hosts /etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/selinux/targeted/modules/active/modules/hostname.pp /etc/hostname |
例:在整個系統中搜索許可權中包括SUID許可權的所有文件
[root@linuxprobe ~]# find / -perm -4000 -print |
例:在整個文件系統中找出所有歸屬於linuxprobe用戶的文件並複製到/root/findresults目錄
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ \; find: ‘/proc/44630/task/44630/fd/6’: No such file or directory find: ‘/proc/44630/task/44630/fdinfo/6’: No such file or directory find: ‘/proc/44630/fd/6’: No such file or directory find: ‘/proc/44630/fdinfo/6’: No such file or directory cp: cannot create special file ‘/root/findresults/’: No such file or directory cp: cannot overwrite non-directory ‘/root/findresults/linuxprobe’ with directory ‘/home/linuxprobe’ |