Informations de base du shell, redirection et caractère de canal

informations de base de sehll

Le rôle du shell
(1) Le rôle de l'interpréteur de commandes shell "traducteur"

  • Entre le noyau système et l'utilisateur, chargé d'expliquer la ligne de commande
    (2) le shell de connexion de l'utilisateur
  • Le programme shell utilisé par défaut après la connexion,一般为 /bin/bash
  • Les commandes internes et l'environnement d'exploitation des différents shells seront différents
    (3) [root @ localhost ~] # cat / etc / shells (affiche tous les shells)
    Utilisez la commande cat pour afficher tous les shells

Ecrire le premier script shell

(1) Écrire le code de script

  • Utiliser l'éditeur vi ou vim

  • Une commande Linux par ligne, écrite dans l'ordre d'exécution
    [root @ localhost ~] # vi first.sh (一般shell脚本的后缀都是.sh)
    écrit (推荐使用vim编辑器,因为会变颜色,写的时候写错了不会变颜色)(vous pouvez utiliser yum -y install vim pour installer si vous ne l'avez pas, généralement les systèmes Centos avec une interface graphique ayez-le, la ligne de commande Vous devez l'installer vous-même)
    Le premier script shell
    (2) Accordez des autorisations exécutables

  • Avoir une propriété pour rendre le script exécutable (没有可执行的权限就无法运行脚本)
    [root @ localhost ~] # chmod + x first.sh (en utilisant chmod ajouté à l'autorisation d'exécution du script)
    (3) exécution de la
    méthode du fichier de script : ./ chemin du fichier de script (使用./时最好就直接进入脚本所在目录执行即可)
    Méthode deux: script sh chemin du fichier
    Méthode 3: chemin du fichier du script source

  • (使用./时时必须要求有x可执行权限的使用sh或source可以不用,但是还是要养成习惯给一个x权限)
    Méthode d' exécution du script : [root @ localhost ~] # ./first.sh
    Utiliser le script ./execute
    Méthode deux: [root @ localhost ~] # sh /first.sh
    Utilisez sh pour exécuter le script
    Méthode trois: [the root @ localhost ~] # Source /first.sh
    Utiliser la source pour exécuter le script
    (. 4 ) Une composition de script plus complète (généralement écrite comme ceci)

  • La première ligne de l'instruction de script déclare l'environnement d'exécution du script

  • La ligne avec les informations de commentaire commençant par # est une ligne de commentaire, que faites-vous habituellement lorsque vous écrivez ce script, etc.

  • Instruction exécutable
    Exemple: [root @ localhost ~] # vi /first.sh
    #! / Bin / bash # Ceci (脚本声明,在/bin/bash下运行)
    est mon premier script shell (注释信息)
    cd / boot (下面都是可执行语句)
    echo "Le répertoire courant se trouve:"
    pwd
    echo "Vml Les fichiers au début include: " (输出友好的提示信息)
    ls -lh vml * (ls -lh 长格式更加人性化方式显示出以vml开头的文件)
    Le premier script shell
    [root @ localhost ~] #chmod + x first.sh (ajouter des autorisations exécutables)
    [root @ localhost ~] # ./first.sh (exécuter le script)
    Exécuter le script

Redirection et opération de canalisation

(1) Matériel matériel interactif

  • Entrée standard: recevoir les données d'entrée utilisateur de l'appareil
  • Sortie standard: sortie des données vers l'utilisateur via l'appareil
  • Erreur standard: rapporter les informations sur l'erreur d'exécution via ce périphérique
    [type] [fichier de périphérique] [numéro de description du fichier] [périphérique par défaut]
    entrée standard; / dev / stdin; 0;
    sortie standard du clavier ; / dev / stdout; 1;
    erreur standard d' affichage Sortie; / dev / stderr; 2;
    opération de redirection d' affichage (2)
    [type] [opérateur] [objectif]
    rediriger l'entrée; <; lire les données à partir du fichier spécifié au lieu de
    rediriger la sortie depuis l'entrée clavier ;>; la sortie 保存vers la sortie spécifiée fichier (会覆盖原文件)
    pour rediriger la sortie; >>; la sortie 追加vers la (不会覆盖原文件默认加到指定文件的末尾)
    sortie d'erreur standard du fichier spécifié ; 2>; les informations d'erreur 保存vers la (会覆盖原文件)
    sortie d'erreur standard du fichier spécifié ; 2 >>; les informations d'erreur 追加vers la (不会覆盖原文件默认加到指定文件的末尾)
    sortie mixte de fichier spécifiée ; &>; enregistrer le contenu de la sortie standard et de l'erreur standard dans le même fichier (就是不管是对的还是错的只要是执行问前一个命令后的所有结果都保存到指定文件,会覆盖原文件)
    (un> est d'écraser deux >> est d'ajouter)

Exemple de redirection:

  • uname -p> kernel.txt
    Rediriger la sortie
    chat kernel.txt
    uname -p
    Afficher la sortie
  • uname -r >> kernel.txt
    Ajouter à
    chat kernel.txt
    Vue
    Vue
  • echo "123456"> pass.txt (利用重定向去设置用户密码)
    Entrez des nombres dans le fichier spécifié

chat pass.txt
Afficher le contenu du fichier

useradd tom
Créer un utilisateur

passwd --stdin tom <pass.txt
Utilisez la redirection pour saisir le contenu du fichier comme mot de passe pour le mot de passe de l'utilisateur créé

  • tar jcf /nonedir/etc.tgz / etc
    Créer une archive

tar jcf /nonedir/etc.tgz / etc 2> error.log (entrez les informations d'erreur dans le fichier error.log)
Sortie mixte

erreur de chat.log
Afficher le contenu du fichier

Symbole de tuyau "|"

  • Sortie du résultat de la commande à gauche comme cible de traitement de la commande à droite
  • Format: cmd1 | cmd2 |… | cmdn (cmd执行的命令,可以使用管道符|一直执行)
    [root @ localhost ~] # grep "bash $" / etc / passwd
    Afficher les données dont le suffixe est bash

[root @ localhost ~] # grep "bash $" / etc / passwd | awk -F: '{print $ 1, $ 7}' (利用管道符和awk行处理器筛选出数据中的第一个和第七个字段 -F是用什么分割,这里是使用的是 :分割的)
Contenu de sortie
Exemple: Utilisez le caractère pipe et le processeur de ligne awk pour extraire l'adresse mac pour / monter l'utilisation

  • df -hT | grep “/ $” | awk '{print $ 6}' (l'utilisation du montage avec / se terminant)
    Utilisation du montage / montage
  • ip a | grep "ff: ff: ff: ff: ff: ff $" | awk '[print $ 2}' (extraire l'adresse mac via grep, awk)
    Adresse Mac

Je suppose que tu aimes

Origine blog.csdn.net/rzy1248873545/article/details/110307516
conseillé
Classement