楠木軒

程序員必備的21個Linux命令

由 童豔紅 發佈於 科技

關注“java後端技術全棧”

回覆“000”獲取優質面試資料

前言

大家好,我是老田,今天我們來分享Linux相關知識。

作為一個後端開發者,Linux常用是必備的,不管是面試還是實際工作中,都是非常有用的。

Linux命令總結

下面使用一張思維導圖,來對Linux核心知識進行總結:

需要思維導圖,掃碼加我微信,免費贈送。

下面我們就來聊聊面試中,面試官常問的21條命令。

文件和目錄 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等)進行壓縮和解壓)推薦:250期面試題彙總

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

總結

掌握以上命令,基本上能應付常規開發需要的命令,並且在面試的時候,能説上的10個以上,基本上也是問題不打,除非你是大佬,面試官需要往深的問。否則,25K以下的java面試,這些足夠了。

能掌握更多那肯定最好,技多不壓身!

參考:http://45dwz.com/4DTZV