記得不久前跟你們大分享了一波我的在平時平常工做、學習、開發、寫文字、作視頻等過程當中,一些好用高效的在線工具和網站,而且把本身的瀏覽器收藏夾書籤離線文件都導出給你們了。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 -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 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 -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-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。
整理不易,歡迎支持,下期見!