Linux系列(10):入門之bash基礎與bash環境設置


了解什么是shell嗎?

知道如何查詢當前系統支持的shell版本嗎?

 了解如何判斷某個指令是否是bash的內置指令嗎?

了解Linux的變量嗎,知道如何定義與刪除變量嗎,知道如何賦值嗎,知道如何獲取變量的內容嗎?

知道如何為變量設置類型嗎,了解宣告與陣列等概念嗎?

知道如何通過鍵盤輸入為變量賦值嗎?

了解如何查詢環境變量嗎?

知道如何將自定義的變量轉換為環境變量嗎?

了解變量的有效范圍嗎?

知道如何設置別名以及取消別名嗎?

1.shell基礎

Linux一般默認的shell為bash

我們知道,管理整個計算機硬件的其實是操作系統的核心(kernel),這個核心是需要被保護的!所以我們一般使用者只能通過shell來跟核心溝通,以讓核心來執行我們想要執行的工作。

Linux有多少shell呢,為什么我們要使用bash?下面來了解以下

1.硬件、核心與shell

 

總結一下:只要能夠操作用戶程序的接口都能夠稱為殼程序。狹隘的殼程序指的是命令行方面的軟件,包括本章介紹的bash。廣義的殼程序包括圖形接口的軟件!因為圖形接口其實也能夠操作各種應用程序來調用核心工作啊

2.系統的合法shell與/etc/shells功能

1.查看當前Linux中的包含的shell

/etc/shells文件包含了當前Linux系統可以使用的shell(一般有多個版本)。

根據結果可知:當前系統包含2種shell。

雖然各家的shell功能差不多,但是語法還是有一定的區別的,這里推薦使用bash。

了解了shell的版本,接下來了解一下用戶何時會獲得shell呢,以及獲得的shell是哪種版本的呢?

2.shell獲得的時機與版本

當用戶登錄的時候,系統就會分配一個shell給用戶,而這個登錄取得的shell就記錄在/etc/passwd這個文件內!這個文件內容是啥?看下圖:

如上圖所示:在每一行的最后一個數據,就是你登錄后可以取得的默認的shell。root與自己注冊的用戶(zxp_user等)都是bash

3.bash  shell的功能

1.bash優點

《1》指令偏修能力

bash能記錄下用戶使用過的指令,只要在命令行上按“上下鍵”就能夠找到前/后一個輸入的指令。默認的指令記憶功能可達到1000個。

那么這些指令被記錄在哪里呢?在你的主目錄(執行 cd ~進入你的主目錄)中的.bash_history文件內。

注意:.bash_history文件記錄的是前一次登錄以前執行過的指令,而現在登錄所執行的指令都暫存於內存中,當你登出系統后,該次操作的諸多指令才會記錄到.bash_history文件中

《2》指令與文件補全

《3》指令別名設置功能

設置別名指令:alias

上圖中講述了如何設置別名,下面了解一下如何取消別名,指令如下:

指令:unalias  lm  //取消別名lm

《4》程序化腳本

《5》萬用字符

* 就是萬用字符,* 代表0或多個字符

下面介紹常用的萬用字符:

2.查詢指令是否為bash的內置指令

指令:type

當我需要知道使用的指令來自哪里(非bash提供的與bash提供的)時,就可以使用type指令查看。

 4.shell變量功能

1.變量的可變性與方便性

舉例說明變量的可變性與方便性:

2.影響bash環境操作的變量

其實就是環境變量,比如PATH、HOME、MAIL、SHELL等。

3.變量的取值與創建

注意:echo的功能不僅僅只是定義變量與獲取變量的內容;echo還有很多其他的功能

1.獲取變量內容

指令:echo $variable  //使用echo獲取變量內容,變量名前必須加上美元符號$。

實例如下

2.創建變量以及設置內容

指令:echo $myname  //如果這個變量不存在,那么就創建一個變量(內容為空);存在就顯示變量內容

指令:myname=zxp  //將字符串“zxp”賦值給變量myname

3.刪除變量

指令:unset  //刪除變量或函數

4.變量鍵盤讀取、陣列與宣告

《1》鍵盤讀取

指令:read  //變量鍵盤讀取

該指令可以讀取來自鍵盤輸入的變量。

read之后不加任何參數,直接加上變量名,那么下面就會出現一個空白行等待你的輸入。

《2》宣告

就是聲明變量類型。

declare與typeset是一樣的功能,就是在“宣告變量類型”。如果使用declare后面沒有接任何參數,那么bash就會將所有變量名與內容統統顯示出來,就像是set一樣。下面看一下declare指令語法:

因此,當你需要非字符串類型的變量是,你就得進行宣告了,即聲明變量的類型。

《3》陣列

陣列就是數組。

如何創建一個數組呢?首先使用echo指令創建一個變量,使用declare指令聲明變量的類型,之后為數組變量的元素賦值,最后使用declare指令查詢變量類型和內容。

指令如下:

echo $myArray    //創建變量myArray
declare -a myArray    //聲明變量的類型為數組(即陣列)
myArray[0]=zhangsan    //為數組第一個元素賦值
myArray[1]=lisi    //為第二個元素賦值
declare -p myArray    //顯示變量myArray的類型與內容

5.變量內容的刪除、取代與替換

注意是內容的刪除、取代與替換,注意不是變量的刪除。

變量除了可以直接she設置來修改原來的內容之外,還可以通過其他方式進行修改。如下所示:

1.變量內容的刪除與取代

 

 6.與文件系統及程序的顯示關系

指令:ulimit

該指令的作用究竟是干嘛呢?我們想象一下:

接下來了解一下ulimit指令的用法:

已將了解了該指令的用法,那么現在實踐一下:

總結一下:你如果想讓使用者創建的文件不要太大時,可以使用ulimit指令限制使用者創建文件的大小,利用 ulimit -f 指令就可以設置。

6.bash語法總結

4.環境變量

查詢環境變量:env

查詢環境變量與自定義變量:set

 5.bash shell的操作環境

 

1.路徑與指令搜索順序

2.bash的環境配置文件

在介紹bash的環境配置文件之前,必須先了解login shellnon-login shell

我們經常會使用non-login shell的情況:在終端使用“su 用戶名”切換用戶。

如果你想要使用su命令以login shell的方式切換用戶那么該怎么辦:使用命令“su - 用戶名”。

這兩種登錄方式下取得bash讀取的配置文件不盡相同,接下來了解login shell與non-login shell讀取的配置文件:

《1》login shell讀取的配置文件

會讀取兩個配置文件

那么下面聊一下profile這個配置文件,通過cat查看文件內容發現會設置以下變量:

3.終端機的環境設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM