前言
本文收錄了linux常用指令,這裡面有個小技巧,基本上所有指令後面跟上 --h 可以顯示其使用方法。故不必死記硬背,知其意乃通其形。
分類如下:
- 檔案&目錄操作(16個)
- 檢視檔案&內容處理(18個)
- 檔案壓縮&解壓縮(3個)
- 資訊顯示(11個)
- 搜尋檔案(4個)
- 程式管理(11個)
- 使用者管理(7個)
- 網路操作(11個)
- 磁碟&檔案系統(7個)
- 系統許可權(3個)
- 關機重啟(5個)
- 其他(6個)
檔案&目錄操作(16個)
ls
- ls -a 檢視所有檔案,包含隱藏檔案
- ls -l 簡寫 ll,檢視詳細資訊
- ls -h 檔案大小以易讀的方式顯示
cd
- cd ../ 返回上級目錄
- cd ~ 前往家目錄
- cd - 返回上一次所在目錄
cp
- cp -r 複製目錄及目錄下檔案
find
- find / -name 'target' 查詢根目錄下面檔名為 target 的檔案
mkdir
- mkdir -p /tmp/test 遞迴建立目錄
mv
- mv -f source destination 強制
pwd
- pwd 顯示當前路徑
rm
- rm -rf / 強制刪除根目錄及目錄下的檔案,就是我們通常所說的刪庫跑路
touch
- touch target 建立target檔案,若檔案存在則改變檔案時間戳
tree
- tree 功能是以樹形結構顯示目錄下的內容
basename
- basename /tmp/1 顯示檔名
dirname
- dirname /tmp/1 顯示路徑
chattr
- chattr +i /tmp/1 加i屬性,防止檔案被修改
lsattr
- lsattr /tmp/1 檢視檔案的擴充套件屬性
file
- file /tmp/1 顯示檔案型別
md5
- md5 /tmp/1 顯示檔案MD5值
檢視檔案&內容處理(18個)
cat
- cat -n 顯示行號
- cat file1 file2 開啟檔案1和2
more
- more file1 逐頁顯示
less
- less file1 也是逐頁顯示,與more方向相反
head
- head -n file 顯示檔案頭n行
tail
- tail -n file 顯示檔案尾n行
- tailf file 實時顯示檔案尾10行,常用於跟蹤日誌資訊
cut
- who|cut -b 1-3,5 輸出每行的1至3個位元組和第5個位元組
- who|cut -c -3 輸出每行的1至3個字元
- who|cut -c 3- 輸出每行的第3個字元到行尾
- who|cut -d ' ' -f 1 以空格為分隔符,輸出第一個域
split
- split -b 10k date.file 將檔案分割為10k的多個子檔案
- split -b 10k date.file split_file 指定子檔案字首為split_file
paste
- psate file1 file2 file3 將3個檔案按列合併
sort
- sort -n 按照數值大小排序
- sort -r 倒序排序
- sort -t 指定分隔符
- sort -u 忽略相同行
uniq
- uniq -c 顯示出現次數,只有相鄰的才算重複
- uniq -d 只顯示重複的行
- unqi -u 只顯示不重複的行
wc
- wc -l 顯示列數
diff
- diff file1 file2 比較兩個檔案差異
rev
- rev file 反向輸出檔案內容
grep
- grep 'target' file 過濾輸出檔案中包含target的行
- grep -v 'target' file 過濾輸出檔案中不包含target的行
- grep -c 'target' file 過濾輸出檔案中包含target的行數
- grep -i 'target' file 忽略大小寫
- egrep '[1-9]|a' file 過濾輸出正則匹配到的行
- seq 10 | grep "5" -A 3 顯示匹配某個結果之後的3行
- seq 10 | grep "5" -B 3 顯示匹配某個結果之前的3行
- seq 10 | grep "5" -C 3 顯示匹配某個結果的前三行和後三行
join
- join file1 file2 將兩個檔案中,指定欄位內容相同的行連線起來
tr
- cat text | tr '\t' ' ' 將製表符替換成空格
vim
三種模式:
- 編輯模式(命令模式)
- 輸入模式
-
末行模式
模式的轉換
編輯->輸入
i: 在當前游標所在字元的前面,轉為輸入模式; a: 在當前游標所在字元的後面,轉為輸入模式; o: 在當前游標所在行的下方,新建一行,並轉為輸入模式; I:在當前游標所在行的行首,轉換為輸入模式 A:在當前游標所在行的行尾,轉換為輸入模式 O:在當前游標所在行的上方,新建一行,並轉為輸入模式;
輸入->編輯
ESC
編輯->末行:
:
末行->編輯:
ESC,ESC
開啟檔案
vim +# :開啟檔案,並定位於第#行 vim +:開啟檔案,定位至最後一行 vim +/PATTERN : 開啟檔案,定位至第一次被PATTERN匹配到的行的行首
關閉檔案
:q 退出 :wq 儲存並退出 :q! 不儲存並退出 :w 儲存 :w! 強行儲存
移動游標(編輯模式)
-
逐字元移動
h: 左 l: 右 j: 下 k: 上 #h: 移動#個字元
-
以單詞為單位移動
w: 移至下一個單詞的詞首 e: 跳至當前或下一個單詞的詞尾 b: 跳至當前或前一個單詞的詞首 #w: 移動#個單詞
-
行內跳轉
0: 絕對行首 ^: 行首的第一個非空白字元 $: 絕對行尾
-
行間跳轉
#G:跳轉至第#行 gg: 第一行 G:最後一行
翻屏
Ctrl+f: 向下翻一屏 Ctrl+b: 向上翻一屏 Ctrl+d: 向下翻半屏 Ctrl+u: 向上翻半屏
刪除單個字元
x: 刪除游標所在處的單個字元 #x: 刪除游標所在處及向後的共#個字元
刪除命令: d
dd: 刪除當前游標所在行 #dd: 刪除包括當前游標所在行在內的#行;
撤消編輯操作
u:撤消前一次的編輯操作 #u: 直接撤消最近#次編輯操作 連續u命令可撤消此前的n次編輯操作 撤消最近一次撤消操作:Ctrl+r
查詢
/PATTERN ?PATTERN n 下一個 N 上一個
檔案壓縮&解壓縮(3個)
tar
- tar zxvf FileName.tar.gz 解壓
- tar zcvf FileName.tar.gz DirName 壓縮
zip
- zip -r html.zip /home/html 遞迴壓縮
unzip
unzip test.zip -d /tmp 解壓到指定目錄下
資訊顯示(11個)
uname
- uname -a 顯示系統全部資訊
hostname
- hostname 顯示主機名
dmesg
- dmesg 顯示開機資訊
uptime
- uptime 顯示系統執行時間及負載
stat
- stat 顯示檔案的狀態資訊
du
- du -sh 顯示路徑下所有檔案大小
- du -sh local 顯示路徑下local目錄檔案大小
- du -sh * 顯示路徑下所有目錄檔案大小
df
- df -h 顯示系統磁碟空間的使用情況
top
- top 實時顯示系統資源使用情況
free
- free -m 以M為單位檢視系統記憶體
date
- date +"%Y-%m-%d" 2019-05-28
- date -d "1 day ago" +"%Y-%m-%d" 輸出昨天日期
- date -d "+1 day" +%Y%m%d 顯示前一天的日期
- date -d "-1 day" +%Y%m%d 顯示後一天的日期
- date -d "-1 month" +%Y%m%d 顯示上一月的日期
- date -d "+1 month" +%Y%m%d 顯示下一月的日期
- date -d "-1 year" +%Y%m%d 顯示前一年的日期
- date -d "+1 year" +%Y%m%d 顯示下一年的日期
cal
- cal 日曆資訊
搜尋檔案(4個)
which
- which pwd 顯示命令路徑
find
- find / -name 'target' 查詢根目錄下面檔名為 target 的檔案
whereis
- whereis php 查詢二進位制命令
locate
- locate target 從資料庫 (/var/lib/mlocate/mlocate.db) 查詢目標檔案,使用updatedb更新庫
程式管理(11個)
jobs
- jobs 檢視當前有多少在後臺執行的命令
bg
- bg 1 將一個在後臺暫停的命令,繼續執行,1為作業號
(ctrl+z)可以掛起程式,返回作業號
fg
- fg 1 將後臺中的命令調至前臺繼續執行 ,1為作業號
kill
- kill 程式號 殺程式
- kill -9 程式號 強殺程式
killall
- killall php 通過程式名字殺程式
- killall -9 php 通過程式名字強殺程式
pkill
- 用法同上
crontab
- crontab -l 檢視定時任務
- crontab -e 編輯定時任務
- crontab -l -u user1 檢視user1定時任務,只有root才有許可權
- crontab -e -u user1 編輯user1定時任務,只有root才有許可權
ps
- ps -ef 檢視程式,顯示UID,PPIP,C與STIME,每個程式所使用的環境變數欄位
- ps -axu 檢視所有程式,並顯示屬於使用者
pstree
- pstree -p 顯示當前所有程式的程式號和程式id樹
- pstree -a 顯示所有程式的所有詳細資訊樹
nohup
- nohup command & 退出賬戶時不結束通話程式,仍在後臺執行
pgrep
- pgrep -l httpd 查詢http相關的程式號
使用者管理(7個)
useradd
- useradd boy -u 888 建立一個新使用者賬戶,並設定ID
- useradd –g sales jack –G company,employees
-g:加入主要組 -G:加入次要組
usermod
- usermod -G staff newuser2 將newuser2新增到組staff中
- usermod -l newuser1 newuser 修改newuser的使用者名稱為newuser1
- usermod -L newuser1 鎖定賬號newuser1
- usermod -U newuser1 解除對newuser1的鎖定
userdel
- userdel -f user1 強制刪除使用者
- userdel -r user1 刪除使用者的同時,刪除與使用者相關的所有檔案
groupadd
- groupadd -g 1000 group1 建立一個新組,並設定組ID加入系統
passwd
- passwd user1 修改user1密碼
- passwd -l user1 鎖住密碼
- passwd -d user1 刪除密碼
su
- su root 切換身份
sudo
- sudo command 已管理員身份執行命令
網路操作(11個)
telnet
- telnet 127.0.0.1 登入遠端主機
ssh
- ssh root@127.0.0.1 -p22 登入遠端主機
scp
- scp local_file remote_username@remote_ip:remote_folder 本地拷貝到遠端
- scp remote_username@remote_ip:remote_folder local_file 遠端拷貝到本地
wget
- wget url 下載一個檔案
- wget --limit-rate=300k url 限速下載
- wget -c url 斷點續傳
- wget -b url 後臺下載
ping
- ping www.baidu.com -c 2 收到兩個包就結束
route
- route 顯示當前路由
ifconfig
- ifconfig 檢視、配置、啟用或禁用網路介面
ifup
- ifup eth0 開啟eth0網路卡
ifdown
- ifdown eth0 關閉eth0網路卡
netstat
- netstat -at 列出所有 tcp 埠
- netstat -au 列出所有 udp 埠
- netstat -l 只顯示監聽埠
ss
- ss -t -a 顯示所有tcp連結
- ss -l 顯示處於監聽狀態的套接字
磁碟&檔案系統(7個)
mount
- mount /dev/hda1 /mnt 將/dev/hda1掛載到/mnt目錄下
umount
- umount -v /mnt/mymount/ 解除安裝/mnt/mymount/
fsck
- fsck -y /dev/hda2 檢查並修復Linux檔案系統
dumpe2fs
- dumpe2fs /dev/hda1 檢視檔案系統資訊
dump
- dump -0u -f /tmp/homeback.bak /home
將/home目錄所有內容備份到/tmp/homeback.bak檔案中,備份層級為0並在/etc/dumpdates中記錄相關資訊
fdisk
- fdisk /dev/sdb
輸入m列出可以執行的命令
輸入p列出磁碟目前的分割槽情況
輸入d然後選擇分割槽,刪除現有分割槽
輸入print檢視分割槽情況,確認分割槽已經刪除
輸入n建立新的磁碟分割槽
輸入w最後對分割槽操作進行儲存
mkfs
- mkfs -t ext3 /dev/sda6 將sda6分割槽格式化為ext3格式
系統許可權(3個)
chmod
- chmod 777 file1 修改file1檔案許可權為777
- chmod u+x,g+w file1 為file1設定自己可以執行,組員可以寫入的許可權
chown
- chown -R root /usr/meng 修改將目錄/usr/meng及其下面的所有檔案、子目錄的檔案主改成 root
chgrp
- chgrp -R mengxin /usr/meng 將/usr/meng及其子目錄下的所有檔案的使用者組改為mengxin
關機重啟(5個)
shutdown
- shutdown -h now 立即關機
- shutdown +5 "System will shutdown after 5 minutes" 指定5分鐘後關機,同時送出警告資訊給登入使用者
halt
- halt -p 關閉系統後關閉電源
- halt -d 關閉系統,但不留下紀錄
poweroff
- poweroff -f 強制關閉作業系統
logout
- logout 退出當前登入的Shell
exit
- exit 退出當前登入的Shell
其他(6個)
echo
- echo 'hello' 列印字串、變數
- printf 'hell0' 格式化輸出字串
rpm
- rpm -ivh your-package.rpm 安裝rpm包
- rpm -Uvh your-package.rpm 升級rpm包
- rpm -e package 解除安裝
- rpm -qa 列出所有安裝過的包
- rpm -ql 包名 rpm包中的檔案安裝到那裡去
yum
- yum install php 安裝php
- yum remove php 解除安裝php
clear
- clear 清屏
history
- history 10 最近使用的10條歷史命令