21 條常考的 Linux 命令
一、文件和目錄
1. cd 命令
(它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑)
-
cd /home 進入 '/ home' 目錄
-
cd .. 返回上一級目錄
-
cd ../.. 返回上兩級目錄
-
cd 進入個人的主目錄
-
cd ~user1 進入個人的主目錄
-
cd - 返回上次所在的目錄
2. pwd 命令
pwd 顯示工作路徑
3. ls 命令
(查看文件與目錄的命令,list 之意)
-
ls 查看目錄中的文件
-
ls -l 顯示文件和目錄的詳細資料
-
ls -a 列出全部文件,包含隱藏文件
-
ls -R 連同子目錄的內容一起列出(遞歸列出),等於該目錄下的所有文件都會顯示出來
-
ls [0-9] 顯示包含數字的文件名和目錄名
4. cp 命令
(用於複製文件,copy 之意,它還可以把多個文件一次性地複製到一個目錄下)
-
-a :將文件的特性一起復制
-
-p :連同文件的屬性一起復制,而非使用默認方式,與 - a 相似,常用於備份
-
-i :若目標文件已經存在時,在覆蓋時會先詢問操作的進行
-
-r :遞歸持續複製,用於目錄的複製行爲
-
-u :目標文件與源文件有差異時纔會複製
5. mv 命令
(用於移動文件、目錄或更名,move 之意)
-
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-
-i :若目標文件已經存在,就會詢問是否覆蓋
-
-u :若目標文件已經存在,且比目標文件新,纔會更新
6. rm 命令
(用於刪除文件或目錄,remove 之意)
-
-f :就是 force 的意思,忽略不存在的文件,不會出現警告消息
-
-i :互動模式,在刪除前會詢問用戶是否操作
-
-r :遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數
二、查看文件內容
7. cat 命令
(用於查看文本文件的內容,後接要查看的文件名,通常可用管道與 more 和 less 一起使用)
-
cat file1
從第一個字節開始正向查看文件的內容 -
tac file1
從最後一行開始反向查看一個文件的內容 -
cat -n file1
標示文件的行數 -
more file1
查看一個長文件的內容 -
head -n 2 file1
查看一個文件的前兩行 -
tail -n 2 file1
查看一個文件的最後兩行 -
tail -n +1000 file1
從 1000 行開始顯示,顯示 1000 行以後的 -
cat filename | head -n 3000 | tail -n +1000
顯示 1000 行到 3000 行 -
cat filename | tail -n +3000 | head -n 1000
從第 3000 行開始,顯示 1000(即顯示 3000~3999 行)
三、文件搜索
8. find 命令()
-
find / -name file1
從 '/' 開始進入根文件系統搜索文件和目錄 -
find / -user user1
搜索屬於用戶'user1' 的文件和目錄 -
find /usr/bin -type f -atime +100
搜索在過去 100 天內未被使用過的執行文件 -
find /usr/bin -type f -mtime -10
搜索在 10 天內被創建或者修改過的文件 -
whereis halt
顯示一個二進制文件、源碼或 man 的位置 -
which halt
顯示一個二進制文件或可執行文件的完整路徑
刪除大於 50M 的文件:
find /var/mail/ -size +50M -exec rm {} \;
四、文件的權限 - 使用 "+" 設置權限,使用 "-" 用於取消
9. chmod 命令
-
ls -lh 顯示權限
-
chmod ugo+rwx directory1 設置目錄的所有人 (u)、羣組(g) 以及其他人 (o) 以讀(r,4 )、寫 (w,2) 和執行 (x,1) 的權限
-
chmod go-rwx directory1 刪除羣組 (g) 與其他人 (o) 對目錄的讀寫執行權限
10. chown 命令
(改變文件的所有者)
-
chown user1 file1 改變一個文件的所有人屬性
-
chown -R user1 directory1 改變一個目錄的所有人屬性並同時改變改目錄下所有文件的屬性
-
chown user1:group1 file1 改變一個文件的所有人和羣組屬性
11. chgrp 命令
(改變文件所屬用戶組)
- chgrp group1 file1 改變文件的羣組
五、文本處理
12. grep 命令
(分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等)
-
grep Aug /var/log/messages
在文件 '/var/log/messages'中查找關鍵詞 "Aug" -
grep ^Aug /var/log/messages
在文件 '/var/log/messages'中查找以 "Aug" 開始的詞彙 -
grep [0-9] /var/log/messages
選擇 '/var/log/messages' 文件中所有包含數字的行 -
grep Aug -R /var/log/*
在目錄 '/var/log' 及隨後的目錄中搜索字符串 "Aug" -
sed 's/stringa1/stringa2/g' example.txt
將 example.txt 文件中的 "string1" 替換成 "string2" -
sed '/^$/d' example.txt
從 example.txt 文件中刪除所有空白行
13. paste 命令
-
paste file1 file2
合併兩個文件或兩欄的內容 -
paste -d '+' file1 file2
合併兩個文件或兩欄的內容,中間用 "+" 區分
14. sort 命令
-
sort file1 file2
排序兩個文件的內容 -
sort file1 file2 | uniq
取出兩個文件的並集 (重複的行只保留一份) -
sort file1 file2 | uniq -u
刪除交集,留下其他的行 -
sort file1 file2 | uniq -d
取出兩個文件的交集 (只留下同時存在於兩個文件中的文件)
15. comm 命令
-
comm -1 file1 file2
比較兩個文件的內容只刪除'file1' 所包含的內容 -
comm -2 file1 file2
比較兩個文件的內容只刪除'file2' 所包含的內容 -
comm -3 file1 file2
比較兩個文件的內容只刪除兩個文件共有的部分
六、打包和壓縮文件
16. tar 命令
(對文件進行打包,默認情況並不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如 gzip 和 bzip 等)進行壓縮和解壓)
-
-c :新建打包文件
-
-t :查看打包文件的內容含有哪些文件名
-
-x :解打包或解壓縮的功能,可以搭配 - C(大寫)指定解壓的目錄,注意 - c,-t,-x 不能同時出現在同一條命令中
-
-j :通過 bzip2 的支持進行壓縮 / 解壓縮
-
-z :通過 gzip 的支持進行壓縮 / 解壓縮
-
-v :在壓縮 / 解壓縮過程中,將正在處理的文件名顯示出來
-
-f filename :filename 爲要處理的文件
-
-C dir :指定壓縮 / 解壓縮的目錄 dir
-
壓縮:
tar -jcv -f filename.tar.bz2
要被處理的文件或目錄名稱 -
查詢:
tar -jtv -f filename.tar.bz2
-
解壓:
tar -jxv -f filename.tar.bz2 -C
欲解壓縮的目錄 -
bunzip2 file1.bz2
解壓一個叫做'file1.bz2'的文件 -
bzip2 file1
壓縮一個叫做'file1' 的文件 -
gunzip file1.gz
解壓一個叫做'file1.gz'的文件 -
gzip file1
壓縮一個叫做'file1'的文件 -
gzip -9 file1
最大程度壓縮 -
rar a file1.rar test_file
創建一個叫做'file1.rar' 的包 -
rar a file1.rar file1 file2 dir1
同時壓縮'file1', 'file2' 以及目錄'dir1' -
rar x file1.rar
解壓 rar 包 -
zip file1.zip file1
創建一個 zip 格式的壓縮包 -
unzip file1.zip
解壓一個 zip 格式壓縮包 -
zip -r file1.zip file1 file2 dir1
將幾個文件和目錄同時壓縮成一個 zip 格式的壓縮包
七、系統和關機 (系統的關機、重啓以及登出)
-
shutdown -h now 關閉系統 (1)
-
init 0 關閉系統 (2)
-
telinit 0 關閉系統 (3)
-
shutdown -h hours:minutes & 按預定時間關閉系統
-
shutdown -c 取消按預定時間關閉系統
-
shutdown -r now 重啓 (1)
-
reboot 重啓 (2)
-
logout 註銷
-
time 測算一個命令(即程序)的執行時間
八、進程相關的命令
17 jps 命令
(顯示當前系統的 java 進程情況,及其 id 號)
- jps(Java Virtual Machine Process Status Tool) 是 JDK 1.5 提供的一個顯示當前所有 java 進程 pid 的命令,簡單實用,非常適合在 linux/unix 平臺上簡單察看當前 java 進程的一些簡單情況。
18 ps 命令
(用於將某個時間點的進程運行情況選取下來並輸出,process 之意)
-
-A :所有的進程均顯示出來
-
-a :不與 terminal 有關的所有進程
-
-u :有效用戶的相關進程
-
-x :一般與 a 參數一起使用,可列出較完整的信息
-
-l :較長,較詳細地將 PID 的信息列出
ps aux # 查看系統所有的進程數據
ps ax # 查看不與terminal有關的所有進程
ps -lA # 查看系統所有的進程數據
ps axjf # 查看連同一部分進程樹狀態
19 kill 命令
(用於向某個工作(%jobnumber)或者是某個 PID(數字)傳送一個信號,它通常與 ps 和 jobs 命令一起使用)
20 killall 命令
(向一個命令啓動的進程發送一個信號)
21 top 命令
是 Linux 下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於 Windows 的任務管理器。
如何殺死進程:
-
圖形化界面的方式
-
kill -9 pid (-9 表示強制關閉)
-
killall -9 程序的名字
-
pkill 程序的名字
查看進程端口號:
netstat -tunlp|grep 端口號
逆鋒起筆
是一個專注於程序員圈子的技術平臺,你可以收穫最新技術動態
、最新內測資格
、BAT等大廠的經驗
、精品學習資料
、職業路線
、副業思維
,微信搜索逆鋒起筆
關注!
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/wgXUSFaWVtPwpRjJy0sRGw