站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

邁向 RHCE 之路 (Day05) - 如何查看指令用法

前言

Linux 系統指令語法如下,欲一次執行多個指令可在指令與指令之間加上分號 (;) 即可,下述中 參數、敘述 皆為非必需,也就是說沒有參數及敘述 (單純指令) 即可,而敘述的內容可以是檔案、資料夾、或其它必須指令。

 command options arguments
 指令    參數    敘述
 ping    -c2     168.95.1.1
 #date
  Tue Oct 11 08:53:02 CST 2011
 #cal 9 1752
     September 1752
  Su Mo Tu We Th Fr Sa
         1  2 14 15 16           //少了 3 ~ 13 日?
  17 18 19 20 21 22 23
  24 25 26 27 28 29 30

您可透過下列方式來獲得可能的幫助:

以下說明為適用於 --help 及 man 所顯示的項目

command --help

以下範例為嘗試利用上述方式來獲取指令 cal 相關資訊

 #cal --help
  cal: invalid option -- '-'                   //此指令未支援 --help 參數
  usage: cal [-13smjyV] [[[day] month] year]

whatis command

可透過指令 make whatis 來更新 whatis 資料庫 (man 也共用此資料庫)

 #whatis cal
  cal                  (1)  - displays a calendar    //一句簡短話說明此指令功能
  cal                  (1p)  - print a calendar

man command

以下範例為嘗試利用上述方式來獲取指令 cal 相關資訊

 #man cal                   //顯示 cal 指令 Man Pages 內容
  CAL(1)             BSD General Commands Manual            CAL(1)
  NAME
     cal - displays a calendar
  ...略...

有些指令因用途及使用功能性不同可利用加上數字選項來查看不同的 Man Pages,例如 man 1 passwd 及 man 5 passwd,而其數字所查看的 Manual Sections 如下:

  1. User commands (常用)
  2. System calls
  3. Library calls (適用於開發時)
  4. Special files
  5. File formats (常用)
  6. Games
  7. Miscellaneous
  8. Administrative commands (常用)

可使用 -k 參數來尋找 Manual Pages 關鍵字 (共用 whatis 資料庫)

 #man -k date
  /etc/updatedb.conf [updatedb] (5)  - a configuration file for updatedb(8)
  ...略...

info command

n:往下翻頁、p:往上翻頁、Node:目前章節名稱

 #info date                                         //顯示 date 指令 HandBook 內容
  File: coreutils.info,  Node: date invocation,  Next: arch invocation,  Up: System context
  21.1 `date': Print or set system date and time
  ...略...

/usr/share/doc

此路徑下為延伸文件,若安裝套件有相關文件時將存放於此資料夾下,例如查看此資料夾下 ntp 內容

 #ls /usr/share/doc/ntp-4.2.4p8/
  ChangeLog  COPYRIGHT  NEWS

Lab1.利用現有學到的指令及上述幫助方式,使用 date 指令改變系統時間?

將目前系統時間 調快 / 慢 2分鐘 其指令如下:測試之後,若時間都亂了,可以與網際網路上的 NTP 時間伺服器校時一下 (ntpdate -s watch.stdtime.gov.tw)

 #date
  Tue Oct 11 09:00:40 CST 2011
 #date --set='+2 minutes'                    //調快 2 分鐘
  Tue Oct 11 09:02:42 CST 2011
 #date --set='-2 minutes'                    //調慢 2 分鐘
  Tue Oct 11 09:00:49 CST 2011

將目前系統時間 調整至指定時間 (特殊字) 其指令如下

 #date --set=today                         //設定為今天
  Tue Oct 11 09:08:34 CST 2011
 #date --set=tomorrow                       //設定為明天
  Wed Oct 12 09:08:43 CST 2011
 #date --set=yesterday                      //設定為昨天
  Mon Oct 10 09:09:08 CST 2011

Lab2.利用現有學到的指令及上述幫助方式,配合 date 指令顯示指定日期於輸出的檔案名稱上?

此實作目的在於當進行備份或或其它需要用到日期來方便辨別時即可使用此方式來達成 (今天日期為 2011 年 10 月 11 日),所以例如我們想將 ls 結果,輸出到一個名為 ls.日期.out 的檔案上:

 #date '+%F'                                 //顯示格式為 年-月-日
  2011-10-11
 #date '+%D'                                 //顯示格式為 月/日/年
  10/11/11
 #date '+%Y%m%d'                             //顯示格式為 年月日
  20111011
 #ls > ls.`date '+%Y%m%d'`.out
 #ls
  ls.20111011.out

Lab3. 利用現有學到的指令及上述幫助方式,使用 rm 指令刪除特殊名稱檔案?

下列操作中您會發現無法使用 rm 指令來刪除特殊名稱檔案 (-11),參考過 man 及 info 後可發現刪除此類檔案方式如下。

 #touch -- -11                                //建立 -11 檔案
 #rm -11                                      //直接使用 rm 指令發現無法刪除
  rm: invalid option -- '1'
  Try `rm ./-11' to remove the file `-11'.
  Try `rm --help' for more information.
 #rm -- -11                                   //刪除方式一
 #rm ./-11                                    //刪除方式二
Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com