Shell基礎及變數3 20

2021-08-17 07:30:29 字數 4628 閱讀 9186

1.shell在linux系統中的位置

使用者請求 shell-->linux核心--->硬體

2.shell命令

(1) 歷史命令 history[-raw] histfiles (預設儲存1000條,可以在/etc/profile中修改)

n  列出最近使用的

n條命令,包括

history n

-c  將所有的history內容全部清除

-a 將目前新增的

history命令j

加入histfiles

中,預設

~/.bash_history

-r  將histfiles中的內容讀到目前這個shell的history記憶中

-w 將目前的history內容讀到histfiles中

[root@www~]#echo $histsize

(2) 歷史命令的呼叫

上下箭頭

!n 重複執行第n條歷史命令

!! 重複執行上一條指令

!coment重複執行最後一條以coment開頭的命令

(3) tab鍵自動補全

(4) 命令別名 alias 別名=』原命令』

輸入一條alias命令後,僅在當前shell有用

永久化方法:

1>    每次登陸自動生效:

把alias語句加到/etc/profile中

把alias加到~/.bashrc中,然後 source  ~/.bashrc

2>    每一位使用者都生效:

把alias語句加到/etc/bashrc最後面,然後 source  /etc/bashrc

(5) 刪除別名 unalias [別名]

(6) 多命令順序執行

命令1;命令2  順序執行

命令1&&命令2  與,命令1正確才執行命令2,否則不執行

命令1||命令2  或, 命令1不正確,命令2才執行

(7) 管道命令 命令1|命令2

例:分屏顯示history內容

history|more

(8) tee [-a] file 將資料流處理過程儲存下來

-a 以累加的方式,將資料加入file中,不加-a會被覆蓋

例:ls –l |tee –a ~homefile|more

(9) 顯示輸出 echo [-ne] [字串]

-n 不要自動換行

-e  支援\轉義功能

--help 顯示幫助

--version 顯示版本資訊

顯示變數:echo$

反斜槓:

\a發出警告聲

\b刪除前乙個字元

\c最後不加上換行符號

\f換行但游標留在原來位置

\n換行且游標移至行首

\r游標移至行首,但不換行

\t插入tab

\v與\f相同

\\插入\字元

\nnn插入nnn(八進位制)所代表的ascii字元

(10) 清除變數 unset [變數名]

unset name

3.環境變數

(1) 用於所有使用者程序(子程序),登入程序為父程序,pstree檢視

環境變數可以設定,使用者登出時這些值將丟失

變數名都是大寫

必須用export匯出

(2) 設定:[變數名]=value

顯示: env 檢視所有,echo $[變數名] 顯示乙個

清除: unset [變數名]

(3) 常用環境變數

home:代表使用者的家目錄。cd~ 去到使用者的家目錄或者利用cd 就可以直接回到使用者家目錄了。

ps1:shell的主提示符

shell:目前這個環境使用的shell 是哪個程式?如果是bash 的話,預設/bin/bash

pwd:使用者當前工作目錄的路徑。它指出使用者目前在linux檔案系統中處在什麼位置。它是由linux自動設定的

histsize:這個與「歷史命令」有關,曾經下達過的指令可以被系統記錄下來,而記錄的「數目」則是由這個值來設定的。

env:這個使用者所使用的個性化環境設定檔案的讀取檔案。

mail:當我們使用mail 這個指令在收信時,系統會去讀取的郵件信箱文(mailbox)。

path:就是執行檔案搜尋的路徑,目錄與目錄中間以冒號(:)分隔,由於檔案的搜尋是依序由path 的變數內的目錄來查詢,所以,目錄的順序也是重要的喔。

lang:語系檔案,很多資料都會用到他,當出現編碼錯誤的時候往往需要設定它,中文編碼是zh_cn.utf8

(4)再次登入時有效,需在檔案中修改

bash的初始化檔案有:/etc/profile、~/.bash_profile、~/.bash_login、~/.profile、~/.bashrc、/etc/bashrc

/etc/profile:存放一些全域性(共有)變數,不管哪個使用者,登入時都會讀取該檔案。通常設定一些shell變數path,user,hostname和histsize等

~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.

~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取.

/etc/bashrc:為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.

4.內部變數

$0:shell程式的名稱

$?:程式執行結果,0表示正確,其他值表示有錯誤

$#:傳給shell程式的位置引數的數量

$*:呼叫全部引數的單字串,「引數1」,「引數2」……形式儲存引數

$@:顯示全部引數,「引數1,引數2……」形式儲存引數

$n:第n個引數

$$:  pid

例:sh hello.sh [位置引數]

5.本地變數

變數名=值

1)等號兩邊不可以有空格

2)取值包含空格,必須用雙引號括起來

3)shell變數可以用大小寫字母,區分大小寫

6.特殊符號

#:注釋

$:使其後的普通字元作為變數名${}

單引號:全部原樣

雙引號:支援$,\,倒引號

倒引號:倒引號裡是可執行命令 `pwd`

反斜槓:把特殊字元轉換成普通字元

7.獲取字串長度

string="abcd"

echo $ #輸出4

8.提取字串

以下例項從字串第2 個字元開始擷取4 個字元

string="runoobisa great site"

echo$ # 輸出unoo

9.shell指令碼的基本元素

1> 第一行必須是#!/bin/bash

2>#注釋

3>變數

4>控制

10.shell指令碼的執行方式

1> sh ./hello.sh

2> chmod +x hello.sh

./hello.sh

Shell基礎及變數 3 20

1.shell指令碼的基礎 shell指令碼是基本命令的組合,結合命令流程控制。第一行 頂格寫 bin bash shell指令碼的執行方式 1 首先要使指令碼具有執行許可權 chmod x test.sh 然後.test.sh執行指令碼 2 bin sh test.sh 2.shell指令碼中變數...

shell基礎及變數

一 shell基礎 1 root www history raw histfiles 選項與引數 n 數字,意思是 要列出最近的n 筆命令列表 的意思!c 將目前的shell 中的所有history 內容全部消除 a 將目前新增的history 命令新增入histfiles中,若沒有加histfil...

shell基礎及變數

shell的兩種主要語法型別有bourne和c,這兩種語法彼此 不相容。命令與檔案補全 tab鍵 一次 補全名稱 tab鍵 兩次 顯示所有相似名稱 命令別名 alias 別名 原命令 刪除別名 unalias 別名 多命令順序執行 命令1 命令2 命令1 命令2 管道符命令1 命令2 tee ech...