硬核!高頻Linux命令大總結,建議收藏~

前 言

記得不久前跟你們大分享了一波我的在平時平常工做、學習、開發、寫文字、作視頻等過程當中,一些好用高效的在線工具和網站,而且把本身的瀏覽器收藏夾書籤離線文件都導出給你們了node

不少小夥伴後臺反饋還不錯,說書籤一導入後,不少工具確實挺好用,主要省了不少找資源和整理的時間。linux

今天繼續分享,最近花了很多時間把平時開發過程當中經常使用的一些Linux系統命令給作了一個大整理,造成一個經常使用高頻Linux速查備忘錄。有了它,還怕Linux操做系統經常使用操做和命令記不住麼?ios

接下來直接上菜吧。nginx

注:本文 GitHub https://github.com/rd2coding/Road2Coding 已經收錄,裏面有我整理的 6大編程方向(崗位)的自學路線+知識點大梳理面試考點個人簡歷幾本硬核pdf筆記,以及 個人程序員人生

關機/重啓/註銷

經常使用命令 做用
shutdown -h now 即刻關機
shutdown -h 10 10分鐘後關機
shutdown -h 11:00 11:00關機
shutdown -h +10 預約時間關機(10分鐘後)
shutdown -c 取消指定時間關機
shutdown -r now 重啓
shutdown -r 10 10分鐘以後重啓
shutdown -r 11:00 定時重啓
reboot 重啓
init 6 重啓
init 0 馬上關機
telinit 0 關機
poweroff 馬上關機
halt 關機
sync buff數據同步到磁盤
logout 退出登陸Shell
注意點:好比一樣是關機,shutdown、poweroff、halt、init 0有什麼區別呢?這個有興趣能夠本身瞭解一下,它們是有區別的。

系統信息和性能查看

這裏命令其實平時用得是很是之多的,由於一旦系統或者後臺服務除了問題,咱們常常要登上去查看,包括不少的系統信息,好比:系統版本、內核版本、處理器架構、計算機名、環境變量、用戶狀況、負載狀況、內存用量、磁盤信息、進程、網絡鏈接...
經常使用命令 做用
uname -a 查看內核/OS/CPU信息
uname -r 查看內核版本
uname -m 查看處理器架構
arch 查看處理器架構
hostname 查看計算機名
who 顯示當前登陸系統的用戶
who am i 顯示登陸時的用戶名
whoami 顯示當前用戶名
cat /proc/version 查看linux版本信息
cat /proc/cpuinfo 查看CPU信息
cat /proc/interrupts 查看中斷
cat /proc/loadavg 查看系統負載
uptime 查看系統運行時間、用戶數、負載
env 查看系統的環境變量
lsusb -tv 查看系統USB設備信息
lspci -tv 查看系統PCI設備信息
lsmod 查看已加載的系統模塊
grep MemTotal /proc/meminfo 查看內存總量
grep MemFree /proc/meminfo 查看空閒內存量
free -m 查看內存用量和交換區用量
date 顯示系統日期時間
cal 2021 顯示2021日曆表
top 動態顯示cpu/內存/進程等狀況
vmstat 1 20 每1秒採一次系統狀態,採20次
iostat 查看io讀寫/cpu使用狀況
sar -u 1 10 查詢cpu使用狀況(1秒一次,共10次)
sar -d 1 10 查詢磁盤性能

磁盤和分區

這是和平常使用息息相關的一些經常使用命令,在Windows系統裏面咱們點點鼠標,圖形化界面上就能查看,可是在Linux中咱們應該熟練掌握用命令的方式來查看,好比:各類分區信息查看、磁盤使用狀況、文件和目錄大小、各類掛載和卸載...
經常使用命令 做用
fdisk -l 查看全部磁盤分區
swapon -s 查看全部交換分區
df -h 查看磁盤使用狀況及掛載點
df -hl 查看磁盤剩餘空間
du -sh /dir 查看指定目錄大小
`du -sk * sort -rn` 從高到低依次顯示文件和目錄大小
mount /dev/hda2 /mnt/hda2 掛載hda2盤
mount -t ntfs /dev/sdc1 /mnt/usbhd1 指定文件系統類型掛載(如ntfs)
mount -o loop xxx.iso /mnt/cdrom 掛載iso文件
mount /dev/sda1 /mnt/usbdisk 掛載usb盤/閃存設備
umount -v /dev/sda1 經過設備名卸載
umount -v /mnt/mymnt 經過掛載點卸載
fuser -km /mnt/hda1 強制卸載(慎用)

用戶和用戶組

Linux系統裏用戶組和用戶自己也是一個很是重要的概念,這部分命令主要就是關於:用戶的CRUD、用戶組的CURD、而後還包括查用戶、切換用戶、改密碼、查用戶登陸日誌...
經常使用命令 做用
useradd codesheep 建立用戶
userdel -r codesheep 刪除用戶
usermod -g group_name user_name 修改用戶的組
usermod -aG group_name user_name 將用戶添加到組
usermod -s /bin/ksh -d /home/codepig –g dev codesheep 修改用戶codesheep的登陸Shell、主目錄以及用戶組
groups test 查看test用戶所在的組
groupadd group_name 建立用戶組
groupdel group_name 刪除用戶組
groupmod -n new_name old_name 重命名用戶組
su - user_name 完整切換到一個用戶環境
passwd 修改口令
passwd codesheep 修改某用戶的口令
w 查看活動用戶
id codesheep 查看指定用戶信息
last 查看用戶登陸日誌
crontab -l 查看當前用戶的計劃任務
cut -d: -f1 /etc/passwd 查看系統全部用戶
cut -d: -f1 /etc/group 查看系統全部組

網絡和進程管理

咱們做爲一個後端開發,這些命令平時用到的機率很大,好比:查看網絡、查看鏈接、查看端口服務、配置網卡/防火牆/路由表/DNS,查看和過濾進程,採集系統狀態,還有一些系統性能的監控和排查命令...等等。這些命令,在後端開發連到公司服務器上去排查問題時就頗有用了,用得也很頻繁。
經常使用命令 做用
ifconfig 查看網絡接口屬性
ifconfig eth0 查看某網卡的配置
route -n 查看路由表
netstat -lntp 查看全部監聽端口
netstat -antp 查看全部已經創建的鏈接
netstat -lutp 查看TCP/UDP的狀態信息
ifup eth0 啓用eth0網絡設備
ifdown eth0 禁用eth0網絡設備
iptables -L 查看iptables規則
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置ip地址
dhclient eth0 以dhcp模式啓用eth0
route add -net 0/0 gw Gateway_IP 配置默認網關
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 配置靜態路由到達網絡'192.168.0.0/16'
route del 0/0 gw Gateway_IP 刪除靜態路由
hostname 查看主機名
host www.codesheep.cn 解析主機名
nslookup www.codesheep.cn 查詢DNS記錄,查看域名解析是否正常
ps -ef 查看全部進程
`ps -ef grep codesheep` 過濾出你須要的進程
kill -s name kill指定名稱的進程
kill -s pid kill指定pid的進程
top 實時顯示進程狀態
vmstat 1 20 每1秒採一次系統狀態,採20次
iostat 查看io讀寫/cpu使用狀況
sar -u 1 10 查詢cpu使用狀況(1秒一次,共10次)
sar -d 1 10 查詢磁盤性能

常見系統服務命令

這類命令平時接觸得也不少,好比咱們本身在安裝和部署各類各樣的基礎編程環境和服務時就經常使用,好比裝JDK、MySQL數據庫、redis緩存、nginx服務器...
經常使用命令 做用
chkconfig --list 列出系統服務
service <服務名> status 查看某個服務
service <服務名> start 啓動某個服務
service <服務名> stop 終止某個服務
service <服務名> restart 重啓某個服務
systemctl status <服務名> 查看某個服務
systemctl start <服務名> 啓動某個服務
systemctl stop <服務名> 終止某個服務
systemctl restart <服務名> 重啓某個服務
systemctl enable <服務名> 開啓自啓動
systemctl disable <服務名> 關閉自啓動

文件和目錄操做

這類命令所有是Linux系統使用的基本操做,也是平時用到頻率最高的一些命令,關於文件操做的、關於目錄操做的、關於路徑的。好比:對文件和目錄的各類高頻操做,建立、查看、查找、刪除、重命名、複製、軟鏈接、快速定位和查找... 等等。都是些高頻的實用命令。
經常使用命令 做用
cd <目錄名> 進入某個目錄
cd .. 回上級目錄
cd ../.. 回上兩級目錄
cd 進我的主目錄
cd - 回上一步所在目錄
pwd 顯示當前路徑
ls 查看文件目錄列表
ls -F 查看目錄中內容(顯示是文件仍是目錄)
ls -l 查看文件和目錄的詳情列表
ls -a 查看隱藏文件
ls -lh 顯示權限
ls -lSr more 按大小查看文件/目錄
tree 查看文件和目錄的樹形結構
mkdir <目錄名> 建立目錄
mkdir dir1 dir2 同時建立兩個目錄
mkdir -p /tmp/dir1/dir2 建立目錄樹
rm -f file1 刪除'file1'文件
rmdir dir1 刪除'dir1'目錄
rm -rf dir1 刪除'dir1'目錄和其內容
rm -rf dir1 dir2 同時刪除兩個目錄及其內容
mv old_dir new_dir 重命名/移動目錄
cp file1 file2 複製文件
cp dir/* . 複製某目錄下的全部文件至當前目錄
cp -a dir1 dir2 複製目錄
cp -a /tmp/dir1 . 複製一個目錄至當前目錄
ln -s file1 link1 建立指向文件/目錄的軟連接
ln file1 lnk1 建立指向文件/目錄的物理連接
find / -name file1 從跟目錄開始搜索文件/目錄
find / -user user1 搜索用戶user1的文件/目錄
find /dir -name *.bin 在目錄/dir中搜帶有.bin後綴的文件
locate 關鍵詞 快速定位文件
locate *.mp4 尋找.mp4結尾的文件
whereis halt 顯示某二進制文件/可執行文件的路徑
which halt 查找系統目錄下的二進制文件
chmod ugo+rwx dir1 設置目錄全部者(u)、羣組(g)及其餘人(o)的讀(r)寫(w)執行(x)權限
chmod go-rwx dir1 移除羣組(g)與其餘人(o)對目錄的讀寫執行權限
chown user1 file1 改變文件的全部者屬性
chown -R user1 dir1 改變目錄的全部者屬性
chgrp group1 file1 改變文件羣組
chown user1:group1 file1 改變文件的全部人和羣組

文件查看和處理

這部分命令主要針對性地關於文件處理或者說文本處理,好比咱們做爲一個程序員,那操做最多的就是代碼源文件,各類花式查看、比較、增長、刪除、替換、合併... 等等一系列快速操做。
經常使用命令 做用
cat file1 查看文件內容
cat -n file1 查看內容並標示行數
cat xxx.txt awk 'NR%2==1' 查看文件中的全部奇數行
tac file1 從最後一行開始反看文件內容
more file1 查看一個長文件的內容
less file1 相似more命令,但容許反向操做
head -2 file1 查看文件前兩行
tail -2 file1 查看文件後兩行
tail -f /log/msg 實時查看添加到文件中的內容
grep codesheep hello.txt 在文件hello.txt中查找關鍵詞codesheep
grep ^sheep hello.txt 在文件hello.txt中查找以sheep開頭的內容
grep [0-9] hello.txt 選擇hello.txt文件中全部包含數字的行
sed 's/s1/s2/g' hello.txt 將hello.txt文件中的s1替換成s2
sed '/^$/d' hello.txt 從hello.txt文件中刪除全部空白行
sed '/ *#/d; /^$/d' hello.txt 從hello.txt文件中刪除全部註釋和空白行
sed -e '1d' hello.txt 從文件hello.txt 中排除第一行
sed -n '/s1/p' hello.txt 查看只包含關鍵詞"s1"的行
sed -e 's/ *$//' hello.txt 刪除每一行最後的空白字符
sed -e 's/s1//g' hello.txt 從文檔中只刪除詞彙s1並保留剩餘所有
sed -n '1,5p;5q' hello.txt 查看從第一行到第5行內容
sed -n '5p;5q' hello.txt 查看第5行
paste file1 file2 合併兩個文件或兩欄的內容
paste -d '+' file1 file2 合併兩個文件或兩欄的內容,中間用"+"區分
sort file1 file2 排序兩個文件的內容
sort file1 file2 uniq 取出並集(重複的行只保留一份)
sort file1 file2 uniq -u 刪除交集,留下其餘行
sort file1 file2 uniq -d 取交集
comm -1 file1 file2 比較兩個文件的內容(去除'file1'所含內容)
comm -2 file1 file2 比較兩個文件的內容(去除'file2'所含內容)
comm -3 file1 file2 比較兩個文件的內容(去除兩文件共有部分)

打包和解壓

這部份內容主要關於文件或者目錄的打包壓縮和解壓,涉及好幾種壓縮包格式和文件,這部分命令在平時用得也是很是很是頻繁的。
經常使用命令 做用
zip xxx.zip file 壓縮至zip包
zip -r xxx.zip file1 file2 dir1 將多個文件+目錄壓成zip包
unzip xxx.zip 解壓zip包
tar -cvf xxx.tar file 建立非壓縮tar包
tar -cvf xxx.tar file1 file2 dir1 將多個文件+目錄打tar包
tar -tf xxx.tar 查看tar包的內容
tar -xvf xxx.tar 解壓tar包
tar -xvf xxx.tar -C /dir 將tar包解壓至指定目錄
tar -cvfj xxx.tar.bz2 dir 建立bz2壓縮包
tar -jxvf xxx.tar.bz2 解壓bz2壓縮包
tar -cvfz xxx.tar.gz dir 建立gzip壓縮包
tar -zxvf xxx.tar.gz 解壓gzip壓縮包
bunzip2 xxx.bz2 解壓bz2壓縮包
bzip2 filename 壓縮文件
gunzip xxx.gz 解壓gzip壓縮包
gzip filename 壓縮文件
gzip -9 filename 最大程度壓縮

而後接下來就是一些常見的包管理器命令。首先什麼是包管理器,你們應該都清楚。git

這麼說吧,若是沒有包管理器這個東西的存在,那估計僅僅是Linux系統上的軟件安裝,怕是就要勸退不少用戶了,由於不少的軟件依賴處理會讓人抓狂。所以簡單來講,咱們能夠將包管理器理解爲,用來爲Linux系統上的軟件安裝、卸載、升級、查詢提供支持的組件,因此對於用戶使用來講,通常就是一組工具命令集。程序員

咱們日常使用最廣的好比,紅帽子的包結構RPM包管理器,像RedHat、CentOS等系統都在用,典型的命令就是rpm命令、yum命令;而後就是DPKG包管理器,像Debain、Ubuntu等系統都用,典型的命令好比dpkg命令、apt軟件工具。github


rpm包管理命令

經常使用命令 做用
rpm -qa 查看已安裝的rpm包
rpm -q pkg_name 查詢某個rpm包
rpm -q --whatprovides xxx 顯示xxx功能是由哪一個包提供的
rpm -q --whatrequires xxx 顯示xxx功能被哪一個程序包依賴的
rpm -q --changelog xxx 顯示xxx包的更改記錄
rpm -qi pkg_name 查看一個包的詳細信息
rpm -qd pkg_name 查詢一個包所提供的文檔
rpm -qc pkg_name 查看已安裝rpm包提供的配置文件
rpm -ql pkg_name 查看一個包安裝了哪些文件
rpm -qf filename 查看某個文件屬於哪一個包
rpm -qR pkg_name 查詢包的依賴關係
rpm -ivh xxx.rpm 安裝rpm包
rpm -ivh --test xxx.rpm 測試安裝rpm包
rpm -ivh --nodeps xxx.rpm 安裝rpm包時忽略依賴關係
rpm -e xxx 卸載程序包
rpm -Fvh pkg_name 升級肯定已安裝的rpm包
rpm -Uvh pkg_name 升級rpm包(若未安裝則會安裝)
rpm -V pkg_name RPM包詳細信息校驗

yum包管理命令

經常使用命令 做用
yum repolist enabled 顯示可用的源倉庫
yum search pkg_name 搜索軟件包
yum install pkg_name 下載並安裝軟件包
yum install --downloadonly pkg_name 只下載不安裝
yum list 顯示全部程序包
yum list installed 查看當前系統已安裝包
yum list updates 查看能夠更新的包列表
yum check-update 查看可升級的軟件包
yum update 更新全部軟件包
yum update pkg_name 升級指定軟件包
yum deplist pkg_name 列出軟件包依賴關係
yum remove pkg_name 刪除軟件包
yum clean all 清除緩存
yum clean packages 清除緩存的軟件包
yum clean headers 清除緩存的header

dpkg包管理命令

經常使用命令 做用
dpkg -c xxx.deb 列出deb包的內容
dpkg -i xxx.deb 安裝/更新deb包
dpkg -r pkg_name 移除deb包
dpkg -P pkg_name 移除deb包(不保留配置)
dpkg -l 查看系統中已安裝deb包
dpkg -l pkg_name 顯示包的大體信息
dpkg -L pkg_name 查看deb包安裝的文件
dpkg -s pkg_name 查看包的詳細信息
dpkg –unpack xxx.deb 解開deb包的內容

apt軟件工具

經常使用命令 做用
apt-cache search pkg_name 搜索程序包
apt-cache show pkg_name 獲取包的概覽信息
apt-get install pkg_name 安裝/升級軟件包
apt-get purge pkg_name 卸載軟件(包括配置)
apt-get remove pkg_name 卸載軟件(不包括配置)
apt-get update 更新包索引信息
apt-get upgrade 更新已安裝軟件包
apt-get clean 清理緩存

離線文檔

除了上述內容,本次梳理還把那些高頻實用的Linux命令給提了出來,而且作成了兩種形式的離線文檔,分別爲PDF格式和高清圖片格式,PDF方便電腦查看,高清圖片則方便用手機查看,這樣沒事的功夫均可以拿出來在手機上瞅一瞅、看一看。面試

PDF文檔大體長這樣:redis

高清圖片差很少長這樣,有十幾張,包含了幾百條命令:數據庫

該文檔 GitHub https://github.com/rd2coding/Road2Coding 已經收錄。

後 記

另外最近花了大把力氣,把自用的編程學習資源作了個大整理。

都是純肝貨,目錄以下。

該內容 GitHub https://github.com/rd2coding/Road2Coding 已經收錄,裏面還有我整理的 6大編程方向的自學路線+知識點大梳理個人簡歷面試考點幾本硬核pdf筆記,以及 個人程序員人生,歡迎star。

整理不易,歡迎支持,下期見!

相關文章
相關標籤/搜索