常用linux命令,開發必備-速收藏
在前面我們介紹了通過VirtualBox安裝Linux的方法,參考:
一網打盡,一文講通虛擬機VirtualBox及Linux使用
本文我們將介紹在使用linux的過程中常用的一些Linux命令,掌握這些常用命令,對操作linux是非常的有幫助,本文基於CentOS7.6。
常見執行Linux命令的格式是這樣的: 命令名稱 [命令參數] [命令對象]
注意,命令名稱、命令參數、命令對象之間請用空格鍵分隔。
命令對象一般是指要處理的文件、目錄、用戶等資源,而命令參數可以用長格式(完整的選項名稱),
也可以用短格式(單個字母的縮寫),兩者分別用–與-作為前綴
目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
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 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。
/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
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
2.15、cat
查看Linux啟動日誌文件,並標明行號:
cat -Ab /var/log/boot.log
2.16、touch
創建text.txt文件:
touch text.txt
2.17、rm
rm(英文全拼:remove)命令用於刪除一個文件或者目錄。
語法
rm [options] name...
參數:
-
-i 刪除前逐一詢問確認。
-
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-
-r 將目錄及以下之檔案亦逐一刪除。
事例:
- 刪除文件:
rm text.txt
- 強制刪除某個目錄及其子目錄:
rm -rf testdir/
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
a、使用 wget 下載單個文件
以下的例子是從網路下載一個文件並保存在當前目錄
在下載的過程中會顯示進度條,包含(下載完成百分比,已經下載的位元組,當前下載速度,剩餘下載時間)。
wget //cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
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 **
-
列出已經安裝的所有軟體包: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),及時了解最新動態。
使用微信掃描二維碼立即關注