本文章盤點(diǎn)了 Linux 運(yùn)維必備 150 個(gè)命令,請(qǐng)配合下面的網(wǎng)站使用。定位你需要使用的命令,然后去這個(gè)網(wǎng)站查詢?cè)敿?xì)用法即可。地址:wangchujiang.com/linux-command/這個(gè)網(wǎng)站來自 GitHub 項(xiàng)目:linux-command,更多有用的 GitHub 項(xiàng)目可以看看這篇文章:推薦幾個(gè)有用的 GitHub 項(xiàng)目
man:全拼manual,用來查看系統(tǒng)中自帶的各種參考手冊(cè)。help:用于顯示shell內(nèi)部命令的幫助信息。ls:全拼list,列出目錄的內(nèi)容及其內(nèi)容屬性信息。cd:全拼change directory,切換當(dāng)前工作目錄至dirName(目錄參數(shù))。其中dirName表示法可為絕對(duì)路徑或相對(duì)路徑。若目錄名稱省略,則變換至使用者的home目錄。另外,“~”也表示為home目錄的意思,“.”是表示目前所在的目錄,“..”則表示目前目錄位置的上一層目錄。mkdir:全拼make directories,創(chuàng)建目錄。mv:全拼move,移動(dòng)或重命名文件。pwd:全拼print working directory,顯示當(dāng)前工作目錄的絕對(duì)路徑。rename:可用字符串替換的方式批量改變文件名。rm:全拼remove,刪除一個(gè)或多個(gè)文件或目錄。必須格外小心地使用該命令。rmdir:全拼remove empty directories,刪除空目錄。touch:修改文件或者目錄的時(shí)間屬性,包括存取時(shí)間和更改時(shí)間。若文件不存在,系統(tǒng)會(huì)建立一個(gè)新的文件。tree:以樹狀圖列出目錄的內(nèi)容。它會(huì)列出指定目錄下的所有文件,包括子目錄里的文件。basename:顯示文件名。用于去掉文件名的目錄和后綴。chattr:全拼change file attributes,改變文件的擴(kuò)展屬性。lsattr:全拼list file attributes,顯示文件擴(kuò)展屬性。md5sum:用于生成和校驗(yàn)文件的md5值。它會(huì)逐位對(duì)文件的內(nèi)容進(jìn)行校驗(yàn),它常用于檢查文件的完整性。cat:全拼concatenate,用于連接多個(gè)文件并且打印到屏幕輸出或重定向到指定文件中,可查看文件內(nèi)容。tac:cat的反向拼寫,因此命令的功能為反向顯示文件內(nèi)容。文件內(nèi)容的最后一行先顯示,第一行最后顯示。more:一頁一頁的形式顯示文件內(nèi)容,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會(huì)往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,按 h 。less:less 可以隨意瀏覽文件,而 more 僅能向前移動(dòng),卻不能向后移動(dòng),而且 less 在查看之前不會(huì)加載整個(gè)文件。head:顯示文件的開頭的內(nèi)容。在默認(rèn)情況下,head命令顯示文件的頭10行內(nèi)容。tail:查看文件尾部?jī)?nèi)容,有一個(gè)常用的參數(shù) -f 常用于查閱正在改變的文件。可以看到最新的文件內(nèi)容。paste:用于合并文件的列。paste指令會(huì)把每個(gè)文件以列對(duì)列的方式,一列列地加以合并。sort:將文本文件內(nèi)容加以排序,sort可針對(duì)文本文件的內(nèi)容,以行為單位來排序。uniq:全拼uniqique,用于檢查及刪除文本文件中重復(fù)出現(xiàn)的行列。wc:統(tǒng)計(jì)文件的行數(shù)、單詞數(shù)或字節(jié)數(shù)等。dos2unix:是將Windows DOS格式文件轉(zhuǎn)換為Unix、Linux格式的實(shí)用命令。Windows格式文件的換行符為\\r\\n ,而Unix&Linux文件的換行符為\\n.。dos2unix命令其實(shí)就是將文件中的\\r\\n 轉(zhuǎn)換為\\n。diff:全拼difference,diff以逐行的方式比較文件的差異。vimdiff:命令行可視化文件比較工具,常用于文本文件。rev:全拼reverse,rev命令將文件中的每行內(nèi)容以字符為單位反序輸出,即第一個(gè)字符最后輸出,最后一個(gè)字符最先輸出,依次類推。grep/egrep:全拼(Extend)Global standard Research Expression Print out the line,是一種文本搜索工具,可以通過使用指定的通配符/正則表達(dá)式來實(shí)現(xiàn)文本搜索功能。join:用于將兩個(gè)文件中,指定欄位內(nèi)容相同的行連接起來。找出兩個(gè)文件中,指定欄位內(nèi)容相同的行,并加以合并,再標(biāo)準(zhǔn)輸出。tr:拼translate,tr命令用于轉(zhuǎn)換或刪除文件中的字符。tr 指令從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),經(jīng)過字符串轉(zhuǎn)譯后,將結(jié)果輸出到標(biāo)準(zhǔn)輸出設(shè)備。vi/vim:vi編輯器是所有Unix及Linux系統(tǒng)下標(biāo)準(zhǔn)的編輯器,它的強(qiáng)大不遜色于任何最新的文本編輯器。Vim是從 vi 發(fā)展出來的一個(gè)文本編輯器。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。tar:tar命令是用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內(nèi)的文件。gzip:gzip命令用于壓縮文件。gzip是個(gè)使用廣泛的壓縮程序,文件經(jīng)它壓縮過后,其名稱后面會(huì)多出".gz"的擴(kuò)展名。zip:zip命令可以用來將文件壓縮成為常用的zip格式。uname:全拼Unix name,用于顯示系統(tǒng)信息。hostname:hostname命令用于顯示和設(shè)置系統(tǒng)的主機(jī)名稱。環(huán)境變量HOSTNAME也保存了當(dāng)前的主機(jī)名。在使用hostname命令設(shè)置主機(jī)名后,系統(tǒng)并不會(huì)永久保存新的主機(jī)名,重新啟動(dòng)機(jī)器之后還是原來的主機(jī)名。如果需要永久修改主機(jī)名,需要同時(shí)修改/etc/hosts和/etc/sysconfig/network的相關(guān)內(nèi)容。dmesg:全拼diagnostic message,用于顯示開機(jī)信息,診斷系統(tǒng)故障。kernel會(huì)將開機(jī)信息存儲(chǔ)在ring buffer中。若是開機(jī)時(shí)來不及查看信息,可利用dmesg來查看。開機(jī)信息亦保存在/var/log目錄中,名稱為dmesg的文件里。uptime:顯示系統(tǒng)運(yùn)行時(shí)間及負(fù)載。stat:全拼status,用于顯示文件和文件系統(tǒng)狀態(tài)屬性。du:全拼disk usage,顯示指定的目錄或文件所占用的磁盤空間。df:全拼disk free,用于顯示目前在Linux系統(tǒng)上的文件系統(tǒng)的磁盤使用情況統(tǒng)計(jì)。top:top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。top是一個(gè)動(dòng)態(tài)顯示過程,即可以通過用戶按鍵來不斷刷新當(dāng)前狀態(tài)。如果在前臺(tái)執(zhí)行該命令,它將獨(dú)占前臺(tái),直到用戶終止該程序?yàn)橹?。比較準(zhǔn)確的說,top命令提供了實(shí)時(shí)的對(duì)系統(tǒng)處理器的狀態(tài)監(jiān)視。free:free命令顯示Linux系統(tǒng)中空閑的、已用的物理內(nèi)存及swap內(nèi)存,及被內(nèi)核使用的buffer。在Linux系統(tǒng)監(jiān)控的工具中,free命令是最經(jīng)常使用的命令之一。date:date命令可以用來顯示或設(shè)定系統(tǒng)的日期與時(shí)間,在顯示方面,使用者可以設(shè)定欲顯示的格式。cal:全拼calendar,cal命令用來顯示公歷日歷。which:which命令用于查找文件。which指令會(huì)在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件。whereis:該指令會(huì)在特定目錄環(huán)境變量PATH路徑查找符合條件的文件。這些文件應(yīng)屬于原始代碼、二進(jìn)制文件,或是幫助文件。locate:locate命令用于查找符合條件的文檔,他會(huì)去保存文檔和目錄名稱的數(shù)據(jù)庫內(nèi),查找合乎范本樣式條件的文檔或目錄。一般情況我們只需要輸入 locate your_file_name 即可查找指定文件。locate與find 不同: find 是去硬盤找,locate 只在資料庫中找。locate的速度比find快,它并不是真的查找,而是查數(shù)據(jù)庫。useradd:建立用戶帳號(hào)。使用useradd指令所建立的帳號(hào),實(shí)際上是保存在/etc/passwd文本文件中。usermod:修改系統(tǒng)已經(jīng)存在的用戶屬性。userdel:userdel命令用于刪除用戶帳號(hào)。若不加參數(shù),則僅刪除用戶帳號(hào),而不刪除相關(guān)文件。groupadd:用于創(chuàng)建一個(gè)新的用戶工作組。新工作組的信息將被添加到系統(tǒng)文件中。passwd:全拼password,passwd命令用來更改使用者的密碼。chage:全拼change,chage命令是用來修改帳號(hào)和密碼的有效期限。id:顯示用戶以及所屬群組的實(shí)際與有效ID。su:全拼Switch User,su命令用于變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。visudo:visudo編輯/etc/sudoers文件的專屬命令。sudoers文件的默認(rèn)權(quán)限是440,即默認(rèn)無法修改,visudo需要超級(jí)用戶權(quán)限,可以在不更改sudoers文件權(quán)限的情況下,直接修改sudoers文件。sudo:sudo命令可以把某些超級(jí)用戶權(quán)限分類有針對(duì)性授權(quán)給指定的普通用戶,并且普通用戶不需要知道root密碼就可以使用得到的授權(quán)。也就是說,經(jīng)由 sudo 所執(zhí)行的指令就好像是 root 親自執(zhí)行。這樣用戶就可以通過自己的普通帳戶登錄實(shí)現(xiàn)利用root的權(quán)限來管理系統(tǒng)了,當(dāng)然也就不需要有root賬號(hào)及密碼了。telnet:telnet命令使用TELNET協(xié)議遠(yuǎn)程登錄。執(zhí)行telnet指令開啟終端機(jī)階段作業(yè),并登入遠(yuǎn)端主機(jī)。ssh:使用SSH加密協(xié)議遠(yuǎn)程登錄。scp:全拼secure copy,用于不同主機(jī)之間復(fù)制文件。, scp 是 linux 系統(tǒng)下基于 ssh 登陸進(jìn)行安全的遠(yuǎn)程文件拷貝命令。ping:測(cè)試主機(jī)之間網(wǎng)絡(luò)的連通性。route:顯示和設(shè)置linux系統(tǒng)的路由表。ifconfig:全拼interfaces config,通常需要以root身份登錄或使用sudo以便在Linux機(jī)器上使用ifconfig工具。ifconfig工具不僅可以被用來簡(jiǎn)單地獲取網(wǎng)絡(luò)接口配置信息,還可以修改這些配置。ifup:?jiǎn)?dòng)網(wǎng)卡。netstat:顯示網(wǎng)絡(luò)狀態(tài)。利用netstat指令可讓你得知整個(gè)Linux系統(tǒng)的網(wǎng)絡(luò)情況。ss:全拼Socket Statistics,用來獲取socket統(tǒng)計(jì)信息,它可以顯示和netstat類似的內(nèi)容。ss的優(yōu)勢(shì)在于它能夠顯示更多更詳細(xì)的有關(guān)TCP和連接狀態(tài)的信息,而且比netstat更快速更高效。nmap:全拼Network Mapper,是Linux下的網(wǎng)絡(luò)掃描和嗅探工具包。nmap是在網(wǎng)絡(luò)安全滲透測(cè)試中經(jīng)常會(huì)用到的強(qiáng)大的掃描器。lsof:全名list open files,列出當(dāng)前系統(tǒng)打開文件的工具。在linux系統(tǒng)環(huán)境下,任何事物都可以以文件形式存在,通過文件不僅可以訪問常規(guī)的數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。nslookup:交互式查詢互聯(lián)網(wǎng)DNS服務(wù)器的命令。dig:常用的域名查詢工具,可以用來測(cè)試域名系統(tǒng)工作是否正常。host:常用的分析域名查詢工具,可以用來測(cè)試域名系統(tǒng)工作是否正常。traceroute:顯示數(shù)據(jù)包到主機(jī)間的路徑。traceroute指令讓你追蹤網(wǎng)絡(luò)數(shù)據(jù)包的路由途徑,預(yù)設(shè)數(shù)據(jù)包大小是40Bytes,用戶可另行設(shè)置。tcpdump:免費(fèi)的網(wǎng)絡(luò)分析工具。TcpDump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析。有關(guān)磁盤與文件系統(tǒng)的命令(16個(gè))mount:用于掛載Linux系統(tǒng)外的文件。fsck:全拼file system check,用來檢查和維護(hù)不一致的文件系統(tǒng)。若系統(tǒng)掉電或磁盤發(fā)生問題,可利用fsck命令對(duì)文件系統(tǒng)進(jìn)行檢查。parted:磁盤分區(qū)命令,沒有磁盤大小限制。針對(duì)大于2TB的硬盤,需要采用GPT分區(qū),使用parted命令進(jìn)行操作 。mkfs:全拼make filesystem,格式化創(chuàng)建Linux文件系統(tǒng)。常見的文件系統(tǒng)有ext2,ext3, ext4 , vfat等。partprobe:從kernel重新讀取分區(qū)信息。e2fsck:檢查ext2/ext3/ext4類型文件系統(tǒng)。mkswap:用于設(shè)置交換區(qū)(swap area)。mkswap可將磁盤分區(qū)或文件設(shè)為L(zhǎng)inux的交換區(qū)。swapoff:關(guān)閉交換分區(qū)。sync:在 linux/unix 系統(tǒng)中,在文件或數(shù)據(jù)處理過程中一般先放到內(nèi)存緩沖區(qū)中,等到適當(dāng)?shù)臅r(shí)候再寫入磁盤,以提高系統(tǒng)的運(yùn)行效率。sync 命令則可用來強(qiáng)制將內(nèi)存緩沖區(qū)中的數(shù)據(jù)立即寫入磁盤。resize2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)大小。系統(tǒng)權(quán)限及用戶授權(quán)相關(guān)命令chmod:全拼Change mode,Linux/Unix 的文件調(diào)用權(quán)限分為三級(jí) : 文件擁有者、群組、其他。chmod命令可以控制文件如何被他人所調(diào)用。chown:全拼Change owner,Linux/Unix 是多人多工操作系統(tǒng),所有的文件皆有擁有者。chown將指定文件的擁有者改為指定的用戶或組 。chgrp:全拼Change group,用于變更文件或目錄的所屬群組。umask:顯示或設(shè)置權(quán)限掩碼。在linux系統(tǒng)中,我們創(chuàng)建一個(gè)新的文件或者目錄的時(shí)候,這些新的文件或目錄都會(huì)有默認(rèn)的訪問權(quán)限,umask命令與文件和目錄的默認(rèn)訪問權(quán)限有關(guān)。若用戶創(chuàng)建一個(gè)文件,則文件的默認(rèn)訪問權(quán)限為 -rw-rw-rw- ,創(chuàng)建目錄的默認(rèn)權(quán)限 drwxrwxrwx ,而umask值則表明了需要從默認(rèn)權(quán)限中去掉哪些權(quán)限來成為最終的默認(rèn)權(quán)限值。whoami:顯示當(dāng)前有效的用戶名稱。w:顯示已經(jīng)登陸系統(tǒng)的用戶列表,并顯示用戶正在執(zhí)行的指令。lastlog:顯示系統(tǒng)中所有用戶最近一次登錄信息。users:顯示當(dāng)前登錄系統(tǒng)的所有用戶的用戶列表。finger:顯示本地主機(jī)現(xiàn)在所有的用戶的登陸信息。printf:將結(jié)果格式化輸出到標(biāo)準(zhǔn)輸出。rpm:管理rpm包的命令。rpm(redhat package manager) 原本是 Red Hat Linux 發(fā)行版專門用來管理 Linux 各項(xiàng)套件的程序,由于它遵循 GPL 規(guī)則且功能強(qiáng)大方便,因而廣受歡迎。逐漸受到其他發(fā)行版的采用。RPM 套件管理方式的出現(xiàn),讓 Linux 易于安裝,升級(jí),間接提升了 Linux 的適用度。yum:yum( Yellow dog Updater, Modified)是一個(gè)在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器?;赗PM包管理,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個(gè)、一組甚至全部軟件包的命令。watch:周期性的執(zhí)行給定的命令,并將命令的輸出以全屏方式顯示。alias:用于設(shè)置指令的別名。若僅輸入alias,則可列出目前所有的別名設(shè)置。alias的效力僅及于該次登入的操作。若要每次登入是即自動(dòng)設(shè)好別名,可在/etc/profile(全局生效)或.bashrc(當(dāng)前用戶生效)中設(shè)定指令的別名。別名的作用:1)通過給危險(xiǎn)命令加一些保護(hù)參數(shù),防止人為誤操作。2)把很多復(fù)雜的字符串或命令變成一個(gè)簡(jiǎn)單的字符串或命令。date:用來顯示或設(shè)定系統(tǒng)的日期與時(shí)間,在顯示方面,使用者可以設(shè)定欲顯示的格式。history:顯示歷史記錄和執(zhí)行過的指令命令。time:用于測(cè)量一個(gè)命令的運(yùn)行時(shí)間。nc:一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)工具,通過它不僅可以探測(cè)端口,還能作為客戶端連接服務(wù)。xargs:全拼extended arguments,給命令傳遞參數(shù)的一個(gè)過濾器,也是組合多個(gè)命令的一個(gè)工具。exec:用于調(diào)用并執(zhí)行指令的命令。exec命令通常用在shell腳本程序中,可以調(diào)用其他的命令。如果在當(dāng)前終端中使用命令,則當(dāng)指定的命令執(zhí)行完畢后會(huì)立即退出終端。export:設(shè)置或者顯示環(huán)境變量。type:用來顯示指定命令的類型,判斷給出的指令是內(nèi)部指令還是外部指令。bc:任意精度計(jì)算器語言,通常在linux下當(dāng)計(jì)算器用。chkconfig:用于檢查,設(shè)置系統(tǒng)的各種服務(wù)。這是Red Hat公司遵循GPL規(guī)則所開發(fā)的程序,它可查詢操作系統(tǒng)在每一個(gè)執(zhí)行等級(jí)中會(huì)執(zhí)行哪些系統(tǒng)服務(wù),其中包括各類常駐服務(wù)。vmstat:全拼Virtual Memory Statistics,用來顯示Linux系統(tǒng)虛擬內(nèi)存狀態(tài),也可以報(bào)告關(guān)于進(jìn)程、內(nèi)存、I/O等系統(tǒng)整體運(yùn)行狀態(tài)。mpstat:全拼Multiprocessor Statistics,實(shí)時(shí)系統(tǒng)監(jiān)控工具。其報(bào)告與CPU的一些統(tǒng)計(jì)信息,這些信息存放在/proc/stat文件中。在多CPU系統(tǒng)里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。iostat:用于輸出CPU和磁盤I/O相關(guān)的統(tǒng)計(jì)信息。sar:全拼System Activity Reporter,目前 Linux 上最為全面的系統(tǒng)性能分析工具之一,可以從多方面對(duì)系統(tǒng)的活動(dòng)進(jìn)行報(bào)告。ipcs:用于報(bào)告linux中進(jìn)程間通信設(shè)施的狀態(tài),顯示的信息包括消息列表、共享內(nèi)存和信號(hào)量的信息。ipcrm:用來刪除一個(gè)或更多的消息隊(duì)列、信號(hào)量集或者共享內(nèi)存標(biāo)識(shí)。strace:用于診斷、調(diào)試Linux用戶空間跟蹤器。我們用它來監(jiān)控用戶空間進(jìn)程和內(nèi)核的交互,比如系統(tǒng)調(diào)用、信號(hào)傳遞、進(jìn)程狀態(tài)變更等。ltrace:用來跟蹤進(jìn)程調(diào)用庫函數(shù)的情況。關(guān)機(jī)/重啟/注銷和查看系統(tǒng)信息的命令shutdown:用來進(jìn)行關(guān)機(jī)程序,并且在關(guān)機(jī)以前傳送訊息給所有使用者正在執(zhí)行的程序,shutdown 也可以用來重開機(jī)。halt:用來關(guān)閉正在運(yùn)行的Linux操作系統(tǒng)。halt命令會(huì)先檢測(cè)系統(tǒng)的runlevel,若runlevel為0或6,則關(guān)閉系統(tǒng),否則即調(diào)用shutdown來關(guān)閉系統(tǒng)。poweroff:用來關(guān)閉計(jì)算機(jī)操作系統(tǒng)并且切斷系統(tǒng)電源logout:退出當(dāng)前登錄的Shell。Ctrl+d:退出當(dāng)前登錄的Shell的快捷鍵。bg:將一個(gè)在后臺(tái)暫停的命令,變成繼續(xù)執(zhí)行。fg:將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行。jobs:查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令。killall:用于終止某個(gè)指定名稱的服務(wù)所對(duì)應(yīng)的全部進(jìn)程。pkill:通過進(jìn)程名終止進(jìn)程。crontab:用來定期執(zhí)行程序的命令。當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。ps:全拼Processes Status,用來列出系統(tǒng)中當(dāng)前運(yùn)行的那些進(jìn)程。ps命令列出的是當(dāng)前那些進(jìn)程的快照,就是執(zhí)行ps命令的那個(gè)時(shí)刻的那些進(jìn)程,如果想要?jiǎng)討B(tài)的顯示進(jìn)程信息,就可以使用top命令。nice/renice:為未運(yùn)行命令指定運(yùn)行時(shí)調(diào)度優(yōu)先級(jí)的,如果是已運(yùn)行的命令則需要renice命令。nohup:全拼no hang up,讓后臺(tái)工作在離開操作終端時(shí),也能夠正確地在后臺(tái)執(zhí)行。pgrep:通過程序的名字來查詢進(jìn)程的工具,一般是用來判斷程序是否正在運(yùn)行。runlevel:查看系統(tǒng)當(dāng)前運(yùn)行級(jí)別。init:用于切換到指定的運(yùn)行級(jí)別。service:用于管理Linux操作系統(tǒng)中服務(wù)的命令。它可以啟動(dòng)、停止、重新啟動(dòng)和關(guān)閉系統(tǒng)服務(wù),還可以顯示所有系統(tǒng)服務(wù)的當(dāng)前狀態(tài)。地址:https://blog.csdn.net/weixin_39157014