91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中bash是什么

發布時間:2021-10-15 09:45:13 來源:億速云 閱讀:235 作者:小新 欄目:系統運維

這篇文章將為大家詳細講解有關linux中bash是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

只要能夠操作應用程序的接口都能稱為shell。狹義的shell指的是命令行方面的軟件,包括bash。廣義的shell則包括圖形界面軟件,因為圖形界面其實也可以操作各種應用程序來調用內核工作,不過,在這里我們主要指的是bash。

# type [-tpa] command –> 查看命令是否為bash的內置命令或者是外部命令

* 利用$var或者是${var}可獲取變量var的值

* bash中的雙引號:特殊字符如$等,可以保有原本的特性

* bash中的單引號:所有的字符均為普通的字符,沒有其他含義

* 可以用\將特殊字符變成一般字符

* 可用$(其他命令)來在命令中嵌套其他命令的返回值,也就是說:${var}取得變量var的值,$(command)取得命令返回值

* 若變量需要在其他子進程中執行,需要export var 來使變量成為環境變量

* unset var 可取消變量var的定義

====環境變量====

# env –> 查看當前系統的環境變量

$本身也是一個變量,表示本shell的PID號,比如 # echo $$ 輸出本shell的PID

?本事也是一個變量,表示上一個執行的命令的返回值,一般如果是0表示執行成功,如果非0表示有問題。

公共的語系編碼設置:/etc/sysconfig/i18n

# read  [-pt]  variable –> 鍵盤讀取變量輸入值

-p:后面可以跟提示符

-t:后面可以接等待的秒數,不會一直等待用戶輸入

====變量的聲明====

# declare [-aixrp] var

-a:將后面的var定義為數組類型

-i:將后面的var定義為integer整數類型

-x:用法與export一樣,就是將后面的var變成環境變量

-r:將變量var設置成readonly狀態,該變量不能被更改,也不能重設

-p:單獨列出變量的類型

如果把-改成+表示取消操作

====限制用戶的計算機資源使用====

# ulimit [-SHacdfltu] [配額]

-H:hardlimit,嚴格的限制,必定不能超過這個數值

-S:softlimit,可以超過這個值,但有警告信息

-a:后面不接任何參數,列出所有的限制額度

-c:某些進程發生錯誤的時候,系統會將該進程在內存中的信息寫成文件,稱為內核文件。限制每個內核文件的最大容量

-f:此shell可創建的最大單一文件容量,單位為KB

-d:進程可以使用的最大內存量

-l:可用于lock的內存量

-t:最大的CPU時間(單位為秒)

-u:單一用戶可使用的最大進程(process)數量

====變量內容的刪除與替換====

# echo ${path#/*:} –> 刪除path變量中最前面的那個以/開頭,以:結尾的

# echo ${path##/*:} –> 刪除最長的那個,也就是說只保留了最后的一個路徑

# –> 符合替換文字的最短的那個

## –> 符合替換文字的最長的那個

如果想從后面開始刪,用%替換#即可

接下來講替換功能:

# echo ${path/sbin/SBIN} –> 將第一個sbin替換成SBIN

# echo ${path//sbin/SBIN} –> 將所有的sbin替換成SBIN

我們將這部分總結說明下一下:

變量設定方式說明
${變量#關鍵字}
${變量##關鍵字}
若變量內容從頭開始的數據符合『關鍵字』,則將符合的最短數據刪除
若變量內容從頭開始的數據符合『關鍵詞』,則將符合的最長數據刪除
${變量%關鍵字}
${變量%%關鍵字}
若變量內容從尾向前的數據符合『關鍵字』,則將符合的最短資料刪除
若變量內容從尾向前的數據符合『關鍵字』,則將符合的最長資料刪除
${變量/舊字串/新字串}
${變量//舊字串/新字串}
若變量內容符合『舊字串』則『第一個舊字串會被新字串取代』
若變量內容符合『舊字串』則『全部的舊字串會被新字串取代』

# username=${username:-root}  –> 如果username非空就取原值,如果沒有設置或者為空字符串就設置成root

====bash登錄界面與登錄成功后的歡迎界面====

tips:最好是單一bash登陸,然后利用job control來切換不同的工作,這樣的話shell的history才能完全保存下來

命令的執行搜索路徑順序:先alias,再builtin,再$PATH

bash的登陸界面配置文件:/etc/issue,遠處登陸界面配置文件:/etc/issue.net

命令# man mingetty查看issue中各個代碼的意義

登陸成功后顯示的信息配置文件:/etc/motd

====bash環境變量====

login shell的配置文件:

/etc/profile:系統全局配置文件,最好不要修改這個文件

~/.bash_profile或者~/.bash_login或者~/.profile:用戶自定義bash配置文件

~/.bashrc,這個配置文件login shell和non-login shell都會讀取

====bash中的通配符和特殊字符====

符號意義
*代表『 0 個到無窮多個』任意字符
?代表『一定有一個』任意字元
[ ]同樣代表『一定有一個在括號內』的字元(非任意字元)。例如 [abcd] 代表『一定有一個字元, 可能是 a, b, c, d 這四個任何一個』
[ - ]若有減號在中括號內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表 0 到 9 之間的所有數字,因為數字的語系編碼是連續的!
[^ ]若中括號內的第一個字元為指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有一個字元,只要是非 a, b, c 的其他字元就接受的意思。

除了通配符之外,bash 環境中的特殊符號有哪些呢?底下我們先匯整一下:

符號內容
#注釋符號:這個最常被使用在 script 當中,視為說明#在后的語句均不執行
\跳脫符號:將『特殊字符或萬用字符』還原成一般字元
|管道 (pipe):分隔兩個管道命令的界定(后兩節介紹);
;連續指令下達分隔符:連續性命令的界定 (注意!與管道命令不相同)
~使用者的家目錄
$取用變量前置字元:亦即是變量之前需要加的變量取代值
&工作控制 (job control):將指令變成背景下工作
!邏輯運算意義上的『非』 not 的意思!
/目錄符號,路徑分割符號
>, >>數據流重導向:輸出導向,分別是『取代』與『累加』
<, <<數據流重導向:輸入導向 (這兩個以后說明)
&lsquo; &lsquo;單引號,里面全是普通字符,不具備變量置換功能
” “具有變量置換的功能!
` `兩個『 ` 』中間為可以先執行的指令,亦可使用 $( )
( )在中間為子 shell 的起始與結束
{ }在中間為命令區塊的組合!

====數據流重導向====

1,標準輸入(stdin):代碼為0,使用<或者<<

2,標準輸出(stdout):代號為1,使用>或者>>

3,標準錯誤輸出(stderr):代號為2,使用2>或者2>>

>表示清空后添加,>>表示累加添加,append的意思。了解?o(╯□╰)o

<表示原本由鍵盤輸入的改由文件輸入,而<<則表示遇到后面的字符串的時候結束輸入。

/dev/null:超級黑洞,它會吃掉任何導向到它的數據流,很強大的,不是麼。

正確和錯誤輸出到同一個文件的語法格式:

find /home -name .bashrc > list 2>&1

====管道命令====

管道命令需要注意的是:

1,管道命令僅能處理standard output,對于stderr會忽略掉

2,管道命令必須要能夠接受來自前一個命令的數據成為standard input繼續處理才行

====選取命令cut和grep====

# cut -d &lsquo;分割字符&rsquo;  -f  fields <== 用于分割字符

# cut -c 字符范圍  <== 用于排列整齊的信息

-d:后面接分割字符,與-f一起使用

-f:依據-d的分割字符將一段信息切割成為數段,用-f取出第幾段的意思(-f  3,5)

-c:以字符的單位取出固定字符區間 (-c 12-34)

grep以行為單位分析信息,如果該行符合條件,則把該行提出出來

# grep [-acinv] [--color=auto]  &rsquo;查找的字符串&rsquo;  filename

-a:將binary文件以text文件方式查找

-c:計算找到&rsquo;查找的字符串&rsquo;的次數

-i:忽略大小寫

-n:順便輸出行號

-v:反向選擇,即顯示出沒有 &lsquo;字符串&rsquo;內容的那些行

&ndash;color=auto : 關鍵字加上顏色

====排序命令sort,wc,uniq====

# sort  [-fbMnrtuk]  [file  or  stdin]

-f:忽略大小寫

-b:忽略最前面的空格

-M:以月份的名字排序

-n:使用數字排序(默認是文字來排序)

-r:反向排序

-u:就是uniq,相同的數據中,僅出現一行代表

-t:分隔符,默認以TAB分割

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

# cat /etc/passwd | sort -t “:” -k 3  <== 以第三列進行排序

# last | cut -d &lsquo; &lsquo; -f 1 | sort

# uniq [-ic] <==排序完成后將重復的數據僅列出一個顯示

-i:忽略大小寫

-c:進行計數

# last | cut -d &lsquo; &lsquo; -f1 | sort | uniq -ic

# wc [-lwm]  <== 行數,字數,字符數統計命令

-l:僅列出行

-w:僅列出多少字(英文單詞word)

-m:多少字符(char)

# cat /etc/man.config | wc

====雙向重定向tee====

# tee [-a]  file

-a:以累加(append)方式,將數據加入到file中

# ls -l /home | tee -a ~/homefile | more

====字符轉換命令:tr,col,join,paste,expand====

# tr [-ds] SET1 &hellip;

-d:刪除信息中的SET1這個字符串;

-s:替換掉重復的字符

# last | tr -s &lsquo;[a-z]&lsquo; &lsquo;[A-Z]&lsquo;

# cat /etc/passwd | tr -d “:”

# col  [-xb]

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

-b:如果在文字內有反斜杠(\),僅保留反斜杠最后接的字符

# join  [-ti12]  file1 file2

-t:join默認以空格符分割數據,并且對比第一個字段的數據,如果相同,合并到一行,且第一個字段放在第一個

-i:忽略大小寫

-1:代表第一個文件要用那個字段來分析

-2:代表第二個文件要用哪個字段來分析

# join -t “:” -1 4 /etc/passwd -2 3 /etc/group

# paste [-d] file1 file2 &hellip;

-d:后面可以接分割字符,默認以tab來分割

-:如果-file寫成-,則表示來自stdin的數據

# expand [-t] file

-t :后面接數字,表示一個tab鍵可以轉換成幾個空格鍵

# grep &lsquo;^MANPATH&rsquo; /etc/man.config  | head  -n 3 | expand -t 6 &ndash; | cat -A

====切割命令split==== 

# split [-bl] -file PREFIX

-b:后面接欲切割成的文件的大小,可以加單位,如b,k,m,g等

-l:以行數進行切割

PREFIX:前導符,可作為切割文件的前導文字

# split -b 300k /etc/termcap tercap

====參數代換xargs====

# xargs [-0epn] command

-0:如果輸入的stdin含有特殊字符,比如`,\,空格鍵等,這個參數可以將其還原成一般字符

-e:EOF,后面可以接一個字符串,當xargs遇到這個字符串的時候,就停止繼續工作

-p:每次執行命令的參數時,詢問用戶

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

# cut -d &lsquo;:&rsquo; -f1 /etc/passwd | xargs -p -n 5 finger

使用xargs的原因是:很多命令其實不支持管道命令,因此我們可以通過xargs來提供該命令引用stdin之用。

# find /sbin -perm +7000 | xargs ls -l  <== 找出/sbin下具有特殊權限的文件名

===============END====================

關于“linux中bash是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安平县| 内乡县| 黎城县| 新干县| 荔波县| 高青县| 旅游| 循化| 新龙县| 吕梁市| 启东市| 石首市| 黄梅县| 南华县| 县级市| 横山县| 武威市| 巴南区| 光泽县| 盱眙县| 阿合奇县| 松原市| 历史| 南昌县| 来安县| 沙田区| 湘潭县| 北票市| 天柱县| 商城县| 乐东| 芮城县| 古田县| 岳池县| 富锦市| 炉霍县| 武清区| 永州市| 饶平县| 简阳市| 雷山县|