命令別名與歷史命令 alias,history

2021-07-03 12:44:03 字數 3272 閱讀 6148

命令的別名 alias

命令別名是乙個很有趣的東西,特別是慣用指令特別長的時候!還有, 增設預設的選項在一些慣用的指令上面,可以預防一些不小心誤殺檔案的情況發生的時候! 舉個例子來說,如果你要查詢隱藏檔,並且需要長的列出與一頁一頁翻看,那麼需要下達『 ls -al | more 』這個指令,我是覺得很煩啦! 要輸入好幾個單字!那可不可以使用 lm 來簡化呢?當然可以,看下面下達:

linux-peej:~ # alias lm='ls -al | more'

這樣立刻多出了乙個可以執行的指令!這個指令名稱為 lm ,且其實它是執行 ls -al | more !很方便。不過, 要注意的是:『alias 的定義規則與變數定義規則幾乎相同』, 所以你只要在 alias 後面加上你的 , 以後你只要輸入 lm 就相當於輸入了 ls -al|more 這一串指令! 另外,命令別名的設定還可以取代既有的指令!舉例來說,我們知道 root 可以移除 (rm) 任何資料!所以當以 root 的身份在進行工作時,需要特別小心, 但是總有失手的時候,那麼 rm 提供了乙個選項來讓我們確認是否要移除該檔案,那就是 -i 這個選項!所以,可以這樣做:

linux-peej:~ # alias rm='rm -i'

那麼以後使用 rm 的時候,就不用太擔心會有錯誤刪除的情況了!這也是命令別名的優點! 如果我要知道目前有哪些的命令別名,可以直接輸入 alias !

linux-peej:~ # alias

alias +='pushd .'

alias -='popd'

alias ..='cd ..'

alias ...='cd ../..'

alias beep='echo -en "\007"'

alias cd..='cd ..'

alias dir='ls -l'

alias l='ls -alf'

alias la='ls -la'

alias ll='ls -l'

alias ls='ls $ls_options'

alias ls-l='ls -l'

alias md='mkdir -p'

alias o='less'

alias rd='rmdir'

alias rehash='hash -r'

alias unmount='echo "error: try the command: umount" 1>&2; false'

alias you='if test "$euid" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'

又比如程式編輯器裡面提到 vi 與 vim 是不太一樣的,vim 可以多作一些額外的語法檢驗與顏色顯示,預設的 root 是單純使用 vi 而已。 如果想要使用 vi 就直接以 vim 來開啟檔案的話,使用『 alias vi='vim' 』這個設定即可。 

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

linux-peej:~ # unalias lm

歷史命令: history, histsize

bash 有提供指令歷史的服務!如果要查詢我們曾經下達過的指令,就使用 history !當然,如果覺得 histsory 要輸入的字元太多太麻煩,可以使用命令別名來設定! 如: linux-peej:~ # alias 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 

# 前面省略

993  echo $

994  username=$ 

995  echo $

996  history

# 列出的資訊當中,共分兩欄,第一欄為該指令在這個 shell 當中的**,另乙個則是指令本身的內容!至於會秀出幾筆指令記錄,則與 histsize 有關! 

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

linux-peej:~ # history 3

995  echo $

996  history

997  history 3

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

[root@www ~]# history -w 

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

[root@www ~]# echo $histsize 

1000

[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 個)

命令別名與歷史命令

列出目前已有的命令別名 用法 1.alias dmtsai study alias parameter p 列印已經設定的命令別名 範例1 將來執行 rm i 命令就可以直接輸入 rm 進行使用 dmtsai study alias rm rm i 範例2 將清屏clear命名為cls dmtsai...

Liunx 命令別名與歷史命令

1 命令別名設定 alias unalias 僅在本次終端下可以使用,關閉後需要重新設定 alias的定義規則與變數定義規則幾乎相同 別名 指令 引數 選項 檢視當前系統使用別名情況 alias 2 歷史命令 命令 history raw histfiles 選項與引數 n 數字,意思是 要列出最近...

第21節 命令別名與歷史命令

檢視系統別名有哪些 root www alias 設定命令別名 root www alias lm ls al more 取消命令別名 root www unalias lm root www history n root www history c root www history raw his...