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 指令碼程式設計入門 》 作者:【韓】金泰龍