第四章 bash特性詳解

2021-08-11 16:45:32 字數 2981 閱讀 8793

第四章、bash特性詳解

03_02_base特性詳解 

bash及其特性:

shell: 外殼

gui:gnome, kde, xfce

cli: sh, csh, ksh, bash, tcsh, zsh

linux允許同乙個使用者登入多次

root, student

程式:程序

程序:在每個程序看來,當前主機上只存在核心和當前程序

程序是程式的副本,程序是程式執行例項

使用者工作環境:

bash:

# $

shell,子shell

bash--bash

bash:

1、命令歷史、命令補全

2、管道、重定向

3、命令別名

4、命令列編輯

5、命令列展開

6、檔名通配

7、變數

8、程式設計

游標跳**

ctrl+a:跳到命令列首

ctrl+e:跳到命令行尾

ctrl+u: 刪除游標至命令列首的內容

ctrl+k: 刪除游標至命令行尾的內容

ctrl+l: 清屏

命令歷史:

檢視命令歷史:history

-c:清空命令歷史

-d offset [n]: 刪除指定位置的命令

-w:儲存命令歷史至歷史檔案中

環境變數

path:命令搜尋路徑

histsize: 命令歷史緩衝區大小

命令歷史的使用技巧:推薦一篇文章

《讓效率翻倍的bash技巧》

!n:執行命令歷史中的第n條命令;

!-n:執行命令歷史中的倒數第n條命令;

!!: 執行上一條命令;

!string:執行命令歷史中最近乙個以指定字串開頭的命令

!$:引用前乙個命令的最後乙個引數;  

esc, .:引用前乙個命令的最後乙個引數;

alt+.

命令補全: tab

搜尋環境變數path記錄的路徑。

路徑補全:tab

文字相關的命令

檢視:cat, tac, more, less, head, tail

統計:wc

處理:tr, cut, join

排序:sort

uniq

03_03_base特性詳解 

複習:bash特性:

命令歷史:

history-c         -w          -d

histsize

~/.bash_history

!n, !-n, !!, !string, !$

命令補全,路徑補全

命令補全:搜尋path環境變數所指定的每個路徑下以我們給出的字串開頭的可執行檔案,如果多於乙個,兩次tab,可以給出列表;否則將直接補全;

路徑補全:搜尋我們給出的起始路徑下的每個檔名,並試圖補全;

命令別名

定義:alias cmdalias='command [options] [arguments]'

在shell中定義的別名僅在當前shell生命週期中有效;別名的有效範圍僅為當前shell程序;

取消:unalias cmdalias

使用命令本身: \cmd

命令替換: $(command), 反引號:`command`

把命令中某個子命令替換為其執行結果的過程

eg:1. echo "the current directory is $(pwd)."

2. echo "file-$(date +%f-%h-%m-%s)"   -------------  file-2013-02-28-14-53-31.txt

%f     full date; same as %y-%m-%d

%h     hour (00..23)

%m     minute (00..59)

%s     second (00..60)

%t     time; same as %h:%m:%s

bash

支援的引號:

``: 反引號,命令替換

"": 弱引用,可以實現變數替換

'': 強引用,不完成變數替換

檔名通配,globbing

*: 任意長度的任意字元

?:任意單個字元

:匹配指定範圍內的任意單個字元

[abc], [a-m], [a-z], [a-z], [0-9], [a-za-z], [0-9a-za-z]

[:space:]:空白字元

[:punct:]:標點符號

[:lower:]:小寫字母

[:upper:]: 大寫字母

[:alpha:]: 大小寫字母

[:digit:]: 數字

[:alnum:]: 數字和大小寫字母

# man 7 glob 檢視這些內建特殊字元表示

[^]: (脫字元) 匹配指定範圍之外的任意單個字元

[[:alpha:]]*[[:space:]]*[[:alpha:]] : 字母開頭,字母結尾,中間有空格

練習:1、建立a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等檔案;注意,以上檔案是以逗號隔開的,其它符號都是檔名的組成部分;

2、顯示所有以a或m開頭的檔案;

ls [am]*

3、顯示所有檔名中包含了數字的檔案;

ls *[0-9]*

ls *[[:digit:]]*

4、顯示所有以數字結尾且檔名中不包含空白的檔案;

ls *[^[:space:]]*[0-9]?????????    --  正規表示式可以解決

5、顯示檔名中包含了非字母或數字的特殊符號的檔案;

ls *[^[:alnum:]]*

ls *[^a-za-z0-9]*

第四章 bash的特性

4.1 bash的特性 a 支援命令歷史 命令補全 b 支援管道 重定向 c 支援命令別名 d 支援命令列編輯 e 支援命令列展開 f 支援檔名通配 g 支援變數 h 支援程式設計 4.2 bash支援的引號 命令替換 弱引用,可以實現變數替換 強引用,不完成變數替換 4.3.1 游標跳轉 ctrl...

第四章 Django sitting詳解

1 staticstatic url static staticfiles dirs os.path.join base dir,static static用於存放靜態檔案,一般是css檔案 與templates一樣都是django可以識別的檔案。在sitting中需要將sitting檔案路徑新增,...

第四章 繼承

一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...