bash學習記錄

2022-05-08 06:54:12 字數 1568 閱讀 6697

bash:

管理員:  提示符#

普通使用者:提示符$

環境變數

a=3(變數是指記憶體空間,a指的是記憶體空間的名稱-變數標示符)

ps1  \u@\h:\w\$  \u使用者名稱 \h主機名 \w工作目錄的路徑基名

# echo

引用乙個變數: $;

bash特性:

命令有兩種型別:

builtin:在shell中實現的即為內建命令;

外部命令:在檔案系統上的某位置有乙個與命令名稱對應的可執行檔案;

如何判斷:使用type命令。

shell中的引用:

'':強引用,變數替換不會進行

"":弱引用,能夠執行變數替換

``:命令引用,引用命令的執行結果,還有另外一種形式:$(命令)

變數替換:$

命令歷史

bash儲存過去曾經執行過的命令列表

當前shell程序儲存在緩衝區中;

緩衝區中的命令在shell退出時儲存至檔案中,家目錄的.bash_history。

使用上下箭頭可以翻看此前執行過的命令:

命令別名

alias:顯示當前shell中定義的所有別名:

# alias 別名='原始命令'

# unalias 別名

bash快捷鍵

ctrl+a:跳至命令列行首

ctrl+e:   尾

ctrl+u:清除命令列首至當前游標所在處的內容

ctrl+k:清除命令行尾至游標所在處的內容

ctrl+l:清屏,相當於clear命令

ctrl+c:終止當前正在執行的程序

ctrl+z:將當前命令送至後台

bash補全

命令補全:

shell命令:內部,外部

外部:在系統某路徑下有乙個可執行程式

內部:path:是一組由冒號分割的命令

使用tab鍵執行補全

路徑補全:在給出的打頭路徑補全;如果沒有打頭路徑,則為當前;

提供程式設計環境

變數程式控制

#!/bin/bash

shebang

elf:

#!/bin/bash

程式=指令+資料

bash的變數

變數的型別:

本地變數:只針對當前shell程序有效,對其子shell以及其他shell都無效;

定義變數:[set]var_name="value"

引用變數:$

撤銷變數:unset var_name

區域性變數:僅對區域性**生效

local var_name="value"

環境變數:對當shell程序及其子shell有效;

exprot var_name="value"

var_name="value"

export var_name

匯出位置變數:

$1,$2...$n

./learnbash.sh 2 8

特殊變數:

$0:指令碼名稱本身

$?:上條命令的執行狀態返回值0

0:成功

1-255:失效

BASH學習筆記 sed

可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括行數表示的那兩行 如1,3表示1,2,3行,美元符號 表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定。呼叫sed命令有兩種形式 a 在當前行後面加入一行文字。b lable ...

BASH學習筆記 split

名稱 split 使用許可權 所有使用者 使用方式 split option input prefix 說明 將乙個檔案分割成數個。而從 input 分割輸出成固定大小的檔案,其檔名依序為 prefixaa,prefixab.prefix 預設值為 x。若沒有 input 檔或為 則從標準輸入讀進資...

BASH學習筆記 grep

saturday,january 3,2009 grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜...