Linux下常用命令與使用技巧

2021-06-16 09:20:16 字數 3979 閱讀 5795

1. head命令

head命令用來顯示檔案開頭的幾行。其還有乙個很好的用途是用來合併檔案,與cat然後重定向相比它會在合併的檔案中每個檔案開始包含合併檔案的檔名。例:head -99999 readme* >/tmp/merge_readme.txt。含義是:將當前目錄下以readme開頭的多個檔案顯示前99999行(其實就是顯示整個檔案),並重定向到tmp目錄下的merge_readme.txt目錄。這樣達到了合併檔案的目的,同時我們還可以通過每個檔案開頭的檔名知道當前瀏覽的檔案。合併之後我們就可以通過more或者less命令瀏覽合併檔案,避免了我們每次都要重新開啟乙個檔案。

2. tail命令

tail命令和head命令類似,只不過是顯示檔案的最後幾行。其有乙個引數很好:-f(follow),作用是儲存檔案處於開啟狀態,不斷顯示新新增的行。通過這個選項我們可以用來監視某些檔案。不過如果引數是+n,則表示顯示檔案自n行開始的其餘部分。

3. df命令

df(disk free)命令用來檢視分割槽的使用狀態。df命令不僅顯示分割槽還有多少剩餘空間,也給出哪個檔案系統被掛載到哪個掛載點。

4. find命令

find是linux下很常用而且很實用的乙個命令,其用於根據特定條件在檔案系統中查詢檔案。常用選項有:

選項說明

-empty

檔案是空檔案或者空目錄

-links n

檔案的鏈結數是n

-name pattern

檔名是pattern

-size n

檔案大小是n

-type c

檔案型別是c,c可以是f(普通檔案)、d(目錄)、l(軟鏈結)

選項如果接受數字引數,那麼都遵循如下規則:+n(大於n)、-n(小於n)、n(恰好是n)。

如果指定多個條件,那麼預設情況下檔案需要滿足所有條件。如果條件之間用-or選項分割,則只需要滿足乙個條件即可。條件之前加-not表示取反。

對於find的結果我們還可以指定動作,對返回的檔案執行特定操作。格式是:-exec command;。需要注意的是,-exec使用「{}」代替匹配的檔案,動作需要以「;」作為終結,對於shell而言,「;」是命令的分割,因此在shell中需要使用「\」進行轉義。例:find /tmp -type f -links +1 -exec cp {} /tmp/links\;。該命令的作用是首先在tmp目錄下查詢所有檔案型別為f,同時其鏈結數大於1的檔案,然後對找到的檔案執行cp操作,複製到/tmp/links目錄下。

5. 命令歷史記錄

要檢視當前歷史記錄,最簡單的方法是使用history命令。該命令會輸出先前鍵入命令的歷史,每一項前面都有乙個「歷史記錄號碼」,history命令出現在末尾。只是檢視歷史記錄往往用處不大,關鍵是通過簡單方式執行歷史記錄中的某條命令,方法如下:

語法作用

!!執行前乙個命令

!n執行歷史記錄號碼為n的歷史命令

!-n執行倒數第n個命令

!cmd

執行最後乙個用來啟動cmd的命令

首先利用history命令檢視歷史記錄,然後用上面的方式執行想要的歷史記錄。

除了上述技巧之外,還有兩個好用的快捷鍵:

6. alias命令

alias命令用來建立別名。有時我們可以將常用的但是很長的命令用別名宣告達到簡化輸入的目的。語法格式是:alias name=value。取消別名用命令unalias。如果想達到簡化輸入的目的,通過建立變數的方法也可以達到。

7. wc命令

wc命令可以統計字元、文字和行的數量。命令列選項如下表:

選項結果

-c估算字元數

-l估算行數

-w估算字數

filename

需要統計的檔案列表。如果沒有指定檔案,則從標準輸入讀取資料。

8. grep命令

使用正規表示式搜尋查詢。grep命令非常強大,而且非常好用,是系統管理員必須熟知的命令。其呼叫形式如下:

grep [-i] [-n] [-v] [-r] [-w] pattern [filename ...]

grep命令常用的命令列選項如下表:

選    項

作    用

-c僅列印出包含模式的行的數量

-h禁用檔名字首

-e 表示式

使用表示式作為搜尋模式(有助於指定多個模式)

-i在判斷模式是否匹配時忽略大小寫

-l僅列印符合模式要求的檔名

-n包括行數在內的符合要求的行

-q「quiet」。不要寫任何標準輸出,只要找到匹配行,返回值為0

-r在目錄中遞迴搜尋所有檔案

-w word

僅包含word的行(全詞匹配)

-c n

包括符合要求的那一行的前後n行的內容

比較重要的選項被標記為紅色。除了grep命令外,還有兩個類似的命令:fgrep和egrep。fgrep不支援正規表示式,只是精確查詢,但是速度快。egrep使用擴充套件正規表示式語法解釋每個模式。

9. cut命令

選項作用

-blist從指定的list中提取位元組

-clist從指定的list中提取字元

-flist從指定的list中提取字段

list引數就是乙個用逗號分開的範圍列表,每個範圍可以表示為如下形式:

n只有第n項

n-從第n項一直到行尾

n-m從第n項到第m項(包括m)

-m從一行的開始到第m項(包括m)

-從一行開始到結束的所有項

針對-f選項,由於其是提取列,所以分隔符不是字元,而是tab或者「:」這樣的分隔符。通過下面的選項可以進一步明確欄位的含義。

選項作用

-d delim

使用delim而不是預設的tab字元在輸入中分割域

-s不包括那些不包含分隔符的行(有利於除去註解和標題)

--output-delimiter=string

在輸出中,使用string作為字段分隔符

例如,提取檔案pcitable中第三和第四列的命令是:cut -s -f3,4 /usr/share/hwdata/pcitable。

不過cut命令有個侷限性:如果採用空格作為域定義符,它不能將多個空格疊成乙個空格,不過可以通過tr命令克服。

10. tr命令

tr命令是乙個萬能的字元轉換工具,可轉換資料流中的字元。轉換的意思是可以用乙個字元取代另乙個字元、刪除字元或者「壓縮」字元。

tr命令不使用檔名作為引數,只對標準輸入進行操作,並保留命令列引數來指定轉換形式。其呼叫語法如下:

語法作用

tr set1 set2

用set2中的字元替代在set1中對應的字元

tr -d set

刪除在set中指定的所有字元

tr -s set

壓縮在set中指定的所有字元

tr -s set1 set2

首先將set1中的字元替換成set2中的對應字元,然後壓縮所有在set2中找到的字元

tr -ds set1 set2

先刪除所有在set1中找到的字元,然後壓縮所有在set2中找到的字元

例:

cut命令提取列時,如果分隔符是空格,則其只能處理單個空格,我們可以通過tr命令壓縮空格:df | tr -s 『 』 | cut -d「 」 -f1,5;

統計乙個文字中不同單詞出現的頻率。我們需要做的操作如下:

執行的命令為:tr -d '[:punct:]' < file.txt |tr '[:upper:]'  '[:lower:]' | tr -s ' ' '\n' | sort | uniq -c |sort -rn,解釋是:首先讀取檔案file.txt,將其中的標點符號去掉,然後將大寫替換成小寫,然後將空格變為換行。之後又對所有的單詞進行排序,並統計單詞個數和頻數。最後將不同單詞根據其頻數按遞減順序排序。

Linux 常用命令和使用技巧

本文總結了自己實際開發中的常用命令,不定時更新,方便自己和其他人查閱。使用方法很多 後續補充 sed d datafile 刪除最後一行,其餘的都被顯示 sed my d datafile 刪除包含my的行,其餘的都被顯示 表示接收到的引數個數 1表示第幾個引數 if ne 4 then echo ...

Linux下常用命令使用大全

1 cd change directory 切換當前工作目錄 cd root desktop 切換路徑到root目錄下的desktop cd 切換路徑到當前使用者的家目錄 2 ls list 顯示檔案資訊 ls 顯示當前目錄中的檔案 ls file 顯示指定的檔名稱 ls l file 顯示檔案的屬...

linux 下常用命令

linux 下根據內容查詢檔案 同時包含 keyword1 和 keyword2 的檔案 find name type f print xargs grep keyword1 grep keyword2 linux下根據程序名稱殺死程序 ps ef grep 程序名 grep v grep cut ...