Artigo Diretório
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.
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.
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:
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
= : 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
Ao definir as variáveis, elas devem atender a determinados regulamentos, caso contrário, a configuração falhará. As regras são as seguintes:
- Variável e conteúdo variável são conectados com um =
- Não são permitidos espaços em ambos os lados do sinal de igual
- Os nomes das variáveis só podem ser letras e números ingleses e não podem começar com números
- 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
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
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
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后面可以接等待的秒数
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
tipo de variável de array
var[index]=content #数组名为var,下标是index,内容是content,
Por exemplo:
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:
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