Aplicativo de script Shell
informações básicas de sehll
O papel do shell
(1) O papel do interpretador de comandos shell "tradutor"
- Entre o kernel do sistema e o usuário, responsável por explicar a linha de comando
(2) o shell de login do usuário - O programa shell usado por padrão após o login,
一般为 /bin/bash
- Os comandos internos e o ambiente operacional de diferentes shells serão diferentes
(3) [root @ localhost ~] # cat / etc / shells (exibir todos os shells)
Escreva o primeiro script de shell
(1) Escreva o código do script
-
Use o editor vi ou vim
-
Um comando Linux por linha, escrito em ordem de execução
[root @ localhost ~] # vi first.sh(一般shell脚本的后缀都是.sh)
escritas(推荐使用vim编辑器,因为会变颜色,写的时候写错了不会变颜色)
(você pode usar o yum -y install vim para instalar, se você não tem isso, geralmente sistemas CentOS com uma vontade interface gráfica tem, a linha de comando Você tem que instalá-lo sozinho)
(2) Conceda permissões de executável -
Ter uma propriedade para tornar o script executável
(没有可执行的权限就无法运行脚本)
[root @ localhost ~] # chmod + x first.sh ( usando chmod adicionado à permissão de execução do script)
(3) executando o arquivo de script
método: ./ caminho do arquivo de script(使用./时最好就直接进入脚本所在目录执行即可)
Método Dois: sh script caminho do arquivo
Método três: caminho do arquivo do script de origem -
(使用./时时必须要求有x可执行权限的使用sh或source可以不用,但是还是要养成习惯给一个x权限)
Método de execução do script : [root @ localhost ~] # ./first.sh
Método dois: [root @ localhost ~] # sh /first.sh
Método três: [root @ localhost ~] # Source /first.sh
(. 4 ) Composição de roteiro mais completa (geralmente escrita assim) -
A primeira linha da instrução do script declara o ambiente de execução do script
-
A linha com informações de comentário começando com # é uma linha de comentário, o que você geralmente faz ao escrever este script, etc.
-
Instrução executável
Exemplo: [root @ localhost ~] # vi /first.sh
#! / Bin / bash #Este(脚本声明,在/bin/bash下运行)
é meu primeiro script de shell(注释信息)
cd / boot(下面都是可执行语句)
echo "O diretório atual está localizado:"
pwd
echo "Vml Os arquivos no início incluem: "(输出友好的提示信息)
ls -lh vml *(ls -lh 长格式更加人性化方式显示出以vml开头的文件)
[root @ localhost ~] #chmod + x first.sh (adicionar permissões executáveis)
[root @ localhost ~] # ./first.sh (executar script)
Redirecionamento e operação de tubulação
(1) Equipamento de hardware interativo
- Entrada padrão: receba dados de entrada do usuário do dispositivo
- Saída padrão: dados de saída para o usuário por meio do dispositivo
- Erro padrão: relatório de informações de erro de execução por meio deste dispositivo
[tipo] [arquivo do dispositivo] [número da descrição do arquivo] [dispositivo padrão]
entrada padrão; / dev / stdin; 0;
saída padrão do teclado ; / dev / stdout; 1;
erro padrão de exibição Saída; / dev / stderr; 2; exibir
(2) operação de redirecionamento
[tipo] [operador] [propósito]
redirecionar a entrada; <; ler dados do arquivo especificado em vez de
redirecionar a saída da entrada do teclado ;>; a saída保存
para o especificado arquivo(会覆盖原文件)
para redirecionar a saída; >>; a saída追加
para a(不会覆盖原文件默认加到指定文件的末尾)
saída de erro padrão do arquivo especificado ; 2>; informações de erro保存
para a(会覆盖原文件)
saída de erro padrão do arquivo especificado ; 2 >>; informações de erro追加
para a(不会覆盖原文件默认加到指定文件的末尾)
saída mista do arquivo especificado ; &>; salvar o conteúdo de saída padrão e erro padrão para o mesmo arquivo(就是不管是对的还是错的只要是执行问前一个命令后的所有结果都保存到指定文件,会覆盖原文件)
(um> é para sobrescrever dois >> é para anexar)
Exemplo de redirecionamento:
- uname -p> kernel.txt
cat kernel.txt
uname -p
- uname -r >> kernel.txt
cat kernel.txt
- echo “123456”> pass.txt
(利用重定向去设置用户密码)
cat pass.txt
usuárioadd tom
passwd --stdin tom <pass.txt
- tar jcf /nonedir/etc.tgz / etc
tar jcf /nonedir/etc.tgz / etc 2> error.log (insira as informações do erro no arquivo error.log)
cat error.log
Símbolo de tubo "|"
- Exibe o resultado do comando à esquerda como o destino de processamento do comando à direita
- Formato: cmd1 | cmd2 |… | cmdn
(cmd执行的命令,可以使用管道符|一直执行)
[root @ localhost ~] # grep "bash $" / etc / passwd
[root @ localhost ~] # grep "bash $" / etc / passwd | awk -F: '{print $ 1, $ 7}' (利用管道符和awk行处理器筛选出数据中的第一个和第七个字段 -F是用什么分割,这里是使用的是 :分割的)
Exemplo: Use a barra vertical e o processador de linha awk para extrair o endereço mac para / montar o uso
- df -hT | grep “/ $” | awk '{print $ 6}' (o uso de montagem com / finalizando)
- ip a | grep "ff: ff: ff: ff: ff: ff $" | awk '[imprimir $ 2}' (extrair o endereço mac através de grep, awk)