Linux學習之十二 命令別名與歷史命令

2022-07-03 13:54:09 字數 2867 閱讀 8309

命令別名配置: alias, unalias

那麼需要下達『 ls -al | more 』這個命令,我是覺得很煩啦! 要輸入好幾個單字!那可不可以使用 lm 來簡化呢?當然可以,你可以在命令列下面下達:

[root@www ~]# alias lm='ls -al | more'

另外,命令別名的配置還可以取代既有的命令喔!舉例來說,我們知道 root 可以移除 (rm) 任何資料!所以當你以 root 的身份在進行工作時,需要特別小心, 但是總有失手的時候,那麼 rm 提供了乙個選項來讓我們確認是否要移除該檔案,那就是 -i 這個選項!所以,你可以這樣做:

[root@www ~]# alias rm='rm -i'

那麼如何知道目前有哪些的命令別名呢?就使用 alias 呀!

[root@www ~]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias lm='ls -l | more'

alias ls='ls --color=tty'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --show-dot --show-tilde'

於如果要取消命令別名的話,那麼就使用 unalias 吧!例如要將剛剛的 lm 命令別名拿掉,就使用:

[root@www ~]# unalias lm

歷史命令:history

前面我們提過 bash 有提供命令歷史的服務!那麼如何查詢我們曾經下達過的命令呢?就使用 history 囉!當然,如果覺得 histsory 要輸入的字元太多太麻煩,可以使用命令別名來配置呢! 不要跟我說還不會配置呦! ^_^

[root@www ~]# alias h='history'

如此則輸入 h 等於輸入 history 囉!好了,我們來談一談 history 的用法吧!

[root@www ~]# history [n]

[root@www ~]# history [-c]

[root@www ~]# history [-raw] histfiles

選項與引數:

n   :數字,意思是『要列出最近的 n 筆命令列表』的意思!

-c  :將目前的 shell 中的所有 history 內容全部消除

-a  :將目前新增的 history 命令新增入 histfiles 中,若沒有加 histfiles ,

則預設寫入 ~/.bash_history

-r  :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;

-w  :將目前的 history 記憶內容寫入 histfiles 中!

範例一:列出目前記憶體內的所有 history 記憶

[root@www ~]# history

# 前面省略

1017  man bash

1018  ll

1019  history 

1020  history

# 列出的資訊當中,共分兩欄,第一欄為該命令在這個 shell 當中的**,

# 另乙個則是命令本身的內容喔!至於會秀出幾筆命令記錄,則與 histsize 有關!

範例二:列出目前最近的 3 筆資料

[root@www ~]# history 3

1019  history 

1020  history

1021  history 3

範例三:立刻將目前的資料寫入 histfile 當中

[root@www ~]# history -w

# 在預設的情況下,會將歷史紀錄寫入 ~/.bash_history 當中!

[root@www ~]# echo $histsize

在正常的情況下,歷史命令的讀取與記錄是這樣的:

· 當我們以 bash 登陸 linux 主機之後,系統會主動的由家目錄的 ~/.bash_history 讀取以前曾經下過的命令,那麼 ~/.bash_history 會記錄幾筆資料呢?這就與你 bash 的 histfilesize 這個變數配置值有關了!

· 假設我這次登陸主機後,共下達過 100 次命令,『等我登出時, 系統就會將 101~1100 這總共 1000 筆歷史命令

公升級到 ~/.bash_history 當中。』 也就是說,歷史命令在我登出時,會將最近的 histfilesize 筆記錄到我的紀錄檔案當中啦!

· 當然,也可以用 history -w 強制立刻寫入的!那為何用『公升級』兩個字呢? 因為 ~/.bash_history 記錄的筆數永遠都是 histfilesize 那麼多,舊的資訊會被主動的拿掉! 僅保留最新的!

[root@www ~]# !number

[root@www ~]# !command

[root@www ~]# !!

選項與引數:

number  :執行第幾筆命令的意思;

command :由最近的命令向前搜尋『命令串開頭為 command』的那個命令,並執行;

!!      :就是執行上乙個命令(相當於按↑按鍵後,按 enter)

[root@www ~]# history

66  man rm

67  alias

68  man history

69  history 

[root@www ~]# !66  <==執行第 66 筆命令

[root@www ~]# !!   <==執行上乙個命令,本例中亦即 !66 

[root@www ~]# !al  <==執行最近以 al 為開頭的命令(上頭列出的第 67 個)

Linux學習之十二 命令別名與歷史命令

命令別名配置 alias,unalias 那麼需要下達 ls al more 這個命令,我是覺得很煩啦!要輸入好幾個單字!那可不可以使用 lm 來簡化呢?當然可以,你可以在命令列下面下達 root www alias lm ls al more 另外,命令別名的配置還可以取代既有的命令喔!舉例來說,...

Linux命令之命令別名

對於經常執行的較長的命令,可以將其定義成較短的別名,以方便執行 04 33 43 root c8 alias alias cp cp i alias egrep egrep color auto alias fgrep fgrep color auto alias grep grep color a...

Linux 之alias 命令別名

顯示當前shell程序所有可用的命令別名 alias 定義命令別名,其命令為 alias name value 在命令列中定義的別名,僅對當前shell程序有效 想要永久有效,需要在配置檔案中定義 對當前使用者有效 修改檔案 bashrc 對所有使用者有效 修改檔案 etc bashrc 修改配置檔...