SSH下常用Shell指令 (更新中-2009.09.16)

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 指定輸出文件名

0 Responses to “SSH下常用Shell指令 (更新中-2009.09.16)”


Comments are currently closed.