Linux之認識和學習bash

2021-07-03 22:27:03 字數 3587 閱讀 4651

1.學習shell的主要原因:1.文字介面的shell在各大distribution都一樣,2.遠端管理時文字介面速度較快3.linux內很多控制都是shell寫的

2.系統合法的shell都寫在/etc/shells中

3.使用者預設登入取得的shell記錄於/etc/passwd的最後乙個字段

4.bash的主要功能:1.命令的編修能力2.命令與檔案的補全功能3.命名別名的設定4.工作控制,前景背景控制5.程式化指令碼6.萬用字元

5.type可以用來找到執行命令為何種型別,也用於與which相同的功能

type [tpa] name

type 不加任何引數時會顯示出name是內部命令還是外部命令

-t:將name以file(表示外部命令),alias(該命令為命令別名所設定的名稱),builtin(bash內建的命令功能)顯示意義

-p:name為外部命令時才會顯示完整檔名

-a:由path變數定義的路徑中將所有含name的命令都列出來,包含alias

6.echo:變數的顯示

unset:取消變數的方法

locate:列出所有的相關檔名

7.用env檢視環境變數與常見環境變數的說明 env

用set檢視所有變數(含環境變數與自定義變數)set

用export將自定義變數轉成環境變數 export 變數名

8.$?也是變數,是前乙個指令執行完之後的回傳值,0表示成功

9.locale:影響顯示結果的語系變數

10.read:讓使用者由鍵盤輸入變數的值

read [-pt] variable

-p:可以接提示符

-t:接等待的秒數,不會一直等待使用者

11.declare:宣告變數的型別

declare [-aixr] variable

-a:定義為陣列型別

-i:定義為整數型別

-x:與export一樣,將變數變為環境變數

-r:將變數設為唯讀型別,不可更改不可重置

12.ulimit:限制使用者使用資源的情況

ulimit [shacdfltu] [配額]

-h:嚴格限制

-s:警告的設定

-a:列出所有的限制額度

-f:可以建立的最大檔案容量

13.bash的配置檔案主要分為login shell和 non-login shell

login shell 主要讀取/etc/profile與~/.bash_profile

non-login shell 僅讀取~/.bashrc

14.萬用字元:*,?,

*:代表0到無窮多個任意字元

?:代表一定有乙個任意字元

:一定有乙個在中括號內的字元

15.資料流重導向:

標準輸入:**為0,使用《或<<

標準輸出:**為1,使用》或》

標準錯誤輸出:**為2,使用2>或2>>

16.連續命令的下達

cmd1;cmd2:不考慮命令相關性的連續命令執行

cmd1&&cmd2:若cmd1執行完且正確,則開始執行cmd2

若cmd1執行完卻錯誤,則不執行cmd2

cmd1||cmd2:若cmd1執行完且正確執行,則不執行cmd2

若cmd1執行完且為錯誤,則開始執行cmd2

17.管道命令:|

管道命令僅會處理standard output,對於standard error output會予以忽略

管道命令必須要能夠接受來自前乙個指令的資料成為standard input繼續處理才行

18.管道主要命令:

(1)cut:將一段資訊的某一段切割出來

cut -d 『分隔符』 -f fields

cut -c 字元範圍

(2)grep:分析一行資訊,將想要的資訊拿出來

grep [-acinv] [–color=auto] 『查詢字串』 filename

-a:將binary檔案以text檔案的方式查詢資料

-c:計算找到字串的次數

-i:忽略大小寫的不同

-n:順便輸出行號

-v:反向選擇

(3)排序命令sort:

sort [-fbmnrtuk] [file or stdin]

-f :忽略大小寫地 差異

-b:忽略最前面空格符的部分

-m:以月份的名字來排名

-n:以純數字進行排名

-r:反向排名

-u:相同資料中僅出現一行代表

-t:分隔符,預設用【tab】

-k:以那個區間進行排序

(4)uniq:排序完成後將重複的資料僅列出乙個顯示

uniq -i:忽略大小寫字元的不同

uniq -c:進行計數

(5)wc:計算輸出的資訊的整體資料

wc -l:僅列出行

wc -w:僅列出多少字

wc -m:多少字元

tee:雙向重定向,將資料流送與檔案與螢幕

tee [-a] file:以累加的方式將資料加入到file當中

(6)tr:用來刪除一段資訊中的文字,或者進行文字資訊的替換

tr [-ds] set1…

-d:刪除資訊當中set1這個字串

-s:替換掉重複的字元

(7)col [-xb]

-x:將【tab】鍵轉換成對等的空格鍵

-b:在文字內有反斜槓(/)時,僅保留反斜槓最後接的那個字元

(8)join 將兩個檔案當中有相同資料的那一行加在一起

join [-ti12] file1 file2

-t:預設以空格分割資料並且對比第乙個欄位的資料

-i:忽略大小寫

-1:代表第乙個檔案要用哪個欄位來分析

-2:代表第二個檔案要用哪個欄位來分析

(9)paste:直接將兩行貼在一起,且用【tab】鍵隔開

paste [-d] file1 file2

-d:後接分隔符,預設以tab分隔

-:若file部分寫成-,表示來自standard input的資料的意思

(10)expand:將tab按鍵轉成空格鍵

expand [-t] file

-t:後接數字,一般來說乙個tab鍵可以用8個空格鍵來替換

(11)split:將乙個大檔案依據檔案大小或行數切割成小檔案

split [-bl] file prefix

-b:後接欲切割的檔案大小可加b,k,m單位

-l:以行數來進行切割

prefix:代表前導符,代表切割檔案的前導文字

(12)xargs:可以讀入stdin的資料,並以空格符或斷行字元進行分辨,將stdin資料分割成arguments

xargs [-0epn] command

-0:若輸入的stdin含有特殊字元可以將其還原成一般字元

-e:eof,xargs分析到這個字串時將會停止工作

-p:執行每個命令的引數時會詢問使用者的意思

-n:後接次數,每次command執行時,要使用幾個引數的意思

Linux學習之路8(3) 認識和學習bash

乙個命令有了別名的時候,比如 alias echo echo n 那麼執行echo的時候是執行echo還是echo n呢?type aecho 檢視命令的執行順序。進入linux的控制台後,會有提示資訊 這些資訊放在 etc issue這個檔案中。用vim編輯器編輯後儲存,就可以修改這些資訊。在控制...

Linux學習之路8(4) 學習和認識bash

在linux中有乙個容器,它會記入剛剛執行過得命令是否正確,這個容器的大小為1個字元。檢視方式 echo 如果正確,那麼是乙個0,如果不正確,那麼是乙個整數。命令的連線方式 作為連線符的時候,當其中乙個為假是,那麼這個命令不會執行,如果第乙個就錯了,那麼第二個命令直接不會執行。作為連線符的時候,如果...

Linux學習篇 認識與學習bash

一 硬體 核心與shell 1 什麼是shell 通過shell 就是命令列模式 來操作應用程式,讓這些應用程式呼叫核心來執行所需要的工作 只要能操作應用程式的介面都能成為shell 2 什麼叫bash linux使用的shell版本成為 bourne again shell 簡稱bash,是基於g...