shell必學命令

Shell基本命令幾個基本的shell命令,用ssh管理主機必備。1.ls 列出目錄下的文件,不同類型的文件顏色不同,例如藍色是文件夾,白色是文件[root@restoretmp steph]# lsfile.html public_html test[root@restoretmp steph]# 參數:ls -a 列出所有文件,包括隱藏文件[root@restoretmp steph]# ls -a. .. .bash_logout .bash_profile .bashrc file.html public_html test[root@restoretmp steph]#ls -l 列出所有者 size 文件權限 修改日期ls -R 遞歸列出所有子目錄的內容2. cd 轉移目錄cd /home/steph 將轉移到/home/stephcd .. 上移一個目錄cd 回到根目錄3. 建立新文件和文件夾touch new-filename 建立新文件mkdir new-directory 建立新目錄4.刪除文件和目錄rm filename 刪除名爲 filename的文件rmdir foldername 刪除名爲foldername的目錄5.修改文件夾權限chmod 755 foldername 將把名爲foldername的文件夾的權限修改爲7556.修改用戶chown steph:steph file.html 把file.html的用戶修改爲steph:steph2. 壓縮和解壓縮文件gzip 和 gunzip壓縮: gzip filename文件即會被壓縮,並被保存爲 filename.gz解壓縮: gunzip filename.gzfilename.gz 會被刪除,而繼之以 filename可以通過命令man gip 和man gunzip獲得命令的詳細說明.zip 和 unzip要使用 zip 來壓縮文件,在 shell 提示下鍵入下面的命令:zip -r filename.zip filesdir在這個例子裏,filename.zip 代表你創建的文件,filesdir 代表你想放置新 zip 文件的目錄。-r 選項指定你想遞歸地(recursively)包括所有包括在 filesdir 目錄中的文件。要解壓縮 zip 文件的內容,鍵入以下命令:unzip filename.zip你可以使用 zip 命令同時處理多個文件和目錄,方法是將它們逐一列出,並用空格間隔:zip -r filename.zip file1 file2 file3 /usr/work/school上面的命令把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然後放入 filename.zip 文件中。運行FTP Wget實現上傳下載1. 用FTP將服務器上的文件上傳到其他服務器[root]$ ftp /*啓用FTP客戶端ftp> open 202.103.1.2 /*打開遠程服務器IPConnected to 202.103.1.2.220 ProFTPD 1.2.9 Server ready.Name (218.93.205.112:qqroot): user /*輸入用戶名331 Password required for oran.Password: /*輸入密碼230 User oran logged in.put idcspy.tar.gz idcspy.tar.gz/*這是關鍵,put是上傳命令,第一個idcspy.tar.gz是本地文件名,第二個是遠程文件名。。意思就是把本地的idcspy.tar.gz上傳到遠程FTP裏,並且命名爲idcspy.tar.gz這樣,SSH就可以自己上傳了。你就可以做別的事情了。2. Wget下載文件使用方法:wget的使用形式是:wget [參數列表] URL首先來介紹一下wget的主要參數:· -b:讓wget在後臺運行,記錄文件寫在當前目錄下”wget-log”文件中;· -t [nuber of times]:嘗試次數,當wget無法與服務器建立連接時,嘗試連接多少次。比如”-t120〃表示嘗試120次。當這一項爲”0〃的時候,指定嘗試無窮多次直到連接成功爲止,這個設置非常有用,當對方服務器突然關機或者網絡突然中斷的時候,可以在恢復正常後繼續下載沒有傳完的文件;· -c:斷點續傳,這也是個非常有用的設置,特別當下載比較大的文件的時候,如果中途意外中斷,那麼連接恢復的時候會從上次沒傳完的地方接着傳,而不是又從頭開始,使用這一項需要遠程服務器也支持斷點續傳,一般來講,基於UNIX/Linux的Web/FTP服務器都支持斷點續傳;· -T [number of seconds]:超時時間,指定多長時間遠程服務器沒有響應就中斷連接,開始下一次嘗試。比如”-T120〃表示如果120秒以後遠程服務器沒有發過來數據,就重新嘗試連接。如果網絡速度比較快,這個時間可以設置的短些,相反,可以設置的長一些,一般最多不超過900,通常也不少於60,一般設置在120左右比較合適;· -w [number of seconds]:在兩次嘗試之間等待多少秒,比如”-w 100〃表示兩次嘗試之間等待100秒;· -Y on/off:通過/不通過代理服務器進行連接;· -Q [byetes]:限制下載文件的總大小最多不能超過多少,比如”-Q2k”表示不能超過2K字節,”-Q3m”表示最多不能超過3M字節,如果數字後面什麼都不加,就表示是以字節爲單位,比如”-Q200〃表示最多不能超過200字節;· -nd:不下載目錄結構,把從服務器所有指定目錄下載的文件都堆到當前目錄裏;· -x:與”-nd”設置剛好相反,創建完整的目錄結構,例如”wget -ndhttp://www.gnu.org“將創建在當前目錄下創建”www.gnu.org”子目錄,然後按照服務器實際的目錄結構一級一級建下去,直到所有的文件都傳完爲止;· -nH:不創建以目標主機域名爲目錄名的目錄,將目標主機的目錄結構直接下到當前目錄下;· –http-user=username· –http-passwd=password:如果Web服務器需要指定用戶名和口令,用這兩項來設定;· –proxy-user=username· –proxy-passwd=password:如果代理服務器需要輸入用戶名和口令,使用這兩個選項;· -r:在本機建立服務器端目錄結構;· -l [depth]:下載遠程服務器目錄結構的深度,例如”-l 5〃下載目錄深度小於或者等於5以內的目錄結構或者文件;· -m:做站點鏡像時的選項,如果你想做一個站點的鏡像,使用這個選項,它將自動設定其他合適的選項以便於站點鏡像;· -np:只下載目標站點指定目錄及其子目錄的內容。這也是一個非常有用的選項,我們假設某個人的個人主頁裏面有一個指向這個站點其他人個人主頁的連接,而我們只想下載這個人的個人主頁,如果不設置這個選項,甚至–有可能把整個站點給抓下來,這顯然是我們通常不希望的;ü 如何設定wget所使用的代理服務器wget可以使用用戶設置文件”.wgetrc”來讀取很多設置,我們這裏主要利用這個文件來是設置代理服務器。使用者用什麼用戶登錄,那麼什麼用戶主目錄下的”.wgetrc”文件就起作用。例如,”root”用戶如果想使用”.wgetrc”來設置代理服務器,”/root/.wgert”就起作用,下面給出一個”.wgetrc”文件的內容,讀者可以參照這個例子來編寫自己的”wgetrc”文件:http-proxy = 111.111.111.111:8080ftp-proxy = 111.111.111.111:8080這兩行的含義是,代理服務器IP地址爲:111.111.111.111,端口號爲:80。第一行指定HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。第二篇:$ wget –helpGNU Wget 1.9.1,非交互式的網絡文件下載工具。用法: wget [選項]… [URL]…長選項必須用的參數在使用短選項時也是必須的。啓動:-V, –version 顯示 Wget 的版本並且退出。-h, –help 打印此幫助。-b, -background 啓動後進入後臺操作。-e, -execute=COMMAND 運行‘.wgetrc’形式的命令。日誌記錄及輸入文件:-o, –output-file=文件 將日誌消息寫入到指定文件中。-a, –append-output=文件 將日誌消息追加到指定文件的末端。-d, –debug 打印調試輸出。-q, –quiet 安靜模式(不輸出信息)。-v, –verbose 詳細輸出模式(默認)。-nv, –non-verbose 關閉詳細輸出模式,但不進入安靜模式。-i, –input-file=文件 下載從指定文件中找到的 URL。-F, –force-html 以 HTML 方式處理輸入文件。-B, –base=URL 使用 -F -i 文件選項時,在相對鏈接前添加指定的 URL。下載:-t, –tries=次數 配置重試次數(0 表示無限)。–retry-connrefused 即使拒絕連接也重試。-O –output-document=文件 將數據寫入此文件中。-nc, –no-clobber 不更改已經存在的文件,也不使用在文件名後添加 .#(# 爲數字)的方法寫入新的文件。-c, –continue 繼續接收已下載了一部分的文件。–progress=方式 選擇下載進度的表示方式。-N, –timestamping 除非遠程文件較新,否則不再取回。-S, –server-response 顯示服務器迴應消息。–spider 不下載任何數據。-T, –timeout=秒數 配置讀取數據的超時時間 (秒數)。-w, –wait=秒數 接收不同文件之間等待的秒數。–waitretry=秒數 在每次重試之間稍等一段時間 (由 1 秒至指定的 秒數不等)。–random-wait 接收不同文件之間稍等一段時間(由 0 秒至 2*WAIT 秒不等)。-Y, –proxy=on/off 打開或關閉代理服務器。-Q, –quota=大小 配置接收數據的限額大小。–bind-address=地址 使用本機的指定地址 (主機名稱或 IP) 進行連接。–limit-rate=速率 限制下載的速率。–dns-cache=off 禁止查找存於高速緩存中的 DNS。–restrict-file-names=OS 限制文件名中的字符爲指定的 OS (操作系統) 所允許的字符。目錄:-nd –no-directories 不創建目錄。-x, –force-directories 強制創建目錄。-nH, –no-host-directories 不創建含有遠程主機名稱的目錄。-P, –directory-prefix=名稱 保存文件前先創建指定名稱的目錄。–cut-dirs=數目 忽略遠程目錄中指定數目的目錄層。HTTP 選項:–http-user=用戶 配置 http 用戶名。–http-passwd=密碼 配置 http 用戶密碼。-C, –cache=on/off (不)使用服務器中的高速緩存中的數據 (默認是使用的)。-E, –html-extension 將所有 MIME 類型爲 text/html 的文件都加上 .html 擴展文件名。–ignore-length 忽略“Content-Length”文件頭字段。–header=字符串 在文件頭中添加指定字符串。–proxy-user=用戶 配置代理服務器用戶名。–proxy-passwd=密碼 配置代理服務器用戶密碼。–referer=URL 在 HTTP 請求中包含“Referer:URL”頭。-s, –save-headers 將 HTTP 頭存入文件。-U, –user-agent=AGENT 標誌爲 AGENT 而不是 Wget/VERSION。–no-http-keep-alive 禁用 HTTP keep-alive(持久性連接)。–cookies=off 禁用 cookie。–load-cookies=文件 會話開始前由指定文件載入 cookie。–save-cookies=文件 會話結束後將 cookie 保存至指定文件。–post-data=字符串 使用 POST 方法,發送指定字符串。–post-file=文件 使用 POST 方法,發送指定文件中的內容。HTTPS (SSL) 選項:–sslcertfile=文件 可選的客戶段端證書。–sslcertkey=密鑰文件 對此證書可選的“密鑰文件”。–egd-file=文件 EGD socket 文件名。–sslcadir=目錄 CA 散列表所在的目錄。–sslcafile=文件 包含 CA 的文件。–sslcerttype=0/1 Client-Cert 類型 0=PEM (默認) / 1=ASN1 (DER)–sslcheckcert=0/1 根據提供的 CA 檢查服務器的證書–sslprotocol=0-3 選擇 SSL 協議;0=自動選擇,1=SSLv2 2=SSLv3 3=TLSv1FTP 選項:-nr, –dont-remove-listing 不刪除“.listing”文件。-g, –glob=on/off 設置是否展開有通配符的文件名。–passive-ftp 使用“被動”傳輸模式。–retr-symlinks 在遞歸模式中,下載鏈接所指示的文件(連至目錄則例外)。遞歸下載:-r, –recursive 遞歸下載。-l, –level=數字 最大遞歸深度(inf 或 0 表示無限)。–delete-after 刪除下載後的文件。-k, –convert-links 將絕對鏈接轉換爲相對鏈接。-K, –backup-converted 轉換文件 X 前先將其備份爲 X.orig。-m, –mirror 等效於 -r -N -l inf -nr 的選項。-p, –page-requisites 下載所有顯示完整網頁所需的文件,例如圖像。–strict-comments 打開對 HTML 備註的嚴格(SGML)處理選項。遞歸下載時有關接受/拒絕的選項:-A, –accept=列表 接受的文件樣式列表,以逗號分隔。-R, –reject=列表 排除的文件樣式列表,以逗號分隔。-D, –domains=列表 接受的域列表,以逗號分隔。–exclude-domains=列表 排除的域列表,以逗號分隔。–follow-ftp 跟隨 HTML 文件中的 FTP 鏈接。–follow-tags=列表 要跟隨的 HTML 標記,以逗號分隔。-G, –ignore-tags=列表 要忽略的 HTML 標記,以逗號分隔。-H, –span-hosts 遞歸時可進入其它主機。-L, –relative 只跟隨相對鏈接。-I, –include-directories=列表 要下載的目錄列表。-X, –exclude-directories=列表 要排除的目錄列表。-np, –no-parent 不搜索上層目錄。一個講解的不錯的Wget說明wget是一個命令行工具,用於批量下載文件,支持HTTP和FTP。究竟比其他的工具好在哪裏?看看內容吧 wget基本上所有的Linux版本都自己帶了,但是有多少人在用呢?呵呵,如果你沒有用過,不妨試試。Windows下面的用戶可以使用GNUwin32的項目,wget,基本功能完全一致。好吧,我們來以幾個簡單的例子看看wget的威力。如果我們想下載ftp裏面某個目錄裏面的所有文件,我們也可以不用ftp這個笨蛋,呵呵,可以享受cute ftp等圖形化工具的拖一個目錄的輕鬆了。如wget -r ftp://10.8.8.8/movie/呵呵,等吧!下完了,發覺有些不對勁,怎麼出來個10.8.8.8的目錄,進去看看,又是一個movie,哦,wget將目錄結構和網站標題都給記錄下來了,不要??沒有問題!比如說還是這個例子wget -r -nd ftp://10.8.8.8/movie/結果什麼目錄都沒有了,faint!怎麼會這樣?呵呵,你如果想要這樣就讓它這樣吧,否則使用wget -r -nH ftp://10.8.8.8/movie/恩?movie也不要?OK,那就這樣wget -r -nH –cut-dirs=1 ftp://10.8.8.8/movie/這有什麼用啊?cuteftp比他好用多了,而且,你這斷了線能連嗎?呵呵,不好意思,可以連wget -c -r -nH –cut-dirs=1 ftp://10.8.8.8/movie/但是cuteftp能做下面的事情嗎?比如,現在很多網站使用Apache建站,並不提供ftp服務,但是Apache有一個indexing功能,可以 提供一個類似於ftp的界面,好多文件我想下啊,怎麼辦?由於是HTTP協議,CuteFTP無能爲力了,倒是flash get等有什麼get all這種功能,不知道他們對於目錄處理怎麼樣。但是wget一點問題都沒有,不信?我們拿CTAN爲例(例子並不恰當,CTAN有FTP服務),我們下 載這裏面所有的宏包,呵呵wget -r -k http://www.ctan.org/tex-archive/macros/latex/-k表示將連接轉換爲本地連接。但是現在同樣有上面的問題啊,那就把你需要的加上吧,另外也許你根本不需要向下走那麼多層,比如,我們就要到第二層,那麼wget -r -l2 -k http://www.ctan.org/tex-archive/macros/latex/現在新的問題是,由於網頁有一個排序功能,很討厭,因爲下載的時候把網頁重複了好多次,那麼我們可使用-A和-R開關控制下載類型,並且可以使用通配符,呵呵,現在隨心所欲了吧wget -r -R “.htm\?*” -k http://www.ctan.org/tex-archive/macros/latex/這次沒有那種網頁了吧?-R的意義在於拒絕下載匹配類型的文件,-A表示僅僅接受的文件類型,如-A “*.gif”將僅下載gif圖片,如果有多個允許或者不允許,可以使用,分開。那麼,我們現在在使用代理服務器,怎麼辦呢?呵呵,很高興你選擇了wget,你可以使用它的配置文件,環境變量來利用代理。這裏推薦使用環境變量,如在 bash裏面我們可以把天天用的proxy加到.bash_profile裏面,這是Linux標準寫法(很多軟件都用的,什麼apt-get,yum等 等)export http_proxy=http://10.20.30.40:8080然後,proxy就默認打開了,如果需要暫時關閉,可以使用wget –proxy=off -r -k http://www.ctan.org/tex-archive/macros/latex/當然,寫一個.wgetrc文件也可以,該文件可以從/usr/local/etc裏面找到,裏面有很詳細的註釋,我就不多說了。下載網頁的時候比較麻煩的事情是,有的網頁被同時指向了很多遍,那麼爲了避免多次下載,我們使用wget -nc -r -k http://www.ctan.org/tex-archive/macros/latex/可以避免這件事情。爲了不被有的連接指向非http://www.ctan.org/tex-archive/macros/latex/內層目錄,我們還應該加上wget -nc -np -r -k http://www.ctan.org/tex-archive/macros/latex/避免下載非該目錄裏面的文件,這也避免了到不同的host上面去。當然,如果你希望有這個功能,在多個host之間跳來跳去的下載,可以使用wget -nc -np -H -r -k http://www.ctan.org/tex-archive/macros/latex/使得可以在多個host之間span,同時-I和-X可以使得我們僅僅跟蹤某些目錄或者不跟蹤某些目錄。如果某些HTML裏面你需要的東西不是由這種東西作出來的,你就得使用–follow-tags和–ignore-tags了。嘿,我有個文件裏面都是連接,怎麼辦?要是不是html你只需要wget -i your.file如果是,那也不繁wget -F -i your.fileVi指令大全—-編輯文件進入vi的命令vi filename: 打開或新建文件,並將光標置於第一行首vi +n filename: 打開文件,並將光標置於第n行首vi + filename: 打開文件,並將光標置於最後一行首vi +/pattern filename: 打開文件,並將光標置於第一個與pattern匹配的串處vi -r filename: 在上次正用vi編輯時發生系統崩潰,恢復filenamevi filename….filename: 打開多個文件,依次進行編輯移動光標類命令h: 光標左移一個字符l: 光標右移一個字符space: 光標右移一個字符Backspace: 光標左移一個字符k或Ctrl+p: 光標上移一行j或Ctrl+n: 光標下移一行Enter: 光標下移一行w或W : 光標右移一個字至字首b或B : 光標左移一個字至字首e或E : 光標右移一個字至字尾): 光標移至句尾(: 光標移至句首}: 光標移至段落開頭{: 光標移至段落結尾nG: 光標移至第n行首n+: 光標下移n行n-: 光標上移n行n$: 光標移至第n行尾H: 光標移至屏幕頂行M: 光標移至屏幕中間行L: 光標移至屏幕最後行0: 光標移至當前行首$: 光標移至當前行尾屏幕翻滾類命令Ctrl+u: 向文件首翻半屏Ctrl+d: 向文件尾翻半屏Ctrl+f: 向文件尾翻一屏Ctrl+b: 向文件首翻一屏nz: 將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。插入文本類命令i: 在光標前I: 在當前行首a: 光標後A: 在當前行尾o: 在當前行之下新開一行O: 在當前行之上新開一行r: 替換當前字符R: 替換當前字符及其後的字符,直至按ESC鍵s: 從當前光標位置處開始,以輸入的文本替代指定數目的字符S: 刪除指定數目的行,並以所輸入文本代替之ncw或nCW: 修改指定數目的字nCC: 修改指定數目的行刪除命令ndw或ndW: 刪除光標處開始及其後的n-1個字do: 刪至行首d$: 刪至行尾ndd: 刪除當前行及其後n-1行x或X: 刪除一個字符,x刪除光標後的,而X刪除光標前的Ctrl+u: 刪除輸入方式下所輸入的文本搜索及替換命令/pattern: 從光標開始處向文件尾搜索pattern?pattern: 從光標開始處向文件首搜索patternn: 在同一方向重複上一次搜索命令N: 在反方向上重複上一次搜索命令:s/p1/p2/g: 將當前行中所有p1均用p2替代:n1,n2s/p1/p2/g: 將第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g: 將文件中所有p1均用p2替換選項設置all: 列出所有選項設置情況term: 設置終端類型ignorance: 在搜索中忽略大小寫list: 顯示製表位(Ctrl+I)和行尾標誌($)number: 顯示行號report: 顯示由面向行的命令修改過的數目terse: 顯示簡短的警告信息warn: 在轉到別的文件時若沒保存當前文件則顯示NO write信息nomagic: 允許在搜索模式中,使用前面不帶“\”的特殊字符nowrapscan: 禁止vi在搜索到達文件兩端時,又從另一端開始mesg: 允許vi顯示其他用戶用write寫到自己終端上的信息最後行方式命令:n1,n2 co n3: 將n1行到n2行之間的內容拷貝到第n3行下:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下:n1,n2 d: 將 n1行到n2行之間的內容刪除:w: 保存當前文件:e filename: 打開文件filename進行編輯:x: 保存當前文件並退出:q: 退出vi:q!: 不保存文件並退出vi:!command: 執行shell命令command:n1,n2 w!command: 將文件中n1行至n2行的內容作爲command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作爲command的輸入:r!command: 將命令command的輸出結果放到當前行寄存器操作“?nyy: 將當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字“?nyw: 將當前行及其下n個字保存到寄存器?中,其中?爲一個字母,n爲一個數字“?nyl: 將當前行及其下n個字符保存到寄存器?中,其中?爲一個字母,n爲一個數字“?p: 取出寄存器?中的內容並將其放到光標位置處。這裏?可以是一個字母,也可以是一個數字ndd: 將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章