自學Linux Shell5.2-shell內建命令history alias

點擊返回 自學Linux命令行與Shell腳本之路html

5.2-shell內建命令history alias

外部命令:有時稱爲文件系統命令,是存在於bash shell以外的程序,一般位於/bin、/usr/bin 、/sbin 、/usr/sbin中
                  當外部命令執行時會建立一個子進程,叫作衍生,,此時就須要花費時間和精力設置新i進程的環境
                  ps就是一個外部命令,能夠使用which、type命令找到它
shell

內建命令: 不須要借用外部程序來運行。執行速度快效率高。
                    cd    exit 都是內建命令(有的命令既有內建命令也有外部命令,如echo、pwd)bash

內建命令history 

用於顯示歷史記錄和執行過的指令命令
history命令讀取歷史命令文件中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令文件。
該命令單獨使用時,僅顯示歷史命令
在命令行中,能夠使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2
                             !! 執行上一條歷史命令
                             history num  查看歷史命令後num條
                             !str 執行指定str開頭的命令(最後一個)
                             !? 得到最後執行的狀態碼
tcp

history(選項)(參數)
  • -N: 顯示歷史記錄中最近的N個記錄;
  • -c:清空當前歷史命令;
  • -a:將歷史命令緩衝區中命令寫入歷史命令文件中;
  • -r:將歷史命令文件中的命令讀入當前歷史命令緩衝區;
  • -w:將當前歷史命令緩衝區命令寫入歷史命令文件中;
  • -d<offset>:刪除歷史記錄中第offset個命令
  • -n<filename>:讀取指定文件

history命令是被保存在內存中的,當退出或者登陸shell時,會自動保存或讀取。在內存中,歷史命令僅可以存儲1000條歷史命令,該數量是由環境變量 HISTSIZE進行控制。
默認是不顯示命令的執行時間,命令的執行時間,history 已經記錄,只是沒有顯示。atom

注:如想查詢某個用戶在系統上執行了什麼命令,能夠使用root用戶身份登陸系統,檢查Home目錄下的用戶主目錄下的「.bash_history」文件,該文件記錄了用戶所使用的命令和歷史信息。spa

歷史命令(環境變量)配置文件/etc/profile

  • 歷史命令 默認保存1k條,能夠在環境變量配置文件/etc/profile中修改 HISTSIZE=xxx
  • 歷史命令 默認保存文件修改 HISTFILE=/path/FILENAME
  • 歷史命令 剔除連續重複的條目 HISTCONTROL=ignoredups
  • 歷史命令 忽略指定命令HISTIGNORE=」pwd:ls:cd:」
  • 歷史命令 格式化輸出HISTTIMEFORMAT=’%F %T ’ ,bt只能輸出設置生效以後的

內建命令alias 

 alias命令用來設置指令的別名命令行

  • -p:打印已經設置的命令別名。(可加可不加)
  • unalias 取消別名

此時設定的別名,重啓設備後就失效,若想永久保存,須要在.bashrc 下填寫別名保存。3d

相關文章
相關標籤/搜索