存疑概念:。。
重要知識點:
第十章 認識與學習bash
10.1 認識bash這個shell
10.1.5查詢指令是否為bash shell的內建指令命令:type
type name
:不加任何引數,顯示name是外部命令還是內建指令
-t:顯示name以下資訊
file:表示外部指令
alias:表示為命令別名所設定的名稱
builtin:表示為內建的指令
-p:若name為外部指令時,才會顯示完整檔名
-a:由path變數定義的路徑中,將所有含name的指令都列出來,包括alias
10.1.6指令的下達與快速編輯按鈕
10.2 shell的變數功能
10.2.1什麼是變數
。變數的可變性與方便性
。影響bash環境操作的變數
path
。指令碼程式的幫手
定義變數儲存在指令碼頭部,儲存系統路徑
10.2.2變數的取用與設定:echo,變數設定規則,unset
。變數的取用:echo
echo $name
echo $
等號設定
myname=mty
echo $
。變數設定規則
1.變數與變數內容以=連線
2.=兩邊不能直接接空格
3.開頭不能是數字
4.變數內容有空格符可使用"/'將變數內容結合起來
。雙引號內的特殊字元如$,可保留原有特性
。單引號內的特殊字元僅為一般字元
5.可用逃脫字元'\'將特殊符號變為一般字元
6.在一串指令執行中,需要其他額外指令提供資訊時,可用`指令`/$(指令)
7.若該變數為擴增變數內容時,可用"$name"/$累加內容
path="$path":/home/bin或path=$:/home/bin
8.若該變數需要在其他子程式執行,需要export來使變數變成環境變數
9.通常大寫字母為系統預設變數,自行設定可以使用小寫方便判斷
10.取消變數方法:unset
10.2.3環境變數的功能
。用env觀察環境變數與常見環境變數說明
home
家目錄shell
這個環境使用的shell是哪支程式
histsize
歷史命令
path
執行檔案所在目錄
lang
random
隨機隨機數
。用set觀察所有變數(含環境變數與自定義變數)
變數:環境變數、與介面有關變數、使用者定義變數
比較重要的變數:
。ps1(提示符的設定)
。$(關於shell的pid)
。?(關於上個指令所回傳的值)
。ostype,hosttype,machtype(主機硬體與核心的等級)
。export:自定義變數轉成環境變數
環境變數與自定義變數差異:能否被子程式繼續使用
子程式會繼承父程序的環境變數,而不會繼承自定義變數
export name
分享自己的變數設定給後來的檔案或其他程式
10.2.4影響顯示結果的語系變數(locale)
10.2.5變數的有效範圍
環境變數=全域性變數
自定義變數=區域性變數
10.2.6變數鍵盤讀取、陣列與宣告:read,array,declare
。read
read -pt 變數
-p後面可接提示符
-t後面可以接等待的秒數
read name
read -p "please enter name:" -t 30 name
。declare/typeset
宣告變數的型別
declare -aixr 變數
-a後面變數定義成array型別
-i後面變數定義成int型別
-x將變數變成環境變數
-r將變數設成唯讀型別,也不能unset
變數型別預設為字串
bash環境中的字元計算,僅能達到整型狀態,所以1/3結果是0
。陣列(array)變數型別
var[1]="test1"
var[2]="test2"
10.2.7與檔案系統及程式的限制關係:ulimit
ulimit -shacdfltu 配額
-h嚴格設定,必定不能超過
-s警告設定,可以超過,但超過有警告資訊
-a不接引數和選項,可列出所有的限制配額
-c當某些程式發生錯誤時,系統可能會將該程式在記憶體中的資訊寫成檔案
-f可建立的最大檔案容量
-d可使用的最大斷裂記憶體容量
-l用於鎖定容量
-t可用最大cpu時間
-u單一使用者可使用的最大程式數量
10.3 命名別名與歷史命令
10.3.1命名別名設定:alias,unalias
alias 別名='指令加選項'
10.3.2歷史命令:history
history n
history -c
history -raw histfiles
n數字,列出最近n筆命令
-c刪除history的內容
-a將目前新增的history指令新增入histfiles中,沒有histfiles,則預設寫入~/.bash_history
-r將hisfiles的內容讀到目前shell的history中
-w將目前的history記憶內容寫入hisfiles中
!number
執行第幾筆命令
!command
向前搜尋指令開頭為command的那個指令,並執行
!!執行上乙個指令
。同一賬號同時多次登入的history寫入問題
最後登出的賬戶會覆蓋前面的~/。bash_history
10.4 bash shell的操作環境
10.4.1路徑與指令搜尋順序
1.以相對/絕對路徑執行指令
2.由alias找到該指令來執行
3.由bash內建的(builtin)指令來執行
4.透過$path這個變數的順序搜尋到的第乙個指令執行
10.4.2bash的進站與歡迎資訊:/etc/issue,/etc/motd
。telnet遠端登入後,顯示/etc/issue.net
。/etc/motd讓使用者登入後取得一些訊息
10.4.3bash的環境配置檔案
。login與non-login shell
login shell:取得bash時需要完整的登入流程
讀取以下兩個配置檔案
1./etc/profile:系統整體的設定,最好不要修改
。path
。user
。hostname
。histsize
。umask
以下資料也會被以此呼叫進來
。/etc/profile.d/*.sh
規範了bash操作介面的顏色、語系、部分指令別名
。/etc/locale.conf
決定bash預設使用何種語系
。/usr/share/bash-completion/*
與命令、檔案補齊相關
2.~/.bash_profile或~/.bash_login或~/.profile:屬於個人設定
。只會讀取上面三個中的乙個,按次序
non-login shell:取得bash介面方法不需要重複登入的舉動
~/.bashrc
會呼叫/etc/bashrc和/etc/profile.d/*.sh
。source:讀入環境配置檔案的指令
不需要登出就能生效
。其他相關配置檔案
/etc/man_db.conf
規範來使用man時,man_page的路徑**尋找
~/.bash_history
歷史命令記錄
~/.bash_logout
登出系統後,系統再幫我做完什麼動作後再離開
10.4.4終端機的環境設定:stty,set
stty -a
-a將目前所有stty引數列出來
set -uvchhmbx
-u預設不啟用。啟用後,當使用未設定變數時,會顯示錯誤訊息
-v預設不啟用。啟用後,在訊息被輸出前,會先顯示訊息的原始內容
-x預設不啟用。啟用後,在指令被執行前,會顯示指令內容
-h預設啟用。與歷史命令有關
-h預設啟用。與歷史命令有關
-m預設啟用。與工作管理有關
-b預設啟用。與括號的作用有關
-c預設不啟用。若使用》等,則若檔案存在時,檔案不會被覆蓋
10.4.5萬用字元與特殊符號
Linux學習第七天
一 程序控制 1 開機後bootloader將系統的第乙個程序啟動了起來,bootloader是燒製在bios上的 2 第乙個例子 getpid include func.h int main int argc,char ar 3 乙個程序有4個身份 真實使用者id 真實組id 有效使用者id 有效...
linux 學習第七天
一 bash 使用 for迴圈 while迴圈 1.1 批量新增使用者 1.2 檢視使用者是否存在 a cut d f 1 etc passwd b id dream id 使用者名稱 c ll home 檢視使用者目錄 1.3 批量刪除使用者 請謹慎操作 1.5 猜數字 1.6 判斷使用者輸入 1...
第七天學習
練習題 1 以下類定義中哪些是類屬性,哪些是例項屬性?class c num 0 def init self self.x 4 self.y 5 c.count 62 怎麼定義私有 法?3 嘗試執行以下 並解釋錯誤原因 4 按照以下要求定義乙個遊樂園門票的類,並嘗試計算2個 1個小孩平日票價。要求 ...