Shell connaissances de base finition 01

Opérations Shell communes et pratiques

1. Afficher la prise en charge du shell système

# cat /etc/shells

2. Afficher le shell par défaut des systèmes d'exploitation courants

2.1 échantillon1
# echo $SHELL
2.2 échantillon2
# grep root /etc/passwd

3. Pratique pour les utilisateurs habitués à vi / emacs à utiliser vim

# echo "alias vi='vim'" >> /etc/profile
# source /etc/profile

4. La déclaration de la première ligne du script Shell

#!/bin/bash

La première ligne du script shell indiquera quel programme (interpréteur) exécute le contenu du script et l'emplacement de l'interpréteur correspondant. Si ce n'est pas la première ligne en haut, c'est la ligne de commentaire du script.

Si le fichier de script n'est pas #!cette ligne, alors il utilisera par défaut l'implémentation de Shell pour expliquer ce script avec la variable d'environnement actuelle (c'est-à-dire, la variable d'environnement $ SHELL)

5. La différence entre bash et sh

[root@VM_153_220_centos ~]# ll /bin/sh
lrwxrwxrwx 1 root root 4 Sep 21 21:29 /bin/sh -> bash
[root@VM_153_220_centos ~]# ll /bin/bash
-rwxr-xr-x 1 root root 964544 Apr 11  2018 /bin/bash

Le début de bash était différent de sh, qui comprenait également les fonctionnalités de csh et ksh. shLien souple bash, le prochain nombre de partages, le début du script utilisé dans le combat #!/bin/bashet #!/bin/shil n'y a pas de différence, mais un libellé plus standardisé est utilisé au début du script#!/bin/bash

Par exemple, la déclaration au début de certains scripts intégrés sous Linux

[root@VM_153_220_centos ~]# head -1 /etc/init.d/mysql 
#!/bin/sh
[root@VM_153_220_centos ~]# head -1 /bin/cd
#!/bin/sh
[root@VM_153_220_centos ~]# head -1 /etc/init.d/network 
#! /bin/bash

6. Vérifiez la version bash du système

[root@VM_153_220_centos ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
[root@VM_153_220_centos ~]# bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

7. Vérifiez si le système présente des vulnérabilités

# env x='() { :;}; echo be careful' bash -c "echo this is a test"
this is a test

Si les deux lignes suivantes sont renvoyées, cela signifie mettre à jour bash dès que possible, car l'ancienne version de bash comporte de nombreuses vulnérabilités

be careful
this is a test

8. Mettre à niveau la méthode bash

# yum -y update bash
# rpm -qa bash
bash-4.2.46-30.el7.x86_64

9. Le début des scripts communs

#!/bin/sh
#!/bin/bash
#!/usr/bin/awk
#!/bin/sed
#!/usr/bin/tcl
#!/usr/bin/expect
#!/usr/bin/perl
#!/usr/bin/env python

Les scripts dans différentes langues doivent généralement être ajoutés en conséquence 开头解释器语言标志. Parce que le Shell par défaut sous CentOS et Red Hat Linux est bash. Par conséquent, lors de l'écriture du script Shell, sans la #!/bin/bashvolonté de bash expliqué.

Si la première ligne du script ne spécifie pas d'interpréteur, l'interpréteur correspondant doit être utilisé pour exécuter le script. Ce n'est qu'ainsi que le script peut s'exécuter normalement. Par exemple:

  • Script Python qui utilise l' python test.pyexécutiontest.py
  • Les scripts shell utilisent bash test.shpour effectuertest.sh

10. Plusieurs façons d'exécuter un script shell

  • bash nom-script 或 sh nom-script
  • chemin / nom-script ou ./ nom-script (fichier exécutable)
  • nom-script source 或 nom-script
  • sh <nom-script 或 cat nom-script | sh

Je suppose que tu aimes

Origine blog.csdn.net/qq_36148847/article/details/83213504
conseillé
Classement