第十一章 認識與學習 BASH 命令別名與歷史命令

2021-08-27 19:23:51 字數 2721 閱讀 6242

命令別名與歷史命令:

在 linux 裡面,使用 clear 來清除螢幕。

命令別名配置: alias, unalias

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

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

[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'

vi 與 vim 是不太一樣的,vim 可以多作一些額外的語法檢驗與顏色顯示,預設的 root 是單純使用 vi 。

[root@www ~]# unalias lm

例題:

dos 年代,列出目錄與檔案就是 dir ,而清除螢幕就是 cls ,那麼如果我想要在 linux 裡面也使用相同的命令呢?

答:

alias cls='clear'

alias dir='ls -l'

歷史命令:history

[root@www ~]# alias h='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 當中的**,

# 另乙個則是命令本身的內容!

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

[root@www ~]# history 3

1019 history

1020 history

1021 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』的那個命令,並執行;

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

同時開好幾個 bash 介面,這些 bash 的身份都是 root 。 因為這些 bash 在同時以 root 的身份登陸, 因此所有的 bash 都有自己的 1000 筆記錄在記憶體中。因為等到登出時才會公升級記錄檔案, 最後登出的那個 bash 才會是最後寫入的資料。如此一來其他 bash 的命令操作就不會被記錄下來了 (其實有被記錄,只是被後來的最後乙個 bash 所覆蓋公升級了) 。

由於多重登陸有這樣的問題,所以很多朋友都習慣單一 bash 登陸,再用工作控制 來切換不同工作! 這樣才能夠將所有曾經下達過的命令記錄下來,也才方便未來系統管理員進行命令的 debug!

歷史命令還有乙個問題,那就是無法記錄命令下達的時間。由於這 1000 筆歷史命令是依序記錄的, 但是並沒有記錄時間,所以在查詢方面會有一些不方便。如果讀者們有興趣,其實可以透過 ~/.bash_logout 來進行 history 的記錄,並加上 date 來新增時間引數,也是乙個可以應用的方向!

第十一章 認識與學習BASH

系統支援的shell在 etc shells裡面 bash shell 的功能 1.命令修補能力 histroy 2.命令與檔案補全功能 3.命令別名設定功能 4.工作前景背景控制 5.支援萬用字元 type指令 變數的取用 echo 變數的設定規則 1.髮量不髮量內容以乙個等號 鏈結,如下所示 m...

第十一章 命令別名與歷史命令

我們知道在早期的 dos 年代,清除螢幕上的資訊可以使用 cls 來清除,color red 但是在 linux 裡面,我們則是使用 clear 來清除畫面的。color 那麼可否讓 cls 等於 clear 呢?可以啊!用啥方法?link file 還是什麼的?別急!底下我們介紹不用 link f...

modern c design 第十一章

本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...