摘要:整理 Linux 常用命令,碎片化的東西,一旦整理好,看著就很舒服,而且很好記。
關機 / 重啟 / 登出#
常用命令 | 作用 |
---|---|
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 |
系統資訊和性能查看#
常用命令 | 作用 |
---|---|
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 -d 1 10 | 查詢磁碟性能 |
磁碟和分區#
常用命令 | 作用 |
---|---|
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 文件 |
umount -v /dev/sda1 | 透過設備名卸載 |
umount -v /mnt/mymnt | 透過掛載點卸載 |
fuser -km /mnt/hda1 | 強制卸載 (慎用) |
用戶和用戶組#
常用命令 | 作用 |
---|---|
useradd legalgeek | 創建用戶 |
userdel -r legalgeek | 刪除用戶 |
usermod -g group_name user_name | 修改用戶的組 |
usermod -aG group_name user_name | 將用戶添加到組 |
usermod -s /bin/ksh -d /home/codepig –g dev legalgeek | 修改用戶 legalgeek 的登錄 Shell、主目錄以及用戶組 |
groups test | 查看 test 用戶所在的組 |
groupadd group_name | 創建用戶組 |
groupdel group_name | 刪除用戶組 |
groupmod -n new_name old_name | 重命名用戶組 |
su - user_name | 切換到 user_name 用戶 |
passwd | 修改口令 |
passwd legalgeek | 修改某用戶的口令 |
w | 查看活動用戶 |
id legalgeek | 查看指定用戶 legalgeek 資訊 |
last | 查看用戶登錄日誌 |
crontab -l | 查看當前用戶的計劃任務 |
cut -d: -f1 /etc/passwd | 查看系統所有用戶 |
cut -d: -f1 /etc/group | 查看系統所有組 |
網路和進程管理#
常用命令 | 作用 |
---|---|
ifconfig | 查看網路介面屬性 |
ifconfig eth0 | 查看某網卡的配置 |
route -n | 查看路由表 |
netstat -lntp | 查看所有監聽端口 |
netstat -antp | 查看已建立的 TCP 連接 |
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.baidu.com | 解析主機名 |
nslookup www.baidu.com | 查詢 DNS 記錄,查看域名解析是否正常 |
ps -ef | 查看所有進程 |
ps -ef | grep legalgeek | 過濾出你需要的進程 |
kill -s name | kill 指定名稱的進程 |
kill -s pid | kill 指定 pid 的進程 |
top | 實時顯示進程狀態 |
vmstat 1 20 | 每 1 秒採集一次系統狀態,採 20 次 |
iostat | iostat |
sar -u 1 10 | 查詢 cpu 使用情況(1 秒一次,共 10 次) |
sar -d 1 10 | 查詢磁碟性能 |
常見系統服務命令#
常用命令 | 作用 |
---|---|
chkconfig --list | 列出系統服務 |
service <服務名> status | 查看某個服務 |
service <服務名> start | 啟動某個服務 |
service <服務名> stop | 終止某個服務 |
service <服務名> restart | 重啟某個服務 |
systemctl status <服務名> | 查看某個服務 |
systemctl start <服務名> | 啟動某個服務 |
systemctl stop <服務名> | 終止某個服務 |
systemctl restart <服務名> | 重啟某個服務 |
systemctl enable <服務名> | 關閉自啟動 |
systemctl disable <服務名> | 關閉自啟動 |
文件和目錄操作#
常用命令 | 作用 |
---|---|
cd <目錄名> | 進入某個目錄 |
cd .. | 回上級目錄 |
cd ../.. | 回上兩級目錄 |
cd | 進入個人主目錄 |
cd - | 回上一步所在目錄 |
pwd | 顯示當前路徑 |
ls | 查看文件目錄列表 |
ls -F | 查看目錄中內容(顯示是文件還是目錄) |
ls -l | 查看文件和目錄的詳情列表 |
ls -a | 查看隱藏文件 |
ls -lh | 查看文件和目錄的詳情列表(增強文件大小易讀性) |
ls -lSr | 查看文件和目錄列表(以文件大小升序查看) |
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 <關鍵詞> | 顯示某二進制文件 / 可執行文件的路徑 |
which <關鍵詞> | 查找系統目錄下某的二進制文件 |
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 file1 | 改變文件的所有人和群組 |
文件查看和處理#
常用命令 | 作用 |
---|---|
cat file1 | 查看文件內容 |
cat -n file1 | 查看內容並標示行數 |
tac file1 | 從最後一行開始反看文件內容 |
more file1 | more file1 |
less file1 | 類似 more 命令,但允許反向操作 |
head -2 file1 | 查看文件前兩行 |
tail -2 file1 | 查看文件後兩行 |
tail -f /log/msg | 實時查看添加到文件中的內容 |
grep legalgeek hello.txt | 在文件 hello.txt 中查找關鍵詞 legalgeek |
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 | 排序兩個文件的內容 |
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 | 最大程度壓縮 |
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 | 清理快取 |