Résumé des caractères spéciaux dans Shell

巴扎黑
Libérer: 2017-08-15 15:55:38
original
1919 Les gens l'ont consulté

Cet article résume principalement les informations pertinentes sur les caractères spéciaux dans Shell, y compris les caractères &, #, ! L'utilisation d'une série de caractères spéciaux tels que , $, le signe supérieur, les guillemets simples et doubles, etc. est présentée de manière très détaillée à travers l'exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de tous les amis qui en ont besoin. vous pouvez jeter un oeil ci-dessous.

Préface

Comme nous le savons tous, le shell est un analyseur de commandes pour les systèmes d'exploitation de type Unix. Il est utilisé pour interpréter et exécuter. une série de commandes saisies par l'utilisateur. Elle est similaire à la commande sous DOS et plus tard à cmd.exe sous Windows. En même temps, le shell est aussi un langage de programmation. En tant que langage de script interprété par les commandes, il interprète et exécute de manière interactive les commandes saisies par l'utilisateur ou interprète et exécute automatiquement une série de commandes prédéfinies ; en tant que langage de programmation, il prédéfinit diverses variables d'environnement et conserve certaines significations de mots-clés et de certains caractères spéciaux ; , et fournit de nombreuses structures de contrôle que l'on trouve uniquement dans les langages de haut niveau, y compris les boucles et les jugements de branche.

Cet article vous présentera l'utilisation des caractères spéciaux dans Shell. Sans plus tarder, jetons un œil à l'introduction détaillée :

1. >

Exécuter des commandes en continu



# ifdown eth0;ifup eth0
Copier après la connexion

2.
signifie en expression régulière ou



La sortie standard de la commande précédente est utilisée comme standard sortie de la commande suivante Entrée standard
# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符
Copier après la connexion



# ifconfig|grep eth0 表示ifconfig查出来的信息然后过滤出eth0的这一行
Copier après la connexion

3, &
mettre la commande Exécuter en arrière-plan



signifie sortie standard et sortie d'erreur standard
# mysqld_safe --user=mysql & 将MySQL放到后台启动
Copier après la connexion



# ifconfig &>/dev/null 将ifconfig执行得到的结果输出到/dev/null里面
Copier après la connexion

4, &&
Exécutez la commande suivante uniquement lorsque la valeur de retour de la commande précédente est 0



# ls && echo "ok"
Copier après la connexion

5 ||
La commande suivante sera exécutée uniquement. si la valeur de retour de la commande précédente est non-0



# lls || echo "ok"
Copier après la connexion

# signe dièse
# indique un commentaire


$# représente le nombre de paramètres de position



${# nom de la variable} représente la longueur de la variable
# echo $#
0
Copier après la connexion



${#Nom de la variable[@]} représente le nombre de tableaux
# a='hello'
# echo ${#a}
5
Copier après la connexion



# a=(1 2 3)
# echo ${#a[@]}
3
Copier après la connexion

7.! Point d'exclamation
Inverser la valeur de retour de la commande ou de l'expression conditionnelle



Historique d'exécution Commande
# if ! [ 1<2 ]; then echo &#39;ok&#39;; else echo &#39;no&#39;; fi
ok
Copier après la connexion



Exécuter une commande shell externe dans vi ou ftp
# 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
Copier après la connexion


Par exemple : Dans vim, vous souhaitez exécuter un commande , juste en mode dernière ligne, entrez ! Ajoutez la commande à exécuter après le point d'exclamation


Application indirecte des variables


Par exemple :

---- Prendre indirectement la valeur de b

${!a}

8. $ Signe dollar
Obtenir la valeur de la variable



L'expression régulière représente la fin de la ligne
# a=10
# echo $a
10
Copier après la connexion



egrep &#39;:$&#39; /etc/inittab 
egrep ‘^hello$&#39; file
Copier après la connexion

9, > que de signer
Redirection de sortie



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

11. Signe inférieur à
Redirection d'entrée


Test conditionnel de connexion inférieur à


= Signe égal


Affectation de variable - Par exemple : Définir la variable a=10


Le signe égal dans les tests conditionnels - Par exemple : [ a=b ] Déterminer si la variable a est égale à b


Comparaison numérique == - Par exemple : (( a==20 )) Déterminer si la variable a est égale à 20


12, + signe plus
Le signe plus dans les opérations arithmétiques - Par exemple : 1+3


1 ou plusieurs caractères précédents dans les expressions régulières - Pour exemple : ab+c signifie faire correspondre 1 entre ab et c Ou plusieurs caractères


13, >>
Ajouter la redirection de sortie - par exemple :

Ajouter 123 au fichier test.txt

echo "123" >> test.txt

14, <<
ici le document


Par exemple :



Modifiez le mot de passe de l'utilisateur root.
# passwd <<end
> 123
> 123
> end
Copier après la connexion


15. - Signe moins
Signe moins dans les opérations arithmétiques - Par exemple : 10-2

Options pour la commande


- par exemple : ls -l


Dernier répertoire de travail - par exemple : cd -


caractères génériques et expressions régulières à représenter plages - Par exemple : [a-z]



signifie que le flux de sortie ou le flux d'entrée
tar -cvf - /home | tar -xvf -
Copier après la connexion


communique la sortie précédente via le pipeline Donnez les commandes suivantes, la première compression, la seconde décompression


16, '' guillemets simples

解决变量赋值空格的问题

例如: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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!