1. 程式人生 > >1.2-Linux命令幫助的獲取詳解

1.2-Linux命令幫助的獲取詳解

命令 linux 幫助

外部命令:都有一個可執行程序,位於文件系統某目錄下:

which,whereis

shell程序搜尋可執行程序文件的路徑定義在PATH環境變量中:

# echo $PATH

註意:自左至右



內部命令:

#help COMMAND

外部命令:

(1)# COMMAND --help

# COMMAND -h

(2)使用手冊(manual)

# man COMMAND

(3)信息頁

# info COMMAND

(4)程序自身的幫助文檔

README

INSTALL

ChangeLog

(5)程序官方文檔

官方站點:Documentation

(6)發行版的官方文檔

(7)Google



內部命令幫助獲取方式:

# help COMMAND

hash命令:

shell搜尋到的外部命令的路徑結果會緩存至kv(key-value)存儲中

[[email protected] ~]# hash

hits command

1 /sbin/service

1 /bin/cat

2 /usr/bin/elinks

1 /bin/vi

hits:緩存命中

當命令在緩存當中被找到,此數值+1


[[email protected] ~]# ls #第一次使用ls命令

anaconda-ks.cfg install.log install.log.syslog

[[email protected] ~]# hash

hits command

1 /sbin/service

1 /bin/cat

2 /usr/bin/elinks

1 /bin/vi

1 /bin/ls

[[email protected] ~]# mv /bin/ls /usr/bin/ls #將ls命令移動到/usr/bin/ls

[[email protected] ~]# ls #再次輸入ls命令提示如下:

-bash: /bin/ls: 沒有那個文件或目錄

[[email protected] ~]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

:/root/bin

[[email protected] ~]# hash

hits command

1 /sbin/service

1 /bin/cat

2 /usr/bin/elinks

1 /bin/mv

1 /bin/vi

2 /bin/ls #在緩存當中找而不是在PATH當中找

[[email protected] ~]# type hash

hash is a shell builtin #hash是一個內部命令

[[email protected] ~]# help hash

hash: hash [-lr] [-p pathname] [-dt] [name ...]

Remember or display program locations.

Determine and remember the full pathname of each command NAME. If

no arguments are given, information about remembered commands is displayed.

Options:

-d forget the remembered location of each NAME

-l display in a format that may be reused as input

-p pathname use PATHNAME is the full pathname of NAME

-r forget all remembered locations

-t print the remembered location of each NAME, preceding

each location with the corresponding NAME if multiple

NAMEs are given

Arguments:

NAME Each NAME is searched for in $PATH and added to the list

of remembered commands.

Exit Status:

Returns success unless NAME is not found or an invalid option is given.

[[email protected] ~]# hash -r #清除緩存當中所有記錄

[[email protected] ~]# ls

anaconda-ks.cfg install.log install.log.syslog

[[email protected] ~]# hash

hits command

1 /usr/bin/ls



history命令:

作用是什麽?相關的環境變量是什麽?有用的選項?

管理命令歷史:

登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history

登錄進shell後,新執行的命令只會記錄在緩存中。這些命令會在用戶退出時“追加”至命令歷史文件中

history:

-a:追加本次會話新執行的命令歷史列表至歷史文件中

-d:刪除歷史中指定的命令

-c:清空命令歷史

快捷操作:

!n:調用歷史中第n條命令

!string:調用歷史中最近一個以string開頭的命令

!!:調用上一條命令



外部命令幫助獲取方式:

(1)COMMAND --help

[[email protected] bin]# type grep

grep is /bin/grep

[[email protected] bin]# grep --help

用法: grep [選項]... PATTERN [FILE]...

在每個 FILE 或是標準輸入中查找 PATTERN。

默認的 PATTERN 是一個基本正則表達式(縮寫為 BRE)。

例如: grep -i ‘hello world‘ menu.h main.c

正則表達式選擇與解釋:

-E, --extended-regexp PATTERN 是一個可擴展的正則表達式(縮寫為 ERE)

-F, --fixed-strings PATTERN 是一組由斷行符分隔的定長字符串。

-G, --basic-regexp PATTERN 是一個基本正則表達式(縮寫為 BRE)

-P, --perl-regexp PATTERN 是一個 Perl 正則表達式

-e, --regexp=PATTERN 用 PATTERN 來進行匹配操作

(2)man COMMAND

手冊頁:/usr/share/man

man1...man8

man1:用戶命令

man2:系統調用

man3:庫調用

man4:設備文件及特殊文件

man5:配置文件格式

man6:遊戲相關

man7:雜項

man8:管理類的命令


註意:有些關鍵字不止在一個章節中存在幫助手冊,要查看指定章節中的手冊:man n COMMAND


man命令的配置文件:/etc/man.config

MANPATH:/PATH/TO/SOMEWHERE:指明新的手冊文件搜索位置

# man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手冊頁並顯示


幫助手冊中的段落說明:

NAME:程序的名字及簡要說明

SYSNOPSIS:命令使用簡要幫助

DESCRIPTION:功能的詳細描述

OPTIONS:選項

EXAMPLES:使用示例

AUTHOR:作者

REPORTING BUGS:

SEE ALSO:


SYSNOPSIS:

[]:可選內容

<>:可選內容

a|b:二選一

...:同一內容可以出現多次


man命令的操作方法:(調用less命令)

Space,Ctrl+v,Ctrl+f,Ctrl+F:向文件尾部翻屏

b,Ctrl+B:向文件首部翻屏

d,Ctrl+D:向文件尾部翻半屏

u,Ctrl+U:向文件首部翻半屏

RETURN or ^N or e or ^E or j or ^J:向文件尾部翻1行

y or ^Y or ^P or k or ^K:向文件首部翻1行

q:退出

g:回到文件首部

G:翻至文件尾部


文本搜索:

/KEYWORD:

以KEYWORD指定的字符串為關鍵字,從當前位置向文件尾部搜索:不區分字符大小寫

n:下一個

N:上一個

?KEYWORD:

與/KEYWORD用法相反


練習:date命令

顯示今天為周幾?

設定當前系統時間?

顯示今天的日期,形如:08/15/15?

顯示當前的時間,形如:16:01:21?


(3)info

info COMMAND


(4)程序自身的幫助文檔

/usr/share/doc/COMMAND-VERSION

(5)程序官方文檔

官方網站

(6)發行版的官方文檔

http://www.redhat.com/docs

(7)Google

openstack filetype:pdf #指定搜索的openstack文檔為PDF格式

openstack site:openstack.com #指定在openstack.com站點進行搜索

(8)slideshare

https://www.slideshare.net/


1.2-Linux命令幫助的獲取詳解