Linux系統管理命令二(轉)

zhouwf0726發表於2019-01-28

Linux備份與壓縮命令

  使用者經常需要備份計算機系統中的資料,為了節省儲存空間,常常將備份檔案進行壓縮。下面分別介紹備份與壓縮的命令。
  tar命令
  作用
:tar可以為檔案和目錄建立檔案。利用tar,使用者可以為某一特定檔案建立檔案(備份檔案),也可以在檔案中改變檔案,或者向檔案中加入新的檔案。tar最初被用來在磁帶上建立檔案,現在,使用者可以在任何裝置上建立檔案,如軟盤。利用tar命令,可以把一大堆的檔案和目錄全部打包成一個檔案,這對於備份檔案或將幾個檔案組合成為一個檔案以便於網路傳輸是非常有用的。Linux上的tar是GNU版本的。
  
語法
:tar [主選項+輔選項] 檔案或者目錄
  使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。
  
引數

  c 建立新的檔案檔案。如果使用者想備份一個目錄或是一些檔案,就要選擇這個選項。
  r 把要存檔的檔案追加到檔案檔案的未尾。例如使用者已經作好備份檔案,又發現還有一個目錄或是一些檔案忘記備份了,這時可以使用該選項,將忘記的目錄或檔案追加到備份檔案中。
  t 列出檔案檔案的內容,檢視已經備份了哪些檔案。
  u 更新檔案。就是說,用新增的檔案取代原備份檔案,如果在備份檔案中找不到要更新的檔案,則把它追加到備份檔案的最後。
  x 從檔案檔案中釋放檔案。
  輔助選項:
  b 該選項是為磁帶機設定的。其後跟一數字,用來說明區塊的大小,系統預設值為20(20*512 bytes)。
  f 使用檔案檔案或裝置,這個選項通常是必選的。
  k 儲存已經存在的檔案。例如我們把某個檔案還原,在還原的過程中,遇到相同的檔案,不會進行覆蓋。
  m 在還原檔案時,把所有檔案的修改時間設定為現在。
  M 建立多卷的檔案檔案,以便在幾個磁碟中存放。
  v 詳細報告tar處理的檔案資訊。如無此選項,tar不報告檔案資訊。
  w 每一步都要求確認。
  z 用gzip來壓縮/解壓縮檔案,加上該選項後可以將檔案檔案進行壓縮,但還原時也一定要使用該選項進行解壓縮。

  
例子

  例1:把/home目錄下包括它的子目錄全部做備份檔案,備份檔名為usr.tar。
  $ tar cvf usr.tar /home
  例2:把/home目錄下包括它的子目錄全部做備份檔案,並進行壓縮,備份檔名為usr.tar.gz 。
  $ tar czvf usr.tar.gz /home
  例3:把usr.tar.gz這個備份檔案還原並解壓縮。
  $ tar xzvf usr.tar.gz
  例4:檢視usr.tar備份檔案的內容,並以分屏方式顯示在顯示器上。
  $ tar tvf usr.tar | more
  要將檔案備份到一個特定的裝置,只需把裝置名作為備份檔名。
  例5:使用者在/dev/fd0裝置的軟盤中建立一個備份檔案,並將/home 目錄中所有的檔案都拷貝到備份檔案中。
  $ tar cf /dev/fd0 /home
  要恢復裝置磁碟中的檔案,可使用xf選項:
  $ tar xf /dev/fd0
  如果使用者備份的檔案大小超過裝置可用的存貯空間,如軟盤,您可以建立一個多卷的tar備份檔案。M選項指示tar命令提示您使用一個新的存貯裝置,當使用M選項向一個軟碟機進行存檔時,tar命令在一張軟盤已滿的時候會提醒您再放入一張新的軟盤。這樣您就可以把tar檔案存入幾張磁碟中。
  $ tar cMf /dev/fd0 /home
  要恢復幾張盤中的檔案,只要將第一張放入軟碟機,然後輸入有x和M選項的tar命令。在必要時您會被提醒放入另外一張軟盤。
  $ tar xMf /dev/fd0

  
gzip命令
  作用
:減少檔案大小有兩個明顯的好處,一是可以減少儲存空間,二是通過網路傳輸檔案時,可以減少傳輸的時間。gzip是在Linux系統中經常使用的一個對檔案進行壓縮和解壓縮的命令,既方便又好用。
  
語法
:gzip [選項] 壓縮(解壓縮)的檔名
  
引數

  -c 將輸出寫到標準輸出上,並保留原有檔案。
  -d 將壓縮檔案解壓。
  -l 對每個壓縮檔案,顯示下列欄位:
  壓縮檔案的大小
  未壓縮檔案的大小
  壓縮比
  未壓縮檔案的名字
  -r 遞迴式地查詢指定目錄並壓縮其中的所有檔案或者是解壓縮。
  -t 測試,檢查壓縮檔案是否完整。
  -v 對每一個壓縮和解壓的檔案,顯示檔名和壓縮比。
  -num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統預設值為6。
  假設一個目錄/home下有檔案mm.txt、sort.txt、xx.com。

  
例子

  例1:把/home目錄下的每個檔案壓縮成.gz檔案。
  $ cd /home
  $ gzip *
  $ ls
  m.txt.gz sort.txt.gz xx.com.gz
  例2:把例1中每個壓縮的檔案解壓,並列出詳細的資訊。
  $ gzip -dv *
  mm.txt.gz 43.1%-----replaced with mm.txt
  sort.txt.gz 43.1%-----replaced with sort.txt
  xx.com.gz 43.1%-----replaced with xx.com
  $ ls
  mm.txt sort.txt xx.com
  例3:詳細顯示例1中每個壓縮的檔案的資訊,並不解壓。
  $ gzip -l *
  compressed uncompr. ratio uncompressed_name
  277 445 43.1% mm.txt
  278 445 43.1% sort.txt
  277 445 43.1% xx.com
  $ ls
  mm.txt.gz sort.txt.gz xx.com.gz
  例4:壓縮一個tar備份檔案,如usr.tar,此時壓縮檔案的副檔名為.tar.gz
  $ gzip usr.tar
  $ ls
  usr.tar.gz

  
unzip命令
  作用
:用MS Windows下的壓縮軟體winzip壓縮的檔案如何在Linux系統下展開呢?可以用unzip命令,該命令用於解副檔名為.zip的壓縮檔案。
  
語法
:unzip [選項] 壓縮檔名.zip
  
引數

  -x 檔案列表 解壓縮檔案,但不包括指定的file檔案。
  -v 檢視壓縮檔案目錄,但不解壓。
  -t 測試檔案有無損壞,但不解壓。
  -d 目錄 把壓縮檔案解到指定目錄下。
  -z 只顯示壓縮檔案的註解。
  -n 不覆蓋已經存在的檔案。
  -o 覆蓋已存在的檔案且不要求使用者確認。
  -j 不重建文件的目錄結構,把所有檔案解壓到同一目錄下。

  
例子

  例1:將壓縮檔案text.zip在當前目錄下解壓縮。
  $ unzip text.zip
  例2:將壓縮檔案text.zip在指定目錄/tmp下解壓縮,如果已有相同的檔案存在,要求unzip命令不覆蓋原先的檔案。
  $ unzip -n text.zip -d /tmp
  例3:檢視壓縮檔案目錄,但不解壓。
  $ unzip -v text.zip
  zgrep命令
  這個命令的功能是在壓縮檔案中尋找匹配的正規表示式,用法和grep命令一樣,只不過操作的物件是壓縮檔案。如果使用者想看看在某個壓縮檔案中有沒有某一句話,便可用zgrep命令。

Linux 的常用網路命令

  計算機網路的主要優點是能夠實現資源和資訊的共享,並且使用者可以遠端訪問資訊。Linux提供了一組強有力的網路命令來為使用者服務,這些工具能夠幫助使用者登入到遠端計算機上、傳輸檔案和執行遠端命令等。 本章介紹下列幾個常用的有關網路操作的命令:

  ftp 傳輸檔案
  telnet 登入到遠端計算機上
  r - 使用各種遠端命令
  netstat 檢視網路的狀況
  nslookup 查詢域名和IP地址的對應
  finger 查詢某個使用者的資訊
  ping 查詢某個機器是否在工作

  使用ftp命令進行遠端檔案傳輸
  ftp命令是標準的檔案傳輸協議的使用者介面。ftp是在TCP/IP網路上的計算機之間傳輸檔案的簡單有效的方法。它允許使用者傳輸ASCII檔案和二進位制檔案。 在ftp會話過程中,使用者可以通過使用ftp客戶程式連線到另一臺計算機上。從此,使用者可以在目錄中上下移動、列出目錄內容、把檔案從遠端機拷貝到本地機上、把檔案從本地機傳輸到遠端系統中。
   需要注意的是,如果使用者沒有那個檔案的存取許可權,就不能從遠端系統中獲得檔案或向遠端系統傳輸檔案。 為了使用ftp來傳輸檔案,使用者必須知道遠端計算機上的合法使用者名稱和口令。這個使用者名稱/口令的組合用來確認ftp 會話,並用來確定使用者對要傳輸的檔案可以進行什麼樣的訪問。另外,使用者顯然需要知道對其進行ftp 會話的計算機的名字或IP地址。
  Ftp命令的功能是在本地機和遠端機之間傳送檔案。該命令的一般格式如下:
  $ ftp 主機名/IP

  其中“主機名/IP”是所要連線的遠端機的主機名或IP地址。在命令列中,主機名屬於選項,如果指定主機名,ftp將試圖與遠端機的ftp服務程式進行連線;如果沒有指定主機名,ftp將給出提示符,等待使用者輸入命令: $ ftp ftp > 此時在ftp>提示符後面輸入open命令加主機名或IP地址,將試圖連線指定的主機。 不管使用哪一種方法,如果連線成功,需要在遠端機上登入。使用者如果在遠端機上有帳號,就可以通過ftp使用這一帳號並需要提供口令。
在遠端機上的使用者帳號的讀寫許可權決定該使用者在遠端機上能下載什麼檔案和將上載檔案放到哪個目錄中。 如果沒有遠端機的專用登入帳號,許多ftp站點設有可以使用的特殊帳號。這個帳號的登入名為anonymous(也稱為匿名ftp),當使用這一帳號時,要求輸入email地址作為口令。如果遠端系統提供匿名ftp服務,使用者使用這項服務可以登入到特殊的,供公開使用的目錄。
   一般專門提供兩個目錄:pub目錄和incoming目錄。pub目錄包含該站點供公眾使用的所有檔案,incoming目錄存放上載到該站點的檔案。 一旦使用者使用ftp在遠端站點上登入成功,將得到“ftp>”提示符。現在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清單,也可以在 help命令後面指定具體的命令名稱,獲得這條命令的說明。
最常用的命令有:
  ls 列出遠端機的當前目錄
  cd 在遠端機上改變工作目錄
  lcd 在本地機上改變工作目錄
  ascii 設定檔案傳輸方式為ASCII模式
  binary 設定檔案傳輸方式為二進位制模式
  close終止當前的ftp會話
  hash 每次傳輸完資料緩衝區中的資料後就顯示一個#號
  get(mget) 從遠端機傳送指定檔案到本地機
  put(mput) 從本地機傳送指定檔案到遠端機
  open 連線遠端ftp站點
  quit斷開與遠端機的連線並退出ftp
  ? 顯示本地幫助資訊
  ! 轉到Shell中

  下面簡單將ftp常用命令作一簡介。
  啟動ftp會話 open命令用於開啟一個與遠端主機的會話。該命令的一般格式是: open 主機名/IP 如果在ftp 會話期間要與一個以上的站點連線,通常只用不帶引數的ftp命令。如果在會話期間只想與一臺計算機連線,那麼在命令列上指定遠端主機名或IP地址作為ftp命令的引數。終止ftp會話 close、disconnect、quit和bye命令用於終止與遠端機的會話。close和disronnect命令關閉與遠端機的連線,但是使使用者留在本地計算機的ftp程式中。quit和bye命令都關閉使用者與遠端機的連線,然後退出使用者機上的ftp 程式。 改變目錄 “cd [目錄]”命令用於在ftp會話期間改變遠端機上的目錄,lcd命令改變本地目錄,使使用者能指定查詢或放置本地檔案的位置。 遠端目錄列表 ls命令列出遠端目錄的內容,就像使用一個互動shell中的ls命令一樣。ls命令的一般格式是: ls [目錄] [本地檔案] 如果指定了目錄作為引數,那麼ls就列出該目錄的內容。如果給出一個本地檔案的名字,那麼這個目錄列表被放入本地機上您指定的這個檔案中。從遠端系統獲取檔案 get和mget命令用於從遠端機上獲取檔案。get命令的一般格式為: get 檔名 您還可以給出本地檔名,這個檔名是這個要獲取的檔案在您的本地機上建立時的檔名。如果您不給出一個本地檔名,那麼就使用遠端檔案原來的名字。 mget命令一次獲取多個遠端檔案。mget命令的一般格式為: mget 檔名列表 使用用空格分隔的或帶萬用字元的檔名列表來指定要獲取的檔案,對其中的每個檔案都要求使用者確認是否傳送。  向遠端系統傳送檔案 put和mput命令用於向遠端機傳送檔案。Put命令的一般格式為: put 檔名 mput命令一次傳送多個本地檔案,mput命令的一般格式為: mput 檔名列表 使用用空格分隔的或帶萬用字元的檔名列表來指定要傳送的檔案。對其中的每個檔案都要求使用者確認是否傳送。 改變檔案傳輸模式 預設情況下,ftp按ASCII模式傳輸檔案,使用者也可以指定其他模式。ascii和brinary命令的功能是設定傳輸的模式。用ASCII模式傳輸檔案對純文字是非常好的,但為避免對二進位制檔案的破壞,使用者可以以二進位制模式傳輸檔案。檢查傳輸狀態 傳輸大型檔案時,可能會發現讓ftp提供關於傳輸情況的反饋資訊是非常有用的。hash命令使ftp在每次傳輸完資料緩衝區中的資料後,就在螢幕上列印一個#字元。本命令在傳送和接收檔案時都可以使用。 ftp中的本地命令 當您使用ftp時,字元“!”用於向本地機上的命令shell傳送一個命令。如果使用者處在ftp會話中,需要shell做某些事,就很有用。例如使用者要建立一個目錄來儲存接收到的檔案。如果輸入!mkdir new_dir,那麼Linux就在使用者當前的本地目錄中建立一個名為new_dir 的目錄。

  從遠端機grunthos下載二進位制資料檔案的典型對話過程如下:
$ ftp grunthos Connected to grunthos 220 grunthos ftp server Name (grunthos:pc): anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp > cd pub 250 CWD command successful. ftp > ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp > binary 200 type set to
I. ftp > hash Hash mark printing on (1024 bytes/hash mark). ftp > get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl (l4684 bytes). # # # # # # # # # # # # # 226 Transfer complete. 14684 bytes received in 0.0473 secs (3e + 02 Kbytes/sec) ftp > quit 22l Goodbye.

  使用telnet命令訪問遠端計算機
  使用者使用telnet命令進行遠端登入。該命令允許使用者使用telnet協議在遠端計算機之間進行通訊,使用者可以通過網路在遠端計算機上登入,就像登入到本地機上執行命令一樣。為了通過telnet登入到遠端計算機上,必須知道遠端機上的合法使用者名稱和口令。雖然有些系統確實為遠端使用者提供登入功能,但出於對安全的考慮,要限制來賓的操作許可權,因此,這種情況下能使用的功能是很少的。當允許遠端使用者登入時,系統通常把這些使用者放在一個受限制的shell中,以防系統被懷有惡意的或不小心的使用者破壞。使用者還可以使用telnet從遠端站點登入到自己的計算機上,檢查電子郵件、編輯檔案和執行程式,就像在本地登入一樣。
但是,使用者只能使用基於終端的環境而不是X Wndows環境,telnet只為普通終端提供終端模擬,而不支援 X Wndow等圖形環境。 telnet命令的一般形式為: telnet 主機名/IP 其中“主機名/IP”是要連線的遠端機的主機名或IP地址。如果這一命令執行成功,將從遠端機上得到login:提示符。 使用telnet命令登入的過程如下: $ telnet 主機名/IP 啟動telnet會話。 一旦telnet成功地連線到遠端系統上,就顯示登入資訊並提示使用者輸人使用者名稱和口令。如果使用者名稱和口令輸入正確,就能成功登入並在遠端系統上工作。在telnet提示符後面可以輸入很多命令,用來控制telnet會話過程,在telnet聯機幫助手冊中對這些命令有詳細的說明。
  下面是一臺Linux計算機上的telnet會話舉例:
$ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is '?]'. “TurboLinux release 4. 0 (Colgate)   kernel 2.0.18 on an I486   login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $

  使用者結束了遠端會話後,一定要確保使用logout命令退出遠端系統。然後telnet報告遠端會話被關閉,並返回到使用者的本地機的Shell提示符下。 r-系列命令 除ftp和telnet以外,還可以使用r-系列命令訪問遠端計算機和在網路上交換檔案。 使用r-系列命令需要特別注意,因為如果使用者不小心,就會造成嚴重的安全漏洞。使用者發出一個r-系列命令後,遠端系統檢查名為/etc/hosts.equiv的檔案,以檢視使用者的主機是否列在這個檔案中。如果它沒有找到使用者的主機,就檢查遠端機上同名使用者的主目錄中名為.rhosts的檔案,看是否包括該使用者的主機。如果該使用者的主機包括在這兩個檔案中的任何一個之中,該使用者執行r-系列命令就不用提供口令。
   雖然使用者每次訪問遠端機時不用鍵入口令可能是非常方便的,但是它也可能會帶來嚴重的安全問題。我們建議使用者在建立/etc/hosts.equiv和.rhosts檔案之前,仔細考慮r-命令隱含的安全問題。

  rlogin命令
  功能:rlogin 是“remote login”(遠端登入)的縮寫。該命令與telnet命令很相似,允許使用者啟動遠端系統上的互動命令會話。
  
格式
: rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
  
引數

  -8 此選項始終允許8位輸入資料通道。該選項允許傳送格式化的ANSI字元和其他的特殊程式碼。如果不用這個選項,除非遠端的終止和啟動字元不是或,否則就去掉奇偶校驗位。
  -E 停止把任何字元當作轉義字元。當和-8選項一起使用時,它提供一個完全的透明連線。
  -K 關閉所有的Kerberos確認。只有與使用Kerberos 確認協議的主機連線時才使用這個選項。
  -L 允許rlogin會話在litout模式中執行。要了解更多資訊,請查閱tty聯機幫助。
  -d 開啟與遠端主機進行通訊的TCP sockets的socket除錯。要了解更多資訊,請查閱setsockopt的聯機幫助。
  -e 為rlogin會話設定轉義字元,預設的轉義字元是“~”,使用者可以指定一個文字字元或一個nnn形式的八進位制數。
  -k 請求rlogin獲得在指定區域內的遠端主機的Kerberos許可,而不是獲得由krb_realmofhost(3)確定的遠端主機區域內的遠端主機的Kerberos 許可。
  -x 為所有通過rlogin會話傳送的資料開啟DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。

  rsh命令
  功能:rsh是“remote shell”(遠端 shell)的縮寫。 該命令在指定的遠端主機上啟動一個shell並執行使用者在rsh命令列中指定的命令。如果使用者沒有給出要執行的命令,rsh就用rlogin命令使使用者登入到遠端機上。
  
格式
:rsh [-Kdnx] [-k realm] [-l username] host [command]
  command可以是從shell提示符下鍵人的任何Linux命令。
  
引數

  -K 關閉所有的Kerbero確認。該選項只在與使用Kerbero確認的主機連線時才使用。
  -d 開啟與遠端主機進行通訊的TCP sockets的socket除錯。要了解更多的資訊,請查閱setsockopt的聯機幫助。
  -k 請求rsh獲得在指定區域內的遠端主機的Kerberos許可,而不是獲得由krb_relmofhost(3)確定的遠端主機區域內的遠端主機的Kerberos許可。
  -l 預設情況下,遠端使用者名稱與本地使用者名稱相同。本選項允許指定遠端使用者名稱,如果指定了遠端使用者名稱,則使用Kerberos 確認,與在rlogin命令中一樣。
  -n 重定向來自特殊裝置/dev/null的輸入。
  -x 為傳送的所有資料開啟DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。     Linux把標準輸入放入rsh命令中,並把它拷貝到要遠端執行的命令的標準輸入中。它把遠端命令的標準輸出拷貝到rsh的標準輸出中。它還把遠端標準錯誤拷貝到本地標準錯誤檔案中。任何退出、中止和中斷訊號都被送到遠端命令中。當遠端命令終止了,rsh也就終止了。

  rcp命令
  功能:rcp代表“remote file copy”(遠端檔案拷貝)。該命令用於在計算機之間拷貝檔案。
rcp命令有兩種格式。第一種格式用於檔案到檔案的拷貝;第二種格式用於把檔案或目錄拷貝到另一個目錄中。
  
格式

  rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
directory 每個檔案或目錄引數既可以是遠端檔名也可以是本地檔名。遠端檔名具有如下形式:rname@rhost:path,其中rname是遠端使用者名稱,rhost是遠端計算機名,path是這個檔案的路徑。
  
引數

  -r 遞迴地把源目錄中的所有內容拷貝到目的目錄中。要使用這個選項,目的必須是一個目錄。
  -p 試圖保留原始檔的修改時間和模式,忽略umask。
  -k 請求rcp獲得在指定區域內的遠端主機的Kerberos 許可,而不是獲得由krb_relmofhost(3)確定的遠端主機區域內的遠端主機的Kerberos許可。
  -x 為傳送的所有資料開啟DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。 如果在檔名中指定的路徑不是完整的路徑名,那麼這個路徑被解釋為相對遠端機上同名使用者的主目錄。如果沒有給出遠端使用者名稱,就使用當前使用者名稱。如果遠端機上的路徑包含特殊shell字元,需要用反斜線()、雙引號(”)或單引號(’)括起來,使所有的shell元字元都能被遠端地解釋。需要說明的是,rcp不提示輸入口令,它通過rsh命令來執行拷貝


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-242088/,如需轉載,請註明出處,否則將追究法律責任。

相關文章