前言
本文收錄了 linux 常用指令,這裡面有個小技巧,基本上所有指令後面跟上 --h 可以顯示其使用方法。故不必死記硬背,知其意乃通其形。 (推薦:Linux影片教學)
分類如下:
● 檔案& 目錄操作(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
lsattr
● lsattr /tmp/1 查看檔案的擴充屬性#file
● file /tmp/1 顯示檔案類型md5
● md5 /tmp/1 顯示檔案MD5 值檢視檔案& 內容處理(18 個)cat
● cat -n 顯示行號# ● cat file1 file2 開啟檔案1 與2more
● more file1 逐頁顯示## ● 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_filepaste
# 檔案按列合併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 三種模式:# ● 編輯模式(指令模式) ● 輸入模式
● 末行模式
模式的轉換 ## 模式的轉換## 編輯-> 輸入
reee##1->#fffal#E#r#dr#dr#dr#f#$#f#f#f#reee#. 編輯-> 末行:
i: 在当前光标所在字符的前面,转为输入模式; a: 在当前光标所在字符的后面,转为输入模式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式;末行-> 編輯:
ESC#開啟檔案
:
#檔案
ESC,ESC
vim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行 vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
:q 退出 :wq 保存并退出 :q! 不保存并退出 :w 保存 :w! 强行保存
h: 左 l: 右 j: 下 k: 上 #h: 移动#个字符
##11 行間跳轉
w: 移至下一个单词的词首 e: 跳至当前或下一个单词的词尾 b: 跳至当前或前一个单词的词首 #w: 移动#个单词
翻轉螢幕
#0: 绝对行首 ^: 行首的第一个非空白字符 $: 绝对行尾刪除單一字元
#G:跳转至第#行 gg: 第一行 G:最后一行
刪除指令: dCtrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
x: 删除光标所在处的单个字符 #x: 删除光标所在处及向后的共#个字符
尋找
dd: 删除当前光标所在行 #dd: 删除包括当前光标所在行在内的#行;
檔壓縮& 解壓縮(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/
● locate target 從資料庫(/var/● locate target 從資料庫(/var/
● locate target 從資料庫(/var/● locate target 從資料庫(/var/
● locate target 從資料庫(/var/ ● 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 -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:加入主群組-G:加入主要群組-G:加入主群組次要群組#########usermod######### ● usermod -G staff newuser2 將newuser2 加入到群組staff 中####### ● usermod -l newuser1 newuser 修改newuser 的使用者名稱為newuser1###### ● usermod -L newuser1 鎖定帳號newuser1###### ● usermod -U newuser1 解除針對newuser1 的鎖定##########userdel###########################4 ### ● userdel -f user1 強制刪除使用者###### ● userdel -r user1 刪除使用者的同時,刪除與使用者相關的所有檔案#########groupadd#####1 ### ● 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 url -- -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 -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 列出可用的指令## # d 接著選擇分割區,刪除現有分割區 輸入print 查看分割區編號輸入print 查看分割區狀況,並確認分割區已刪除
輸入n 建立新的磁碟分割區作業進行儲存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 及其下面的所有檔案、子目錄的檔案主改成rootchgrp
● 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● rpm -e package 卸載
# ● rpm -qa 列出所有安裝過的套件
## ● rpm -qa 列出所有安裝的套件
● rpm -ql 套件名稱rpm 包中的檔案安裝到那裡去
#yum● yum install php 安裝php
yum remove php 卸載php
clear# ● clear 清除螢幕
history● history 10
history###延伸閱讀:#########Linux維運教學 #######