Noções básicas do shell - uma linguagem de script fácil de usar


definição

O que é Shell

• Shell não é apenas uma linguagem de comando, mas também uma linguagem de programação.
• É um ambiente que fornece uma interface para o sistema linux (unix).
• Recebe a entrada do usuário, executa o programa com base na entrada e exibe o saída do programa.
• Você pode executar os comandos do usuário, programas e scripts de shell

Para os usuários, o shell é o utilitário mais importante. Conhecimento profundo e proficiência nas características do shell e como usá-lo são a chave para fazer um bom uso do sistema Unix / Linux


Classificação Shell

• Assim como existem diferentes tipos de sistemas, existem diferentes versões do shell, cada um com seu próprio conjunto de comandos e funções.
• O shell UNIX foi escrito em meados da década de 1970 por Stephen Byrne e AT&T Bell Labs em New Jersey

  1. Bourne shell prompt $

Bourne shell inclui três tipos: Bourne shell (sh), Korn shell (ksh) e Bourne Again Shell.

  1. C shell prompt %

O shell C inclui dois tipos: csh e tcsh


Intérprete de script shell

Ver o shell padrão do sistema
echo $ SHELL

[root@single conf]# echo $SHELL
/bin/bash

Como o bash é fácil de usar e gratuito, ele é amplamente usado no trabalho diário. Ao mesmo tempo, bash também é o interpretador de script de shell padrão para a maioria dos sistemas Linux.

Veja os shells suportados pelo sistema
cat / etc / shells

[root@single conf]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

Especificação Shell

  1. O nome do arquivo do script de shell tem uma extensão .sh, por exemplo: test.sh
  2. Os arquivos de script de shell devem receber permissão de execução (o arquivo recém-criado não tem permissão de execução)
    chmod u + x test.sh
  3. Um script Shell padrão indicará qual interpretador é usado para executar o conteúdo do script na primeira linha. A programação desta linha no Linux é geralmente: #! / Bin / bash
  4. Método de execução de script
    shell./test.sh

comando

Entrada / saída do console

	echo [-n] "..."		控制台输出
	read VAR			控制台输入

caso:

#!/bin/bash
echo -n  "please enter your name => "
read NAME
echo "your name is $NAME"

resultado:

[root@single shell]# ./test.sh 
please enter your name => jun
your name is jun

Anotação

	单行:#...
	多行::<<!...!

caso:

#!/bin/bash
:<<!
echo -n  "please enter your name => "
read NAME
echo "your name is $NAME"
!
echo "break"
#echo -n "hello shell"

resultado:

[root@single shell]# ./test.sh 
break

variável

Formato da sintaxe: nome da variável = valor da variável

•数字、字母、下划线、一般字母大写
•值可以是一个数字、文本、文件名、设备或任何其他类型的数据,不可以是指针
•shell可以创建,分配和删除变量

Tipo de variável

Tipos de significado
Variável local Variáveis ​​locais são definidas em scripts ou comandos e só são válidas na instância atual do shell.Os programas iniciados por outros shells não podem acessar variáveis ​​locais.
Variável de ambiente Todos os programas, incluindo aqueles iniciados pelo shell, podem acessar variáveis ​​de ambiente e alguns programas precisam de variáveis ​​de ambiente para garantir sua operação normal. Você pode usar o comando set para ver as variáveis ​​de ambiente atuais
variáveis ​​de shell Variáveis ​​especiais definidas pelo programa shell. Algumas das variáveis ​​do shell são variáveis ​​de ambiente e outras são variáveis ​​locais. Essas variáveis ​​garantem o funcionamento normal do shell.

Uso de variável

  1. Variável local
创建
NAME="henry"
AGE=18
使用
echo "$NAME,$AGE"
echo $NAME
取消
unset NAME
常量
readonly NAME

caso:

[root@single shell]# NAME="JUN"
[root@single shell]# AGE=22
[root@single shell]# echo "$NAME,$AGE"
JUN,22
[root@single shell]# unset NAME
[root@single shell]# echo "$NAME,$AGE"
,22

[root@single shell]# NAME="jun"
[root@single shell]# readonly NAME
[root@single shell]# echo $NAME
jun
[root@single shell]# NAME="kun"
-bash: NAME: readonly variable
  1. Variável de ambiente

Variáveis ​​de ambiente globais: acesso entre instâncias
Variáveis ​​de ambiente temporárias: variáveis ​​de ambiente temporárias que são válidas para o login atual

export -p		#列出所有环境变量
export -n VAR	#删除环境变量VAR
export VAR		#添加环境变量VAR
[root@single shell]# export -p
declare -x CLASS_PATH=".:/opt/software/jdk180/lib/tools.jar:/opt/software/jdk180/lib/dt.jar"
declare -x HADOOP_HOME="/opt/software/hadoop/hadoop260"
declare -x HBASE_HOME="/opt/software/hadoop/hbase120"
···
[root@single shell]# export jun
[root@single shell]# export -p
···
declare -x jun
[root@single shell]# export -n jun
[root@single shell]# export -p
···
  1. variáveis ​​de shell
símbolo significado
$$ Número do processo shell atual
$ 0 O nome do arquivo do script atual
$ n Parâmetros de script
$ # Número de parâmetros de script
$ * Conjunto completo de parâmetros de script
$ @ Coleção independente de parâmetros de script
$? O valor do status do resultado da execução do comando anterior ou o valor de retorno da função: 0 significa normal, 1 significa falhou
$! O número do processo do último comando de fundo
	$* 和 $@ 的区别
不加"两者相同
加上"则$*代表整体,而$@代表个体

Acho que você gosta

Origin blog.csdn.net/weixin_48482704/article/details/110383862
Recomendado
Clasificación