Collection de commandes de base couramment utilisées par Shell (diff, patch, cut, sort, uniq, tr)

Commande 1.diff (fichier, commande de comparaison de répertoire):

用法:
diff [options] files1 files2 | directory1 directory2

输出信息:
[num1,num2] [ a | c | d ] [num3,num4]  
num1,num2	##第一个文件中的行
a		    ##添加
c		    ##更改
d		    ##删除
<		    ##第一个文件中的内容
>		    ##第二个文件中的内容
num1,num2   ##第一个文件中的行
num3,num4	##第二个文件中的行

常用参数:
-b	##忽略空格
-B	##忽略空行
-i	##忽略大小写
-c	##显示文件所有内容并标示不同
-r	##对比目录
-u	##合并输出 (常用来生成补丁文件)

Comme le montre la figure: 2d1 signifie: La deuxième ligne du premier fichier (haha) et la première ligne du deuxième fichier (haha1): supprimer 123 (<123) dans le premier fichier:
Insérez la description de l'image ici
Insérez la description de l'image ici

2. commande patch: (patch)

dnf install patch -y  
patch  原文件 补丁文件
-b	 备份原文件 (备份文件为 源文件名.orig)

Remarque: les fichiers de patch générés par diff -u haha ​​haha1 et diff -u haha1 haha ​​sont différents; (le plus proche des paramètres est le modèle)
Insérez la description de l'image ici

3. commande de coupe: (intercepter, filtrer)

head + tail 可以截取查看文件的行   cut   截取查看文件的列
-d :	##指定:为分隔符
-f 	##指定显示的列 5第五列 | 3,5 3和5列 | 3-5 3到5列 | 5- 第五列以后 | -5 到第五列
-c	##指定截取的字符(数字用法同-f) cut -c 1-5 显示第1到5个字符

Comme le montre la figure: head + tail peuvent intercepter les lignes du fichier de vue. Couper intercepter les colonnes du fichier de vue:
Insérez la description de l'image ici
4. tri: (commande de tri); uniq: (commande de duplication de contrôle)

sort :
-n	##纯数字排序
-r	##倒叙
-u	##去掉重复
-o	##输出到指定文件
-t	##指定分隔符
-k	##指定排序的列

Insérez la description de l'image ici

uniq :
-c	#合并重复并统计重复个数
-d	#显示重复的行
-u	#显示唯一的行

La commande uniq est utilisée avec la commande sort: l'
Insérez la description de l'image ici
exemple est comme illustré dans la figure ci-dessous: Le nombre d'occurrences dans le texte de sortie:
Insérez la description de l'image ici

5.tr commande: (convertir casse, caractère, symbole)

tr 'a-z' 'A-Z'		##小写转大写
tr  'A-Z' 'a-z'		##大写转小写
tr ' ' '*'          ##空格转换成*

Insérez la description de l'image ici

6. Tester la commande de contraste avec && (oui), || (non):

test = []	##[  ] 就相当于test命令
test $a = $b = [ $a = $b ]  注意:[ ] 两端有空格

test的数字对比
=
!=
-eq		##等于
-ne		##不等于
-le		##小于等于
-lt		##小于
-ge		##大于等于
-gt		##大于

test的条件关系
-a	##并且
-o	##或者

test对值是否为空的判定
-n	##nozero    判定内容不为空
-z	##zero	    判定内容为空

&&	符合条件作动作,是
||	不符合条件作动作,非

Insérez la description de l'image ici

Ecrivez un script shell pour compléter les jugements suivants:
user_check.sh + user Les
types d'utilisateurs sont: super utilisateur, utilisateur système, utilisateur commun;
Remarque: / dev / null peut être compris comme une poubelle; vous pouvez utiliser $ &> / dev / null pour juger Est-ce que $ existe:

Insérez la description de l'image ici

Résultats de test:

Insérez la description de l'image ici
Il y a des bogues dans les méthodes ci-dessus: Par exemple: lorsque l'utilisateur est lin, la commande grep filtrera également les utilisateurs Linux, ce qui entraînera des erreurs de jugement; vous pouvez changer grep en egrep pour résoudre ce problème;
+++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++

test对于文件的判定
-ef		##文件节点号是否一致(硬链接)
-nt		##文件1是不是比文件2新
-ot		##文件1是不是比文件2老
-d		##目录
-S		##套结字
-L		##软连接
-e		##存在
-f		##普通文件
-b		##快设备
-c		##字符设备

Les résultats expérimentaux sont les suivants:

Insérez la description de l'image ici
Exemple: écrivez le script pour remplir les conditions suivantes lors de l'
exécution de file_check.sh.
Si le fichier de détection n'est pas spécifié après le script, une erreur "Aucun fichier de détection n'est spécifié, veuillez préciser".
Si le fichier spécifié n'existe pas après le script, une erreur "Ce fichier n'existe pas" est signalée
lorsque le fichier existe. Type de fichier et affiché dans la sortie;

Le script shell est illustré dans la figure:
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/lb1331/article/details/111284236
conseillé
Classement