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...