Linux: Introdução ao Shell, BASH e Shell Script

Concha

O que é Shell

Shell (programa de shell) é a interface de usuário do sistema, que fornece uma interface para o usuário interagir com o kernel. Ele recebe o comando inserido pelo usuário e o envia ao kernel para execução.

Insira a descrição da imagem aqui

Na verdade, o Shell é um interpretador de comandos, que interpreta os comandos inseridos pelo usuário e os envia ao kernel. Além disso, o Shell possui sua própria linguagem de programação para edição de comandos, o que permite aos usuários escrever programas compostos de comandos shell. A linguagem de programação Shell tem muitas características das linguagens de programação comuns, por exemplo, também tem estrutura de loop e estrutura de controle de ramificação, etc. Os programas shell escritos nesta linguagem de programação têm o mesmo efeito que outros aplicativos

Contanto que o software que pode operar o programa aplicativo possa ser chamado de programa de shell, o programa de shell estreito se refere ao software de linha de comando , como o BASH descrito posteriormente neste artigo; o programa de shell amplo inclui o software do modo de interface gráfica do usuário, porque os gráficos A interface do usuário pode operar vários aplicativos para chamar o trabalho do kernel

BASH

O que é BASH

Shell tem muitas versões diferentes de acordo com seu desenvolvimento, BASH é uma delas, BASH (Bourne Again Shell) é a versão usada pelo Linux por padrão

Função variável shell

variável

Variáveis ​​são tipos de dados usados ​​por sistemas de computador para armazenar valores de variáveis. Podemos extrair diretamente o valor da variável correspondente por meio do nome da variável. É para substituir algumas configurações ou uma sequência de dados reservados por um conjunto de palavras ou símbolos.
Insira a descrição da imagem aqui

Variável de ambiente

Em sistemas Linux, as variáveis ​​de ambiente são usadas para definir alguns parâmetros do ambiente operacional do sistema, como os diferentes diretórios pessoais (HOME) e locais de armazenamento de correio (MAIL) de cada usuário. Para distinguir das variáveis ​​personalizadas, as variáveis ​​de ambiente geralmente são expressas em letras maiúsculas

Por ser um sistema operacional multiusuário e multitarefa, o Linux pode proporcionar a cada usuário um ambiente de trabalho independente e adequado, portanto, uma mesma variável de ambiente terá valores diferentes devido às identidades de usuários diferentes. Como mostrado abaixo:
Insira a descrição da imagem aqui

Uso e configuração de variáveis: echo, =, unset

echo : você pode usar o comando echo para usar variáveis. Quando variáveis ​​são usadas, elas devem ser precedidas por um cifrão $. Por exemplo, para visualizar o conteúdo da variável PATH:

echo $PATH

Insira a descrição da imagem aqui
= : Use = para definir ou modificar o conteúdo de uma variável. Por exemplo, para definir o conteúdo da variável myname para WangGarrison, então:

myname=WangGarrison

Insira a descrição da imagem aqui
Ao definir as variáveis, elas devem atender a determinados regulamentos, caso contrário, a configuração falhará. As regras são as seguintes:

  1. Variável e conteúdo variável são conectados com um =
  2. Não são permitidos espaços em ambos os lados do sinal de igual
  3. Os nomes das variáveis ​​só podem ser letras e números ingleses e não podem começar com números
  4. Existem espaços no conteúdo da variável, você pode usar aspas simples ou duplas para incluir a variável

unset : unset pode cancelar a variável, por exemplo, cancelar a configuração de myname:

unset myname

Insira a descrição da imagem aqui

Função das variáveis ​​de ambiente

As variáveis ​​de ambiente podem nos ajudar a alcançar muitas funções, incluindo a conversão do diretório raiz (pasta inicial), a exibição de caracteres de prompt, o caminho para realizar a pesquisa de arquivos, etc.

Você pode usar os comandos env e export para visualizar as variáveis ​​de ambiente padrão do ambiente shell atual. Env é a abreviação de ambiente

env

Insira a descrição da imagem aqui
As 10 variáveis ​​de ambiente importantes do Linux são as seguintes:

Nome da variável de ambiente efeito
CASA Diretório inicial do usuário
CONCHA Nome do interpretador shell usado pelo usuário
CAMINHO Caminho para realizar a pesquisa de arquivos
EDITOR Intérprete de texto padrão do usuário
ALEATÓRIA Variável de número aleatório
LANG Dados de linguagem
HISTSIZE Número de saída de registros históricos de comando
HISTFILESIZE Número de registros de comandos históricos salvos
PS1 Prompt do intérprete Bash
ENVIAR Caminho para salvar e-mail

Use o comando set para visualizar todas as variáveis ​​(incluindo variáveis ​​de ambiente e variáveis ​​personalizadas)

set

Converta variáveis ​​personalizadas em variáveis ​​de ambiente

A principal diferença entre uma variável personalizada e uma variável de ambiente é que a variável de ambiente continuará a ser referenciada pelo processo filho, enquanto a variável personalizada não. A correlação entre o processo pai e o processo filho é a seguinte: o
Insira a descrição da imagem aqui
processo filho herda apenas as variáveis ​​de ambiente do processo pai, e o processo filho não Irá herdar as variáveis ​​personalizadas do processo pai. Portanto, as variáveis ​​personalizadas do bash originais não podem ser usadas no processo filho depois de entrar no processo filho e não podem ser usadas até que o processo filho saia.

Então, se você quiser que as variáveis ​​personalizadas do processo pai sejam usadas no processo filho, você precisa converter as variáveis ​​personalizadas em variáveis ​​de ambiente e usar o comando export para converter

export 变量名称

Introdução específica do comando de exportação

Leitura de teclado variável, matriz e declaração

read : usado para ler variáveis ​​de entrada do teclado, que podem ser usadas para interagir com o usuário

read [-pt] variable  #-p后面可以接提示字符   -t后面可以接等待的秒数

Insira a descrição da imagem aqui
declare, typeset : declare ou typeset é a mesma função, que é declarar o tipo da variável

declare [-aixr] variable
-a:将后面名为variable的变量定义成为数组(array)类型
-i:将后面名为variable的变量定义成为整数(integer)类型
-x:用法与export一样,就是将后面的variable变成环境变量
-r:将变量设置成为readonly类型,该变量不可被更改内容,也不能unset

Por padrão, o tipo de variável padrão é string, conforme mostrado na figura abaixo, a variável a padrão é string 2 + 3 + 4
Insira a descrição da imagem aqui
tipo de variável de array

var[index]=content  #数组名为var,下标是index,内容是content,

Por exemplo:
Insira a descrição da imagem aqui

Aliases de comando e comandos históricos

Configuração de alias de comando : alias, unalias

alias lm='ls -al | more'  #把ls -al |more命令简化为lm

Você pode digitar o apelido diretamente para ver quais apelidos de comando estão disponíveis no momento. Conforme mostrado abaixo:
Insira a descrição da imagem aqui
delete command alias

unalias lm

Comando de história

history [n]  
history [-c]  
history [-raw]
选项与参数:
n:列出最近的n条命令行表
-c:将目前的shell中的所有history内容全部清除
-a:将目前新增的history命令新增入histfiles中,若没有histfiles,则默认写入~/.bash_history
-r:将histfiles的内容读到目前这个shell的history中
-w:将目前的history记录内容写到histfiles中

Quando logamos no host Linux com bash, o sistema irá ler ativamente os comandos executados anteriormente do diretório home ~ / .bash_history.O número de dados registrados neste diretório está relacionado à variável de ambiente HISTFILESIZE do bash.

Shell Script

O que é ShellScript

Shell Script é um script Shell, que é um script escrito para shell. Escrevemos parte da gramática e dos comandos especificados pelo shell, junto com funções como expressões regulares, comandos de pipeline e redirecionamento de fluxo de dados, em um arquivo de texto simples para atingir a finalidade de processamento desejada e, em seguida, adicionamos a extensão ".sh". , Este é o "script Shell"

Em suma, podemos nos comunicar com sucesso com o computador apenas interpretando nossos comandos e outras solicitações através da ferramenta Shell. Ao mesmo tempo, com o script Shell, um "programa" que pode processar comandos em lotes, podemos nos comunicar melhor com o computador.

Livros de referência

"Niaoge's Linux Private Kitchen" Quarta edição, capítulo 10 Compreendendo e aprendendo BASH

Acho que você gosta

Origin blog.csdn.net/huifaguangdemao/article/details/108393856
Recomendado
Clasificación