常用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 http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

使用 wget 下載單個文件

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

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

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

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

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

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

d、使用 wget -b 后台下載

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

[root@network test]# wget -b https://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官方網站:http://www.rdiframework.net/

RDIFramework.NET官方博客:http://blog.rdiframework.net/

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

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

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

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

微信號:guosisoft


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM