天天看點

SSH下常用Shell指令

SSH是許多國外虛拟主機IDC提供的Linux Shell環境.本文給出常用的SSH下Shell指令.

此文為本人原創,絕非從網上複制而來,我相信其精确性可完善性非網絡上淩亂文章可比

鑒于篇幅,隻給出基本指令,常用參數.所有指令在Bash Shell環境下測試過.

您可以在Shell下,用 “help 指令名稱” 或 “man 指令名稱” ,或 “指令名稱 –help”檢視詳細幫助.

Note:

1.Linux區分大小寫.所有指令一般均為小寫.參數也區分大小寫

2.參數中若有空格,需要用 ” ” 或 ‘ ‘ 圈起.後者不會解析其中任何Shell變量

3.一般情況下,執行任何指令中,可按 ctrl + C 退出

1.基本操作和檔案管理.

pwd

cd

mv

rm // 删除檔案/檔案夾.加入 -r 參數以遞歸形式删除檔案夾和所有子檔案夾

touch //常用于建立新的空檔案,若檔案已存在,修改其時間為現在

mkdir //建立目錄,加入 -p參數可一次建立多層目錄

chmod //改變檔案權限.對web目錄下檔案夾,推薦設定為755以下

chown //更改檔案所有者,若PHP以Apache Mode方式運作,可能經常需要用此指令改變PHP程式建立的檔案宿主

md5sum //不加參數直接計算檔案md5或加 -c參數從檔案讀取md5并校驗檔案清單完整性

ln //建立檔案連結 -s 為符号連結(相當于windows快捷方式)

2.基本SHELL管理

jobs //顯示背景執行任務.通常用之擷取背景任務代碼

ps //顯示程序清單,在虛拟主機Shell環境下并不常用

fg //後跟任務代碼,背景執行程式.之前可以先用 ctrl +z 将前台執行任務暫停

bg //fg 的反向指令

export // Bash Shell ,通常用于設定環境變量.每次登陸時,此設定将被初始化.可以編輯根目錄 .bash_profile 檔案,來實作每次登陸自動導入某些環境變量(例如,PASH路徑)

exit //推出目前Shell

crontab //計劃任務 -l 顯示目前. -e 編輯 “* * * * * command “形式 (分别為 分,時,日,月,周)

kill //常用于終止(背景)程序 必須加上-9 參數. 程序号可用 ps 查詢

pkill //通過輸入程序名稱,終止其,友善.同樣需要 -9 參數

Note : 通常,有兩種方法可以實作 直接建立背景程式. “nohup “或在指令後加 & .推薦兩個一起用.

3.檔案處理與編輯

cat //顯示檔案内容 -n 顯示行号 .或用 cat 檔案清單 > outfile 合并檔案.

more //顯示檔案内容,不如 less友善.

less //最常用顯示檔案内容指令. -N 顯示行号.按 u / d 向 前/後 翻頁. q推出 “/ CHARS ” 查找字元串.

tee //直接在指令行下輸出内容到文本檔案 -a 則為附加在檔案末尾

tail //顯示檔案尾部内容 -n 指定行數.常用于檢視日志檔案

tr //替換字元串 .建議用 cat file | tr string1 string2 .For example: cat testfile | a-z A-Z 将檔案小寫轉為大寫.

vim //最強大的文本編輯器. -b二進制編輯. 進入後,ctrl+ u/d 翻頁,:N 跳到第N行…..按 a/A/o/O/i/I 進入編輯模式. 按 ESC進入指令模式, :wq 儲存并退出,:w儲存,:q!不儲存強制退出. vim參數/指令很多,但不難,這裡不列了

sed //進階文本處理程式.文法複雜 .For example : sed ‘2,3d” testfile 删除testfile檔案2~3行; sed

“s/is/are/g” testfile 将testfile中所有 is 換成 are .可以直接使用正規表達式.

awk //進階文本處理程式.這個文法更複雜 偶都不懂 -_-.

Note : awk 和 sed 号稱Linux 文本處理兩大利器.若能掌握很有用處

4.備份,還原

tar //最常用的壓縮/解壓縮檔案. 許多參數. -cvf 建立 tar壓縮檔案 -cvzf 建立 tar.gz格式壓縮檔案. -xvf 和 -xvzf 分别解壓縮 tar tar.gz格式檔案.

split //最常用分割檔案指令 -b 設定拆分大小 (byte) (可用 -b 6k 輸出單個6KB檔案) ,-d 生成數字字尾分割包.若要還原檔案,用 cat.

Note: Apache2.2以下版本不支援http下載下傳2GB檔案.是以備份的web目錄超過2GB,需要sllit分割.windows下,可用copy合并

5.MySQL

mysqldump //MySQL備份指令 基本用法:

mysqldump –opt -h HOST -u USER -pPASSWORD DATABASENAME > OUTFILE.sql

請将 HOST,USER,PASSWORD,DATABASENAME 分别換為您資料庫的相關資訊..注意 -p 與密碼之間沒有空格. 若不輸入 -p,則需要之後在指令行下輸入密碼. 若計劃導入的MySQL版本比導出版本低,需要用 –compatible=NAME 參數打開相容備份模式 (NAME可選值包括ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options,推薦mysql40).-d 為隻導出資料庫結構,不導出内容 .

mysql //Shell下MySQl指令 mysql -u username -p password dbname .等入控制台後,可執行sql語句.

用 mysql -u USER -pPASSWORD -h HOST database < backup.sql 是MySQL恢複的最常用方法.

6.搜尋.

find //最常用 搜尋特定字元串檔案/目錄 . 可選擇項目包括 -name -path -type .

grep //強大的搜尋檔案中字元串指令.參數 -a 忽略二進制資料. -d 搜尋目錄 -i 忽略大小寫.支援正規表達式

Note: grep 兩個常用參數 -e ,-f .分别相當于 egrep fgrep .fgrep 不支援正則,所有字元(包括統通配符 *,? 都作為本義解釋),即為查找完全比對字元串.

egrep 為擴充的正則查詢,支援全部正規表達式,與 grep相比,增加了對 ? + | () 正則符号支援.如果用正則搜尋,建議使用 egrep.

關于正規表達式子,簡要符号參考.

. 代表任意一個字元

^ 行的開始

$ 行的結束

* 比對(左側)零個或多個字元

? 比對零個或一個字元

+ 比對一個或多個字元

[] 比對一個範圍内字元 .例: [abc]比對 a或 b或c ,[a-zA-Z]比對任意一個字母 .

[^]比對一個不在其中範圍字元

/ 轉義符

{n,m} 重複左側字元 n~m次.另有 {n} {n,}

/w 相當于 [a-zA-Z0-9]

() 子正規表達式

| 選擇

[:NAME:]比對特定字元.例如 [:space:] 比對所有空白字元 [:digit:] 比對數字.

正則優先級( 從高到低)

/

(), (?:), (?=), []

*, +, ?, {n}, {n,}, {n,m}

^, $, /anymetacharacter

|

7.網絡指令

ftp //FTP指令,ftp HOST 或 直接ftp 進入控制台 之後可執行标準FTP指令. exit 退出.

lynx //強大的文本浏覽器, 許多參數. 支援密碼驗證,GET/POST送出等 . up down 切換連結. left right 後退/前進

curl //強大的指令行HTTP通路工具.完全支援Cookies -b -c 分别指定讀取/生成的cookies檔案.

nslookup // 功能強大. 參數包括 set type=[A|NS] ,server 指定查詢伺服器

dig //域名查詢進階指令 -t 指定類型( A MX NS) -b 指定查詢主機.比nslookup查到資訊多

scp //通過SSH,遠端與另一個主機交換檔案.非常好用.

ssh //SSH指令

ping //功能同 windows下

mail //最基本的郵件指令. mail -s “MAIL TITLE” [email protected] ,然後在指令行下輸入郵件内容.

最後一行輸入 . 回車.回車 發送.或用 -f 指定郵件檔案位置.

pine //最強大的郵件工具 -attach 增加附件.或直接在界面下操作

wget //強大的下載下傳工具.速度極快 -c 斷點續傳. -O 指定輸出檔案名