Linux第七天的學習記錄

2021-08-14 00:02:07 字數 4381 閱讀 7989

存疑概念:。。

重要知識點:

第十章 認識與學習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

歷史命令

mail

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

。mail

。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個小孩平日票價。要求 ...