Opérations courantes sur la ligne de commande Linux Shell

Le shell est un programme du système Linux, qui est utilisé pour recevoir des commandes clavier, et peut être considéré comme l'interface CLI entre l'utilisateur et le système d'exploitation.

Répertoire des répertoires

pwd : Abréviation de Print Working Directory, cette commande affichera votre répertoire actuel.

cd : Abréviation de Change Directory, cette commande permet de basculer vers un autre répertoire.

~ : répertoire racine,

.: représente le répertoire courant.

..: Représente le répertoire parent, c'est-à-dire le répertoire au-dessus du répertoire courant.

/: Représente le répertoire racine, qui est le répertoire de niveau supérieur du système de fichiers et n'a pas de répertoire parent.

Les commandes et les noms de répertoire ci-dessus sont applicables dans l'environnement shell des systèmes de type Unix (tels que Linux, macOS).

Manipulation et déplacement de fichiers

En portée native :

ls [path]: répertorier les fichiers. S'il n'est pas spécifié [path], tous les fichiers et répertoires du répertoire courant sont répertoriés. Notez que sur les systèmes Unix et Linux, les fichiers dont le nom commence par un point (.) sont considérés comme des fichiers cachés . Ces fichiers sont souvent utilisés pour stocker les paramètres système ou les configurations d'application. Par exemple, la configuration du shell bash d'un utilisateur est stockée dans .bashrcun fichier caché nommé . lsCes fichiers cachés ne sont pas affichés par défaut dans la commande, sauf si vous utilisez l'option -aou --all, comme : . ls -a

tree [path]: Liste les fichiers de manière récursive. S'il n'est pas spécifié [path], tous les fichiers du répertoire courant et les fichiers du répertoire et de ses sous-répertoires sont répertoriés.

cp <source> <destination>: copiez un fichier ou un répertoire. copier <source>sur<destination>。

mv <source> <destination>: déplacer ou renommer un fichier ou un répertoire.

rm <filename>: Supprimer définitivement le fichier.

mkdir <directory>:Créer un répertoire. rmdir <directory>: Supprimer définitivement les répertoires vides.

touch <file>: Crée un fichier vide.

Transfert entre différents hébergeurs :

Il existe de nombreuses méthodes de transmission directe pour différents hôtes. Ici, nous n'écrivons qu'une commande scp couramment utilisée, qui peut copier en toute sécurité des fichiers entre différents systèmes.

Copiez les fichiers de la machine distante vers la machine locale :

​​​​​​​$ scp username@from_host:file.txt /local/directory/ 

Copiez les fichiers de la machine locale vers la machine distante :

$ scp file.txt username@to_host:/remote/directory/


Copiez des fichiers d'une machine distante à une autre :

​​​​​​​$ scp username@from_host:/remote/file.txt username@to_host:/remote/directory/

scpLa commande prend également en charge certains drapeaux (Flags) pour modifier son comportement :

  • -r: copie récursive, utilisée pour copier un répertoire et tous les fichiers et sous-répertoires qu'il contient.

  • -v: En mode verbeux, le processus d'exécution détaillé de la commande sera affiché, ce qui est utile pour le débogage.

  • -q: Mode silencieux, n'affiche pas le processus d'exécution et les résultats de la commande, et n'affiche un message qu'en cas d'erreur.

empaquetage de fichier tar

tarIl s'agit d'un outil de conditionnement de fichiers couramment utilisé dans les systèmes Unix et Linux, et est souvent utilisé pour créer et décompresser des fichiers d'archive. Dans de nombreux cas, il est également utilisé pour la sauvegarde et la distribution des données. Voici quelques tardrapeaux de commande courants (drapeaux) et leurs significations :

  • -c: Créer une nouvelle archive. Cet indicateur est utilisé pour regrouper certains fichiers et répertoires dans une archive.

  • -x: Extrayez les fichiers de l'archive. Ce drapeau est utilisé pour décompresser une archive.

  • -z: Utilisez gzippour compresser ou décompresser l'archive. Pour les archives volumineuses, ce drapeau peut réduire considérablement leur taille. Si l'option est utilisée -z, par exemple tar -czf archive.tar.gz directory/, tarla commande crée d'abord une archive tar, puis gzipcompresse l'archive à l'aide de . Le fichier compressé résultant a généralement une extension .tar.gzou .tgz, indiquant qu'il s'agit d'une archive tar compressée avec gzip.

  • -v: Affiche le processus d'exécution de la commande. Cet indicateur est utile lors du débogage ou de la visualisation de l'exécution de la commande tar.

  • -f: spécifie le nom du fichier d'archive.

 Voici quelques exemples:

tar -cf name-of-archive.tar /path/to/dir/:
这个命令创建一个包含指定目录中所有文件的归档文件。

tar -cf name-of-archive.tar /path/to/filename:
这个命令创建一个只包含指定文件的归档文件。

tar -cf name-of-archive.tar dir1 dir2 dir3:
这个命令创建一个包含多个目录的归档文件。

tar -xf name-of-archive.tar:
这个命令在当前目录中解包一个归档文件。

Notez que pour le paramètre -z, si aucune -zoption n'est utilisée, par exemple tar -cf archive.tar directory/, tarla commande ne créera qu'un fichier d'archive tar, mais ne le compressera pas, ne confondez donc pas tar avec rar . L'extension de fichier résultante est généralement .tar, indiquant qu'il s'agit d'une archive tar non compressée. Il est également facile à comprendre lors de la décompression : si vous utilisez -c, utilisez -x ; si vous utilisez -cz, utilisez -xz.


traitement de texte

Vérifier

Généralement, certaines commandes de traitement de fichiers sont très utiles lors du traitement de fichiers journaux ou de fichiers de données volumineux dans les systèmes Linux. Par exemple, vous pouvez utiliser sortla commande et uniqpour rechercher des lignes en double dans un fichier, ou utiliser headla tailcommande et pour voir rapidement le début ou la fin d'un fichier.

  • cat: Cette commande est utilisée pour connecter et imprimer le contenu du fichier à l'écran. Il est généralement utilisé pour afficher tout le contenu du fichier, mais il peut également être utilisé pour connecter plusieurs fichiers, tels que :

cat file1.txt file2.txt file3.txt > combined.txt

catLisez d'abord le contenu de file1.txt, file2.txt et file3.txt, puis affichez le contenu de ces trois fichiers ensemble (c'est-à-dire, connectez-les). Enfin, l'opérateur > redirige cette sortie vers le fichier Combined.txt. À propos > Nous y reviendrons ci-dessous.

  • uniq: Cette commande peut être utilisée pour signaler ou supprimer des lignes en double.

  • head/tail : Ces deux commandes permettent d'imprimer la première ligne (head) ou la fin (tail) du fichier. Ils ont également des options comme -bxpeut imprimer les x premiers octets, -nxpeut imprimer les x premières lignes. Par exemple, la commande suivante affichera les 10 premières lignes :

head -n 10 file.txt
  • sort: Cette commande trie les lignes d'entrée. Il a de nombreuses options telles que -d(trier lexicographiquement), -f(ignorer la casse), -n(trier numériquement) et -r(trier en sens inverse).

recherche

Grep (Global Regular Expression Print) est un outil de ligne de commande dans les systèmes Unix et de type Unix (tels que Linux) utilisé pour rechercher des modèles spécifiques dans le texte.

# -c:统计匹配行的数量。
# 这个命令会输出 file.txt 文件中包含字符串 "test" 的行的数量。
grep -c "test" file.txt

# -h:显示匹配项,但不显示文件名。
# 这个命令会从 file1.txt 和 file2.txt 中查找字符串 "test",但在输出结果中不会显示文件名。
grep -h "test" file1.txt file2.txt

# -i:忽略大小写。
# 这个命令会在 file.txt 文件中查找字符串 "test",不区分大小写。
grep -i "test" file.txt

# -l:只显示文件名列表。
# 这个命令会输出包含字符串 "test" 的文件名,不会输出匹配的行。
grep -l "test" file1.txt file2.txt

# -n:显示匹配项和行号。
# 这个命令会在 file.txt 文件中查找字符串 "test",并显示每个匹配行的行号。
grep -n "test" file.txt

# -e exp:使用此选项指定表达式。
# 这个命令会在 file.txt 文件中查找字符串 "test" 或 "example"。
grep -e "test" -e "example" file.txt

# -f file:从文件中获取模式。
# 这个命令会从 patterns.txt 文件中读取模式,然后在 file.txt 文件中查找这些模式。
grep -f patterns.txt file.txt

# -o:只打印匹配的行部分。
# 这个命令会在 file.txt 文件中查找字符串 "test",并只输出匹配的部分,而不是整行。
grep -o "test" file.txt

# -r:递归读取每个目录下的所有文件。
# 这个命令会递归地在 directory/ 目录及其所有子目录中的文件中查找字符串 "test"。
grep -r "test" directory/

Redirection, entrée/sortie standard

Entrée standard (stdin) : C'est la principale façon dont les programmes lisent les données d'entrée. Par défaut, l'entrée standard provient de la saisie au clavier de l'utilisateur dans le terminal, mais elle peut également être obtenue à partir de fichiers ou d'autres programmes via la redirection de fichiers et les canaux.

Sortie standard (stdout) : C'est le moyen principal pour les programmes de sortir des données. Par défaut, la sortie standard est envoyée à l'écran du terminal. Cependant, il peut également être envoyé vers un fichier ou vers un autre programme via la redirection de fichier et la canalisation.

La redirection de fichiers est une technique du shell Linux pour changer la direction du flux d'entrée/sortie d'une commande.

  • command < file.txt: Cela signifie prendre file.txtle contenu de comme commandentrée standard du . C'est-à-dire que les données commandsont lues à partir file.txtdu tout comme il lit les données à partir du clavier. Supposons que nous ayons un fichier appelé numbers.txt contenant des nombres. On peut utiliser:

sort < numbers.txt

Cette commande prend numbers.txtle contenu du fichier comme sortentrée de la commande. sortLa commande trie l'entrée numériquement et imprime le résultat trié sur la sortie standard. Il s'agit <d'un cas d'utilisation pratique pour la redirection de fichiers.

  • command > file.txt: Cela signifie commandrediriger la sortie standard du vers file.txt. Autrement dit, commandla sortie de ne sera pas affichée dans le terminal, mais écrite à la place file.txt. S'il file.txtexiste déjà, son contenu d'origine sera commandécrasé par la sortie de .

  • command >> file.txt: Cela commandredirige également la sortie standard de file.txt, mais contrairement à command > file.txt, si file.txtelle existe déjà, commandla sortie de sera ajoutée à file.txtla fin de , sans écraser file.txtle contenu original de .

Tuyaux (|)

Un "pipe" est une méthode dans l'environnement Linux/Unix qui vous permet d'utiliser la sortie d'une commande comme entrée d'une autre commande. Les canaux sont généralement désignés par le symbole '|', et si vous exécutez command1 | command2, command1la sortie de deviendra command2l'entrée de .

grep "compute" /usr/share/dict/words | wc -l

Dans l'exemple ci-dessus, nous utilisons d'abord grepla commande /usr/share/dict/wordspour rechercher les lignes de ce fichier qui contiennent la chaîne "compute". Nous dirigeons ensuite la sortie de vers |la commande, qui compte le nombre de lignes dans l'entrée. En bref, les tuyaux nous permettent d'enchaîner plusieurs commandes afin que nous puissions accomplir certaines tâches complexes avec une seule ligne de code.grepwc -l

VIGUEUR

VIM est un éditeur de texte très populaire qui fonctionne sur presque tous les terminaux. Sous Linux, vim est généralement utilisé pour éditer du texte, et vous pouvez $ vim ~/.vimrcéditer votre fichier de configuration Vim via la commande.

Lorsque nous éditons un fichier vim, il existe trois modes principaux :

  • Mode normal : Appuyez sur la touche "esc" pour entrer.
  • Mode Insertion : Appuyez sur la touche "i" pour entrer en mode Normal. Dans ce mode, vous pouvez saisir du texte dans le tampon de texte.
  • Mode visuel : Appuyez sur la touche "v" pour entrer en mode normal. Dans ce mode, vous pouvez utiliser les touches fléchées pour sélectionner un bloc de texte.

Après l'édition, appuyez sur la touche esc et entrez : wq pour enregistrer et quitter Vim. Si vous souhaitez abandonner la modification, vous pouvez utiliser q! forcer à quitter.

Certaines autres commandes Vim ne seront pas écrites en premier, elles ne sont pas très pratiques.

Mais cela vaut la peine d'écrire que Vim crée un fichier d'échange (fichier .swp) lors de l'édition d'un fichier, que vous pouvez utiliser pour restaurer les modifications non enregistrées si Vim s'arrête de manière inattendue (comme une panne de courant). Cependant, si Vim découvre qu'un fichier a déjà un fichier d'échange associé, il vous demandera de choisir une action.

  • "Ouvrir en lecture seule" : cette option affiche simplement le contenu du fichier sans apporter de modifications.

  • "Modifier quand même" : cette option ignore l'existence d'un fichier d'échange et essaie d'ouvrir le fichier pour le modifier. Soyez prudent, car si le fichier est édité dans une autre session Vim, vous finirez par enregistrer deux versions du fichier.

  • "Récupérer" : Cette option tentera de récupérer le contenu du fichier d'échange, vous permettant de continuer l'édition.

  • "Delete it" : Cette option supprimera le fichier d'échange. Vous pouvez recommencer et modifier le fichier d'origine.

  • "Quitter" : Cette option quittera votre session Vim actuelle, mais gardera les autres sessions Vim ouvertes. Ceci est utile lorsque vous souhaitez fermer le fichier en cours, mais pas toutes les autres sessions Vim.

  • "Abandonner" : Cette option ferme toutes les sessions Vim ouvertes, perdant éventuellement des informations non enregistrées. "Abandonner" est principalement utilisé pour fermer rapidement la session Vim en cours, cela ne résoudra pas le problème de l'échange de fichiers.

caractères génériques

Nous pouvons utiliser * pour correspondre à tous les caractères, ? pour correspondre à un seul caractère, etc. Voici quelques exemples d'utilisation de caractères génériques :

# 删除所有以"g"开头的文件或目录
rm g*

# 列出所有以“b”开头并以“.txt”结尾的文件
ls b*.txt

# 显示名字为“Data”后面跟着正好三个任意字符的文件的内容
cat Data???

# 匹配所有以大写字母开头的文件和目录
ls [[:upper:]]*

# 匹配所有不以小写字母结尾的文件和目录
ls *[![:lower:]] 

# 递归地列出所有以字母"a"、"b"或"c"开头的文件和目录的结构
tree [abc]*

Pour les autres types de caractères génériques, vous pouvez vous référer à : Caractères génériques

processus

# 列出所有当前正在运行的进程的信息
ps aux

# 显示实时的进程状态
top

Les processus peuvent être classés en tâches de premier plan et en tâches d'arrière-plan. Les travaux de premier plan sont des travaux qui s'exécutent sur le terminal et ne libèrent pas le terminal tant qu'ils ne sont pas terminés. Lorsqu'une tâche est en cours d'exécution, vous ne pouvez pas exécuter d'autres commandes dans le même terminal, sauf si vous arrêtez ou déplacez d'abord la tâche en arrière-plan. Les tâches en arrière-plan s'exécutent en arrière-plan, ce qui signifie que vous pouvez exécuter d'autres commandes immédiatement après avoir démarré une tâche en arrière-plan dans le même terminal.

# 列出所有当前作业的状态
jobs

# 将当前作业或指定作业带到前台;其中 n 是作业ID(JID)
fg %n

# 将当前作业或指定作业置于后台;其中 n 是作业ID
bg %n

# 停止前台作业并将其放置在后台作为已停止的作业。这个作业稍后可以被重新启动
# 按 Ctrl + Z 实现

# 向前台作业发送SIGINT信号,通常会导致其退出。这个作业不能被重新启动
# 按 Ctrl + C 实现

Quelques autres ajouts :

écho

echoest une commande Unix/Linux qui imprime ses arguments sur la sortie standard (généralement un terminal ou un écran).

# echo 用于显示作为参数传递的文本/字符串行
echo "Hello, World!"

# 将 "echo ls -l" 的输出传递给 shell,结果与简单的 ls -l 相同
echo ls -l | sh

sed

sedCommand est un éditeur de flux qui peut être utilisé pour effectuer des transformations de texte. Voici un exemple de remplacement de contenu textuel à l'aide de sed :

# sed 可以进行插入、删除、搜索和替换(替换)
# 在 file.txt 中用 'new_word' 替换 'old_word'
sed 's/old_word/new_word/' file.txt

homme

manLa commande est très importante dans les systèmes Unix ou de type Unix, elle est utilisée pour accéder aux pages de manuel du système. Ces pages de manuel contiennent des descriptions détaillées et l'utilisation de presque toutes les commandes et fonctions. Pour afficher la page de manuel d'une commande ou d'un programme particulier, il vous suffit de taper man, suivi du nom de la commande que vous souhaitez rechercher, par exemple man ls. Ouvrez la page de manuel et vous constaterez que le contenu est organisé en plusieurs sections, notamment des descriptions de commandes, des listes d'options, des exemples d'utilisation, etc.

Vous pouvez utiliser les touches haut et bas du clavier pour faire défiler ou utiliser /la touche pour rechercher un texte spécifique. Lorsque vous utilisez /la commande pour rechercher un mot ou une expression spécifique, le système déplace le curseur à la première position correspondante. Si vous voulez voir le prochain match, vous pouvez appuyer sur nla touche . De cette façon, chaque fois que nla touche est enfoncée, le curseur descend jusqu'à la correspondance suivante.

De plus, de nombreuses commandes ont une option -hou --help, qui peut également afficher les informations de base et l'utilisation de la commande. Par exemple, la saisie ls --helpaffiche lsl'utilisation de base et la liste des options de la commande.

$ man <command>
$ <command> --help or -h

résumé

Cet article trie certaines commandes couramment utilisées dans le shell du système Linux.La plupart des commandes que j'ai énumérées sont essentiellement utilisées dans la pratique. 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44492824/article/details/130859021
conseillé
Classement