shell 常用命令
生活随笔
收集整理的這篇文章主要介紹了
shell 常用命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
shell 常用命令
?
| Shell基本命令 幾個基本的shell命令,用ssh管理主機必備。 1.ls??列出目錄下的文件,不同類型的文件顏色不同,例如藍色是文件夾,白色是文件 [root@restoretmp steph]# ls file.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/steph cd .. 上移一個目錄 cd 回到根目錄 3. 建立新文件和文件夾 touch new-filename 建立新文件 mkdir new-directory 建立新目錄 4.刪除文件和目錄 rm filename 刪除名為 filename的文件 rmdir foldername 刪除名為foldername的目錄 5.修改文件夾權限 chmod 755 foldername 將把名為foldername的文件夾的權限修改為755 6.修改用戶 chown steph:steph file.html 把file.html的用戶修改為steph:steph 2. 壓縮和解壓縮文件 gzip 和 gunzip 壓縮:? gzip??filename 文件即會被壓縮,并被保存為 filename.gz 解壓縮:? gunzip filename.gz filename.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?? /*打開遠程服務器IP Connected 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無法與服務器建立連接時,嘗試連接多少次 。比如”-t 120〃表示嘗試120次。當這一項為”0〃的時候,指定嘗試無窮多次直到連接成功為止,這個 設置非常有用,當對方服務器突然關機或者網絡突然中斷的時候,可以在恢復正常后繼續 下載沒有傳完的文件; · -c:斷點續傳,這也是個非常有用的設置,特別當下載比較大的文件的時候,如果中 途意外中斷,那么連接恢復的時候會從上次沒傳完的地方接著傳,而不是又從頭開始,使 用這一項需要遠程服務器也支持斷點續傳,一般來講,基于UNIX/Linux的Web/FTP服務器 都支持斷點續傳; · -T [number of seconds]:超時時間,指定多長時間遠程服務器沒有響應就中斷連接 ,開始下一次嘗試。比如”-T 120〃表示如果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 -nd http://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”就起 作用,下面給出一個”.wge trc”文件的內容,讀者可以參照這個例子來編寫自己的”wgetrc”文件: http-proxy = 111.111.111.111:8080 ftp-proxy = 111.111.111.111:8080 這兩行的含義是,代理服務器IP地址為:111.111.111.111,端口號為:80。第一行指定 HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。 第二篇: $ wget –help GNU 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, –times*****ping??????除非遠程文件較新,否則不再取回。 -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=TLSv1 FTP 選項: -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里面你需要的東西不是由<a>這種東西作出來的,你就得使用–follow-tags和–ignore-tags了。 嘿,我有個文件里面都是連接,怎么辦?要是不是html你只需要 wget -i your.file 如果是,那也不繁 wget -F -i your.file Vi指令大全—-編輯文件 進入vi的命令 vi filename: 打開或新建文件,并將光標置于第一行首 vi +n filename: 打開文件,并將光標置于第n行首 vi + filename: 打開文件,并將光標置于最后一行首 vi +/pattern filename: 打開文件,并將光標置于第一個與pattern匹配的串處 vi -r filename: 在上次正用vi編輯時發生系統崩潰,恢復filename vi 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: 從光標開始處向文件首搜索pattern n: 在同一方向重復上一次搜索命令 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號刪除寄存器中 ? |
轉載于:https://www.cnblogs.com/y0umer/archive/2011/03/26/2809593.html
總結
以上是生活随笔為你收集整理的shell 常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于电脑的几十个单词及其缩写
- 下一篇: API(乱七八糟)