天天看點

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

Bash

  • Bash是什麼?
  • 檢視Linux中的Shell
  • Bash的優點
    • 指令記憶功能
    • 補全功能
    • 指令别名
    • 工作、前景背景控制
    • 腳本
    • 通配符
    • 内置指令
  • Bash環境配置流程
    • Login Shell
    • Non-login shell

Bash是什麼?

Bash 全稱為Bourne Again SHell,是Shell程式的一種,提供一個界面(也就是終端),可讓使用者通過調用各種指令來作業系統

檢視Linux中的Shell

系統支援的Shell程式在 /etc/shells 檔案中,Linux預設使用bash(替代了sh)

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

想要知道使用者目前使用的Shell,可檢視 /etc/passwd 檔案

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

Bash的優點

指令記憶功能

上一次登陸所執行的指令記錄在 ~/.bash_history,而這一次登陸所執行的指令暫存于記憶體,隻有退出時才會寫到該檔案,可通過⬆⬇檢視前後指令

指令 history 可檢視輸入的曆史記錄,n表示顯示個數,-c 清除曆史,-r 将~/.bash_history的内容讀到記憶體,-w将目前新增的曆史記錄寫到 ~/.bash_history

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

補全功能

使用 tab 可進行輸入補全

指令别名

可通過 alias 簡化指令,如下使用 lm 代替 ls -al,取消使用unalias

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

工作、前景背景控制

可讓目前工作在背景中執行

腳本

可将一連串指令寫成一個檔案及采用互動式運作,用于完成一個大工程

通配符

符号 意義
* 0到多個任意字元
? 1個任意字元
[] [abcd]表示可能為abcd中的任意一個或多個字元
[-] [0-9]表示有0-9的任意數字
[^] [ ^a ] 除了a以外的字元

内置指令

除了在 /bin 外的系統指令,bash本身也自帶了指令,可通過 type 檢視目前指令類型

  • 不加參數顯示其完整類型
  • -t 輸出file表示系統指令,alias 表示指令為别名,builtin則為bash指令
  • -p 顯示系統指令的路徑
  • -a 顯示出指令的搜尋執行順序,如下先使用的是ls --color=auto,而不是/bin/ls

可看到 ls 是 ls --color=auto 的别名,cd 為bash指令

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

Bash環境配置流程

Login Shell

Login Shell指通過完整流程擷取Bash,列如在指令行界面登陸。首先讀取/etc/profile配置環境變量、語言、指令别名等,然後讀取個人配置~/.bash_profile( ~/.bash_login或 ~/.profile)

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

如下可看到其調用了bashrc,設定指令行提示符号等

Linux基礎——BashBash是什麼?檢視Linux中的ShellBash的優點Bash環境配置流程

Non-login shell

而Non-login shell指通過視窗界面等方式登陸後再打開終端,僅讀取~/.bashrc,然後讀取/etc/bashrc、/etc/profile.d/*.sh

繼續閱讀