學習linux第四天

Linux學習第4

 

Linux內部命令和外部命令

   內部命令實際上是shell程序的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程序識別并在shell程序內部完成運行,通常在linux系統加載運行時shell就被加載并駐留在系統內存中。內部命令是寫在bashy源碼里面的,其執行速度比外部命令快,因為解析內部命令shell不需要創建子進程

  外部命令:是linux系統中的實用程序部分,因為實用程序的功能通常都比較強大,所以其包含的程序量也會很大,在系統加載時并不隨系統一起被加載到內存中,而是在需要時才將其調用內存。通常外部命令的實體并不包含在shell中,但是其命令執行過程是由shell程序控制的。shell程序管理外部命令執行的路徑查找、加載存放,并控制命令的執行。外部命令是在bash之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin……等等??赏ㄟ^“echo $PATH”命令查看外部命令的存儲路徑

type 可以用來查看一個命令是內部命令還是外部命令

語法

type(選項)(參數)

 選項

-t:輸出“file”、“alias”或者“builtin”,分別表示給定的指令為外部指令、命令別名或者內部指令;

 -p:如果給出的指令為外部指令,則顯示其絕對路徑; -a:在環境變量“PATH”指定的路徑中,顯示給定指令的信息,包括命令別名

Hash緩存表

   linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令時,hash表會記錄下這條命令的路徑,就相當于緩存一樣。第一次執行命令shell解釋器默認的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令才會去PATH路徑下尋找

語法

    hash [-l] [-r] [-p <path> <name>] [-t <command>]

選項  

-l

顯示哈希表,包括路徑

-r

清除哈希表

-p <path> <name>

向哈希表中增加內容

-t <command>

顯示指定命令的完整路徑

alias別名命令

   alias命令用來設置指令的別名。我們可以使用該命令可以將一些較長的命令進行簡化。使用alias時,用戶必須使用單引號''將原來的命令引起來,防止特殊字符導致錯誤。 alias命令的作用只局限于該次登入的操作。若要每次登入都能夠使用這些命令別名,則可將相應的alias命令存放到bash的初始化文件/etc/bashrc
語法

alias(選項)(參數)

選項

   -p:打印已經設置的命令別名

參數

   命令別名設置:定義命令別名,格式為 命令別名=‘實際命令

alias 的基本使用方法
alias 新的命令='原命令選項/參數

history命令

  history命令用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件 該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2歷史命令是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制

 語法

     history(選項)(參數)
選項
      -c:清空當前歷史命令;

-a:將歷史命令緩沖區中命令寫入歷史命令文件中;

-r:將歷史命令文件中的命令讀入當前歷史命令緩沖區;

-w:將當前歷史命令緩沖區命令寫入歷史命令文件中。
使用歷史命令的一些快捷鍵

Ctrl+R 搜索歷史
Ctrl+R 是我經常使用的一個快捷鍵。此快捷鍵讓你對命令歷史進行搜索,對于想要重復執行某個命令的時候非常有用。當找到命令后,通常再按回車鍵就可以執行該命令。如果想對找到的命令進行調整后再執行,則可以按一下左或右方向鍵。

快速重復執行上一條命令

1.     使用上方向鍵,并回車執行。

2.     !! 并回車執行。

3.     輸入 !-1 并回車執行。

4.     Ctrl+P 并回車執行

重復執行第 4 條命令,那么可以執行 !4

如:[root@localhost ~]# history

    1  hisrory

    2  history

    3  cat

    4  echo 1

    5  haitort

    6  history

[root@localhost ~]# !4

echo 1

1

HISTSIZE :控制命令歷史記錄的條數

如:[root@localhost ~]# HISTSIZE=10

[root@localhost ~]# history

    1  hisrory

    2  history

    3  cat

    4  echo 1

    5  haitort

    6  history

    7  echo 1

    8  HISTSIZE

    9  HISTSIZE=10

10  history

使用HISTFILE更改歷史文件存儲

vi ~/.bash_profile
HISTFILE=/root/.commandline_warrior

使用 HISTCONTROL 從命令歷史中剔除連續重復的條目

[root@localhost ~]#  export HISTCONTROL=ignoredups

[root@localhost ~]# pwd

/root

[root@localhost ~]# pwd

  27   export HISTCONTROL=ignoredups

  28  pwd

  29  history

[root@localhost ~]# pwd

/root

[root@localhost ~]# history

使用 HISTCONTROL 清除整個命令歷史中的重復條目上例中的 ignoredups 只能剔除連續的重復條目。要清除整個命令歷史中的重復條目,可以將 HISTCONTROL 設置成 erasedups:

export HISTCONTROL=ignoredups

[root@localhost ~]# history

    2  echo

    3  history

[root@localhost ~]# echo

 

[root@localhost ~]# history

    2  echo

    3  history

使用 HISTIGNORE 忽略歷史中的特定命令

# export HISTIGNORE=”pwd:ls:ls -ltr:”
# pwd
# ls
# ls -ltr
# service httpd stop
# history | tail -3
79 export HISTIGNORE=”pwd:ls:ls -ltr:”
80 service httpd stop
81 history
[Note that history did not record pwd, ls and ls -ltr]

 

原創文章,作者:mxl,如若轉載,請注明出處:http://www.www58058.com/53510

(0)
mxlmxl
上一篇 2016-10-29
下一篇 2016-10-29

相關推薦

  • 持續交付的Mesos與Docker導入篇

    變革這個詞在當今的數字化時代司空見慣,IT技術每過一段時間就會有一起革新,從WEB2.0、虛擬化、云計算、大數據、微架構、DevOps再到今天的容器Docker與Mesos。 Docker的出現方便了應用的測試、部署、與升級,其將各種應用程序和它們所依賴的運行環境打包成標準的Container/Image,進而發布到不同的平臺上運行。Docker的輕量級、快…

    Linux干貨 2016-07-10
  • vim編輯器-練習題

    1 、復制/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符 #cp /etc/profile /tmp #vim /tmp/profile :%s/^[[:space:]]\+// 2 、復制/etc/rc.d/init.d/functions 文件至/tmp 目錄,用查找替換命令為/tmp/func…

    Linux干貨 2016-08-15
  • grep的使用,正則表達式

    文本處理grep ? ? grep :根據模式去搜索文本,并將匹配到的文本顯示出來 pattern(模式):文本字符和正則表達式的元字符組合而成的匹配條件 正則表達式:(REGular EXPression)正則表達式就是處理字符串的方法,通過一些特殊字符的輔助,讓用戶輕松方便的達到查找、刪除、修改特定字符串的處理程序 grep 的用法 ? ? name: …

    Linux干貨 2017-11-25
  • Linux命令的使用格式及部分常用命令詳述

    Linux命令的使用格式及部分常用命令詳述 Linux系統中命令的使用格式 Linux中命令的使用遵循以下格式 # COMMAND OPTIONS ARGUMENTS   ###命令 選項 參數,三項之間用空格分開 執行一個命令需要指定需要內核將哪一個二進制程序運行為一個進程,C…

    Linux干貨 2016-10-30
  • 制作epel源

    在linux的使用過程中,ISO鏡像的rpm包并不是十分的齊全。這個時候就需要去epel源去下載安裝rpm包安裝。這里簡單的描述下epel源的配置方法。僅供參考。 1.關閉SELinuxsed -i.bak ‘s/SELINUX=enforcing/SELINUX=permissive/’ /etc/selinux/config se…

    2017-12-18
欧美性久久久久