天天看點

如何讓面試官相信你真的會Linux,常見Linux指令彙總

本文章總結了 21 條最頻繁使用的 Linux 指令,也是面試官考察你對 Linux 系統熟不熟常問的面試題,可以收藏本文章,作為一個 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檔案中删除所有空白行(搜尋公衆号Java知音,回複“2021”,送你一份Java面試題寶典)

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 端口号      

我是一條,一個在網際網路摸爬滾打的程式員。

微信搜【一條IT】關注我。第一時間擷取文章推送。

道阻且長,行則将至。大家的 【點贊,收藏,關注】 就是一條創作的最大動力,我們下期見!

注:關于本篇部落格有任何問題和建議,歡迎大家留言!