Linux的命令機制

Linux的命令機制

命令格式

COMMAND [OPTIONS…] [ARGUMENTS…]
選項:用于啟用或關閉命令的某個或某些功能
短選項:-c 例如:-l, -h
長選項:–word 例如:–all, –human-readable
參數:命令的作用對象: 比如文件名和作用名

注意

1.  *多個選項以及多參數和命令之間使用空白字符串分隔*

2. *取消和執行命令執行:Ctrl+c,Ctrl+d*

3. *多個命令可以用 ; 符號分開*

4. *一個命令可以用 \ 分成多行*

命令的提示符與用戶的uid

Linux中的用戶跟windows 一樣也分為管理員和普通用戶。
在Linux中,系統是根據你的uid來判斷你是否是管理員,而不是通過你的用戶名來判斷

Linux用戶

系統是通過uid來判斷用戶是否是Root用戶,Root用戶的uid為0

Root用戶(超級用戶)
root用戶 在命令提示符表示為#?uid為0

image.png

image.png

普通用戶命令提示符表示為?$
普通用戶uid
centos6:從500開始

image.png

image.png

centos7:從1000開始

image.png

image.png

上面提示符的顏色是根據PS1的環境變量而義

PS1=[\e[1;32m][\u@\h \W]$[\e[0m]


bash Shell

交互式接口

交互式接口:啟動終端后,在終端設備附加一個交互式應用程序
GUI:Graphic User Interface
X protocol, window manager, desktop
Desktop:
GNOME (C, 圖形庫gtk),
KDE (C++,圖形庫qt)
XFCE (輕量級桌面

CLI:Command Line Interface
shell程序:sh(bourn 史蒂夫·伯恩)cshtcshksh(korn)bash (bourn again shell)GPL zsh

Shell 是Linux系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行。

由于歷史原因,有許多的shell。shell也被稱為LINUX的命令解釋器(command interpreter)shell負責把不同的語言翻譯成對應的二進制。
就好像不同的不同的國家有不同的語言
shell是用戶和內核、操作系統打交道的一個接口
應用程序通過系統調用和庫來訪問系統硬件和內核,也因此Linux開機運行就被加載到時內存中。讀取的速度快于外部命令。
shell把你的命令解析成系統能識別的二進制來執行。

bash shel
GNU Bourne-Again Shell(bash)是GNU計劃中重要的工具軟件之一
目前也是Linux標準的shell,與sh兼容
CentOS默認使用

顯示當前使用的shell
echo ${SHELL}
顯示當前系統使用的所有shell
cat /etc/shells

內部命令

內部命令是集成在shell程序的一部分,這些命令由shell程序識別并在shell程序內部完成運行,通常在linux系統加載運行時shell就被加載并駐留在系統內存中.

內部命令幫助用法?help cmd

內部命令的常用命令
enable :?內部命令的禁用與啟用
help:?查看內部命令是否被禁用,命令前面帶*的是被禁用的命令

外部命令

外部命令簡單的說系統之上運行的程序,當系統讀取外部命令時,要到磁盤上讀取,這樣會顯的速度比較慢。由于linux的特性,當系統查找外部命令時,系統會按PATH環境變量的路徑從左往右?一個一個的來查找,當前面的路徑找到了,后面的路徑就不找了。

~]# echo $PATH

外部命令的幫助

幫助用法?cmd --help
** 常用命令**

which :?查看外部命令在PATH放的路徑,不會查看緩存(按*PATH*中的優先順序顯示)
加上-a會查看看外部命令在PATH中的所有路徑和命令別名

whereis :?查出命令所在的路徑以及man幫助相關文檔的路徑

判斷命令是否是外部命令

type :?type cmd
type cmd=========區分是外部命令還是內部命令。會按命令的優先級來顯示
外部命令是在PATH的路徑(如果有別名的存在,會按搜索命令的優先級來顯示。但也會按hash緩存來找)

image.png

image.png

hash

系統初始hash表為空,當外部命令執行時,默認會從PATH路徑下尋找該命令,找到后會將這條命令的路徑記錄到時hash表中,當再次使用該命令時,shell解釋器首先會查看hash表,存在將執行之,如果不存在,將會去PATH路徑下尋找。利用hash緩存表可大大提高命令的調用速率。

注意: 當我們執行一個外部命令時,hash表會記錄外部命令的緩存。但不會記錄內部命令(內部命令是集成在bash shell里)。
如果此時將這個命令移動到PATH變量中的另一個路徑或其它路徑。再來執行這個命令,此時命令會報錯,因為在hash表中記錄了這個路徑。系統只要找到了這個路徑,就不會往后面去找了。

image.png

image.png

Linux查找命令時,是否看命令的名字

image.png

image.png

Linux在查找命令時,是按命令的名字來查找,不是按命令的本質來查找。


命令別名

命令別名的常用命令:?unalias alias

當系統開始運行時,會把磁盤上的別名配置文件(~/.bashrc或/etc/.bashrc)加載到內存中,系統運行的是內存中的別名。即使用unalias把別名給刪了,也只是在當前終端無法執行別名,等系統退出重新登錄,又可以使用這個別名了。因為并沒有改別名的配置文件啊!

image.png

image.png

命令別名如何使用原始命令

  • 在命令前面加 \
  • 寫上全路徑,(內部命令不適用)
  • 用單引號把命令引起來

在linux中命令的搜索路徑

當你在命令提示符下敲一個字符串時,后臺做了一件事中,先用/bin/bash這個程序,來判斷一下你輸入的內容是何種程序,是不是能找到這個程序。先判斷是否是命令別名,再判斷是否是內鍵命令,然后再看是否有外部命令緩存hash,最后判斷是否是外鍵命令PASH。然后報錯。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94245

(0)
安靜的家伙7048安靜的家伙7048
上一篇 2018-04-01
下一篇 2018-04-01

相關推薦

  • 計算機基礎與linux基礎

    描述計算機的組成及功能 按系列羅列linux的發行版,并描述不同發行版之間的聯系與區別 描述linux的哲學思想,并按照自己的理解對其解釋性描述 說明Linux系統上命令的使用格式;詳細介紹ifconfig.echo,tty,startx,export,pwd,history,shutdown,poweroff,reboot,hwclock,date命令的使…

    Linux筆記 2018-06-19
  • Linux上的文件管理類命令

    常用的文件目錄管理命令:cd,pwd,ls,mkdir,rmdir,tree,more,less,head,tail,cp,mv,rm。 cd命令:改變目錄 后面加絕對或者相對路徑 命令格式:cd [options] [Dirname] [Azuth@azuth ~]$ cd /home/Azuth[Azuth@azuth ~]$ pwd/home/Azut…

    Linux筆記 2018-05-20
  • 總結_系統初始設置

    啟動 自動聯網 gedit /etc/sysconfig/network-scripts/ifcfg-ens33 /*圖形界面 gedit*/ ONBOOT=yes 自動登錄 nano /etc/gdm/custom.conf /*字符界面 nano*/ [daemon] AutomaticLoginEnable=Ture AutomaticLogin=XX…

    Linux筆記 2018-03-30
  • aide

    aide 實現查看文件是否篡改 查看是否被攻擊 aide 的主配置文件 /etc/aide.conf aide的日志 /var/log/aide aide的數據庫 /var/lib/aide (用于存放比對信息數據) 在 /etc/aide.conf 里 定義你自己的要檢查的什么屬性 在 后面調用就行 比如 /date/ rules !/date/f1 監控…

    Linux筆記 2018-05-27
  • nginx模塊簡介與編譯安裝

    nginx模塊簡介與編譯安裝示例

    2018-06-23
  • 故障排錯

    破壞性試驗修復

    2018-05-08
欧美性久久久久