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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第10章:Shell基础

發(fā)布時(shí)間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第10章:Shell基础 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.



一、shell概述

1、介紹與功能 (1shell是命令解釋器,是用戶與內(nèi)核交互的圖形化界面 (2shell是一個(gè)功能強(qiáng)大的編程語(yǔ)言,易編寫、易調(diào)試、靈活性強(qiáng)。在shell中可以直接調(diào)用linux中的命令。 2、分類Shell的兩種主要語(yǔ)法類型有Bourne和C,這兩注語(yǔ)法彼此不兼容。Bourne家族主要包括:sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。 注:主流shell是Bash。 3、Linux中支持的shell/etc/shells文件中有Linux默認(rèn)支持的shell類型

二、shell腳本的執(zhí)行方式(shell腳本是怎么運(yùn)行的?)

1、命令:echo 選項(xiàng) 內(nèi)容-e 支持反斜杠\控制的字符轉(zhuǎn)換 2、第一個(gè)腳本vi hello.sh 開始寫腳本:#!/bin/bash //此句話的作用是:說(shuō)明hello.sh是一個(gè)Bash腳本程序echo -e "Hello World!\n" 保存退出:wq 3、執(zhí)行腳本 (方法1)修改腳本的權(quán)限755chmod 755 hello.sh./hello.sh (方法2)直接用Bash執(zhí)行bash hello.sh 注解: 安裝dos2unix yum -y install dos2unix

三、bash的基本功能

1、history 選項(xiàng) 歷史命令保存文件-c 清空所有的命令 -w 把緩存中的歷史命令寫入到歷史命令保存文件~/.bash_history 注:默認(rèn)保存1000條歷史命令,可以在環(huán)境變量配置文件/etc/profile中修改。 2、歷史和文件補(bǔ)全(Tab鍵) 3、快捷鍵 Ctrl + a 移動(dòng)光標(biāo)到行首 Ctrl + e 移動(dòng)光標(biāo)到行尾Ctrl + c 強(qiáng)制終止 Ctrl + l 清屏Ctrl + u 刪除/剪切光標(biāo)之前的行內(nèi)容 Ctrl + k 刪除/剪切光標(biāo)之后的行內(nèi)容 Ctrl + y 粘貼4、命令的別名(給命令起了一個(gè)小名)alias 查看別名alias vi = "vim" 注1:執(zhí)行命令順序優(yōu)先級(jí):絕對(duì)路徑 > 別名 > Bash內(nèi)部命令 > 環(huán)境變量$PATH 注2:讓別名永久生效vi /root/.bashrc刪除別名unalias 別名

5、輸入輸出重定向

【標(biāo)準(zhǔn)輸入、輸出】

輸出重定向 > 、 >>

輸入重定向 < 、<<

命令: wc 選項(xiàng) 文件名 選項(xiàng) -c 統(tǒng)計(jì)字節(jié)數(shù)-w 統(tǒng)計(jì)單詞數(shù)-l 統(tǒng)計(jì)行數(shù) 例:wc -l < oldboy.txt 把文件oldboy.txt作為命令wc -l的輸入" 命令 << " 的用法更加少見,見下圖:

6、多命令順序執(zhí)行;&&||dd命令:主要用于磁盤復(fù)制dd if=輸入文件 of=輸出文件 bs=字節(jié)數(shù) count=個(gè)數(shù) if=輸入文件 指定源文件或源設(shè)備 of=輸出文件 指定目標(biāo)文件或目標(biāo)設(shè)備 bs=字節(jié)數(shù) 指定一次輸入或輸出多少個(gè)字節(jié),即一個(gè)數(shù)據(jù)塊 count=個(gè)數(shù) 指定輸入或輸出多少個(gè)數(shù)據(jù)塊 例,見下圖:

7、管道符 |命令1 | 命令2 解釋:命令1的結(jié)果作為命令2的輸入grep 選項(xiàng) 文件/目錄 選項(xiàng):-v 反向查找 -n 輸出行號(hào) -i 忽略大小寫

8、通配符和其它特殊符號(hào)

$符號(hào):可以調(diào)用變量的值。如 name=SC; echo $name;單引號(hào)''、雙引號(hào)""的相同點(diǎn)、不同點(diǎn):相同點(diǎn):引號(hào)中都可以包含字符串,為了把字符串當(dāng)做一個(gè)整體來(lái)看待不同點(diǎn):單引號(hào)中的內(nèi)容,會(huì)當(dāng)做本身來(lái)看待,特殊字符在單引號(hào)中會(huì)失去含義; 雙引號(hào)中的特殊符號(hào)不會(huì)失去特殊含義。 例,見下圖:

反引號(hào)``$() :會(huì)告訴系統(tǒng),反引號(hào)中的內(nèi)容是系統(tǒng)命令abc=`date`echo $abc

四、bash的變量
變量設(shè)置規(guī)則

1)在Bash中,默認(rèn)情況下變量類型是“字符串”,如果要進(jìn)行數(shù)值運(yùn)算,要轉(zhuǎn)換成“數(shù)值”類型。 (2)如果把變量的結(jié)果作為變量值賦值給變量,則用下面的格式:$(變量名)或`變量名` (3)變量的疊加:格式-- "$變量名" 或者 ${變量名} (4)變量賦值時(shí)用等號(hào)連接,中間不能有空格;若變量的值中間有空格,要用單引號(hào)或者雙引號(hào)

變量分類:

1、用戶自定義的變量:舉例子說(shuō)明name=jawee 定義并初始化變量echo $name 變量的調(diào)用name=guo"$name" 或 name=guo${name} 變量疊加echo $name 調(diào)用本地變量set 查看所有的變量unset 變量名 :刪除本地變量 本地變量和環(huán)境變量的區(qū)別:作用域的大小--->用戶自定義變量只在當(dāng)前shell中生效;而環(huán)境變量在當(dāng)前shell和子shell中生效,如果把環(huán)境變量寫入配置文件,那么會(huì)永久生效。 2、環(huán)境變量(一部分是系統(tǒng)自己定義好的,另外一部分也可以自己定義)export age=18 定義環(huán)境變量用export聲明export name 把上面的本地變量轉(zhuǎn)為環(huán)境變量echo $age enho $name 調(diào)用環(huán)境變量env 查詢環(huán)境變量unset 刪除環(huán)境變量 系統(tǒng)常見的2個(gè)環(huán)境變量: (1)PATH 系統(tǒng)查詢命令的路徑 (2)PS1 定義系統(tǒng)提示符的變量,看下圖:


3、位置參數(shù)變量 ①$n: n表示的是數(shù)字,0表示腳本的名稱,1-9$9表示,10${10}表示,例子: vim add.sh 編輯一個(gè)加法腳本#!/bin/bashnum1=$1num2=$2sum=$(($num1+$num2))echo "sum = num1+num2 = $sum" 執(zhí)行腳本:chmod 755 add.sh./add.sh 100 1$#:返回參數(shù)的總個(gè)數(shù) ③$*與$@,相同點(diǎn):都表示所有參數(shù); 不同點(diǎn): $*:把參數(shù)看做一個(gè)整體 $@:把參數(shù)獨(dú)立看待 舉例子: vim canshu.sh#!/bin/bashfor i in "$*"do echo $idonefor y in "$@"doecho $ydone :wqchmod 755 canshu.sh ./canshu.sh4、預(yù)定義變量 ①$? : 最后一次執(zhí)行命令的返回狀態(tài):如果正確執(zhí)行,返回為0;如果不正確執(zhí)行,返回非0。用于:&& || 判斷兩邊的執(zhí)行結(jié)果是否正確 ②$$ : 當(dāng)前進(jìn)程的進(jìn)程號(hào)PID ③$! : 后臺(tái)運(yùn)行最后一個(gè)進(jìn)程的進(jìn)程號(hào)PID5、接受鍵盤輸入:read read 選項(xiàng) 變量名 選項(xiàng):-p 在等待read輸入時(shí),輸出提示信息-t 指定等待時(shí)間-n read命令只接受指定的字符數(shù),就會(huì)執(zhí)行-s 隱藏輸入的數(shù)據(jù),適合保密 例:read -p "please input name:" -t 100 -n 10 -s name echo $name **數(shù)值運(yùn)算與運(yùn)算符**數(shù)值運(yùn)算符號(hào):+-*/等 declare 聲明變量的類型declare [+-] [選項(xiàng)] [變量名]- 設(shè)定變量類型+ 取消變量類型-i 設(shè)定為整數(shù)類型-x 設(shè)置為環(huán)境變量-p 顯示變量類型 例:a=1 b=2 幾種方式:c=$a+$b 輸出結(jié)果:1+2d=$(($a+$b)) 輸出結(jié)果:3f=$[$a+$b] 輸出結(jié)果:3e=$(expr $a + $b) 輸出結(jié)果:3 注:運(yùn)算符+兩邊的空格不能省略**變量測(cè)試與內(nèi)容替換**

環(huán)境變量配置文件(簡(jiǎn)介和作用)

sorce命令:sorce 配置文件 或 . 配置文件 作用:讓修改完的配置文件不用注銷重啟直接生效系統(tǒng)中有下面一組環(huán)境變量配置文件:/etc/profile/etc/profile.d/*sh~/.bash_profile~/.bashrc/etc/bashrc 注:/etc/的環(huán)境變量配置文件是系統(tǒng)中所有用戶都生效,~/的環(huán)境變量配置文件只針對(duì)于某個(gè)用戶生效(~/家目錄)

注:環(huán)境變量可以寫在上面的配置文件中,寫在后面的配置文件中會(huì)覆蓋前面的配置文件中的環(huán)境變量,除非用變量疊加。/etc/profile 登陸的用戶/etc/bashrc 不登錄的用戶

其他配置文件和登錄信息

注銷時(shí)生效的環(huán)境變量配置文件 ~/.bash_logout 歷史命令配置文件 ~/bash_history Shell登錄信息

總結(jié)

以上是生活随笔為你收集整理的第10章:Shell基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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