1. 程式人生 > 其它 >c語言清除命令行當前行_面試必備 Linux 命令

c語言清除命令行當前行_面試必備 Linux 命令

技術標籤:c語言清除命令行當前行

管道符“|”將兩個命令隔開,左邊命令的輸出作為右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推

1 檔案管理

1.1 which

用於查詢檔案

會在環境變數$PATH設定的目錄裡查詢符合條件的檔案

語法

which [檔案...]

引數

-n  指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。-p  與-n引數相同,但此處的包括了檔案的路徑。-w  指定輸出時欄位的寬度。-V  顯示版本資訊。

例項

使用指令"which"檢視指令"bash"的絕對路徑

8698d765e23f25a3eb36437f496145bd.png

上面的指令執行後,輸出資訊如下所示:

4e0dc2ab7fcbbcc2ea28a2f8db353053.png

1.2 cp

複製檔案或目錄

語法

cp [options] source destcp [options] source... directory

引數:

-a:此選項通常在複製目錄時使用,它保留連結、檔案屬性,並複製目錄下的所有內容。其作用等於dpR引數組合。-d:複製時保留連結。這裡所說的連結相當於Windows系統中的快捷方式。-f:覆蓋已經存在的目標檔案而不給出提示。-i:與-f選項相反,在覆蓋目標檔案之前給出提示,要求使用者確認是否覆蓋,回答"y"時目標檔案將被覆蓋。-p:除複製檔案的內容外,還把修改時間和訪問許可權也複製到新檔案中。-r:若給出的原始檔是一個目錄檔案,此時將複製該目錄下所有的子目錄和檔案-l:不復制檔案,只是生成連結檔案。
98e4fbb4dc93dbcec94e145fa71dda36.png

1.3 chmod

檔案呼叫許可權三級 : 檔案擁有者、群組、其他

利用 chmod 控制檔案如何被他人所呼叫。

  • r 表示可讀取
  • w 表示可寫入
  • x 表示可執行
  • X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。

chmod也可以用數字來表示許可權如 :

chmod abc file

其中a,b,c各為一個數字,分別表示User、Group、及Other的許可權。

r=4,w=2,x=1

若要rwx屬性則4+2+1=7;

若要rw-屬性則4+2=6;

若要r-x屬性則4+1=5。

將檔案 file1.txt 設為所有人皆可讀取 :

chmod ugo+r file1.txt將檔案 file1.txt 設為所有人皆可讀取 chmod a+r file1.txt將檔案 file1.txt 與 file2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 :chmod ug+w,o-w file1.txt file2.txt將 ex1.py 設定為只有該檔案擁有者可以執行 chmod u+x ex1.py將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 chmod -R a+r *此外chmod也可以用數字來表示許可權如 :chmod 777 file語法為:chmod abc file其中a,b,c各為一個數字,分別表示User、Group、及Other的許可權。r=4,w=2,x=1若要rwx屬性則4+2+1=7;若要rw-屬性則4+2=6;若要r-x屬性則4+1=5。chmod a=rwx file和chmod 777 file效果相同chmod ug=rwx,o=x file和chmod 771 file

1.4 cat

功能:連線檔案並列印到標準輸出裝置

cat [-AbeEnstTuv] [--help] [--version] fileName

-n 或 --number:由 1 開始對所有輸出的行數編號

-b 或 --number-nonblank:和 -n 相似,只不過對於空白行不編號

例項:

把 textfile1 的文件內容加上行號後輸入 textfile2 這個文件裡:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文件內容加上行號(空白行不加)之後將內容附加到 textfile3 文件裡:

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文件內容:

cat /dev/null > /etc/test.txt

cat 也可以用來製作映象檔案。例如要製作軟盤的映象檔案,將軟盤放好後輸入:

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 寫到軟盤,輸入:

cat IMG_FILE > /dev/fd0

1.5 more

類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明檔案,請按 h

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

引數

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

例項

逐頁顯示 testfile 文件內容,如有連續兩行以上空白行則以一行空白行顯示。more -s testfile從第 20 行開始顯示 testfile 之文件內容。more +20 testfile

1.6 tac

從最後一行開始顯示內容,並將所有內容輸出

1.7 head

只顯示前幾行

1.8 tail

檢視檔案的內容,有一個常用的引數 -f 常用於查閱正在改變的日誌檔案

tail -10 someFile

檢視檔案後 10 行內容

head -10 someFile

檢視檔案前 10 行內容

tail -f someFile

用於除錯,實時檢視檔案內容,會把 filename 檔案裡的最尾部的內容顯示在螢幕上,並且不斷重新整理,只要 filename 更新就可以看到最新的檔案內容

tail [引數] [檔案]

-f 迴圈讀取-q 不顯示處理資訊-v 顯示詳細的處理資訊-c 顯示的位元組數-n 顯示行數--pid=PID 與-f合用,表示在程序ID,PID死掉之後結束.-q, --quiet, --silent 從不輸出給出檔名的首部-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

例項

要顯示 notes.log 檔案最後 10 行tail notes.log要跟蹤名為 notes.log 的檔案增長情況tail -f notes.log此命令顯示 notes.log 檔案最後 10 行當將某些行新增至 notes.log 檔案時,tail 命令會繼續顯示這些行顯示一直繼續,直到您按下(Ctrl-C)組合鍵停止顯示。顯示檔案 notes.log 的內容,從第 20 行至檔案末尾:tail +20 notes.log顯示檔案 notes.log 的最後 10 個字元:tail -c 10 notes.log

1.9 nl

和 cat 一樣,只是 nl 要顯示行號

1.10 make

編譯

-j :指定作業數。

1.11 man rm ( rm --help )

檢視幫助

1.12 scp

Linux之間複製檔案和目錄

scp是secure copy的簡寫,是linux系統下基於ssh登陸進行安全的遠端檔案拷貝命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的

  • 我們需要獲得遠端伺服器上的某個檔案,遠端伺服器沒有配置ftp伺服器,沒有開啟web伺服器,也沒有做共享,無法通過常規途徑獲得檔案時,只需要通過scp命令便可輕鬆的達到目的
  • 我們需要將本機上的檔案上傳到遠端伺服器上,遠端伺服器沒有開啟ftp伺服器或共享,無法通過常規途徑上傳是,只需要通過scp命令便可以輕鬆的達到目的

語法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-I identity_file][-l limit] [-o ssh_option] [-P port] [-S program][[[email protected]]host1:]file1 [...] [[[email protected]]host2:]file2

簡易寫法:

scp [可選引數] file_source file_target 

引數說明:

-1: 強制scp命令使用協議ssh1-2: 強制scp命令使用協議ssh2-4: 強制scp命令只使用IPv4定址-6: 強制scp命令只使用IPv6定址-B: 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)-C: 允許壓縮。(將-C標誌傳遞給ssh,從而開啟壓縮功能)-p:保留原檔案的修改時間,訪問時間和訪問許可權。-q: 不顯示傳輸進度條。-r: 遞迴複製整個目錄。-v:詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的除錯資訊。這些資訊用於除錯連線,驗證和配置問題。-c cipher: 以cipher將資料傳輸進行加密,這個選項將直接傳遞給ssh。-F ssh_config: 指定一個替代的ssh配置檔案,此引數直接傳遞給ssh。-i identity_file: 從指定檔案中讀取傳輸時使用的金鑰檔案,此引數直接傳遞給ssh。-l limit: 限定使用者所能使用的頻寬,以Kbit/s為單位。-o ssh_option: 如果習慣於使用ssh_config(5)中的引數傳遞方式,-P port:注意是大寫的P, port是指定資料傳輸用到的埠號-S program: 指定加密傳輸時所使用的程式。此程式必須能夠理解ssh(1)的選項。

例項

1、從本地複製到遠端

命令格式:

1. scp local_file [email protected]_ip:remote_folder 或者 2. scp local_file [email protected]_ip:remote_file 或者 3. scp local_file remote_ip:remote_folder 或者 4. scp local_file remote_ip:remote_file 

第1,2個指定了使用者名稱,命令執行後需要再輸入密碼

55fb42f04336ec91663eec55c17f3c19.png

第1個僅指定了遠端的目錄,檔名字不變

第2個指定了檔名

第3,4個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼,第3個僅指定了遠端的目錄,檔名字不變,第4個指定了檔名;

應用例項:

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3 scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3 

複製目錄命令格式:

scp -r local_folder [email protected]_ip:remote_folder 或者 scp -r local_folder remote_ip:remote_folder 

第1個指定了使用者名稱,命令執行後需要再輸入密碼

第2個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼

應用例項:

scp -r /home/space/music/ [email protected]:/home/root/others/ scp -r /home/space/music/ www.runoob.com:/home/root/others/ 

上面命令將本地 music 目錄複製到遠端 others 目錄下。

2、從遠端複製到本地

從遠端複製到本地,只要將從本地複製到遠端的命令的後2個引數調換順序即可,如下例項

應用例項:

scp [email protected]:/home/root/others/music /home/space/music/1.mp3 scp -r www.runoob.com:/home/root/others/ /home/space/music/

說明

1.如果遠端伺服器防火牆有為scp命令設定了指定的埠,我們需要使用 -P 引數來設定命令的埠號,命令格式如下:

scp 命令使用埠號 4588

scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator

2.使用scp命令要確保使用的使用者具有可讀取遠端伺服器相應檔案的許可權,否則scp命令是無法起作用的。

1.13 awk

一種處理文字檔案的語言,是一個強大的文字分析工具.

之所以叫AWK是因為其取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字元。

語法

awk [選項引數] 'script' var=value file(s)或awk [選項引數] -f scriptfile var=value file(s)

選項引數說明:

-F fs or --field-separator fs指定輸入檔案折分隔符,fs是一個字串或者是一個正則表示式,如-F:。-v var=value or --asign var=value賦值一個使用者定義變數。-f scripfile or --file scriptfile從指令碼檔案中讀取awk命令。-mf nnn and -mr nnn對nnn值設定內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是Bell實驗室版awk的擴充套件功能,在標準awk中不適用。-W compact or --compat, -W traditional or --traditional在相容模式下執行awk。所以gawk的行為和標準的awk完全一樣,所有的awk擴充套件都被忽略。-W copyleft or --copyleft, -W copyright or --copyright列印簡短的版權資訊。-W help or --help, -W usage or --usage列印全部awk選項和每個選項的簡短說明。-W lint or --lint列印不能向傳統unix平臺移植的結構的警告。-W lint-old or --lint-old列印關於不能向傳統unix平臺移植的結構的警告。-W posix開啟相容模式。但有以下限制,不識別:/x、函式關鍵字、func、換碼序列以及當fs是一個空格時,將新行作為一個域分隔符;操作符**和**=不能代替^和^=;fflush無效。-W re-interval or --re-inerval允許間隔正則表示式的使用,參考(grep中的Posix字元類),如括號表示式[[:alpha:]]。-W source program-text or --source program-text使用program-text作為原始碼,可與-f命令混用。-W version or --version

基本用法

  • log.txt文字內容如下:
f4c5effaa2d4adb6b5bd7d40909ab34b.png
  • 用法一
awk '{[pattern] action}' {filenames} # 行匹配語句 awk '' 只能用單引號

例項

  • 每行按空格或TAB分割,輸出文字中的1、4項
47715ce7f77547766f23cddd1c2d4e95.png
  • awk '{print $1,$4}' log.txt
  • 格式化輸出
902d6dcddf0bb258adac7c6ef05c0d9e.png
  • awk '{printf "%-8s %-10s