學習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 18:16
下一篇 2016-10-29 19:17

相關推薦

  • 111-puppet

    一.運維層次分類 OS Provision:

    2016-12-04
  • 20160802作業

    20160802作業 1、每日課堂筆記總結 2、預習 3、每日課堂pdf練習 4、在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如: alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 [root@Centos7 ~]# chmod…

    Linux干貨 2016-08-04
  • N26-第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。(盜圖了,哈哈哈) 文件查看類命令:cat, tac, head, tail, more, less,touch    cat 查看文件內容   tac命令   反向查看文件內容  注:可對照上圖 分屏查看命令:more  …

    Linux干貨 2017-01-07
  • zabbix如何監控webserver

    1、模版 2、應用集 3、項目 4、觸發器

    Linux干貨 2016-02-19
  • Linux文件權限之facl

    1、什么是facl         facl(file access control list)文件訪問控制列表,主要目的是在原有的u,g,o之外,另一層讓普通用戶能控制賦權給另外的用戶或組的機制;       &nbs…

    Linux干貨 2016-09-19
  • linux終端變量設置,文件系統,man使用說明,文件類型

    一、定義終端提示符的變量 export PS1=’\e[32m[\e[33m\u\e[31m@\e[35m\h\e[36m\t\e[34m\#\e[31m\s\e[37m\W\e[32m]\$ ‘  `]# export 是個命令      PS1指終端提示符變量    &n…

    Linux干貨 2013-06-16
欧美性久久久久