搜尋
首頁運維linux運維總結Shell中的特殊字符

總結Shell中的特殊字符

Aug 15, 2017 pm 03:55 PM
shell字元

這篇文章主要為大家總結了關於Shell中特殊字符的相關資料,文中包括分好、&、#、! 、$、大於號、單雙引號等等一系列特殊字元的用法,透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

前言

眾所周知shell既是類別Unix作業系統的命令解析器,用來解釋執行使用者輸入的一連串指令,它類似於DOS下的command和後來Windows的cmd.exe。同時shell也是一種程式設計語言。作為命令解釋型的腳本語言,它交互式解釋和執行用戶輸入的命令或自動地解釋和執行預先設定好的一連串的命令;作為程式設計語言,它預定義了各種環境變量,保留了一些關鍵字以及一些特殊字元的含義,並提供了許多在高階語言中才具有的控制結構,包括循環和分支判斷。

本文將介紹給大家關於Shell特殊字元用法的相關內容,話不多說,來一起看看詳細的介紹:

1、;分號

連續運行指令


#
# ifdown eth0;ifup eth0

2、| 管道

正規表示式中表示或


#
# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符

前面指令的標準輸出作為後面指令的標準輸入


# ifconfig|grep eth0 表示ifconfig查出来的信息然后过滤出eth0的这一行

3、&

#將指令放到背景執行


# mysqld_safe --user=mysql & 将MySQL放到后台启动

表示標準輸出與標準錯誤輸出


#
# ifconfig &>/dev/null 将ifconfig执行得到的结果输出到/dev/null里面

##4、 &&

前面指令回傳值為0才執行後面的指令



# ls && echo "ok"

5、||

前面指令回傳值為非0才執行後面的指令



# lls || echo "ok"

6、# 井號

# 表示註解


$# 表示位置參數的數目



# echo $#
0

${#變數名稱} 表示變數的長度



# a='hello'
# echo ${#a}
5

${#變數名[@]} 表示陣列的數量



# a=(1 2 3)
# echo ${#a[@]}
3

7、!驚嘆號

將指令或條件表達式的回傳值取反



# if ! [ 1<2 ]; then echo &#39;ok&#39;; else echo &#39;no&#39;; fi
ok

執行歷史指令



# history 
1 ls
2 tail test1.txt
3 mysql -uroot -p123
4 ls /tmp/
5 cd /tmp/
[root@localhost ~]# !994
ls /tmp/
account.sql data.sql mysql.sock t1.txt t2.txt

vi或ftp中執行外部shell指令


例如:在vim中,想要執行一條指令,就在末行模式,輸入!感嘆號後面加上要執行的指令


間接應用變數


例如:

${!a} ---- 間接取b 的值

8、$ 美元符號

#取變數的值



# a=10
# echo $a
10

正規表示式表示行尾



egrep &#39;:$&#39; /etc/inittab 
egrep ‘^hello$&#39; file

9、> 大於號碼

#輸出重定向



echo &#39;123&#39; >test.txt 表示将123 输入到文件test.txt中 条件测试中的大于号

11、

輸入重定向


條件測試中的小於號


#= 等號


##變數賦值- 例如:設定變數a=10


條件測試中的等- 例如:[ a=b ] 判斷變數a是否等於b


數值比較== - 例如:(( a==20 )) 判斷變數a是否等於20


#12、+ 加號 ##算術運算中的加號- 例如:1+3

正規表示式中1個或多個前面的字元- 例如:ab+c 表示符合ab和c之間有1個或多個字元


13、>>

#輸出重定向追加- 例如:
echo "123" >> test.txt

將123追加到檔案test.txt中


14、here document

例如:


#
# passwd <<end
> 123
> 123
> end

更改使用者root 的密碼。


15、- 減號

#算術運算中的減號- 例如:10-2

指令的選項- 例如:ls -l

上一次工作目錄- 例如:cd -

通配符和正規表示式中表示範圍- 例如:[a-z]


tar -cvf - /home | tar -xvf -

表示輸出流或輸入流

將前面的輸出,透過管道交給後面的指令,前面的壓縮,後面的解壓縮


16、'' 單引號

解决变量赋值空格的问题

例如:a='1 2'

阻止shell替换

17、"" 双引号

解决变量赋值空格的问题

例如:a="1 2"

阻止shell部分字符替换,对$、!等无效

18、`` 反引号 相当于 $()

命令行替换

例如:可以设变量a=`ls`

19、% 百分号

算术运算中的模运算

例如:echo $((100%10)) 就是100除以10的余数为0

vi中替换操作中表示所有行 (末行模式下,替换所有前面加 %)

例如:在末行模式下输入 :% s/D/d 表示将文本中的所有的D替换为d

20、() 单圆括号

子shell中执行命令,会继承父shell的变量

括起数组元素

例如:定义一个数组 a=(1 2 3 4)

21、(()) 双圆括号

算术运算

例如: echo $((10/2)) 结果就是5

整数比较测试

例如: (( 10>2 )) 判断10是否大于2

22、[] 单方括号

通配符和正则中表示匹配括号中的任意一个字符

例如: [abc] 表示匹配abc中的任意一个字符

条件测试表达式

例如: [ -f /etc/passwd ] // 测试是不是文件

数组中下标括号

例如:echo ${a[0]} 表示取数组中下标为0的值

23、[[]] 双方括号

字符串比较测试

例如: [[a=b]] 用来字符串的比较

24、. 英文句点号

正则中表示任意1个字符

例如:a...b 表示 匹配 a和b之间夹三个字符的字符串

当前shell执行脚本命令

例如: ./test.sh 执行当前路径下的shell脚本test.sh

表示当前目录

例如:cd ./bgk 进入当前目录下的bgk目录下

25、{} 大括号

通配符扩展 abc{1,2,3}

正则表达式中表示范围

例如:a{3} 匹配3个 a

for i in {1...10} 循环指定范围

匿名函数{ cmd1;cmd2;cmd3;} &> /dev/null

{ } 里面的命令,是在当前shell执行

注意: { } 第一条命令前面要有空格,后面的命令要有分号

括起变量名 ${abc}a

26、/ 正斜杠

算术运算中的除法

例如:echo $((10/2)) 结果就是5

根目录或路径分割符

例如:cd /usr/local/ 表示路径

27、^

在通配符中表示取反

例如:[^abc] 表示匹配除了abc外的任意一个字符

在正则表达式中表示以什么开头

例如:


egrep ‘^hello$&#39; file

以上是總結Shell中的特殊字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Linux的心臟:5個核心組件Linux的心臟:5個核心組件Apr 13, 2025 am 12:15 AM

Linux的5個核心組件分別是內核、Shell、文件系統、系統庫和系統工具。 1.內核管理硬件資源並為應用程序提供服務。 2.Shell作為用戶與系統的接口,解釋並執行命令。 3.文件系統負責數據的存儲和組織。 4.系統庫提供預編譯函數供應用程序調用。 5.系統工具用於系統管理和維護。這些組件協同工作,賦予Linux強大的功能和靈活性。

如何檢查Debian OpenSSL配置如何檢查Debian OpenSSL配置Apr 12, 2025 pm 11:57 PM

本文介紹幾種檢查Debian系統OpenSSL配置的方法,助您快速掌握系統安全狀態。一、確認OpenSSL版本首先,驗證OpenSSL是否已安裝及版本信息。在終端輸入以下命令:opensslversion若未安裝,系統將提示錯誤。二、查看配置文件OpenSSL主配置文件通常位於/etc/ssl/openssl.cnf。您可以使用文本編輯器(例如nano)查看:sudonano/etc/ssl/openssl.cnf此文件包含密鑰、證書路徑及加密算法等重要配置信息。三、利用ope

Debian上Hadoop開發環境如何搭建Debian上Hadoop開發環境如何搭建Apr 12, 2025 pm 11:54 PM

本指南詳細介紹如何在Debian系統上搭建Hadoop開發環境。一、安裝Java開發套件(JDK)首先,安裝OpenJDK:sudoaptupdatesudoaptinstallopenjdk-11-jdk-y配置JAVA_HOME環境變量:sudonano/etc/environment在文件末尾添加(根據實際JDK版本調整路徑):JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"保存並退出,然後執行:source/etc

Debian上Hadoop資源管理怎麼做Debian上Hadoop資源管理怎麼做Apr 12, 2025 pm 11:51 PM

在Debian系統上有效管理Hadoop資源,需要遵循以下步驟:Hadoop部署:首先,在Debian系統上完成Hadoop的安裝與配置。這包括下載Hadoop發行包、解壓、設置環境變量等必要操作。集群配置:安裝完成後,對Hadoop集群進行配置,涵蓋HDFS(Hadoop分佈式文件系統)和YARN(YetAnotherResourceNegotiator)的設置。需要修改核心配置文件,例如:core-site.xml、hdfs-site.xml、mapred-site.x

Debian Tomcat日誌安全設置有哪些Debian Tomcat日誌安全設置有哪些Apr 12, 2025 pm 11:48 PM

提升DebianTomcat日誌安全性,需關注以下關鍵策略:一、權限控制與文件管理:日誌文件權限:默認日誌文件權限(640)限制了訪問,建議修改catalina.sh腳本中的UMASK值(例如,從0027改為0022),或在log4j2配置文件中直接設置filePermissions,以確保合適的讀寫權限。日誌文件位置:Tomcat日誌通常位於/opt/tomcat/logs(或類似路徑),需定期檢查該目錄的權限設置。二、日誌輪轉與格式:日誌輪轉:配置server.xml

如何解讀Tomcat日誌中的警告如何解讀Tomcat日誌中的警告Apr 12, 2025 pm 11:45 PM

Tomcat服務器日誌中的警告信息提示潛在問題,可能影響應用性能或穩定性。有效解讀這些警告信息需要關注以下幾個關鍵點:警告內容:仔細研讀警告信息,明確問題類型、成因及可能的解決方法。警告信息通常會提供詳細描述。日誌級別:Tomcat日誌包含不同級別信息,例如INFO、WARN、ERROR等。 “WARN”級別的警告提示非致命性問題,但需要關注。時間戳:記錄警告發生的時間,以便追溯問題出現的時間點,分析其與特定事件或操作的關係。上下文信息:查看警告信息前後日誌內容,獲取

Tomcat日誌如何幫助排查內存洩漏Tomcat日誌如何幫助排查內存洩漏Apr 12, 2025 pm 11:42 PM

Tomcat日誌是診斷內存洩漏問題的關鍵。通過分析Tomcat日誌,您可以深入了解內存使用情況和垃圾回收(GC)行為,從而有效定位和解決內存洩漏。以下是如何利用Tomcat日誌排查內存洩漏:1.GC日誌分析首先,啟用詳細的GC日誌記錄。在Tomcat啟動參數中添加以下JVM選項:-XX: PrintGCDetails-XX: PrintGCDateStamps-Xloggc:gc.log這些參數會生成詳細的GC日誌(gc.log),包含GC類型、回收對像大小和時間等信息。分析gc.log

Debian Apache日誌對服務器性能有何影響Debian Apache日誌對服務器性能有何影響Apr 12, 2025 pm 11:39 PM

Debian系統下Apache日誌對服務器性能的影響是雙刃劍,既有積極作用,也有潛在的負面影響。積極方面:問題診斷利器:Apache日誌詳細記錄服務器所有請求和響應,是快速定位故障的寶貴資源。通過分析錯誤日誌,可以輕鬆識別配置錯誤、權限問題及其他異常。安全監控哨兵:訪問日誌能夠追踪潛在安全威脅,例如惡意攻擊嘗試。通過設置日誌審計規則,可以有效檢測異常活動。性能分析助手:訪問日誌記錄請求頻率和資源消耗,幫助分析哪些頁面或服務最受歡迎,從而優化資源分配。結合top或htop等

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器