日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux+管道+分段,Linux中shell基础、重定向、管道符、环境变量

發布時間:2023/12/19 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux+管道+分段,Linux中shell基础、重定向、管道符、环境变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Linux中shell基礎、重定向、管道符、環境變量

1、什么是shell

Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口(命令解釋器)。它接收用戶輸入的命令并把它送入內核去執行。起著協調用戶與系統的一致性和在用戶與系統之間進行交互的作用。

Shell在Linux系統上具有極其重要的地位

2、命令解釋過程

Shell可以執行:內部命令、應用程序、shell腳本

3、Shell的種類

常見的各種版本的shell:

Bash(Bourne Again Shell)

bash是大多數Linux系統的默認Shell。bash與bsh完全向后兼容,并且在bsh的基礎上增加和增強了很多特性。bash也包含了很多C Shell和Korn Shell中的有點。bash有很多靈活和強大的變成接口,同時又有很友好的用戶界面。

Ksh(Korn Shell)

Korn Shell(ksh)由Dave Korn所寫。它是UNIX系統上的標準Shell。在Linux環境下有一個專門為Linux系統寫的Korn Shell的擴展版本,即Public Domain Korn(pdksh)

tcsh(csh 的擴展) tcsh是C Shell的擴展。tcsh與csh完全向后兼容,但它包含了更多的使用戶感覺方便的新特性。其最大的提高是在命令行編輯和歷史瀏覽方面。

4、Linux的元字符

在Shell中有一些具有特殊意義的字符,稱為Shell 元字符(shell metacharacters)。

若不以特殊方式(使用轉義字符)指明,Shell 并不會把它們當作普通文字符使用。

5、Bash的基本功能

歷史命令(history)

命 令:history 命令可以用來顯示曾執行過的命令,也可以根據顯示的治療來重新執行需要的命令

語 法:history(選項)(參數)

選 項:n 顯示n個最近的記錄

參 數:-a 添加記錄

-r 讀取記錄,但不會添加內容記錄

-w 覆蓋原有的history 文件

-c 清除記錄

-d[n] 刪除指定n條記錄

-n 讀取指定文件

-r 讀取文件但不記錄

-w 覆蓋原有文件

使用上下箭頭---調用以前的歷史命令

使用 "!n" 的方式---重復執行第n條歷史命令

使用 "!!" 的方式---重復執行上一條命令

使用 "!字符串" 的方式---重復執行最后一條以該字符串開頭的命令

使用 "!$" 的方式---重復執行上一條命令的最后一個參數

歷史命令存放在當前用戶家目錄下的 .bash_history 隱藏文件中。

3.2、標準輸出重定向(覆蓋)

命令:echo > aa

標準輸出重定向,先清空后寫入,如果文件不存在則創建,echo后面沒有接內容,則是清空文件。

3.3、標準輸出重定向(追加)

命令:echo "但是在冬季之后迎來的是春暖花開" >> aa

標準追加輸出重定向,想配置文件末尾追加內容

3.4、禁止覆蓋

如果在工作中,我們想要在文件中追加內容時 ">>",卻不小心寫入 ">" 就執行了,那么我們的我呢見就覆蓋了,這時候就需要禁止覆蓋了,命令:set -C

強制覆蓋 ">|"

禁止覆蓋命令:set -C ,解除禁制覆蓋命令:set +C

3.5、錯誤輸出從定向

命令:ls /root /error 1>a 2>b

將標準輸出和標準錯誤輸出從定向到不同文件

3.6、正確和錯誤都輸入到相同位置

命令:find /root -name "*.txt" &>ab

將標準輸出和標準錯誤輸出重定向到同一個文件,混合輸出

命令:cat a aa > ab

合并兩個文件內容至一個文件

3.7、重定向到空設備/dev/null

命令:ls /root /error >ab 2>/dev/null

空設備,即將產生的輸出丟掉

如果 /dev/null 設備被刪除

命令:rm -f /dev/null //刪除/dev/null設備

1、手動創建

命令:mkmod -m 666 /dev/null c 1 3

2、重啟自動創建

7、進程管道技術

管道操作符號 "|" 連接左右兩個命令,將右側的命令的標準輸出,交給右側命令的標準輸入

格式:cmd1 | cmd2 [...|cmdn]

將/etc/passwd 中的用戶按UID大小排序

命令:sort -t ":" -k3 -n /etc/passwd -r | head

命令:ip a|grep 'inet ' | awk '{print $2}' | awk -F "/" '{print $1}'

查看本地IP,打印以 "inet "開頭的行,以空格為分隔符截取第二段(默認以空格為分隔符),再以 "/" 為分隔符截取第一段。

7.1、tee 管道技術

功能:tee 指令會從標準輸入設備讀取數據,將其內容輸出到標準輸出設備,同時保存成文件或顯示。

命令:ip a|grep 'inet '|tee ip.txt | awk '{print $2}' | awk -F "/" '{print $1}'

將前一個程序產生的結果保存在指定文件中,并送至下一個程序。

7.2、參數傳遞 xargs

功能:將參數列表轉換成小塊分段傳遞給其他命令,讀入stdin的數據轉換為參數添加至命令行中,讓一些不支持管道的命令可以使用管道。

有些命令不支持管道技術,但是可以通過xargs來實現

8、shell 環境變量

1)環境變量定義shell的運行環境,保證shell 命令的正確執行;

2)Shell 用環境變量類確定查找路線、注冊目錄、終端類型、終端名稱、用戶名等;

3)所有環境變量都是全局變量(既可以傳遞給Shell 的子進程)。

8.1、常見的Shell 環境變量

變量名含義HOME用戶主目錄LOGNAME登錄名USER用戶名、與登錄名相同PWD當前目錄/工作目錄名MAIL用戶的郵箱路徑名HOSTNAME計算機的主機名INPUTRC默認的鍵盤映像SHELL用戶所使用的shell的路徑名LANG默認語言HISTSIZEhistory所能記住的命令的最多個數PATHshell查找用戶輸入命令的路徑(目錄列表)PS1、PS2shell一級、二級命令提示符

8.2、查看環境變量

Linux中set、env和 export 都可以查看環境變量

1)set 命令顯示當前shell 的變量,包括當前用戶的變量,set 主要用來顯示shell 的參數和選項

2)env 命令顯示當前用戶的變量,env 用來再構建的幻劍中運行命令

3)export 命令顯示當前導出成用戶變量的shell 變量

每個shell 都有自己特有的變量(set顯示的變量),這個和用戶變量不同,當前用戶變量和你用什么shell 無關,不管你用神那么shell 都在,比如HOME、SHELL等這些變量;但是shell 自己的變量不同,不如BASH_ARGC、BASH等這些變量只有set 才會顯示,時bash特有的;export 不加參數的時候,顯示哪些變量被導出了用戶變量,因為一個shell自己的變量可以通過 export "導出"變成一個用戶變量。

8.3、Linux下環境變量的設置

8.3.1、新建 /root/test/aa.sh 文件,并賦于可執行權限

自定義命令腳本,只需要把腳本目錄添加到環境變量中,就可以在任意目錄下執行該腳本。

8.3.2、定義系統提示符的變量

PS1:定義系統提示符的變量

\d:顯示日期,格式為“星期 月 日”

\h:顯示簡寫主機名。默認主機名“localhost”

\t:顯示24小時制時間,格式為"HH:MM:SS"

\T:顯示12小時制時間,格式為"HH:MM:SS"

\A:顯示12小時制時間,格式為"HH:MM"

\u:顯示當前用戶名

\w:顯示當前所在目錄的完整名稱

\W:顯示當前所在目錄的最后一個目錄

\#:執行的第幾個命令

\$:提示符。如果時root用戶會顯示為"#",如果時普通用戶顯示"$"

如:PS1='[\u@\h \w]\$' //將W改成小寫

8.3.4、預定義變量

預定義變量作用$?

最后一次執行的命令的返回狀態。如果這個變量的值為0,

證明上一個命令正確執行;如果這個變量的值為非0(具體時那個數,

由命令自己來決定),則證明上一個命令執行不正確了。

$$當前進程的進程號(PID)$!后臺運行的最后一個進程的進程號(PID)

8.3.5、用戶工作環境

用戶登錄系統時,shell 為用戶自動定義唯一的工作環境并對該環境進行維護直至用戶注銷。該環境將定義如身份、工作場所和正在運行的進程的特性。這些特性由指定的環境變量值定義。

用戶工作環境分為登錄環境和非登錄環境:1、登錄環境是指用戶登錄系統時的工作環境,此時的shell 對登錄環境而言時主shell;2、非登錄環境是指用戶在調用子shell 時所使用的用戶環境。

設置用戶工作環境

對所有用戶驚醒設置:

/etc/profile

/etc/bashrc

只對當前用戶進行設置

~/.bash_profile

~/.bashrc

通常,個人bash 環境設置都定義在~/.bashrc文件里。

轉載自:https://www.cnblogs.com/qiuyu666/p/11943852.html返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的linux+管道+分段,Linux中shell基础、重定向、管道符、环境变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。