亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

Shell學習筆記

2024-06-28 13:23:51
字體:
來源:轉載
供稿:網友
Shell學習筆記

都是一些零碎的知識,遇到什么寫什么吧!

1、shell腳本參數

C用(int *argc, char *argv[])處理參數,python sys.argv[0](腳本名字)、sys.argv[1]、sys.argv[2]等表示各個參數,shell腳本自己處理命令參數的方式如下:

(1) $# 傳遞到腳本的參數個數,不包括腳本命令本身。如判斷參數是否是2個:

   #!/bin/bash   if [ $# != 2 ]; then                                                                                                                          echo "Error! should need 2 parameters!"       exit 1   fi

(2) $0 腳本名字;$1,$2,......依次表示第一個參數,第二個參數,。。。。。。

(3) $* 以一個單字符串顯示所有向腳本傳遞的參數,此選參數可超過9個。如:

若腳本參數為./test.sh arg1 arg2,則執行echo  $*,結果為:"arg1 arg2"

(4) $$ 腳本運行的當前進程ID號。

(5) $! 后臺運行的最后一個進程的進程ID號。

(6) $@ 與$*相同,但是使用時加引號,并在引號中返回每個參數。如:

若腳本參數為./test.sh arg1 arg2,則執行echo  $*,結果為:"arg1""arg2"  與#*的差別,每個參數都是一個單獨的字符串。

(7) $- 顯示shell使用的當前選項,與set命令功能相同。(搞不懂)

(8) $? 顯示最后命令的退出狀態。 0表示沒有錯誤,其他任何值表明有錯誤。如:

ls ./echo $?$?為0表示ls命令執行成功。

2、管道與重定向

管道操作符”|“,輸出左邊命令傳出的正確輸出信息,對與stderr信息沒有直接處理能力。然后,傳遞給右邊的命令,作為stdin。

要求:

(1) 管道命令只處理前一個命令正確輸出,不處理錯誤輸出;

(2) 管道命令右邊命令,必須能夠接收標準輸入流命令才行。如cat test.txt | ls ,ls不支持stdin,左邊的數據將被丟棄。

$ cat display.sh | lscall.py     libtest3.so  libtest.so    send_mail_text.py  test3.cpp  test4.cppdisplay.sh  libtest4.so  PRintfile.sh  test2.cpp          test3.so   test.c

重定向:

左邊命令應該有標準輸出 > 或者>> 右邊只能是文件

左邊命令應該有標準輸入 < 或者<< 右邊只能是文件

管道是觸發了兩個子進程執行"|"兩邊的程序,而重定向是在一個進程內執行。

3、shell與export首先要知道用戶登錄linux系統之后,系統會啟動一個用戶shell。在該shell下執行shell腳本,會創建一個子shell,子shell可以共享父shell的環境變量,父shell卻不能共享定義在子shell中的環境變量。子shell中定義的環境變量只在該子shell中有效。

在shell中執行程序時,shell會提供一組環境變量,export可新增、修改和刪除環境變量,供后續執行的程序使用。export設置的變量效用只在該次登錄中有效。

語法:export [-fnp] [變量名稱]=[變量設置值]

參數:

-f代表[變量名稱中為]函數名稱。

-n刪除指定變量,實際上并未刪除,只是不會輸出到后續指令的執行環境中。

-p列出所有shell賦予程序的環境變量,默認參數。如:

Test@Ubuntu:~/code$ export   //等同 export -pdeclare -x HOME="/home/Test"declare -x LANG="zh_CN.UTF-8"declare -x LANGUAGE="zh_CN:en_AU:en_CA:en_GB:en_NZ:en_US:en"declare -x LC_ADDRESS="zh_CN.UTF-8"/*中間省略*/declare -x TERM="linux"declare -x USER="Test"declare -x XDG_RUNTIME_DIR="/run/user/1000"declare -x XDG_session_ID="1"
</pre><pre name="code" class="plain">Test@ubuntu:~/code$ export mytest="Hi"
<pre name="code" class="plain">Test@ubuntu:~/code$ export declare -x HOME="/home/Test"declare -x LANG="zh_CN.UTF-8"declare -x LANGUAGE="zh_CN:en_AU:en_CA:en_GB:en_NZ:en_US:en"declare -x LC_ADDRESS="zh_CN.UTF-8"/*中間省略*/declare -x TERM="linux"declare -x USER="Test"declare -x XDG_RUNTIME_DIR="/run/user/1000"declare -x XDG_SESSION_ID="1"declare -x mytest="Hi"

Test@ubuntu:~/code$ export -n mytestTest@ubuntu:~/code$ export declare -x HOME="/home/Test"declare -x LANG="zh_CN.UTF-8"declare -x LANGUAGE="zh_CN:en_AU:en_CA:en_GB:en_NZ:en_US:en"declare -x LC_ADDRESS="zh_CN.UTF-8"/*中間省略*/declare -x TERM="linux"declare -x USER="Test"declare -x XDG_RUNTIME_DIR="/run/user/1000"declare -x XDG_SESSION_ID="1"

因為export添加的環境變量是臨時有效,要想永久有效就得添加到文件中:

(1)在/etc/profile文件中添加變量,對所有用戶永久有效。例如:
#vi    /etc/profileexport CLASSPATH=./java_HOME/lib;$JAVA_HOME/jre/libexport PATH="$PATH:/home/Test"    //在原PATH變量上添加數據
<span style="font-family: Arial, Helvetica, sans-serif;">注:修改文件后要想馬上生效還要運行source /etc/profile,不然只能在下次重進此用戶時生效。</span>
(2)在用戶目錄下的.bash_profile(該文件在不同的linux系統下,文件名不同,有的是.profile,基本以profile結尾,可以用man bash查詢)文件中添加環境變量,對該用戶永久有效。用法跟上面相同。關于source,用法為:source FileName,作用是在當前bash環境下讀取并執行FileName中的命令,該FileName可以沒有執行權限。注意該命令中的腳本是在當前bash環境下執行,沒有產生子shell,所以腳本添加的變量也能被當前shell所共享,跟直接執行腳本產生子shell不太一樣。如同樣的腳本Test.sh:
#!/bin/bash     export mytest="Hi"
用source Test.sh方式執行,mytest環境變量就可以添加到當前shell環境中,./Test.sh方式直接執行則不能。另外,source命令常用“.”來代替。source Test.sh與 . Test.sh等效。:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人网在线| 另类专区欧美制服同性| 欧美日韩中文字幕在线视频| 亚洲国产精品久久久久秋霞蜜臀| 久久久久久久一区二区三区| 欧美性色视频在线| 久久手机免费视频| 亚洲女性裸体视频| 色综合久久久888| 国产一区私人高清影院| 日韩av在线直播| 欧美日韩亚洲一区二区三区| 青青在线视频一区二区三区| 一个人看的www久久| 日韩精品亚洲元码| 亚洲va电影大全| 亚洲成人精品视频在线观看| 北条麻妃一区二区三区中文字幕| 欧美一区在线直播| 欧美国产激情18| 亚洲欧洲免费视频| 国内精品久久久久久久久| 欧美国产精品va在线观看| 成人黄色av网站| 欧美性在线观看| 欧美精品18videosex性欧美| 久久国产精品99国产精| 国产欧美精品久久久| 欧美一级视频在线观看| 亚洲一区二区三区毛片| 久久久久久久国产精品视频| 日韩av免费在线播放| 性色av一区二区三区在线观看| 精品免费在线观看| 国产精品偷伦视频免费观看国产| 91成人天堂久久成人| 日韩av高清不卡| 孩xxxx性bbbb欧美| 国产精品久久久久久亚洲调教| 2019国产精品自在线拍国产不卡| 91久久精品国产| zzijzzij亚洲日本成熟少妇| 日韩日本欧美亚洲| 久久影院中文字幕| 精品国内自产拍在线观看| 日韩激情av在线播放| 欧美贵妇videos办公室| 欧美日韩在线另类| 狠狠躁夜夜躁人人爽超碰91| 国产精品久久9| 日韩在线免费av| 亚洲区中文字幕| 久久人人爽人人爽爽久久| 国产精品久久久久久超碰| 成人激情视频小说免费下载| 91爱视频在线| 66m—66摸成人免费视频| 亚洲色图第一页| 欧美精品日韩www.p站| 日韩视频一区在线| 在线日韩日本国产亚洲| 中文字幕欧美专区| 国产精品久久久一区| 久久av中文字幕| 欧美精品一区二区三区国产精品| 亚洲成色777777女色窝| 欧美激情第99页| 欧美高清视频在线观看| 亚洲欧美精品在线| 一区二区三区动漫| …久久精品99久久香蕉国产| 日韩av在线资源| 九色成人免费视频| 日韩av片免费在线观看| 亚洲一区二区三区久久| 久久久久免费视频| 久久久久久中文| 97不卡在线视频| 一区二区三区精品99久久| 国产在线精品成人一区二区三区| 日韩中文字幕免费视频| 亚洲成人三级在线| 国产97人人超碰caoprom| 日韩欧美精品网站| 亚洲欧美在线一区| 国产在线精品一区免费香蕉| 少妇激情综合网| 亚洲欧美日韩精品久久| 亚洲成人精品在线| 精品福利一区二区| 亚洲精品99久久久久中文字幕| 日韩欧美中文在线| 97超碰国产精品女人人人爽| 乱亲女秽乱长久久久| 久久国产精品影片| 狠狠躁夜夜躁人人爽天天天天97| 97久久精品人搡人人玩| 国产精品国产三级国产aⅴ浪潮| 久久综合国产精品台湾中文娱乐网| 亚洲精品欧美日韩| 另类少妇人与禽zozz0性伦| 亲爱的老师9免费观看全集电视剧| 国产精品视频最多的网站| 不卡伊人av在线播放| 久久久99久久精品女同性| 亚洲国产三级网| 国产欧美 在线欧美| 奇米成人av国产一区二区三区| 亚洲欧美国产va在线影院| 91亚洲精华国产精华| 岛国精品视频在线播放| 国产精品视频色| 亚洲国产美女精品久久久久∴| 欧美极品美女视频网站在线观看免费| 在线成人一区二区| 亚洲精品免费网站| 岛国av一区二区| 国产亚洲在线播放| 亚洲欧美中文在线视频| 91禁国产网站| 国产精品一区二区久久精品| 国产精品入口日韩视频大尺度| 国产91在线播放九色快色| 久久精品色欧美aⅴ一区二区| 午夜精品久久久99热福利| 原创国产精品91| 丝袜一区二区三区| 日本不卡高字幕在线2019| 亚洲国产三级网| 亚洲欧美国产视频| 国产综合久久久久| 91免费版网站入口| 国产一区av在线| 欧美在线影院在线视频| 久久久久久久久爱| www.亚洲免费视频| 日韩在线视频中文字幕| 日韩av成人在线| 精品露脸国产偷人在视频| 最新日韩中文字幕| 国产精品h在线观看| 亚洲黄色在线观看| 精品久久久91| 91精品国产乱码久久久久久蜜臀| 中文字幕av一区| www国产精品视频| 日韩h在线观看| 亚洲精品久久久久中文字幕欢迎你| 精品激情国产视频| 黑人巨大精品欧美一区二区| 国产亚洲精品综合一区91| 亚洲精品中文字| 热久久视久久精品18亚洲精品| 国产精品普通话| 亚洲精品国产欧美| 国产91精品黑色丝袜高跟鞋| 77777少妇光屁股久久一区| 亚洲韩国青草视频| 欧美激情欧美狂野欧美精品| 日韩精品在线免费| 日韩av高清不卡| 2019中文字幕全在线观看| 国产小视频91| 国产精品久久久久77777|