常用linux命令,開發必備-速收藏

在前面我們介紹了通過VirtualBox安裝Linux的方法,參考:

一網打盡,一文講通虛擬機VirtualBox及Linux使用

本文我們將介紹在使用linux的過程中常用的一些Linux命令,掌握這些常用命令,對操作linux是非常的有幫助,本文基於CentOS7.6。

linux版本

常見執行Linux命令的格式是這樣的: 命令名稱 [命令參數] [命令對象]

注意,命令名稱、命令參數、命令對象之間請用空格鍵分隔。

命令對象一般是指要處理的文件、目錄、用戶等資源,而命令參數可以用長格式(完整的選項名稱),

也可以用短格式(單個字母的縮寫),兩者分別用–與-作為前綴

linux內核

目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

已知linux

1、系統服務管理

1.1、systemctl

Linux 服務管理兩種方式service和systemctl

systemd是Linux系統最新的初始化系統(init),作用是提高系統的啟動速度,儘可能啟動較少的進程,儘可能更多進程並發啟動。systemd對應的進程管理命令是systemctl,systemctl命令兼容了service。

systemctl 提供了一組子命令來管理單個的 unit,其命令格式為:

systemctl [command] [unit]

command 主要有:

start:立刻啟動後面接的 unit。

stop:立刻關閉後面接的 unit。

restart:立刻關閉後啟動後面接的 unit,亦即執行 stop 再 start 的意思。

reload:不關閉 unit 的情況下,重新載入配置文件,讓設置生效。

enable:設置下次開機時,後面接的 unit 會被啟動。

disable:設置下次開機時,後面接的 unit 不會被啟動。

status:目前後面接的這個 unit 的狀態,會列出有沒有正在執行、開機時是否啟動等資訊。

is-active:目前有沒有正在運行中。

is-enable:開機時有沒有默認要啟用這個 unit。

kill :不要被 kill 這個名字嚇著了,它其實是向運行 unit 的進程發送訊號。

show:列出 unit 的配置。

mask:註銷 unit,註銷後你就無法啟動這個 unit 了。

unmask:取消對 unit 的註銷。

  • 輸出系統中各個服務的狀態:
systemctl list-units --type=service

輸出系統中各個服務的狀態

  • 查看服務的運行狀態:
systemctl status firewalld

查看服務的運行狀態

  • 關閉服務:
systemctl stop firewalld

關閉服務

  • 啟動服務:
systemctl start firewalld

啟動服務

  • 重新啟動服務(不管當前服務是啟動還是關閉):
systemctl restart firewalld
  • 重新載入配置資訊而不中斷服務:
systemctl reload firewalld
  • 禁止服務開機自啟動:
systemctl disable firewalld

禁止服務開機自啟動

  • 設置服務開機自啟動:
systemctl enable firewalld

設置服務開機自啟動

2、文件管理

2.1、ls

Linux ls(英文全拼:list files)命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。

linux目錄結構

在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。

/etc: 這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。

/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在 /bin/ls 目錄下的。

值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給 root 使用的指令。

/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在 /var/log 目錄下,另外 mail 的預設放置也是在這裡。

語法:ls [-alrtAFR] [name...]
  • -a 顯示所有文件及目錄 (. 開頭的隱藏文件也會列出)
  • -l 除文件名稱外,亦將文件型態、許可權、擁有者、文件大小等資訊詳細列出
  • -r 將文件以相反次序顯示(原定依英文字母次序)
  • -t 將文件依建立時間之先後次序列出
  • -A 同 -a ,但不列出 “.” (目前目錄) 及 “..” (父目錄)
  • -F 在列出的文件名稱後加一符號;例如可執行檔則加 “*”, 目錄則加 “/”
  • -R 若目錄下有文件,則以下之文件亦皆依序列出
ls -l /

顯示指定工作目錄下之內容

2.2、pwd

pwd(英文全拼:print work directory) 命令用於顯示工作目錄。

執行 pwd 指令可立刻得知您目前所在的工作目錄的絕對路徑名稱。

顯示工作目錄

2.3、cd

cd(英文全拼:change directory)命令用於切換當前工作目錄。

cd [dirName]

其中 dirName 表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的 home 目錄 (也就是剛 login 時所在的目錄)。

另外,~ 也表示為 home 目錄 的意思, . 則是表示目前所在的目錄, .. 則表示目前目錄位置的上一層目錄。

cd /usr/local

切換當前工作目錄

查看當前目錄

2.4、date

date命令可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號後接數個標記。

date '+%Y-%m-%d %H:%M:%S'

顯示或設定系統的日期與時間

2.5、passwd

用於設置用戶密碼:

語法:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

必要參數

  • -d 刪除密碼

  • -f 強迫用戶下次登錄時必須修改口令

  • -w 口令要到期提前警告的天數

  • -k 更新只能發送在過期之後

  • -l 停止帳號使用

  • -S 顯示密碼資訊

  • -u 啟用已被停止的賬戶

  • -x 指定口令最長存活期

  • -g 修改群組密碼

  • 指定口令最短存活期

  • -i 口令過期後多少天停用賬戶

    設置用戶密碼命令幫助

passwd yonghu

設置用戶密碼

2.6、su

su(英文全拼:swith user)命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。改變用戶身份(切換到超級用戶)

語法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
事例:su -

2.7、clear

用於清除螢幕資訊

2.8、man

顯示指定命令的幫助資訊:

man ls

顯示指定命令的幫助資訊

2.9、who

who命令用於顯示系統中有哪些使用者正在上面,顯示的資料包含了使用者 ID、使用的終端機、從哪邊連上來的、上線時間、獃滯時間、CPU 使用量、動作等等。

  • 查詢系統處於什麼運行級別:
who -r

查詢系統處於什麼運行級別

  • 顯示目前登錄到系統的用戶:
who -buT

顯示目前登錄到系統的用戶

2.10、free

顯示系統記憶體狀態(單位MB),會顯示記憶體的使用情況,包括實體記憶體,虛擬的交換文件記憶體,共享記憶體區段,以及系統核心使用的緩衝區等。

語法:free [-bkmotV][-s <間隔秒數>]
事例:free -m

顯示系統記憶體狀態

2.11、ps

ps (英文全拼:process status)命令用於顯示當前進程的狀態,類似於 windows 的任務管理器。

顯示系統進程運行動態:

ps -ef

查看sshd進程的運行動態:

ps -ef | grep sshd

查看sshd進程的運行動態

2.12、top

查看即時活躍的進程,top命令是Linux下常用的性能分析工具,能夠實時顯示Linux系統中各個進程的資源佔用狀況,類似於Windows系統的任務管理器功能。

top命令的語法格式:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

常用參數說明

d 指定每兩次螢幕資訊刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。

p 通過指定監控進程ID,僅僅監控某個進程的狀態。

q 該選項將使top沒有任何延遲的進行刷新。如果調用程式有超級用戶許可權,那麼top將以儘可能高的優先順序運行。

S 指定累計模式

s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。

i 使top不顯示任何閑置或者僵死進程。

c 顯示整個命令行而不只是顯示命令名

查看即時活躍的進程

2.13、mkdir

mkdir(英文全拼:make directory)命令用於創建目錄。

語法:mkdir [-p] dirName

創建目錄

2.14、more

more 命令類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,請按 h 。

如:用於文件過長時分頁查看文件內容 每頁10行查看core50test.out.log文件

more -c -10 /root/app_data/data/logs/core50test/core50test.out.log

more

2.15、cat

查看Linux啟動日誌文件,並標明行號:

cat -Ab /var/log/boot.log

查看Linux啟動日誌文件

2.16、touch

創建text.txt文件:

touch text.txt

創建text.txt文件

2.17、rm

rm(英文全拼:remove)命令用於刪除一個文件或者目錄。

語法

rm [options] name...

參數

  • -i 刪除前逐一詢問確認。

  • -f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。

  • -r 將目錄及以下之檔案亦逐一刪除。

事例:

  • 刪除文件:
rm text.txt

刪除一個文件

  • 強制刪除某個目錄及其子目錄:
rm -rf testdir/

img強制刪除某個目錄及其子目錄

2.18、cp

將test1目錄複製到test2目錄

cp -r /mydata/test1 /mydata/test2

2.19、mv

移動或覆蓋文件:

mv text.txt text2.txt

3、壓縮與解壓

3.1、tar

tar(英文全拼:tape archive )命令用於備份文件。tar 是用來建立,還原備份文件的工具程式,它可以加入,解開備份文件內的文件。

  • 將/etc文件夾中的文件歸檔到文件etc.tar(並不會進行壓縮):
tar -cvf /root/mydata/etc.tar /etc
  • 用gzip壓縮文件夾/etc中的文件到文件etc.tar.gz:
tar -zcvf /root/mydata/etc.tar.gz /etc
  • 用bzip2壓縮文件夾/etc到文件/etc.tar.bz2:
tar -jcvf /root/mydata/etc.tar.bz2 /etc

查看壓縮結果

  • 分頁查看壓縮包中內容(gzip):
tar -ztvf /root/mydata/etc.tar.gz |more -c -10

分頁查看壓縮包中內容

  • 解壓文件到當前目錄(gzip):
tar -zxvf /root/mydata/etc.tar.gz

4、磁碟和網路管理

4.1、df

df(英文全拼:disk free) 命令用於顯示目前在 Linux 系統上的文件系統磁碟使用情況統計。

df -hT

顯示文件系統磁碟使用情況統計

4.2、du

du (英文全拼:disk usage)命令用於顯示目錄或文件的大小。du 會顯示指定的目錄或文件所佔用的磁碟空間。

du -h --max-depth=1 ./*

顯示目錄或文件的大小

4.3、ifconfig

顯示當前網路介面狀態

顯示當前網路介面狀態

4.4、netstat

netstat 命令用於顯示網路狀態。利用 netstat 指令可讓你得知整個 Linux 系統的網路情況。

  • 查看當前路由資訊:
netstat -rn

查看當前路由資訊

  • 查看所有有效TCP連接:
netstat -an
  • 查看系統中啟動的監聽服務:
netstat -tulnp

查看系統中啟動的監聽服務

  • 查看處於連接狀態的系統資源資訊:
netstat -atunp

查看處於連接狀態的系統資源資訊

4.5、wget

wget是Linux中的一個下載文件的工具,wget是在Linux下開發的開放源程式碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平台上。

對於Linux用戶是必不可少的工具,尤其對於網路管理員,經常要下載一些軟體或從遠程伺服器恢復備份到本地伺服器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠程伺服器下載到我們電腦磁碟,然後再用ftp工具上傳到伺服器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則可以直接下載到伺服器而不用經過上傳這一步。wget工具體積小但功能完善,它支援斷點下載功能,同時支援FTP和HTTP下載方式,支援代理伺服器和設置起來方便簡單。

如果不能使用,請先安裝wget

yum install -y wget

查看幫助手冊

wget --help

查看wget幫助手冊

a、使用 wget 下載單個文件

以下的例子是從網路下載一個文件並保存在當前目錄

在下載的過程中會顯示進度條,包含(下載完成百分比,已經下載的位元組,當前下載速度,剩餘下載時間)。

wget //cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

使用 wget 下載單個文件

b、使用 wget -O 下載並以不同的文件名保存

wget -O wordpress.tar.gz  //cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

**c、使用 wget -c 斷點續傳 **

使用wget -c重新啟動下載中斷的文件:

對於我們下載大文件時突然由於網路等原因中斷非常有幫助,我們可以繼續接著下載而不是重新下載一個文件

wget -c //cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

d、使用 wget -b 後台下載

對於下載非常大的文件的時候,我們可以使用參數-b進行後台下載

[root@network test]# wget -b //cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

你可以使用以下命令來察看下載進度

tail -f wget-log

5、軟體的安裝與管理

5.1、rpm

rpm(英文全拼:redhat package manager) 命令用於管理套件。 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程式,由於它遵循 GPL 規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的採用。RPM 套件管理方式的出現,讓 Linux 易於安裝,升級,間接提升了 Linux 的適用度。

  • 安裝軟體包:rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm

  • 模糊搜索軟體包:rpm -qa | grep nginx

  • 精確查找軟體包:rpm -qa nginx

  • 查詢軟體包的安裝路徑:rpm -ql nginx-1.12.2-2.el7.x86_64

  • 查看軟體包的概要資訊:rpm -qi nginx-1.12.2-2.el7.x86_64

  • 驗證軟體包內容和安裝文件是否一致:rpm -V nginx-1.12.2-2.el7.x86_64

  • 更新軟體包:rpm -Uvh nginx-1.12.2-2.el7.x86_64

  • 刪除軟體包:rpm -e nginx-1.12.2-2.el7.x86_64

    用法: rpm [選項...]
    -a:查詢所有套件;
    -b<完成階段><套件檔>+或-t <完成階段><套件檔>+:設置包裝套件的完成階段,並指定套件檔的文件名稱;
    -c:只列出組態配置文件,本參數需配合``"-l"``參數使用;
    -d:只列出文本文件,本參數需配合``"-l"``參數使用;
    -e<套件檔>或--erase<套件檔>:刪除指定的套件;
    -f<文件>+:查詢擁有指定文件的套件;
    -h或--``hash``:套件安裝時列出標記;
    -i:顯示套件的相關資訊;
    -i<套件檔>或--``install``<套件檔>:安裝指定的套件檔;
    -l:顯示套件的文件列表;
    -p<套件檔>+:查詢指定的RPM套件檔;
    -q:使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶;
    -R:顯示套件的關聯性資訊;
    -s:顯示文件狀態,本參數需配合``"-l"``參數使用;
    -U<套件檔>或--upgrade<套件檔>:升級指定的套件檔;
    -``v``:顯示指令執行過程;
    -vv:詳細顯示指令執行過程,便於排錯。
    

5.2、yum

yum(Yellow dog Updater Modified)是CentOS中屬於RPM前端軟體包管理器,能從指定的伺服器中下載RPM包,並自動分析和處理RPM包之間的依賴關係,最後將依次所依賴的軟體包都安裝了,而無需繁瑣的一個一個安裝。

yum 語法

yum [options] [command] [package ...]
  • options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部為 “yes”),-q(不顯示安裝的過程)等等。
  • command:要進行的操作。
  • package:安裝的包名

yum常用命令

  • 安裝軟體包: yum install nginx

  • 刪除軟體包命令:**yum remove **

  • 檢查可以更新的軟體包:yum check-update

  • 清除快取命令:

    • yum clean packages: 清除快取目錄下的軟體包
    • yum clean headers: 清除快取目錄下的 headers
    • yum clean oldheaders: 清除快取目錄下舊的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除快取目錄下的軟體包及舊的 headers
  • 更新指定的軟體包:yum update nginx

  • 在資源庫中查找軟體包資訊:刪除軟體包命令:**yum remove **

    image-20210119113801647

  • 列出已經安裝的所有軟體包:yum info installed

  • 列出軟體包名稱:yum list nginx*

    列出軟體包名

  • 模糊搜索軟體包:yum search nginx

    模糊搜索軟體包

往期推薦

一文講通.NET Core部署到Windows IIS最全解決方案]

.NET Core部署到linux(CentOS)最全解決方案,常規篇

.NET Core部署到linux(CentOS)最全解決方案,進階篇(Supervisor+Nginx)

.NET Core部署到linux(CentOS)最全解決方案,高階篇(Docker+Nginx 或 Jexus)

.NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現持續集成、自動化部署)

一網打盡,一文講通虛擬機VirtualBox及Linux使用

全新跨平台版本.NET敏捷開發框架-RDIFramework.NET5.0震撼發布

RDIFramework.NET敏捷開發框架助力企業BPM業務流程系統的開發與落地

通過SignalR技術整合即時通訊(IM)在.NET敏捷開發框架中落地


一路走來數個年頭,感謝RDIFramework.NET框架的支援者與使用者,大家可以通過下面的地址了解詳情。

RDIFramework.NET官方網站://www.rdiframework.net/

RDIFramework.NET官方部落格://blog.rdiframework.net/

特別說明,框架相關的技術文章請以官方網站為準,歡迎大家收藏!

RDIFramework.NET框架由海南國思軟體科技有限公司專業團隊長期打造、一直在更新、一直在升級,請放心使用!

歡迎關注RDIFramework.NET框架官方微信公眾號(微訊號:guosisoft),及時了解最新動態。

使用微信掃描二維碼立即關注

微訊號:guosisoft