第三章 使用協助,使用協助

來源:互聯網
上載者:User

第三章 使用協助,使用協助
內部命令和外部命令

內部命令:系統整合的命令,整合到bash程式中的命令,可以用enable和help查看內部命令,直接和系統一樣運行在記憶體中,執行速度快。內部命令中的:相當於TRUE,即什麼都不幹。

enable cmd啟用內部命令

                    enable –n cmd 禁用內部命令

                    enable –n 查看所有禁用的內部命令

                    enable –n enable 自殺,重新登出即可恢複

外部命令:在檔案系統路徑下有對應的可執行程式檔案

查看路徑:which  -a |--skip-alias; whereis

區別指定的命令是內部或外部命令

type COMMAND

如果執行過一個外部命令,它會把這個命令的路徑記錄到記憶體中,這個就是hash緩衝表

hash常見用法:

                            hash       顯示hash緩衝

                            hash -l    顯示hash緩衝,可作為輸入使用,更詳細。

                            hash –p  path name 將命令全路徑path起別名為name

                            hash –p /usr/bin/free f

     hash –t name 列印緩衝中name的路徑

                     hash –t f

                            hash –d name 清除name緩衝

                            hash –r 清除所有緩衝

       which –a free 顯示所有路徑下的free

命令執行優先順序:別名>內部命令>外部命令 

問:為什麼有的命令既有內部又有外部?

       有可能有的shell中沒有這個內部命令,外部有還可以執行。

[root@centos7 ~]#aliasalias cp='cp -i'......

顯示當前shell進程所有可用的命令別名

[root@centos7 ~]#alias date='date +%F'

定義別名date,其相當於執行命令date +%F

在命令列中定義的別名,僅對當前shell進程有效

如果想永久有效,要定義在設定檔中

       僅對目前使用者:~/.bashrc

       對所有使用者有效:/etc/bashrc  添加到最後即可

編輯配置給出的新配置不會立即生效,需要bash進程重新讀取設定檔

source  /path/to/config_file

.  /path/to/config_file

撤銷別名:unalias

unalias  [-a]  name [name …]

-a 取消所有別名

如果別名同原命令同名,要執行原命令,可使用

\COMMAND

‘COMMAND’

/PATH/COMMAND

退出某個執行的命令:

Ctrl+c:強制退出,有可能資料丟失。

Ctrl+d:正常退出。

tab鍵
[root@centos7 ~]#rpm -qa bash*bash-completion-2.1-6.el7.noarch

需要安裝了上面這個包才能啟用Tab功能

命令補全

內部命令:直接補全

外部命令:bash根據PATH環境變數定義的路徑,自左而右在每個路徑搜尋以給定命令名命名的檔案,第一次找到的命令即為要執行的命令

路徑補全

把使用者給出的字串當做路徑開頭,並在其指定上級目錄下搜尋以指定的字串開頭的檔案名稱

如果唯一:則直接補全

否則:再次Tab給出列表

雙擊Tab

command 2Tab 所有子命令或檔案補全

string2Tab   以string開頭命令

[root@centos7 ~]#/app/        etc/        lost+found/ proc/       srv/        usr/bin/        home/       media/      root/       sys/        var/boot/       lib/        mnt/        run/        testdir/   dev/        lib64/      opt/        sbin/       tmp/

/2Tab   顯示所有根目錄下一級目錄,包括隱藏目錄

[root@centos7 ~]#./.cache/    .dbus/     Documents/ .local/    Music/     Public/    Videos/.config/   Desktop/   Downloads/ .mozilla/  Pictures/  Templates/

./2Tab   目前的目錄下子目錄,包括隱藏目錄

[root@centos7 ~]#*Desktop    Downloads  Pictures   Templates Documents  Music      Public     Videos

*2Tab   目前的目錄下子目錄,不包括隱藏目錄

[root@centos7 ~]#~~dbus/                ~polkitd/             ~sunan/~ftp                  ~postfix/             ~sync/~gnome-initial-setup  ~root/                ~usbmuxd/......

~2Tab   所有使用者列表

[root@centos7 ~]#$$_                                   $LINENO$BASH                                $LOGNAME......

$2Tab   所有變數

[root@centos6 ~]#@@::1                      @localhost4.localdomain4  @localhost.localdomain@localhost                @localhost6              @localhost4               @localhost6.localdomain6 

@2Tab  /etc/hosts記錄    (centos7不支援)

[root@centos6 /]#=app/        dev/        lost+found/ opt/        srv/       .autofsck   etc/        media/      proc/       sys/       bin/        home/       misc/       root/       tmp/       boot/       lib/        mnt/        sbin/       usr/       .dbus/      lib64/      net/        selinux/    var/ 

=2Tab   相當於ls –A     (centos7不支援)

命令列曆史 
  • 儲存你輸入的命令曆史。可以用它來重複執行命令
  • 登入shell時,會讀取命令曆史檔案中記錄下的命令~/.bash_history
  • 登入進shell後新執行的命令只會記錄在緩衝中;這些命令會使用者退出時“追加”至命令曆史檔案中

重複前一個命令,有4種方法

!:0 執行前一條命令(去除參數)

Ctrl + n 顯示當前曆史中的下一條命令,但不執行

Ctrl + j 執行當前命令

!n 執行history命令輸出對應序號n的命令

!-n 執行history曆史中倒數第n個命令

!string 重複前一個以“string”開頭的命令

!?string 重複前一個包含string的命令

!string:p僅列印命令曆史,而不執行

!$:p 列印輸出!$(上一條命令的最後一個參數)的內容

!*:p列印輸出!*(上一條命令的所有參數)的內容

^string刪除上一條命令中的第一個string

^string1^string2將上一條命令中的第一個string1替換為string2

!:gs/string1/string2將上一條命令中所有的string1都替換為string2

使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令

ctrl-r來在命令曆史中搜尋命令

(reverse-i-search)

Ctrl+g:從曆史搜尋模式退出

要重新調用前一個命令中最後一個參數:

!$ 表示

Esc, .(點擊Esc鍵後鬆開,然後點擊.鍵)

Alt+ .(按住Alt鍵的同時點擊.鍵)

調用曆史參數:

command !^ : 利用上一個命令的第一個參數做cmd的參數

command !$ : 利用上一個命令的最後一個參數做cmd的參數

command !* : 利用上一個命令的全部參數做cmd的參數

command !:n : 利用上一個命令的第n個參數做cmd的參數

command !n:^ 調用第n條命令的第一個參數

command !n:$ 調用第n條命令的最後一個參數

command !n:m 調用第n條命令的第m個參數

command !n:* 調用第n條命令的所有參數

command !string:^ 從命令曆史中搜尋以string 開頭的命令,並擷取它的第一個參數

command !string:$ 從命令曆史中搜尋以string 開頭的命令,並擷取它的最後一個參數

command !string:n 從命令曆史中搜尋以string 開頭的命令,並擷取它的第n個參數

command !string:* 從命令曆史中搜尋以string 開頭的命令,並擷取它的所有參數

命令history:

history [-c] [-d offset] [n]

history -anrw[filename]

history -psarg[arg...]

-c: 清空命令曆史

-d offset: 刪除曆史中指定的第offset個命令

n: 顯示最近的n條曆史

-a: 追加本次會話新執行的命令曆史列表至曆史檔案

-r: 讀曆史檔案附加到曆史列表

-w: 儲存曆史列表到指定的曆史檔案

-n: 讀曆史檔案中未讀過的行到曆史列表

-p: 展開曆史參數成多行,但不存在曆史列表中

-s: 展開曆史參數成一行,附加在曆史列表後

[root@centos6 ~]#history -p `ls` `pwd`  ------------命令中調用命令使用反向單引號,就是鍵盤tab鍵上方的鍵DesktopDocuments

...... ------------ls執行結果/root ------------pwd執行結果

ls和pwd全執行了,但曆史中沒有記錄,-p選項作用。

[root@centos6 ~]#history -s reboot

曆史命令顯示的是reboot,但系統沒有重啟,可以偽造曆史

命令曆史相關環境變數:

HISTSIZE:命令記錄的條數,命令的記錄的記憶體中曆史的長度,修改/etc/profile檔案即可。

HISTFILE:指定曆史檔案,預設為~/.bash_history,磁碟上曆史檔案

HISTFILESIZE:命令曆史檔案記錄曆史的條數

記憶體中記錄的曆史命令和磁碟檔案記錄的曆史命令數可以不一樣,但一般相同。

HISTTIMEFORMAT=“%F %T “ 顯示時間

HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2開頭的曆史

控制命令曆史的記錄方式:

環境變數:HISTCONTROL

=ignoredups    預設,忽略重複的命令,連續且相同為“重複”

=ignorespace   忽略所有以空白開頭的命令

=ignoreboth    相當於ignoredups, ignorespace的組合

=erasedups     重複資料刪除命令

export 變數名="

存放在/etc/profile 或~/.bash_profile

bash快速鍵:

Ctrl + l   清屏,相當於clear命令

Ctrl + o   執行當前命令,並重新顯示本命令

Ctrl + s   阻止螢幕輸出,鎖定

Ctrl + q   允許螢幕輸出

Ctrl + c   終止命令

Ctrl + z   掛起命令

Ctrl + a   游標移到命令列首,相當於Home

Ctrl + e   游標移到命令列尾,相當於End

Ctrl + f   游標向右移動一個字元

Ctrl + b   游標向左移動一個字元

Alt + f    游標向右移動一個單詞尾

Alt + b    游標向左移動一個單詞首

Ctrl + xx  游標在命令列首和游標之間移動

Ctrl + u   從游標處刪除至命令列首

Ctrl + k   從游標處刪除至命令列尾

Alt + r    刪除當前整行

Ctrl + w  從游標處向左刪除至單詞首

Alt + d   從游標處向右刪除至單詞尾

Ctrl + d   刪除游標處的一個字元

Ctrl + h   刪除游標前的一個字元

Ctrl + y   將刪除的字元粘貼至游標後

Alt + c   從游標處開始向右更改為首字母大寫的單詞

Alt + u   從游標處開始,將右邊一個單詞更改為大寫

Alt + l   從游標處開始,將右邊一個單詞更改為小寫

Ctrl + t   交換游標處和之前的字元位置

Alt + t   交換游標處和之前的單詞位置

Alt + N  提示輸入指定字元後,重複顯示該字元N次

注意:Alt  組合快速鍵經常和其它軟體衝突

       在SecureCRT有時候Alt鍵會有衝突:

       解決辦法:右擊會話選擇會話選項,選擇Emacs,選中使用ALT作為元鍵,然後選中第三項。

使用協助:

whatis command

依賴於後台資料庫,剛剛裝上的系統,執行makewhatis(centos6)或mandb(centos7)

command –-help

直接敲help或者enable顯示所有的內部命令

man and info

本地協助文檔/usr/share/doc/

官網線上文檔

其他網站和搜尋

命令協助:

內部命令:help COMMAND

man bash

               注意:不要用man內部命令,man內部命令其實是開啟的man bash

外部命令:

(1)COMMAND –-help(有些命令不支援,使用較少)

    COMMAND  -h

樣本:

date --help

Usage:date[OPTION]...[+FORMAT]or: date[-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]

[]表示可選項

CAPS或<>表示變化的資料

...表示一個列表

x |y| z的意思是“x或y或z“,即這三個意思一樣,選一個即可

-abc的意思是-a -b –c

{ } 表示分組

(2)使用手冊(manual)

    man  COMMAND(使用較多,比較通用)

    提供命令協助的檔案

    手冊頁存放在/usr/share/man

    幾乎每個命令都有man的”章節”

    man頁面分組為不同的“章節”

    統稱為Linux手冊

       man命令的設定檔:/etc/man.config(centos6)|man_db.conf(centos7)

       MANPATH /PATH/TO/SOMEWHERE:指明man檔案搜尋位置

       自己手工安裝第三方軟體,需要按上面的格式,放置協助文檔路徑,不然man這個命令搜不到文檔

    man –M /PATH/TO/SOMEWHERE  COMMAND:到指定位置下搜尋

    COMMAND命令的手冊並顯示

    中文man需要安裝包man-page-zh-CN

   man 章節

    1:使用者命令

    2:系統調用

    3:C庫調用

    4:裝置檔案及特殊檔案

    5:設定檔格式

    6:遊戲

    7:雜項

    8:管理類的命令

    9:Linux核心API

[root@centos6 /]#whatis datedate                 (1)  - print or set the system date and timedate                 (1p)  - write the date and time[root@centos6 /]#whatis passwdpasswd               (1)  - update user's authentication tokenspasswd               (5)  - password filepasswd [sslpasswd]   (1ssl)  - compute password hashes

通過whatis命令可以查看命令有那些章節,帶p的適合開發相關的。

[root@centos6 /]#man 5 passwdFormatting page, please wait...PASSWD(5)                  Linux Programmer's Manual                 PASSWD(5) NAME       passwd - password file

需要添加第幾章節,才是查看的是第幾章節的命令,否則按1來看

[root@centos6 /]#whereis lsls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

前面是命令的路徑,後面是文檔的man協助路徑

man協助段落說明

協助手冊中的段落說明:

        NAME 名稱及簡要說明

               SYNOPSIS 用法格式說明

               []   可選內容

              <>   必選內容

              a|b   二選一

              { }   分組

              …   同一內容出現多次

              DESCRIPTION 詳細說明

              OPTIONS  選項說明

              EXAMPLES 樣本

              FILES  相關檔案

              AUTHOR 作者

             COPYRIGHT 版本資訊

             REPORTING BUGS bug資訊

             SEE ALSO  其它協助參考

man協助:

查看man手冊頁

               man [章節]  keyword

               列出所有協助

[root@centos6 /]#man -a passwdCannot open the message catalog "man" for locale "zh.CN"(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")Formatting page, please wait...PASSWD(1)                       User utilities                       PASSWD(1)

man –a keyword列出所有章節的passwd協助,按q切換到下一個

搜尋man手冊

[root@centos6 /]#man -k hostnamednsdomainname [hostname] (1)  - show the system's DNS domain namedomainname [hostname] (1)  - show or set the system's NIS/YP domain namegethostname          (2)  - get/set hostnamegethostname          (3p)  - get name of current hosthostname             (1)  - show or set the system's host namehostname             (7)  - hostname resolution descriptionhosts                (5)  - The static table lookup for hostnameslogresolve           (1)  - Resolve IP-addresses to hostnames in Apache log filesnisdomainname [hostname] (1)  - show or set system's NIS/YP domain name

man –k keyword 列出所有匹配的頁面,使用whatis資料庫

[root@centos6 /]#man -f passwdpasswd               (1)  - update user's authentication tokenspasswd               (5)  - password filepasswd [sslpasswd]   (1ssl)  - compute password hashes[root@centos6 /]#whatis passwdpasswd               (1)  - update user's authentication tokenspasswd               (5)  - password filepasswd [sslpasswd]   (1ssl)  - compute password hashes

man –f keyword,相當於whatis

[root@centos6 /]#man -w 5 passwd/var/cache/man/cat5/passwd.5.lzma (<-- /usr/share/man/man5/passwd.5.gz)

列印man協助檔案的路徑,man –w  [章節]  keyword

       man命令的操作方法:使用less命令實現

     space,^v,^f,^F:向檔案尾翻屏

     b, ^b: 向檔案首部翻屏

     d, ^d: 向檔案尾部翻半屏

     u, ^u: 向檔案首部翻半屏

     RETURN, ^N, e, ^E or j or ^J: 向檔案尾部翻一行y or ^Y or ^P or k or ^K:向檔案首部翻一行

     q: 退出

      #:跳轉至第#行

     1G: 回到檔案首部

      G:翻至檔案尾部

man搜尋:

                /KEYWORD:

以KEYWORD指定的字串為關鍵字,從當前位置向檔案尾部搜尋;不區分字元大小寫;

n: 下一個

N:上一個

               ?KEYWORD:

以KEYWORD指定的字串為關鍵字,從當前位置向檔案首部搜尋;不區分字元大小寫;

n: 跟搜尋命令同方向,下一個

N:跟搜尋命令反方向,上一個

(3)資訊頁

info COMMAND

方向鍵,PgUp,PgDn 導航

Tab鍵移動到下一個連結

d 顯示主題目錄

Home 顯示主題首部

Enter進入選定連結

n/p/u/l進入下/前/上一層/最後一個連結

s文字文本搜尋

q退出info

(4)程式自身的協助文檔

README

INSTALL

ChangeLog

(5)程式官方文檔

[root@centos7 /]#sosreportsosreport (version 3.4)This command will collect diagnostic and configuration information fromthis CentOS Linux system and installed applications.

向redhat官方發送系統分析包

    官方網站:Documentation

(6)發行版的官方文檔

(7)Google

        

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.