Linux常用命令

1. 文件和目錄

(1)cd 命令

用于切換當前工作目錄,它的參數(shù)是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。

語法:cd [dirName]

cd /home 進入 '/ home' 目錄
cd .. 返回上一級目錄
cd ../..返回上兩級目錄
cd進入個人的主目錄
cd ~user1進入個人的主目錄
cd -返回上次所在的目錄

(2)pwd命令

顯示當前工作路徑,目前所在的工作目錄的絕對路徑名稱。

(3)ls命令

用于顯示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。

語法:ls [-alrtAFR] [name...]

ls 查看目錄中的文件
ls -l 顯示文件和目錄的詳細資料
ls -a列出全部文件,包含隱藏文件
ls -r 將文件以相反次序顯示(原定依英文字母次序)
ls -R連同子目錄的內容一起列出(遞歸列出),等于該目錄下的所有文件都會顯示出來
ls *[0-9]* 顯示包含數(shù)字的文件名和目錄名

(4)cp 命令

主要用于復制文件或目錄。

語法:cp [options] source dest 或 cp [options] source... directory

參數(shù)說明:
-a 將文件的特性一起復制
-p 連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用于備份
-i若目標文件已經(jīng)存在時,在覆蓋時會先詢問操作的進行
-r遞歸持續(xù)復制,用于目錄的復制行為
-u目標文件與源文件有差異時才會復制

(5)mv命令

用來為文件或目錄改名、或將文件或目錄移入其它位置。

語法:mv [options] source dest 或 mv [options] source... directory

-fforce強制的意思,如果目標文件已經(jīng)存在,不會詢問而直接覆蓋
-i若目標文件已經(jīng)存在,就會詢問是否覆蓋
-u若目標文件已經(jīng)存在,且比目標文件新,才會更新
注意:

命令 運行結果
mv source_file(文件) dest_file(文件) 將源文件名 source_file 改為目標文件名 dest_file
mv source_file(文件) dest_directory(目錄) 將文件 source_file 移動到目標目錄 dest_directory 中
mv source_directory(目錄) dest_directory(目錄) 目錄名 dest_directory 存在,將 source_directory 移動到目錄名 dest_directory 中;目錄名 dest_directory 不存在則 source_directory 改名為目錄名 dest_directory
mv source_directory(目錄) dest_file(文件) 出錯

(6)rm 命令

用于刪除文件或目錄,remove之意

語法:rm [options] name...

-f強制刪除,就是force的意思,忽略不存在的文件,不會出現(xiàn)警告消息
-i互動模式,在刪除前會詢問用戶是否操作
-r遞歸刪除,最常用于目錄刪除,它是一個非常危險的參數(shù)

2. 查看文件內容

(1)cat 命令

用于連接文件并打印到標準輸出設備上,后接要查看的文件名,通常可用管道與more和less一起使用

語法:cat [-AbeEnstTuv] [--help] [--version] fileName

參數(shù):
-n 或 --number由 1 開始對所有輸出的行數(shù)編號。
-b 或 --number-nonblank和 -n 相似,只不過對于空白行不編號。
-s 或 --squeeze-blank當遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting使用 ^ 和 M- 符號,除了 LFD 和 TAB 之外。
-E 或 --show-ends在每行結束處顯示 $。
-T 或 --show-tabs將 TAB 字符顯示為 ^I。
-A, --show-all等價于 -vET。
-e等價于"-vE"選項;
-t等價于"-vT"選項;
舉例:
cat file1 從第一個字節(jié)開始正向查看文件的內容
tac file1 從最后一行開始反向查看一個文件的內容
cat -n file1 標示文件的行數(shù)
cat filename | head -n 3000 | tail -n +1000 顯示1000行到3000行
cat filename | tail -n +3000 | head -n 1000 從第3000行開始,顯示1000(即顯示3000~3999行)
cat -n textfile1 > textfile2把 textfile1 的文檔內容加上行號后輸入 textfile2 這個文檔里
cat -b textfile1 textfile2 >> textfile3把 textfile1 和 textfile2 的文檔內容加上行號(空白行不加)之后將內容附加到 textfile3 文檔里

(3)head 命令

用于查看文件的開頭部分的內容,有一個常用的參數(shù) -n 用于顯示行數(shù),默認為 10,即顯示 10行的內容。

語法:head [參數(shù)] [文件]

參數(shù):
-q隱藏文件名
-v顯示文件名
-c<數(shù)目>顯示的字節(jié)數(shù)。
-n<行數(shù)>顯示的行數(shù)。
舉例:
head -n 2 file1 查看文件的前兩行
head file1 查看文件的前十行
head -c 20 file1 查看文件前20個字節(jié)

(3)more 命令

類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示

語法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

參數(shù):
-num 一次顯示的行數(shù)
-d提示使用者,在畫面下方顯示 [Press space to continue, 'q' to quit.]
-l 取消遇見特殊字元 ^L(送紙字元)時會暫停的功能
-f 計算行數(shù)時,以實際上的行數(shù),而非自動換行過后的行數(shù)(有些單行字數(shù)太長的會被擴展為兩行或兩行以上)
-p不以卷動的方式顯示每一頁,而是先清除螢幕后再顯示內容
-c跟 -p 相似,不同的是先顯示內容再清除其他舊資料
-s 當遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-u 不顯示下引號 (根據(jù)環(huán)境變數(shù) TERM 指定的 terminal 而有所不同)
+/pattern 在每個文檔顯示前搜尋該字串(pattern),然后從該字串之后開始顯示
+num 從第 num 行開始顯示
fileNames 欲顯示內容的文檔,可為復數(shù)個數(shù)

(4)less 命令

與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。

語法:less [參數(shù)] 文件

參數(shù):
-b <緩沖區(qū)大小> 設置緩沖區(qū)的大小
-e 當文件顯示結束后,自動離開
-f強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g只標志最后搜索的關鍵詞
-i忽略搜索時的大小寫
-m顯示類似more命令的百分比
-N顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q不使用警告音
-s 顯示連續(xù)空行為一行
-S 行過長時間將超出部分舍棄
-x <數(shù)字>將"tab"鍵顯示為規(guī)定的數(shù)字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n重復前一個搜索(與 / 或 ? 有關)
N反向重復前一個搜索(與 / 或 ? 有關)
b 向上翻一頁
d向后翻半頁

(5)tail命令

用于查看文件最后幾行的內容,有一個常用的參數(shù) -f 常用于查閱正在改變的日志文件

語法:tail [參數(shù)] [文件]

參數(shù):
-f循環(huán)讀取
-n <行數(shù)> 顯示文件的尾部 n 行內容
-q不顯示處理信息
-v 顯示詳細的處理信息
-c <數(shù)目> 顯示的字節(jié)數(shù)
--pid=PID 與-f合用,表示在進程ID,PID死掉之后結束
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒
舉例:
tail -n 2 file1查看一個文件的最后兩行
tail -n +1000 file1 從1000行開始顯示,顯示1000行以后的
tail -c 10 file1 顯示文件最后的十個字符
tail -f file1實時跟蹤文件內容的變化

3. 文本編輯器

vi文本編輯器來編輯文本文件
最基本用法:vi somefile.txt

  • 首先會進入“命令模式”,此模式只接受各種命令快捷鍵,不能編輯文件內容
  • i鍵,就會從一般模式進入編輯模式,此模式下,敲入的都是文件內容
  • 編輯完成之后,按Esc鍵退出編輯模式,回到命令模式;
  • 再按:,進入“底行命令模式”,輸入末行命令,回車即可
(1)進入編輯模式的幾個指令:

i在光標當前位置進入編輯模式
I在該行的最前面進入編輯模式
a在光標后一位進入編輯模式
A在該行的末尾進入編輯模式
o在該行的上一行進入編輯模式
O在該行的下一行進入編輯模式

(2)命令模式(一般模式)部分指令:

dd刪除行,如 5dd ,則一次性刪除光標后的5行
yy復制當前行, 復制多行,則 3yy,則復制當前行附近的3行
p 粘貼
gg直接跳到文件的首行
G直接跳到文件的末行
x 刪除字符
u 恢復操作
v 進入字符選擇模式,選擇完成后,按y復制,按p粘貼
ctrl+v進入塊選擇模式,選擇完成后,按y復制,按p粘貼
shift+v進入行選擇模式,選擇完成后,按y復制,按p粘貼

(3)末行模式部分指令:

:q退出
:w保存
:wq退出并保存
:w 新文件名另存為
:number轉到第number行
:$光標跳轉到第1行
:set nu顯示行號
:set nonu取消行號
:3d刪除第3行
:/demotext查找第1次出現(xiàn)的demotext的地方,按n定位到下一個,按N定位到上一個
:%s/demotext/demotext1查找文件中所有demotext,替換為demotext1

4. 文件搜索

(1)find 命令

用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數(shù),則 find 命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示。

語法:find path -option [ -print ] [ -exec -ok command ] {} \ ;

參數(shù):
-mount, -xdev只檢查和指定目錄在同一個文件系統(tǒng)下的文件,避免列出其它文件系統(tǒng)中的文件
-amin n在過去 n 分鐘內被讀取過
-atime n在過去n天內被讀取過的文件
-cmin n在過去 n 分鐘內被修改過
-ctime n在過去n天內被修改過的文件
-anewer file比文件 file 更晚被讀取過的文件
-cnewer file比文件 file 更新的文件
-ipath p, -path p路徑名稱符合 p 的文件,ipath 會忽略大小寫
-name name, -iname name文件名稱符合 name 的文件。iname 會忽略大小寫
-size n文件大小 是 n 單位,b 代表 512 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個位元組
-type c文件類型是 c 的文件(d: 目錄 c: 字型裝置文件 b: 區(qū)塊裝置文件 p: 具名貯列 f: 一般文件 l: 符號連結 s: socket)

舉例:
find / -name file1 從 '/' 開始進入根文件系統(tǒng)搜索文件和目錄
find . -name "*.c"將目前目錄及其子目錄下所有延伸檔名是 c 的文件列出來
find / -user user1 搜索屬于用戶 'user1' 的文件和目錄
find /usr/bin -type f -atime +100 搜索在過去100天內未被使用過的執(zhí)行文件
find /usr/bin -type f -mtime -10搜索在10天內被創(chuàng)建或者修改過的文件
find /var/mail/ -size +50M -exec rm {} \;刪除大于50M的文件
find /var/log -type f -mtime +7 -ok rm {} \;查找/var/log目錄中更改時間在7日以前的普通文件,并在刪除之前詢問它們
find . -type f -perm 644 -exec ls -l {} \查找前目錄中文件屬主具有讀、寫權限,并且文件所屬組的用戶和其他用戶具有讀權限的文件
find / -type f -size 0 -exec ls -l {} \ 查找系統(tǒng)中所有文件長度為0的普通文件,并列出它們的完整路徑

(2)whereis 命令

該指令會在特定目錄中查找符合條件的文件。這些文件應屬于原始代碼、二進制文件,或是幫助文件。
該指令只能用于查找二進制文件、源代碼文件和man手冊頁,一般文件的定位需使用locate命令。

語法:whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S <目錄>...][文件...]

參數(shù):
-b只查找二進制文件
-B <目錄>只在設置的目錄下查找二進制文件
-f 不顯示文件名前的路徑名稱
-m 只查找說明文件
-M <目錄>只在設置的目錄下查找說明文件
-s只查找原始代碼文件
-S <目錄>只在設置的目錄下查找原始代碼文件
-u查找不包含指定類型的文件
舉例:
whereis halt 顯示一個二進制文件、源碼或man的位置
which halt顯示一個二進制文件或可執(zhí)行文件的完整路徑

5. 權限相關

(1)chmod 命令

控制用戶對文件的權限的命令

Linux/Unix 的文件調用權限分為三級 : 文件所有者(Owner)、用戶組(Group)、其它用戶(Other Users)

文件權限
說明:
u 表示該文件的擁有者,g 表示與該文件的擁有者屬于同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
+ 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
r 表示可讀?。?),w 表示可寫入(2),x(1) 表示可執(zhí)行,X 表示只有當該文件是個子目錄或者該文件已經(jīng)被設定過為可執(zhí)行。
-R : 對目前目錄下的所有文件與子目錄進行相同的權限變更(即以遞歸的方式逐個變更)

舉例:
chmod ugo+rwx directory1 設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r,4 )、寫(w,2)和執(zhí)行(x,1)的權限
chmod go-rwx directory1刪除群組(g)與其他人(o)對目錄的讀寫執(zhí)行權限

(2)chown 命令

  • 命令用于設置文件所有者和文件關聯(lián)組的命令
  • Linux/Unix 是多人多工操作系統(tǒng),所有的文件皆有擁有者。利用 chown 將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶 ID,組可以是組名或者組 ID,文件是以空格分開的要改變權限的文件列表,支持通配符
  • chown 需要超級用戶 root 的權限才能執(zhí)行此命令

語法:chown [-cfhvR] [--help] [--version] user[:group] file...

參數(shù):
user新的文件擁有者的使用者 ID
group新的文件擁有者的使用者組(group)
-c顯示更改的部分的信息
-f忽略錯誤信息
-h修復符號鏈接
-v顯示詳細的處理信息
-R處理指定目錄以及其子目錄下的所有文件
--help顯示輔助說明
--version顯示版本
舉例:
chown user1 file1 改變一個文件的所有人屬性
chown -R user1 directory1改變一個目錄的所有人屬性并同時改變改目錄下所有文件的屬性
chown user1:group1 file1 改變一個文件的所有人和群組屬性

(3)chgrp 命令

改變文件所屬用戶組

語法:chgrp [-cfhRv][--help][--version][所屬群組][文件或目錄...] 或 chgrp [-cfhRv][--help][--reference=<參考文件或目錄>][--version][文件或目錄...]

參數(shù):
-c或--changes效果類似"-v"參數(shù),但僅回報更改的部分
-f或--quiet或--silent不顯示錯誤信息
-h或--no-dereference只對符號連接的文件作修改,而不更動其他任何相關文件
-R或--recursive遞歸處理,將指定目錄下的所有文件及子目錄一并處理
-v或--verbose顯示指令執(zhí)行過
--reference=<參考文件或目錄> 把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同

舉例:
chgrp group1 file1改變文件的群組

6. 文本處理

(1)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' 文件中所有包含數(shù)字的行
grep Aug -R /var/log/*在目錄 '/var/log' 及隨后的目錄中搜索字符串"Aug"

(2)sed命令

sed 's/stringa1/stringa2/g' example.txt將example.txt文件中的 "string1" 替換成 "string2"
sed '/^$/d' example.txt 從example.txt文件中刪除所有空白行

(3)paste 命令

paste file1 file2合并兩個文件或兩欄的內容
paste -d '+' file1 file2 合并兩個文件或兩欄的內容,中間用"+"區(qū)分

(4)sort 命令

sort file1 file2 排序兩個文件的內容
sort file1 file2 | uniq 取出兩個文件的并集(重復的行只保留一份)
sort file1 file2 | uniq -u 刪除交集,留下其他的行
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在于兩個文件中的文件)

(5)comm 命令

comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容
comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容
comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分

7. 打包和壓縮

(1)tar 命令

對文件進行打包,默認情況并不會壓縮,如果指定了相應的參數(shù),它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓
-c新建打包文件
-t查看打包文件的內容含有哪些文件名
-x解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現(xiàn)在同一條命令中
-j通過bzip2的支持進行壓縮/解壓縮
-z通過gzip的支持進行壓縮/解壓縮
-v在壓縮/解壓縮過程中,將正在處理的文件名顯示出來
-f filenamefilename為要處理的文件
-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 創(chuàng)建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包

zip file1.zip file1 創(chuàng)建一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包

8. 系統(tǒng)和關機

系統(tǒng)的關機、重啟以及登出
shutdown -h now 關閉系統(tǒng)(1)
init 0 關閉系統(tǒng)(2)
telinit 0 關閉系統(tǒng)(3)
shutdown -h hours:minutes & 按預定時間關閉系統(tǒng)
shutdown -c 取消按預定時間關閉系統(tǒng)
shutdown -r now 重啟(1)
reboot 重啟(2)
logout 注銷
time 測算一個命令(即程序)的執(zhí)行時間

9. 進程相關

(1)jps命令

顯示當前系統(tǒng)的java進程情況,及其id號。
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一個顯示當前所有java進程pid的命令,簡單實用,非常適合在linux/unix平臺上簡單察看當前java進程的一些簡單情況。

(2)ps命令

用于將某個時間點的進程運行情況選取下來并輸出,process之意
-A所有的進程均顯示出來
-a不與terminal有關的所有進程
-u有效用戶的相關進程
-x一般與a參數(shù)一起使用,可列出較完整的信息
-l較長,較詳細地將PID的信息列出

ps aux查看系統(tǒng)所有的進程數(shù)據(jù)
ps ax查看不與terminal有關的所有進程
ps -lA查看系統(tǒng)所有的進程數(shù)據(jù)
ps axjf查看連同一部分進程樹狀態(tài)

(3)kill命令

用于向某個工作(%jobnumber)或者是某個PID(數(shù)字)傳送一個信號,它通常與ps和jobs命令一起使用。

(4)killall命令

向一個命令啟動的進程發(fā)送一個信號。

(5)top命令

是Linux下常用的性能分析工具,能夠實時顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務管理器。

(6)查看進程端口號

netstat -tunlp|grep 端口號

如何殺死進程:
(1)圖形化界面的方式
(2)kill -9 pid (-9表示強制關閉)
(3)killall -9 程序的名字
(4)pkill 程序的名字

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容