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

Unit3-Running Commands and Getting Help

執行指令

Linux 系統指令語法如下,欲一次執行多個指令可在指令與指令之間加上分號 (;) 即可。

 command options arguments
 指令    參數    敘述
 ls      -l      /root

上述中 參數、敘述 皆為非必需,也就是說沒有參數及敘述 (單純指令) 即可,而敘述的內容可以是檔案、資料夾、或其它必須指令。

下列為透過 date 指令查詢目前系統時間

 #date
 Mon Aug  3 09:53:58 CST 2009

下列為透過 cal 指令查詢指定年份及月份日曆,為何下列顯示月曆中少了 3 ~ 13 日? 詳細內容可參考 [1752 - Wikipedia, the free encyclopedia]

 #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

獲得幫助

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

以下說明為適用於 --helpman 所顯示的項目

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

command --help

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

whatis command

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

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

man command

 #man cal                                           //顯示 cal 指令 Man Pages 內容
 CAL(1)                    BSD General Commands Manual                   CAL(1)
 NAME
     cal - displays a calendar
 SYNOPSIS
     cal [-smjy13] [[month] year]
 DESCRIPTION
     Cal displays a simple calendar.  If arguments are not specified, the current month is displayed.  The
     options are as follows:
     -1      Display single month output.  (This is the default.)
 ...略...

有些指令因用途及使用功能性不同可利用加上數字選項來查看不同的 Man Pages,例如 man 1 passwdman 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
 acl_valid            (3)  - validate an ACL
 APR::Date            (3pm)  - Perl API for APR date manipulating functions
 asctime              (3p)  - convert date and time to a string
 asctime [ctime]      (3)  - transform date and time to broken-down time or ASCII
 ...略...

info command

 #info cal                                         //顯示 cal 指令 HandBook 內容
 File: libc.info,  Node: Allocating Cleared Space,  Next: Efficiency and Malloc,  Prev: Changing Block Size,  Up: Unconstrained Allocation
 3.2.2.5 Allocating Cleared Space
 ................................
 The function `calloc' allocates memory and clears it to zero.  It is
 declared in `stdlib.h'.
 -- Function: void * calloc (size_t COUNT, size_t ELTSIZE)
     This function allocates a block long enough to contain a vector of
     COUNT elements, each of size ELTSIZE.  Its contents are cleared to
     zero before `calloc' returns.
 ...略...

/usr/share/doc

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

 #ls /usr/share/doc/vim-common-7.0.109/
 Changelog.rpm  docs  README_lang.txt  README_src.txt  README.txt  README_unix.txt

Red Hat Document

Lab

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

Ans:

相信從 man 及 info 中可查尋到有關於如何透過指令 date 來改變系統時間的用法。

 #date --set='+2 minutes'                    //調快 2 分鐘
 #date --set='-2 minutes'                    //調慢 2 分鐘
 #date --date='2 days ago'                   //往前調 2 天
 #date --date='2 days'                       //往後調 2 天
 #date --date='3 months ago'`                //往前調 3 個月
 #date --date='3 months'`                    //往後調 3 個月
 #date -s '20:03:40 7/29/2009'
 #date -s '20:03:40 7/30/2009'
 #date -s '20:03:40 7/31/2009'
 #date --date=today                          //設定為今天
 #date --date=tomorrow                       //設定為明天
 #date --date=yesterday                      //設定為昨天

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

Ans:

此實作目的在於當進行備份或或其它需要用到日期來方便辨別時即可使用此方式來達成 (假定今天日期為 2009 年 7 月 30 日)

 #date '+%F'                                 //顯示為 2009-07-30
 #date '+%D'                                 //顯示為 07/30/09
 #date '+%Y%m%d'                             //顯示為 20090730

所以例如我們想將 ls 結果,輸出到一個名為 ls.日期.out 的檔案上,可輸入如下指令

 #ls > ls.`date '+%Y%m%d'`.out
 #ls
 ls.20090730.out

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

Ans:

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

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