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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧

發(fā)布時(shí)間:2024/10/8 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

知識(shí)點(diǎn)如下:

1,關(guān)于shell編程中的變量,shell編程中的變量分為4種

本地變量:只對(duì)本系統(tǒng)本用戶自己的shell有用

環(huán)境變量:對(duì)本系統(tǒng)的所有shell都有用? 用export來聲明變量? 例如:export

A=1? 另外:查看系統(tǒng)能用的shell的命令是cat /etc/shells

查看系統(tǒng)當(dāng)前用戶正使用的shell的命令:echo $SHELL

特殊變量:是bash內(nèi)置的變量,用于調(diào)用bash腳本編程環(huán)境的一些特殊的執(zhí)行結(jié)果

比如:$?? 它的作用是表明上一個(gè)命令是否執(zhí)行成功,在linux中 0 表

示成功,非零的都是錯(cuò)誤,不同的值表示的錯(cuò)誤不一樣

位置變量:可以直接向腳本中傳遞參數(shù)并且被腳本調(diào)用的變量,例如 $1? $2? $3...

能夠進(jìn)行算術(shù)運(yùn)算的幾個(gè)特殊符號(hào):$[]? $(( )) 例如:a=3 b=5 echo "$[$a+$b]"

2,關(guān)于PS1? echo $PS1? export PS1='[\u@\h \w]\$'

3,變量的文件一般都是放在一下幾個(gè)文件里的

按控制范圍分為:

全局變量:/etc/profile? /etc/profile.d/*,/etc/bash.rc

局部變量:~/.bash_profile ~/.bash.rc? ~/.bash_logout

按作用類型分為:

profile類:設(shè)置環(huán)境變量?? 和??? 運(yùn)行用戶登錄要運(yùn)行的一些命令

bashrc 類:設(shè)置別名???????和???? 設(shè)置本地變量

解決關(guān)于腳本為什么有時(shí)候不能用的問題

shell分為交互式登錄shell 和非登錄shell

所謂登錄shell就是在用戶進(jìn)入系統(tǒng)的時(shí)候才開始執(zhí)行的shell

讀取順序:/etc/profile-->/etc/profile.d/*-->~/.bash_profile--

>~/.bashrc/-->/etc/bashrc(越往后優(yōu)先級(jí)越高)

非登錄shell就是用戶還沒有進(jìn)入系統(tǒng)的時(shí)候就已經(jīng)開始執(zhí)行的shell

~/.bashrc-->/etc/bashrc-->/etc/profile.d/*(越往后優(yōu)先級(jí)越高)

4,關(guān)于輸入輸出重定向以及管道

標(biāo)準(zhǔn)輸入:/dev/stdin????????0

標(biāo)準(zhǔn)輸出:/dev/stdout?????? 1????????>??(前面省略1)

標(biāo)準(zhǔn)錯(cuò)誤輸出:/dev/stderr?? 2??????? 2>

如果想實(shí)現(xiàn)正確錯(cuò)誤輸出都到一個(gè)文件,則 用??? &>

小技巧:很多情況下我們?cè)诙ㄏ蛞粋€(gè)內(nèi)容的時(shí)候,我們?nèi)绻?gt; 我們很可能會(huì)把

一個(gè)文件以前的內(nèi)容弄丟,這個(gè)時(shí)候我們可以用set -C開啟一個(gè)

功能 即 不會(huì)讓文件被覆蓋掉

關(guān)閉這個(gè)功能用set +C

管道:

echo "123456" | passwd --stdin? redhat (用一個(gè)命令直接創(chuàng)建一個(gè)用戶

redhat,密碼是123456)? passwd --stdin 表示從現(xiàn)實(shí)器上讀取密碼

(passswd默認(rèn)情況下是從鍵盤讀入密碼)

命令tee:tee就是一個(gè)丁字路口 ,把一個(gè)輸入流分給兩個(gè)部分如:

ls /etc |tee? /tmp/txt.txt | less (把etc下的內(nèi)容給txt.txt,并且顯示出來)

自定義文件輸出重定向:

在我們編寫腳本的時(shí)候我們常常要往一個(gè)文件里面寫很多東西,為了提高效率

我們用這個(gè)命令 exec 3> /etc/out.txt? 然后我們向out.txt里面定向內(nèi)容?的時(shí)候我們就可以?? ls -l /etc? >&3,其實(shí)文件是被寫到了/out.txt里了(這種放法在要多次向一個(gè)文件里定向內(nèi)容的時(shí)候很有用,可以極大地提高讀寫效率)

關(guān)閉則用:exec 3>&-

5,循環(huán)語句:for?變量? in??隊(duì)列;do

statement 1

statement 2

done

三種不同寫法:

for? I   in 1 2 3 4 5=

for? I???? in?? `seq 1 5`=

for??I?????in???(1..5)

隊(duì)列可以分為以下幾個(gè)類型:

簡(jiǎn)單列表:1 2 3 6 7

復(fù)雜列表:this is tom's? cat (這里’會(huì)被當(dāng)成一個(gè)字符,所以用的時(shí)候應(yīng)該這樣寫 \' 表示轉(zhuǎn)義)

從變量讀:in? `seq 1 $max`

從命令讀: `ls /var`

通配符? :?for i in /var/*

6,???tail -2 /etc/passwd | cut -d: f1? 截取/etc/passwd 下后兩行的內(nèi)容,然后以”:“為分割取第一部分?? (這個(gè)命令很有用)

7,grep與正則表達(dá)式:

grep :

-i????????????????????????? 不區(qū)分大小寫

-v??????????????????????????顯示沒有匹配到的行

-n??????????????????????????顯示匹配到的行和它的行號(hào)

An?????????????????????????? 連收索到的前n行也顯示

Bn?????????????????????????????///后n行顯示

Cn???????????????????????????context,上下文

--color?????????????????????? 匹配到的竄高亮顯示

定義:有一堆的元字符組成,表達(dá)的不是自己本身的意思,而是其他的意思

算了 ,正則表達(dá)式本人還沒有完全理解,以后會(huì)以一篇專門的博文給出,今天

不在這里寫了 ,SEE YOU !

總結(jié)

以上是生活随笔為你收集整理的linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。