linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧
知識點如下:
1,關于shell編程中的變量,shell編程中的變量分為4種
本地變量:只對本系統本用戶自己的shell有用
環境變量:對本系統的所有shell都有用? 用export來聲明變量? 例如:export
A=1? 另外:查看系統能用的shell的命令是cat /etc/shells
查看系統當前用戶正使用的shell的命令:echo $SHELL
特殊變量:是bash內置的變量,用于調用bash腳本編程環境的一些特殊的執行結果
比如:$?? 它的作用是表明上一個命令是否執行成功,在linux中 0 表
示成功,非零的都是錯誤,不同的值表示的錯誤不一樣
位置變量:可以直接向腳本中傳遞參數并且被腳本調用的變量,例如 $1? $2? $3...
能夠進行算術運算的幾個特殊符號:$[]? $(( )) 例如:a=3 b=5 echo "$[$a+$b]"
2,關于PS1? echo $PS1? export PS1='[\u@\h \w]\$'
3,變量的文件一般都是放在一下幾個文件里的
按控制范圍分為:
全局變量:/etc/profile? /etc/profile.d/*,/etc/bash.rc
局部變量:~/.bash_profile ~/.bash.rc? ~/.bash_logout
按作用類型分為:
profile類:設置環境變量?? 和??? 運行用戶登錄要運行的一些命令
bashrc 類:設置別名???????和???? 設置本地變量
解決關于腳本為什么有時候不能用的問題
shell分為交互式登錄shell 和非登錄shell
所謂登錄shell就是在用戶進入系統的時候才開始執行的shell
讀取順序:/etc/profile-->/etc/profile.d/*-->~/.bash_profile--
>~/.bashrc/-->/etc/bashrc(越往后優先級越高)
非登錄shell就是用戶還沒有進入系統的時候就已經開始執行的shell
~/.bashrc-->/etc/bashrc-->/etc/profile.d/*(越往后優先級越高)
4,關于輸入輸出重定向以及管道
標準輸入:/dev/stdin????????0
標準輸出:/dev/stdout?????? 1????????>??(前面省略1)
標準錯誤輸出:/dev/stderr?? 2??????? 2>
如果想實現正確錯誤輸出都到一個文件,則 用??? &>
小技巧:很多情況下我們在定向一個內容的時候,我們如果用> 我們很可能會把
一個文件以前的內容弄丟,這個時候我們可以用set -C開啟一個
功能 即 不會讓文件被覆蓋掉
關閉這個功能用set +C
管道:
echo "123456" | passwd --stdin? redhat (用一個命令直接創建一個用戶
redhat,密碼是123456)? passwd --stdin 表示從現實器上讀取密碼
(passswd默認情況下是從鍵盤讀入密碼)
命令tee:tee就是一個丁字路口 ,把一個輸入流分給兩個部分如:
ls /etc |tee? /tmp/txt.txt | less (把etc下的內容給txt.txt,并且顯示出來)
自定義文件輸出重定向:
在我們編寫腳本的時候我們常常要往一個文件里面寫很多東西,為了提高效率
我們用這個命令 exec 3> /etc/out.txt? 然后我們向out.txt里面定向內容?的時候我們就可以?? ls -l /etc? >&3,其實文件是被寫到了/out.txt里了(這種放法在要多次向一個文件里定向內容的時候很有用,可以極大地提高讀寫效率)
關閉則用:exec 3>&-
5,循環語句:for?變量? in??隊列;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)
隊列可以分為以下幾個類型:
簡單列表:1 2 3 6 7
復雜列表:this is tom's? cat (這里’會被當成一個字符,所以用的時候應該這樣寫 \' 表示轉義)
從變量讀:in? `seq 1 $max`
從命令讀: `ls /var`
通配符? :?for i in /var/*
6,???tail -2 /etc/passwd | cut -d: f1? 截取/etc/passwd 下后兩行的內容,然后以”:“為分割取第一部分?? (這個命令很有用)
7,grep與正則表達式:
grep :
-i????????????????????????? 不區分大小寫
-v??????????????????????????顯示沒有匹配到的行
-n??????????????????????????顯示匹配到的行和它的行號
An?????????????????????????? 連收索到的前n行也顯示
Bn?????????????????????????????///后n行顯示
Cn???????????????????????????context,上下文
--color?????????????????????? 匹配到的竄高亮顯示
定義:有一堆的元字符組成,表達的不是自己本身的意思,而是其他的意思
算了 ,正則表達式本人還沒有完全理解,以后會以一篇專門的博文給出,今天
不在這里寫了 ,SEE YOU !
總結
以上是生活随笔為你收集整理的linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 度小满还款方式
- 下一篇: SpaceX星际飞船原型SN15成功着陆