實用的linux 命令(上)

今天介紹幾個我常用的Linux 命令,每個命令這里只介紹其常用參數。

對于每個Linux 命令都可以使用man + 命令名稱,查看其完整使用方法。

0,man

man 命令是一個非常有用的命令,當你不會使用某個Linux 命令時,可以使用man 來查看其幫助文檔。man 命令查到的手冊來源于目錄/usr/share/man/,可以看到該目錄下有9 個這樣的目錄:

>>> ls /usr/share/man/| grep man
______________________________
man1
man2
man3
man4
man5
man6
man7
man8
man9

man 手冊分9 種,用數字[1-9] 來區分,分別代表的含義如下(可以用man man 命令來查看):

數字 含義
1 System commands 系統命令
2 System calls 系統函數
3 Library calls 庫函數
4 Special files 特殊文件
5 File formats 文件格式
6 Games 游戲和娛樂
7 Miscellaneous 雜項
8 System administration commands 管理員root 命令
9 其它

可以通過設置不同的數字來查看不同的手冊,如下:

man 1 系統命令名
man 2 系統函數名
man 3 庫函數名

如果沒有帶這個數字,則會從1 查到9,直到查到第一個為止。

一,文件管理

1,cat

cat 命令用于查看文件內容,該命令會將文件的所有內容輸出到控制臺

>>> cat hello.c
______________________________________
// 包含頭文件
#include <stdio.h>   

// 程序入口,main 函數,返回值類型為int 類型
int main() 
{
    // 打印字符串
    printf("hello world .\n");

    return 0;
}

cat 命令常用參數:

參數 含義
-n 對輸出的內容加上行號
-b 對輸出的內容加上行號,空白行不計入行號
-s 將兩個以上的空白行,顯示為一個空白行

cat 命令會將文件內容快速的輸出到控制臺,它并不能控制瀏覽文件的進度。如果想控制瀏覽文件的進度,可以使用moreless 命令。

2,more

more 命令用于查看Linux 文件的內容,用more filename 打開一個文件后,可以控制向上向下翻滾頁面。

>>> more log.txt
________________________________
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
--More--(2%)  (`注`:這里顯示瀏覽頁面的`進度百分比`)

more 命令常用操作:

操作 含義
Enter 鍵 向下翻滾一行
空格鍵 向下翻滾一頁一頁的大小可以使用 -N 參數來設置
Ctrl + B (本操作并不是很方便 ) 向上翻滾一頁一頁的大小可以使用 -N 參數來設置

使用下面的方式將一頁 的大小設置為10 行,這時每次向上或者向下翻頁時,每次會滾動10 行:

more -10 log.txt

more 命令可以與cat 命令來配合使用,比如用cat顯示行號,然后用more 控制翻頁,并且頁的大小為10 行:

>>> cat -n log.txt| more -10
——————————————————————————————————————————
    56  1111111111111111111111111111111111
    57  1111111111111111111111111111111111
    58  1111111111111111111111111111111111
    59  1111111111111111111111111111111111
    60  1111111111111111111111111111111111
    61  1111111111111111111111111111111111
    62  1111111111111111111111111111111111
--More--
(`注`:第一列為行號,并且這時`進度百分比`消失了,而且`不能向上翻頁`)

3,less

less 命令 也是用來瀏覽文件內容,但與more 命令 有些不同,less 命令有更多的操作。

用命令less filename 打開文件后的常用操作:

操作 含義
b 向上翻一頁
d或者空格鍵 向下翻一頁
k或者方向鍵↑ 向上翻一行
j或者方向鍵↓或者Enter 鍵 向下翻一行
/pattern 在頁面中搜索字符串pattern,匹配到的字符串會高亮顯示,可以用-i 參數來忽略大小寫
n 鎖定下一個匹配到的字符串pattern
N 鎖定上一個匹配到的字符串pattern
q 退出當前文件

less 命令常用參數:

參數 含義
-i 忽略搜索/pattern時的大小寫
-m 顯示類似more 命令的進度百分比
-N 顯示行號
-s 連續空白行顯示為一行

如下命令,即顯示行號又顯示進度百分比

less -mN README.md

效果如下:


在這里插入圖片描述

4,head

head 命令用于從一個文件的開頭處查看文件。常用參數如下:

參數 含義
-n 查看一個文件的前N行,默認為前10 行
-c 查看一個文件的前N字節

如下命令查看hello.c 文件的前5 行:

>>> head hello.c -n 5
_______________________________________
// 包含頭文件
#include <stdio.h>   

// 程序入口,main 函數,返回值類型為int 類型
int main()

如下命令查看hello.c 文件的前20 字節:

>>> head hello.c -c 20
_______________________________________
// 包含頭文件
#

5,tail

tail 命令的含義與head 恰好相反,tail 從一個文件的尾部開始查看,常用參數如下:

參數 含義
-n 查看一個文件的最后N行,默認為后10 行
-c 查看一個文件的最后N字節
-f 實時查看文件的內容,并輸出到控制臺,常用于查看日志 輸出

如下命令查看hello.c 文件的最后5 行:

>>> tail hello.c -n 5
_______________________________
    // 打印字符串
    printf("hello world 1.\n");
        
    return 0;
}

如下命令查看hello.c 文件的最后20 字節:

>>> tail hello.c -c 20
_______________________________
   
    return 0;
}

6,find

find 命令用來查找指定目錄下符合指定條件的文件,并進行指定操作,其語法如下:

find `目錄` `條件` `操作`

6.1 目錄(可不寫)

目錄表示在哪個目錄下進行查找。例如./ 代表當前目錄,/ 代表根目錄。如果沒有寫目錄,默認會在當前目錄及其子目錄下查找。

6.2 條件(必須寫)

查找符合怎樣條件的內容,支持如下常用條件(這里并沒有列出所有可用條件):

參數 含義
-name 按照文件名稱查找,支持* 通配符
-perm 按照文件權限查找
-user 按照文件屬主查找
-group 按照文件所屬的組查找
-prune 忽略某個目錄
-mtime -n/+n 按照文件更改時間來查找,-n表示n天之內,+n表示n天之前
-atime -n/+n 按照文件訪問時間來查找
-ctime -n/+n 按照文件創建時間來查找
-type 按照文件類型查找
-size N[bcwkMG] 按照文件大小查找,bcwkMG 是可選的單位
-depth 使查找在進入子目錄前先行查找完本目錄
-maxdepth 設置查找目錄的最大深度
-mindepth 設置查找目錄的最小深度

其中-type 支持的類型如下:

類型 含義
f 普通文件
d 目錄
l 符號鏈接文件
s socket
b 塊設備文件
c 字符設備文件
p 管道文件

6.3 操作(可不寫)

對查找出來的文件進行怎樣的操作,支持如下操作

操作 含義
-print 輸出到控制臺,不寫的話,默認為此操作
-exec 對查找到的文件執行shell命令
-ok 對查找到的文件執行shell命令,在執行命令之前會先提示用戶是否執行,比-exec 更安全

exec-ok 的格式為:

-exec/-ok command {} \;

其中可變的只有command,其它都是固定寫法,不用改變,commandLinux 命令,比如lsrm

6.4 例子

find . -name "*.log"    `在當前目錄及其子目錄查找,文件名以".log" 結尾的文件,并輸出`
find . -perm 777        `在當前目錄及其子目錄查找,權限為"777" 的文件,并輸出`
find . -type d          `在當前目錄及其子目錄查找,文件類型為目錄的文件,并輸出`
find . -name "*.c" -exec rm {} \; `在當前目錄及其子目錄查找,文件名以".c" 結尾的文件,并刪除`
find . -size +100c      `在當前目錄及其子目錄查找,文件大小大于100字節的文件,并輸出`
find . -size -100c      `在當前目錄及其子目錄查找,文件大小小于100字節的文件,并輸出`
find . -size 100c       `在當前目錄及其子目錄查找,文件大小等于100字節的文件,并輸出`

7,chmod

在類Unix 系統中,文件的調用權限分三級,分別是:文件擁有者群組其他。文件的操作權限 分三種分別是:可讀可寫可執行

chmod 命令用于修改文件的調用權限操作權限,該命令的語法格式如下(這里只列出了-R 參數,還有其它):

chmod [-R] `mode` `filename`

7.1 R參數(可選)

-R 參數表示,是否操作當前目錄下的所有文件與子目錄。

7.2 mode

mode 包含三部分:[ugoa]+-=[rwx],它們的含義如下:

字母 含義
u 該文件的擁有者
g 與該文件所屬同一群組者
o 其它用戶
a 所有用戶,即ugo 三者皆是
+ 增加權限
- 取消權限
= 唯一設定權限,即設置為只有一個權限
r 可讀權限
w 可寫權限
x 可執行權限

7.3 例子

chmod ugo+r file            `將文件file 設為所有人皆可讀`
chmod a+w file              `將文件file 設為所有人皆可寫`
chmod ug+w,o-w file1 file2  `將文件file1 file2設為該文件擁有者,與其所屬同一個群組者可寫入,但其它用戶不可寫`
chmod -R a+r dir/*          `將dir 目錄下的所有文件與子目錄設為所有人可讀`

8,chown

chown 命令用于將文件的擁有者改為指定的用戶或組。

一般來說chown 命令由root 使用,因為普通用戶沒有權限改變他人文件的擁有者,也沒有權限把自己的文件擁有者改設為他人。

chown 命令的語法格式如下:

chown [-R] user[:group] file_list

-R 參數表示,是否操作當前目錄下的所有文件與子目錄。

其它參數含義:

參數 含義
user 新的文件擁有者
group 新的文件擁有者組
file_list 要修改的文件,可以是一個文件,也可以是一個文件列表

例子:

chown runoob:runoobgroup file   `將文件file 的擁有者設為runoob,群組設為runoobgroup`
chown -R root:root dir/*        `將dir/ 目錄下的所有文件與子目錄的擁有者設為runoob,群組設為runoobgroup`

9,scp

scp 命令用于遠程復制目錄或文件,它基于sshscpsecure copy 的縮寫。scp 命令是rcp 命令的加強版,scp 是加密傳輸,rcp 是非加密傳輸。

scp 的語法格式如下:

scp [可選參數] file_source file_target 

有如下常用可選參數

參數 協議
-1 使用協議ssh1 傳輸
-2 使用協議ssh2 傳輸
-4 使用IPv4協議尋址
-6 使用IPv6協議尋址
-C 使用壓縮
-r 遞歸復制整個目錄
-P 指定傳輸端口

例子:

scp local_file remote_username@remote_ip:remote_folder  `指定了用戶名,命令執行后需要再輸入密碼`
scp local_file remote_ip:remote_folder  `沒有指定用戶名,命令執行后需要輸入用戶名和密碼`

scp -r local_folder remote_username@remote_ip:remote_folder `復制目錄`
scp -r local_folder remote_ip:remote_folder                 `復制目錄`

scp remote_username@remote_ip:remote_file local_folder      `從遠程復制到本地`
scp -r remote_username@remote_ip:remote_folder local_folder `從遠程復制到本地`

二,文檔處理

10,wc

wc 命令用于計算行數字數文件大小(以字節為單位),其語法格式如下:

wc [-lcw] filename

其參數含義如下:

參數 含義
-l 計算文件行數
-c 計算文件大小
-w 計算文件字數
不帶參數 以上三者都會計算

11,grep

grep 命令用于查找文件中符合特定條件的字符串,其語法格式如下:

grep `[參數]` `匹配條件` `文件`

常用參數如下:

參數 含義
-c 計算符合條件的行數
-e 使用正則表達式,一個-e 后只能跟一個pattern,可以寫多個-e
-E 使用正則表達式,可以使用| 來分割多個pattern ,從而寫多個pattern
-i 忽略大小寫
-l 只列出符合條件文件名
-L 只列出不符合條件文件名
-n 顯示行號
-o 只顯示匹配pattern 的部分,這個參數很有用
-v 顯示不符合條件的所有行
-r 遞歸目錄查找
--color 使匹配到的字符串高亮顯示
-A<行數N> 除了顯示符合條件的那一行之外,還顯示該行之后N行的內容
-B<行數N> 除了顯示符合條件的那一行之外,還顯示該行之前N行的內容
-C<行數N> 除了顯示符合條件的那一行之外,還顯示該行之前和之后N行的內容

例子:

grep test *file    `在當前目錄下,從所有的以"file" 為后綴的文件中,匹配字符串"test"`
grep -r hello ./   `在當前目錄下,遞歸所有的文件和目錄,匹配字符串"hello"`
grep -v hello *txt `在當前目錄下,從所有的以"txt" 為后綴的文件中,顯示所有不匹配字符串"hello" 的行`

下面三個命令sortuniqawk 相對來說較復雜,限于篇幅,所以不在本文中詳細介紹,具體可點開相應鏈接查看。

12,sort

sort 命令用于將文本內容進行排序,其以文本內容的為單位,以ASCII 碼的次序進行排列。

詳見這里

13,uniq

uniq 命令用于檢查及刪除文本文件中重復出現的行列。

詳見這里

14,awk

awk 命令是一個強大的文本分析工具,它有著復雜的功能。

詳見這里

(完。)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,428評論 0 5
  • Linux 目錄 /:根目錄,一般根目錄下只存放目錄,在Linux下有且只有一個根目錄。所有的東西都是從這里開始。...
    miniminiming閱讀 727評論 0 4
  • Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cat命令 cat是linux的基本文本...
    摩羯座的魚閱讀 1,014評論 0 0
  • 看著同學們都發在大學的照片,我也忍不住翻出相冊來,記得剛進上海體院我才17歲。照片估計就是十八九歲拍的。 一直看著...
    程嵐閱讀 202評論 0 1
  • ??感激詩姝寶貝在我腰痛時幫我上藥、按摩,立馬感覺疼痛減輕不少,貼心的小棉襖,愛你! ??感激詩姝寶貝每天晚飯后陪...
    君子蘭zhl閱讀 87評論 0 0