1. 程式人生 > >linux shell 指令總結

linux shell 指令總結

一  shell 基本指令

1.  

$ --普通使用者    # -- 超級使用者

xx  --help    檢視xx 指令幫助

man xxx    檢視xx指令用法

 

2.

pwd  當前目錄

cd  。。  回到根目錄

cd   /    頂端根目錄

cd  ~  個人主目錄

 

3.

file xxx    讀取檔案中文字屬性

 

4.linux的目錄結構

/boot  存放linux 核心 和啟動載入項

/bin   預設可執行程式

/usr   支援使用者程式的檔案     /usr/bin    使用者要用的可執行程式

/sbin     /usr/sbin  系統管理員專用程式,超級使用者執行

/etc    作業系統設定的檔案

/var   日誌檔案

/lib   共享庫檔案

/dev    裝置驅動檔案

 

5.輸入輸出

sort <   ls.txt  > sorted_ls.txt    

將ls檔案中內容排序輸出到螢幕   然後輸出到  sorted_ls

管道:|(vertical bar) 連線多個指令,表示前一個指令的輸出是下一個指令的輸入。

 

6.許可權

chmod 修改檔案/目錄的訪問許可權

chown 修改檔案/目錄的所有權

 

7.多工處理(job)

ps:系統正在執行的程序

jobs:shell中顯示程序目錄

 

8.解析(parsing)是將一連串字串分解為有意義的令牌,建立解析樹(parse tree)

shell就是一個程序,可建立其他程序。

fork系統呼叫建立呼叫程序的副本。

 

9.shell指令碼第一行輸入    #!/bin/sh ,   核心識別檔案為bourne  shell指令碼。

bash shell 是Bourne shell的升級版,大部分linux使用 Bash shell。

 

10.

正在執行的程式稱程序或作業(job),每個程序都有其固有ID,即PID。

作業控制可選擇性的執行程式,分前臺和後臺。

 

11.命令列中的編輯器

內建編輯器有兩種:一般預設的是emacs   另一種是vi

emacs的基本操作:

                                  ctrl+P/N  向上/下  移動歷史檔案

                                  ctrl+A   移至行首  ctrl+E 移至行尾

                                  ctrl+U 刪除行        ctrl+Y恢復最後刪除的內容

                                  ctrl+K  刪除游標到行尾的內容

                                  Esc+ D / H   向前/後刪除一個字元

 

12.別名

別名  alias  就是使用者把 shell命令 自定義為其他的名字,便於使用。

 

13.元字元 / 萬用字元

?  *   [ ]    { }   \

 

14.變數

declare  typeset,全域性變數一般都是大寫字母。

$#  的值等於引數個數。

15.重定向

啟動shell的同時啟動了 stdin  stdout   和  stderr。

想把內容輸出到某檔案可使用重定向  >  配合使用的命令exec

 

二  檢索功能

1.正則表示式  (Regular Expressions)

正則表示式是匹配用於檢索的相同字符集的模式。

vim支援 使用正則表示式

 

2.grep檢索

grep指令用於檢索與輸入檔案的已有模式列表匹配的行,之後通過標準複製然後顯示 檢索到的行。

egrep 是 grep的擴充套件,可使用Regular Expression的元字符集。

fgrep類似於  grep,但是不能使用 Regular Expression的元字符集。

 

3.linux的文字處理工具

     3.1  sed

      sed是以行為單位的非互動式編輯器,從通過標準輸入或檔案獲得要處理的輸入文字,對指定的行進行逐行處理。

      3.2  awk

     awk是操作資料並建立報告的語言。

     

三 bash shell 程式設計

1.將命令合併轉為檔案執行,檔案就稱為shell 指令碼。

shell指令碼是非互動的。(noninteractive)

shell指令碼的第一行,成為 shbang行。

shbang行是 #! /bin/bash  則使用Bash shell。

shbang行是 #! /bin/sh  則使用Bourne shell。

 

2.

註釋 comment  # 

變數 variable  $

read  用於從終端或檔案讀取輸入的字串。

 

3.

shift 命令按照指定數字向左移動引數目錄。

內部欄位分隔符IFS  評估空格、TAB  、newline字元,需要使用其他分隔符的時可重置。

function  定義函式  

unset  刪除記憶體中的函式

export 導數函式,使其可以在子shell 中使用。

source命令從定義函式的檔案呼叫並使用需要的函式。

 

4. 

kill -l  和  trap -l  命令可以檢視所有訊號目錄。

getopts  函式處理命令列選項和引數。

eval 評估命令列,替換shell後執行。

set操作命令列引數,選項前加“  -  ”表示設定為ON,加“  +  ”表示設定為OFF。

 

5.啟動指令碼

vsftpd

 

6.實用指令

cut 擷取檔案指定的各行欄位

paste 合併檔案資訊

join 合併欄位並刪除等值欄位中的一個,使其唯一。

tr 通過標準輸入修改或者刪除字元。

split 以大小單位或行單位擷取大容量的文字。

col 是更改換行字元(line feed)的過濾器。

xarg 以行為單位讀取輸入資料並執行引數化。

find 在目錄層級檢索檔案。

tee  通過標準輸入讀取,並儲存為標準輸出和檔案。

 

參考:圖書    《linux shell 指令碼程式設計入門 》 作者:【韓】金泰龍