Skip to main content

Linux - Comando Unix: bash

20 comandos mais importantes para iniciantes no Linux - 1 a 10 (Abril 2025)

20 comandos mais importantes para iniciantes no Linux - 1 a 10 (Abril 2025)
Anonim

O comando do Linux Bater é umsh-interpretador de linguagem de comando compatível que executa comandos lidos da entrada padrão ou de um arquivo.Bater também incorpora recursos úteis das conchas Korn e C (ksh ecsh).

Opções de Bash

Além das opções de shell de caractere único documentadas na descrição doconjunto comando interno,bater interpreta as seguintes opções quando é invocado:

  • -c corda: Se o-c opção está presente, então os comandos são lidos corda . Se houver argumentos após o corda , eles são atribuídos aos parâmetros posicionais, começando com$0.
  • -Eu: Se o-Eu opção está presente, o shell é interativo .
  • -eu: Façobater agir como se tivesse sido invocado como um shell de login.
  • -r: Se o-r opção está presente, o shell se torna restrito.
  • -s: Se o-s opção está presente, ou se nenhum argumento permanece após o processamento da opção, então os comandos são lidos a partir da entrada padrão. Esta opção permite que os parâmetros posicionais sejam definidos ao invocar um shell interativo.
  • -D: Uma lista de todas as cadeias de caracteres com aspas duplas precedidas por$ é impresso na saída padrão. Estas são as cadeias de caracteres que estão sujeitas a tradução de idioma quando a localidade atual não éC ouPOSIX. Isso implica o -n opção; nenhum comando será executado.
  • - + O shopt_option : shopt_option é uma das opções de shell aceitas peloshopt construídas em. E se shopt_option é presente,-O define o valor dessa opção e+ O anula isso. E se shopt_option não é fornecido, os nomes e valores das opções de shell aceitos peloshopt são impressos na saída padrão. Se a opção de invocação for + O, a saída é exibida em um formato que pode ser reutilizado como entrada.
  • --: UMA-- sinaliza o fim das opções e desativa o processamento de opções adicionais. Quaisquer argumentos após o-- são tratados como nomes de arquivos e argumentos. Um argumento de- é equivalente a--.

Bater também interpreta várias opções de vários caracteres. Essas opções devem aparecer na linha de comando antes das opções de caractere único a serem reconhecidas:

  • --dump-po-strings: Equivalente a-D, mas a saída está no GNU gettext po (formato de arquivo portátil).
  • --dump-strings: Equivalente a-D.
  • --Socorro: Exibe uma mensagem de uso na saída padrão e sai com sucesso.
  • --init-file: Arquivo e --rcfile Arquivo : Executar comandos de Arquivo em vez do arquivo de inicialização pessoal padrão ~ / .bashrc se o shell é interativo.
  • --entrar: Equivalente a-eu.
  • --noediting: Não use o GNULeia a linha biblioteca para ler linhas de comando quando o shell é interativo.
  • --noprofile: Não ler o arquivo de inicialização do sistema / etc / profile ou qualquer um dos arquivos de inicialização pessoal ~ / .bash_profile , ~ / .bash_login ou ~ / .profile . Por padrão,bater lê esses arquivos quando é chamado como um shell de login.
  • --norc: Não ler e executar o arquivo de inicialização pessoal ~ / .bashrc se o shell é interativo. Esta opção está ativada por padrão se o shell for invocado comosh.
  • --posix: Alterar o comportamento debater onde a operação padrão difere do padrão POSIX para corresponder ao padrão ( modo posix ).
  • --restrito: O shell fica restrito.
  • --rpm-requires: Produza a lista de arquivos necessários para a execução do script de shell. Isso implica em '-n' e está sujeito às mesmas limitações que a verificação de verificação de erro de tempo de compilação; Backticks, testes e evals não são analisados, portanto, algumas dependências podem ser perdidas.
  • --verbose: Equivalente a-v.
  • --versão: Mostrar informações de versão para esta instância debater na saída padrão e saia com sucesso.

Argumentos

Se os argumentos permanecerem após o processamento da opção e nem o-c nem o-s opção foi fornecida, o primeiro argumento é assumido como sendo o nome de um arquivo contendo comandos shell. E se bater é invocado dessa maneira,$0 é definido como o nome do arquivo e os parâmetros posicionais são definidos para os argumentos restantes.Bater lê e executa comandos deste arquivo; então sai.BaterO status de saída é o status de saída do último comando executado no script. Se nenhum comando for executado, o status de saída será 0. É feita uma tentativa de abrir o arquivo no diretório atual e, se nenhum arquivo for encontrado, o shell pesquisará os diretórios no diretório atual.CAMINHO para o script.

Invocação

UMA shell de login é aquele cujo primeiro caractere do argumento zero é um-, ou um começou com o--entrar opção.

A interativo shell é um iniciado sem argumentos não-opção e sem o-c opção cuja entrada e saída padrão são conectadas aos terminais conforme determinado pela isatty (3), ou um iniciado com o-Eu opção.PS1 está definido e $- inclui se o bash é interativo, permitindo que um script de shell ou um arquivo de inicialização teste esse estado.

Os parágrafos a seguir descrevem comobater executa seus arquivos de inicialização. Se algum dos arquivos existir, mas não puder ser lido,bater relata um erro. Tils são expandidos em nomes de arquivos, conforme descrito em Tilde Expansion.

Quandobater é invocado como um shell de login interativo ou como um shell não interativo com o--entrar opção, primeiro lê e executa comandos do arquivo / etc / profile , se esse arquivo existir. Depois de ler esse arquivo, ele procura ~ / .bash_profile , ~ / .bash_login e ~ / .profile , nessa ordem, e lê e executa comandos do primeiro que existe e é legível. o--noprofile opção pode ser usada quando o shell é iniciado para inibir esse comportamento.

Quando um shell de login sai,bater lê e executa comandos do arquivo ~ / .bash_logout , se existir.

Quando um shell interativo que não é um shell de login é iniciado,bater lê e executa comandos de ~ / .bashrc , se esse arquivo existir. Isso pode ser inibido usando o--norc opção. o--rcfile Arquivo opção vai forçarbater ler e executar comandos de Arquivo ao invés de ~ / .bashrc .

Quandobater é iniciado de forma não interativa - para executar um script de shell, por exemplo - ele procura pela variávelBASH_ENV no ambiente, expande seu valor se ele aparecer lá e usa o valor expandido como o nome de um arquivo para ler e executar.Bater se comporta como se o seguinte comando fosse executado:

if -n "$ BASH_ENV"; então . "$ BASH_ENV"; fi

mas o valor doCAMINHO variável não é usada para procurar o nome do arquivo.

E sebater é invocado com o nomesh, ele tenta imitar o comportamento de inicialização de versões históricas desh o mais próximo possível, ao mesmo tempo em conformidade com o padrão POSIX. Quando chamado como um shell de login interativo ou um shell não interativo com o--entrar opção, primeiro tenta ler e executar comandos de / etc / profile e ~ / .profile , naquela ordem. o--noprofile opção pode ser usada para inibir esse comportamento. Quando chamado como um shell interativo com o nome sh, bater procura a variávelENV, expande seu valor se estiver definido e usa o valor expandido como o nome de um arquivo para ler e executar. Desde um shell invocado comosh não tenta ler e executar comandos de nenhum outro arquivo de inicialização, o--rcfile opção não tem efeito. Um shell não interativo chamado com o nomesh não tenta ler nenhum outro arquivo de inicialização. Quando invocado comosh, bater entra posix modo após os arquivos de inicialização serem lidos.

Quandobater é iniciado em posix modo, como acontece com o--posix opção de linha de comando, segue o padrão POSIX para arquivos de inicialização. Neste modo, os shells interativos expandemENV variável e comandos são lidos e executados do arquivo cujo nome é o valor expandido. Nenhum outro arquivo de inicialização é lido.

Bater tenta determinar quando está sendo executado pelo daemon de shell remoto, geralmente rshd . E se bater determina que está sendo executado por rshd , lê e executa comandos de ~ / .bashrc , se esse arquivo existir e for legível. Não fará isso se invocado comosh. o--norc opção pode ser usada para inibir esse comportamento, e--rcfile opção pode ser usada para forçar outro arquivo a ser lido, mas rshd geralmente não invoca o shell com essas opções ou permite que elas sejam especificadas.

Se o shell for iniciado com o ID de usuário (grupo) efetivo não igual ao id de usuário real (grupo), e-p opção não é fornecida, nenhum arquivo de inicialização é lido, funções do shell não são herdadas do ambiente,SHELLOPTS a variável, se aparecer no ambiente, é ignorada e o ID do usuário efetivo é definido como o ID do usuário real. Se o-p opção é fornecida na invocação, o comportamento de inicialização é o mesmo, mas o id de usuário efetivo não é redefinido.

Definições

As seguintes definições são usadas em todo o restante deste documento:

  • Em branco: Um espaço ou tabulação
  • Palavra: Uma sequência de caracteres considerada como uma única unidade pelo shell. Também conhecido como símbolo.
  • Nome: UMA palavra consistindo apenas em caracteres alfanuméricos e sublinhados, e começando com um caractere alfabético ou um sublinhado. Também conhecido comoidentificador.
  • Metacaractere: Um caractere que, quando não mencionado, separa as palavras. Um dos seguintes:| &; () <> guia de espaço
  • Operador de controle: UMA símbolo que executa uma função de controle. É um dos seguintes símbolos: || & && ; ;; ( ) |

Palavras reservadas

Palavras reservadas são palavras que têm um significado especial para o shell. As seguintes palavras são reconhecidas como reservadas quando não mencionadas e a primeira palavra de um comando simples ou a terceira palavra de umcasooupara comando:

! caso faça elif else esac fi para função se em select então até enquanto {} tempo

Gramática de Concha: Comandos Simples

UMA comando simples é uma sequência de atribuições de variáveis ​​opcionais seguidas porem brancopalavras e redirecionamentos separados e terminados por operador de controle . A primeira palavra especifica o comando a ser executado e é passado como argumento zero. As palavras restantes são passadas como argumentos para o comando invocado.

O valor de retorno de um comando simples é o status de saída ou 128+ n se o comando for terminado por sinal n .

Pipelines

UMA gasoduto é uma sequência de um ou mais comandos separados pelo caractere|. O formato de um pipeline é Tempo -p ! comando | comando2 … .

A saída padrão de comando está ligado através de um tubo à entrada padrão do comando2 . Essa conexão é executada antes de qualquer redirecionamento especificado pelo comando.

Se a palavra reservada! precede um pipeline, o status de saída desse pipeline é o NOT lógico do status de saída do último comando. Caso contrário, o status do pipeline é o status de saída do último comando. O shell aguarda todos os comandos no pipeline terminarem antes de retornar um valor.

Se oTempo A palavra reservada precede um pipeline, o tempo decorrido e o tempo do usuário e do sistema consumidos por sua execução são relatados quando o pipeline termina. o-p opção altera o formato de saída para o especificado pelo POSIX. oTIMEFORMAT variável pode ser definida como uma string de formato que especifica como as informações de tempo devem ser exibidas.

Cada comando em um pipeline é executado como um processo separado (em um subshell, por exemplo).

Listas

UMA Lista é uma sequência de um ou mais pipelines separados por um dos operadores;, &, &&ou||e, opcionalmente, rescindido por um dos;, &ou.

Destes operadores de lista,&& e|| tem precedência igual, seguida por; e&, que têm precedência igual.

Uma seqüência de uma ou mais novas linhas pode aparecer em um Lista em vez de um ponto-e-vírgula para delimitar comandos.

Se um comando for finalizado pelo operador de controle&, o shell executa o comando no fundo em uma subcamada. O shell não espera que o comando termine e o status de retorno é 0. Comandos separados por um; são executados sequencialmente; o shell aguarda que cada comando termine por sua vez. O status de retorno é o status de saída do último comando executado.

Os operadores de controle&& e|| denotar listas AND e listas OR, respectivamente. Uma lista AND tem o formulário

comando1 && comando2

comando2 é executado se, e somente se, comando1 retorna um status de saída de zero.

Uma lista OR tem o formulário

comando1 || comando2

comando2 é executado se e somente se comando1 retorna um status de saída diferente de zero. O status de retorno das listas AND e OR é o status de saída do último comando executado na lista.

Comandos Compostos

UMA comando composto é um dos seguintes:

(Lista) : Lista é executado em um subshell. Atribuições de variáveis ​​e comandos incorporados que afetam o ambiente do shell não permanecem em vigor após o comando ser concluído. O status de retorno é o status de saída de Lista .

{ Lista; } : Lista é simplesmente executado no ambiente atual do shell. Lista deve ser terminado com uma nova linha ou ponto e vírgula. Isso é conhecido como comando de grupo . O status de retorno é o status de saída de Lista . Note que, ao contrário dos metacaracteres( e), { e} está Palavras reservadas e deve ocorrer onde uma palavra reservada tem permissão para ser reconhecida. Como eles não causam uma quebra de palavras, eles devem ser separados Lista pelo espaço em branco.

((expressão)) : O expressão é avaliado de acordo com as regras descritas em Avaliação Aritmética. Se o valor da expressão for diferente de zero, o status de retorno será 0; caso contrário, o status de retorno é 1. Isso é exatamente o equivalente adeixei ' expressão '.

expressão : Retorna um status de 0 ou 1 dependendo da avaliação da expressão condicional expressão . As expressões são compostas das primárias descritas abaixo sob Expressões Condicionais. A divisão de palavras e a expansão do nome do caminho não são executadas nas palavras entre o e; expansão do til, expansão de parâmetros e variáveis, expansão aritmética, substituição de comandos, substituição de processos e remoção de cotações.

Quando o== e!= operadores são utilizados, a cadeia à direita do operador é considerada um padrão e combinada de acordo com as regras descritasCorrespondência de Padrões. O valor de retorno é 0 se a cadeia corresponder ou não ao padrão, respectivamente, e 1 caso contrário. Qualquer parte do padrão pode ser citada para forçá-lo a ser correspondido como uma string.

As expressões podem ser combinadas usando os seguintes operadores, listados em ordem decrescente de precedência:

  • (expression): Retorna o valor de expressão . Isso pode ser usado para substituir a precedência normal dos operadores.
  • ! expressio n: Verdade se expressão é falso.
  • expression1 && expression2 : Verdade se ambos expression1 e expression2 são verdadeiras.
  • expression1 || expression2 : Verdadeiro se expression1 ou expression2 é verdade.

o&& e|| operadores não avaliam expression2 se o valor de expression1 é suficiente para determinar o valor de retorno de toda a expressão condicional.

  • para nome em palavra ; Faz Lista ; feito: A lista de palavras a seguirem é expandido, gerando uma lista de itens. A variável nome está definido para cada elemento desta lista, por sua vez, e Lista é executado a cada vez. Se oem palavra é omitido, opara comando executa Lista uma vez para cada parâmetro posicional definido. O status de retorno é o status de saída do último comando que é executado. Se a expansão dos itens seguintesem resulta em uma lista vazia, nenhum comando é executado e o status de retorno é 0.
  • para (( expr1 ; expr2 ; expr3 )) ; Faz Lista ; feito: Primeiro, a expressão aritmética expr1 é avaliado de acordo com as regras descritas emAvaliação Aritmética. A expressão aritmética expr2 é então avaliado repetidamente até que seja avaliado como zero. Cada vez expr2 avalia para um valor diferente de zero, Lista é executado e a expressão aritmética expr3 é avaliado. Se alguma expressão for omitida, ela se comportará como se fosse 1. O valor de retorno é o status de saída do último comando em Lista que é executado ou falso se alguma das expressões for inválida.
  • selecione nome em palavra ; Faz Lista ; feito: A lista de palavras seguintesem é expandido, gerando uma lista de itens. O conjunto de palavras expandidas é impresso no erro padrão, cada um precedido por um número. Se oem palavra é omitido, os parâmetros posicionais são impressos. o PS3 O prompt é então exibido e uma linha é lida a partir da entrada padrão. Se a linha consistir de um número correspondente a uma das palavras exibidas, então o valor de nome está definido para essa palavra. Se a linha estiver vazia, as palavras e o prompt serão exibidos novamente. Se EOF for lido, o comando será concluído. Qualquer outro valor lido causa nome para ser definido como null. A linha lida é salva na variávelRESPOSTA. o Lista é executado após cada seleção até umpausa comando é executado. O status de saída deselecione é o status de saída do último comando executado em Lista , ou zero se nenhum comando foi executado.
  • caso palavra em ( padronizar | padronizar : UMAcaso comando primeiro expande palavra e tenta combiná-lo contra cada padronizar por sua vez, usando as mesmas regras de correspondência que para a expansão do nome do caminho. Quando uma correspondência é encontrada, o correspondente Lista É executado. Após a primeira partida, nenhuma correspondência subsequente é tentada. O status de saída é zero se nenhum padrão corresponder. Caso contrário, é o status de saída do último comando executado em Lista .
  • E se Lista ; então Lista; e elif Lista ; então Lista ; … outro Lista ; fi: oE se Lista É executado. Se o status de saída for zero, oentão Lista É executado. Caso contrário, cada elif Lista é executado, por sua vez, e se o seu status de saída for zero, oentão Lista é executado e o comando é concluído. Caso contrário, ooutro Lista é executado, se presente. O status de saída é o status de saída do último comando executado ou zero se nenhuma condição for testada como verdadeira.
  • enquanto Lista ; Faz Lista ; feito e até Lista ; Faz Lista ; feito: Oenquanto comando executa continuamente oFaz Lista contanto que o último comando em Lista retorna um status de saída de zero. oaté comando é idêntico aoenquanto comando, exceto que o teste é negado; aFaz Lista é executado desde que o último comando em Lista retorna um status de saída diferente de zero. O status de saída doenquanto eaté comandos é o status de saída do últimoFaz Lista comando executado, ou zero se nenhum foi executado.
  • função nome () { Lista ; }: Define uma função chamada nome . o corpo da função é o Lista de comandos entre {e}. Esta lista é executada sempre nome é especificado como o nome de um comando simples. O status de saída de uma função é o status de saída do último comando executado no corpo.

Comentários

Em um shell não interativo ou em um shell interativo em que o interactive_comments opção para oshopt builtin está ativado, uma palavra que começa com# faz com que essa palavra e todos os caracteres restantes nessa linha sejam ignorados. Um shell interativo sem ointeractive_comments opção ativada não permite comentários. o interactive_comments A opção está ativada por padrão em shells interativos.

Citando

Citando é usado para remover o significado especial de certos caracteres ou palavras para o shell. As citações podem ser usadas para desabilitar o tratamento especial de caracteres especiais, evitar que palavras reservadas sejam reconhecidas como tal e evitar a expansão de parâmetros.

Cada um dos metacaracteres listados acima sobDefinições tem um significado especial para o shell e deve ser citado se é para se representar.

Quando as instalações de expansão do histórico de comandos estão sendo usadas, expansão da história personagem, geralmente!, deve ser citado para impedir a expansão do histórico.

Existem três mecanismos de cotação: o personagem de fuga , aspas simples e aspas duplas.

Uma barra invertida não citada () é o personagem de fuga . Ele preserva o valor literal do próximo caractere que segue com a exceção de . Se um par aparece ea barra invertida não é citado, o é tratado como uma continuação de linha (isto é, é removido do fluxo de entrada e efetivamente ignorado).

Inserir caracteres entre aspas simples preserva o valor literal de cada caractere entre aspas. Uma aspa simples pode não ocorrer entre aspas simples, mesmo quando precedidas por uma barra invertida.

Inserir caracteres entre aspas duplas preserva o valor literal de todos os caracteres entre aspas, com a exceção de$, 'e. Os personagens$ e' manter seu significado especial entre aspas duplas. A contrabarra mantém seu significado especial apenas quando seguida por um dos seguintes caracteres:$, ', ', ou. Uma aspa dupla pode ser citada entre aspas duplas precedendo-a com uma barra invertida.

Os parâmetros especiais* e@ tem um significado especial quando entre aspas duplas.

Palavras do formulário$' corda 'são tratados especialmente. A palavra se expande para corda , com caracteres de barra invertida substituídos conforme especificado pelo padrão ANSI C. Sequências de escape de barra invertida, se presentes, são decodificadas da seguinte forma:

  • uma: alerta (sino)
  • b: backspace
  • e: um caractere de escape
  • f: feed de formulário
  • n: nova linha
  • r: retorno de carro
  • t: guia horizontal
  • v: guia vertical
  • \: barra invertida
  • ': citação única
  • nnn : o caractere de oito bits cujo valor é o valor octal nnn (um a três dígitos)
  • x HH : o caractere de oito bits cujo valor é o valor hexadecimal HH (um ou dois dígitos hexadecimais)
  • c x : um controle x personagem

O resultado expandido é simples, como se o cifrão não estivesse presente.

Uma cadeia com aspas duplas precedida por um sinal de dólar ($) fará com que a string seja traduzida de acordo com a localidade atual. Se a localidade atual forC ouPOSIX, o cifrão é ignorado. Se a string for traduzida e substituída, a substituição será colocada em aspas duplas.

Parâmetros

UMA parâmetro é uma entidade que armazena valores. Pode ser um nome , um número ou um dos caracteres especiais listados emParâmetros Especiais. Para os propósitos da casca, um variável é um parâmetro denotado por um nome . Uma variável tem um valor e zero ou mais atributos . Atributos são atribuídos usando odeclarar comando interno.

Um parâmetro é definido se foi atribuído um valor. A cadeia nula é um valor válido. Quando uma variável é definida, ela pode ser desfeita apenas usando onão definido comando interno.

UMA variável pode ser atribuído por uma declaração do formulário: nome = valor

E se valor não é dado, a variável é atribuída a string nula. Todos valores sofrer expansão de til, expansão de parâmetro e variável, substituição de comando, expansão aritmética e remoção de cotação. Se a variável tiver suainteiro conjunto de atributos, valor está sujeito à expansão aritmética, mesmo que a expansão $ ((…)) não seja usada. A divisão de palavras não é executada, com a exceção de'$@' como explicado emParâmetros Especiais. A expansão do nome do caminho não é executada. As declarações de atribuição também podem aparecer como argumentos para odeclarar, formatado, exportar, somente leiturae local comandos embutidos.

Parâmetros posicionais

UMA parâmetro posicional é um parâmetro denotado por um ou mais dígitos, diferente do dígito único 0. Parâmetros posicionais são atribuídos a partir dos argumentos do shell quando ele é invocado e podem ser redesignados usando oconjunto comando interno. Parâmetros posicionais não podem ser atribuídos a instruções de atribuição. Os parâmetros posicionais são temporariamente substituídos quando uma função shell é executada.

Quando um parâmetro posicional que consiste em mais de um dígito é expandido, ele deve estar entre chaves.

Parâmetros Especiais

O shell trata vários parâmetros especialmente. Esses parâmetros só podem ser referenciados; atribuição a eles não é permitida.

  • *: Expande-se para os parâmetros posicionais, a partir de um. Quando a expansão ocorre entre aspas duplas, ela se expande para uma única palavra com o valor de cada parâmetro separado pelo primeiro caractere doIFS variável especial. Isso é, "$*" é equivalente a "$1 c $2 c ", Onde c é o primeiro caractere do valor doIFS variável. E seIFS não está definido, os parâmetros são separados por espaços. E seIFS é nulo, os parâmetros são unidos sem separadores intervenientes.
  • @: Expande-se para os parâmetros posicionais, a partir de um. Quando a expansão ocorre entre aspas duplas, cada parâmetro se expande para uma palavra separada. Isso é, "$@" é equivalente a "$1' '$2"… quando não há parâmetros posicionais"$@"e$@expandir para nada (eles são removidos).
  • #: Expande-se para o número de parâmetros posicionais em decimal.
  • ?: Expande para o status do pipeline de primeiro plano executado mais recentemente.
  • -: Expande para os flags de opções atuais, conforme especificado na invocação, peloconjunto comando embutido ou aqueles definidos pelo próprio shell, como-Eu opção.
  • $: Expande para o ID do processo do shell. No subshell a (), ele se expande para o ID do processo do shell atual, não do subshell.
  • !: Expande para o ID do processo do comando de segundo plano (assíncrono) executado mais recentemente.
  • 0: Expande para o nome do shell ou script de shell. Isso é definido na inicialização do shell. E sebater é invocado com um arquivo de comandos,$0 está definido para o nome desse arquivo. E sebater é iniciado com o-c opção, então$0 é definido para o primeiro argumento após a cadeia a ser executada, se houver uma. Caso contrário, é configurado para o nome do arquivo usado para invocarbater, como dado pelo argumento zero.
  • _: Na inicialização do shell, defina para o nome de arquivo absoluto do shell ou script de shell que está sendo executado conforme transmitido na lista de argumentos. Posteriormente, expande para o último argumento para o comando anterior, após a expansão. Também definido para o nome completo do arquivo de cada comando executado e colocado no ambiente exportado para esse comando. Ao verificar o correio, esse parâmetro contém o nome do arquivo de mensagens atualmente sendo verificado.

Variáveis ​​da Shell

As seguintes variáveis ​​são definidas pelo shell:

BATER: Expande para o nome completo do arquivo usado para invocar essa instância debater.

BASH_VERSINFO: Uma variável de matriz readonly cujos membros armazenam informações de versão para esta instância de bater. Os valores atribuídos aos membros da matriz são os seguintes:

  • BASH_VERSINFO 0: o número da versão principal (o lançamento )
  • BASH_VERSINFO 1: o número da versão secundária (o versão )
  • BASH_VERSINFO 2: o nível do patch
  • BASH_VERSINFO 3: a versão de compilação
  • BASH_VERSINFO 4: o status da liberação ( beta1 por exemplo)
  • BASH_VERSINFO 5: o valor deMÁQUINA

BASH_VERSION: Expande-se para uma string descrevendo a versão dessa instância debater.

COMP_CWORD: Um índice em$ {COMP_WORDS} da palavra que contém a posição atual do cursor. Esta variável está disponível apenas nas funções do shell invocadas pelos recursos de conclusão programáveis.

COMPLINE: A linha de comando atual. Esta variável está disponível apenas nas funções do shell e nos comandos externos chamados pelos recursos de conclusão programáveis.

COMP_POINT: O índice da posição atual do cursor em relação ao início do comando atual. Se a posição atual do cursor estiver no final do comando atual, o valor dessa variável será igual a$ {# COMP_LINE}. Esta variável está disponível apenas nas funções do shell e nos comandos externos chamados pelos recursos de conclusão programáveis.

COMP_WORDS: Uma variável de matriz que consiste nas palavras individuais na linha de comando atual. Esta variável está disponível apenas nas funções do shell invocadas pelos recursos de conclusão programáveis.

DIRSTACK: Uma variável de matriz contendo o conteúdo atual da pilha de diretórios. Os diretórios aparecem na pilha na ordem em que são exibidos pelodirs construídas em. Atribuindo aos membros desta variável de matriz pode ser usado para modificar diretórios já na pilha, mas opushd epopd Os builtins devem ser usados ​​para adicionar e remover diretórios. A atribuição a essa variável não alterará o diretório atual. E seDIRSTACK não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

EUID: Expande-se para o ID de usuário efetivo do usuário atual, inicializado na inicialização do shell. Essa variável é somente leitura.

FUNCNAME: O nome de qualquer função de shell em execução no momento. Essa variável existe somente quando uma função do shell está sendo executada. Atribuições paraFUNCNAME não tem efeito e retorna um status de erro. E seFUNCNAME não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

GRUPOS: Uma variável de matriz contendo a lista de grupos dos quais o usuário atual é membro. Atribuições paraGRUPOS não tem efeito e retorna um status de erro. E seGRUPOS não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

HISTCMD: O número ou índice do histórico na lista de histórico do comando atual. E seHISTCMD não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

NOME DE ANFITRIÃO: Automaticamente definido para o nome do host atual.

HOSTTYPE: Automaticamente definido para uma string que descreve exclusivamente o tipo de máquina na qualbater está executando. O padrão é dependente do sistema.

LINENO: Cada vez que este parâmetro é referenciado, o shell substitui um número decimal representando o número da linha seqüencial atual (iniciando com 1) dentro de um script ou função. Quando não está em um script ou função, o valor substituído não tem garantia de ser significativo. E seLINENO não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

MÁQUINA: Automaticamente definido para uma string que descreve completamente o tipo de sistema no qualbater está executando no GNU padrão cpu-company-system formato. O padrão é dependente do sistema.

OLDPWD: O diretório de trabalho anterior, conforme definido peloCD comando.

OPTARG: O valor do último argumento da opção processado pelogetopts comando interno.

OPTIND: O índice do próximo argumento a ser processado pelogetopts comando interno.

OSTYPE: Automaticamente definido para uma string que descreve o sistema operacional no qualbater está executando. O padrão é dependente do sistema.

PIPESTATUS: Uma variável de matriz contendo uma lista de valores de status de saída dos processos no pipeline de primeiro plano executado mais recentemente, que pode conter apenas um único comando.

PPID: O ID do processo do pai do shell. Essa variável é somente leitura.

PWD: O diretório de trabalho atual, conforme definido peloCD comando.

ALEATÓRIA: Cada vez que esse parâmetro é referenciado, um inteiro aleatório entre 0 e 32767 é gerado. A seqüência de números aleatórios pode ser inicializada atribuindo-se um valor a ALEATÓRIA. E seALEATÓRIA não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

RESPOSTA: Defina para a linha de entrada lida peloler comando embutido quando nenhum argumento é fornecido.

SEGUNDOS: Cada vez que este parâmetro é referenciado, o número de segundos desde a invocação do shell é retornado. Se um valor for atribuído aSEGUNDOS, o valor retornado em referências subseqüentes é o número de segundos desde a atribuição mais o valor atribuído. E se SEGUNDOS não está definido, ele perde suas propriedades especiais, mesmo que seja redefinido posteriormente.

SHELLOPTS: Uma lista separada por dois-pontos de opções de shell ativadas. Cada palavra na lista é um argumento válido para o-o opção para oconjunto comando interno. As opções que aparecem emSHELLOPTS são aqueles relatados como em porset -o. Se esta variável estiver no ambiente quandobater inicia, cada opção de shell na lista será ativada antes de ler qualquer arquivo de inicialização. Essa variável é somente leitura.

SHLVL: Incrementado por um cada vez que uma instância debater começou.

UID: Expande para o ID do usuário atual, inicializado na inicialização do shell. Essa variável é somente leitura.

As seguintes variáveis ​​são usadas pelo shell. Em alguns casos,bater atribui um valor padrão a uma variável; esses casos são anotados.

BASH_ENV: Se este parâmetro for definido quandobater está executando um script de shell, seu valor é interpretado como um nome de arquivo contendo comandos para inicializar o shell, como em ~ / .bashrc . O valor de BASH_ENV está sujeito à expansão de parâmetros, substituição de comandos e expansão aritmética antes de ser interpretado como um nome de arquivo.CAMINHO não é usado para procurar o nome do arquivo resultante.

CDPATH: O caminho de pesquisa para oCD comando. Esta é uma lista de diretórios separados por dois pontos na qual o shell procura diretórios de destino especificados peloCD comando. Um valor de amostra é ".: ~: / Usr".

COLUNAS: Usado peloselecione comando incorporado para determinar a largura do terminal ao imprimir listas de seleção. Automaticamente definido após o recebimento de um SIGWINCH.

COMPRELAR: Uma variável de matriz a partir da qualbater lê as completações possíveis geradas por uma função shell invocada pelo recurso de conclusão programável.

FCEDIT: O editor padrão para ofc comando interno.

FIGNORE: Uma lista de sufixos separados por dois-pontos para ignorar ao executar o nome do arquivo. Um nome de arquivo cujo sufixo corresponda a uma das entradasFIGNORE é excluído da lista de nomes de arquivos correspondentes. Um valor de amostra é ".o: ~".

GLOBIGNORE: Uma lista de padrões separados por dois pontos que define o conjunto de nomes de arquivos a serem ignorados pela expansão do nome do caminho. Se um nome de arquivo correspondente a um padrão de expansão de nome de caminho também corresponder a um dos padrõesGLOBIGNORE, é removido da lista de correspondências.

HISTCONTROL: Se definido para um valor de ignorespace , linhas que começam com umespaço caractere não são inseridos na lista de histórico. Se definido para um valor de ignorados , as linhas que correspondem à última linha do histórico não são inseridas. Um valor de ignoreboth combina as duas opções. Se não definido ou se for definido como qualquer outro valor que não os acima, todas as linhas lidas pelo analisador serão salvas na lista de histórico, sujeitas ao valor deHISTÓRICO. A função desta variável é substituída por HISTÓRICO. A segunda linha e as linhas subseqüentes de um comando composto de várias linhas não são testadas e são adicionadas ao histórico, independentemente do valor deHISTCONTROL.

HISTFILE: O nome do arquivo no qual o histórico de comandos é salvo. o valor padrão é ~ / .bash_history . Se não definido, o histórico do comando não será salvo quando um shell interativo sair.

HISTFILESIZAR: O número máximo de linhas contidas no arquivo de histórico. Quando essa variável recebe um valor, o arquivo de histórico é truncado, se necessário, para conter não mais que o número de linhas. O valor padrão é 500. O arquivo de histórico também é truncado para esse tamanho depois de ser gravado quando um shell interativo é encerrado.

HISTÓRICO: Uma lista de padrões separada por dois pontos usada para decidir quais linhas de comando devem ser salvas na lista de histórico. Cada padrão é ancorado no início da linha e deve corresponder à linha completa (não implícita)*'é anexado). Cada padrão é testado contra a linha após as verificações especificadas porHISTCONTROL são aplicados. Além dos caracteres normais de correspondência de padrões de shell, '&'corresponde à linha da história anterior. '&'pode ser escapado usando uma barra invertida; a barra invertida é removida antes de tentar uma correspondência. A segunda linha e as linhas subsequentes de um comando composto de várias linhas não são testadas e são adicionadas ao histórico, independentemente do valor deHISTÓRICO.

HISTSIZE: O número de comandos para lembrar no histórico de comandos. O valor padrão é 500.

CASA: O diretório inicial do usuário atual; o argumento padrão para oCD comando interno. O valor dessa variável também é usado ao executar a expansão do til.

HOSTFILE: Contém o nome de um arquivo no mesmo formato que / etc / hosts que deve ser lido quando o shell precisa completar um nome de host. A lista de possíveis conclusões do nome do host pode ser alterada enquanto o shell está em execução; a próxima vez que a conclusão do nome do host for tentada após o valor ser alterado,bater adiciona o conteúdo do novo arquivo à lista existente. E se HOSTFILE está definido, mas não tem valorbater tenta ler / etc / hosts para obter a lista de possíveis conclusões do nome do host. QuandoHOSTFILE não está definido, a lista de nomes de host está desmarcada.

IFS: O Separador de Campo Interno é usado para dividir palavras após a expansão e dividir as linhas em palavras com oler comando interno. O valor padrão é "''.

IGNOREEOF: Controla a ação de um shell interativo ao receber umEOF personagem como a única entrada. Se definido, o valor é o número de consecutivosEOF caracteres que devem ser digitados como os primeiros caracteres em uma linha de entrada antesbater sai. Se a variável existir, mas não tiver um valor numérico ou não tiver valor, o valor padrão será 10. Se ela não existir,EOF significa o fim da entrada para o shell.

INPUTRC: O nome do arquivo para oLeia a linha arquivo de inicialização, substituindo o padrão de ~ / .inputrc .

LANG: Usado para determinar a categoria de local para qualquer categoria não especificamente selecionada com uma variável começando comLC_.

LC_ALL: Esta variável anula o valor deLANG e qualquer outroLC_ variável especificando uma categoria de localidade.

LC_COLLATE: Essa variável determina a ordem de agrupamento usada ao classificar os resultados da expansão do nome do caminho e determina o comportamento de expressões de intervalo, classes de equivalência e seqüências de intercalação dentro da expansão de nome de caminho e correspondência de padrões.

LC_CTYPE: Esta variável determina a interpretação dos caracteres e o comportamento das classes de caracteres dentro da expansão do caminho e da correspondência de padrões.

LC_MESSAGES: Esta variável determina a localidade usada para traduzir strings de aspas duplas precedidas por um$.

LC_NUMERIC: Esta variável determina a categoria de local usada para formatação de números.

LINHAS: Usado peloselecione comando incorporado para determinar o comprimento da coluna para imprimir listas de seleção. Automaticamente definido após o recebimento de um SIGWINCH.

ENVIAR: Se este parâmetro estiver configurado para um nome de arquivo eMAILPATH variável não está definida,baterinforma o usuário da chegada do correio no arquivo especificado.

MAILCHECK: Especifica com que frequência (em segundos)bater verifica o correio. O padrão é 60 segundos. Quando é hora de verificar o correio, o shell faz isso antes de exibir o prompt principal. Se esta variável não estiver definida ou definida para um valor que não seja um número maior ou igual a zero, o shell desabilitará a verificação de correio.

MAILPATH: Uma lista separada por dois-pontos de nomes de arquivos a serem verificados para email. A mensagem a ser impressa quando o correio chegar em um determinado arquivo pode ser especificada separando o nome do arquivo da mensagem com um '?'. Quando usado no texto da mensagem,$_ expande para o nome do arquivo de mensagens atual. Exemplo:

MAILPATH = '/ var / mail / bfox? "Você tem mail": ~ / shell-mail? "$ _ Has mail!"'

Bater fornece um valor padrão para esta variável, mas a localização dos arquivos de mensagens do usuário que ela usa depende do sistema (/ var / mail /$ USER).

OPTERR: Se definido para o valor 1,bater exibe mensagens de erro geradas pelogetopts comando interno.OPTERR é inicializado para 1 sempre que o shell é invocado ou um script de shell é executado.

CAMINHO: O caminho de pesquisa para comandos. É uma lista de diretórios separados por dois pontos em que o shell procura por comandos. O caminho padrão depende do sistema e é definido pelo administrador que instalabater. Um valor comum é "/ usr / gnu / bin: /usr/local/bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT: Se esta variável estiver no ambiente quandobater começa, o shell entra modo posix antes de ler os arquivos de inicialização, como se--posix opção de invocação foi fornecida. Se estiver definido enquanto o shell estiver em execução,bater permite modo posix como se o comando set -o posix tinha sido executado.

PROMPT_COMMAND: Se definido, o valor é executado como um comando antes de emitir cada prompt principal.

PS1: O valor desse parâmetro é expandido e usado como a string do prompt principal. O valor padrão é " s- v $''.

PS2: O valor deste parâmetro é expandido como noPS1 e usado como a string de prompt secundária. O padrão é "> ''.

PS3: O valor deste parâmetro é usado como o prompt para oselecione comando.

PS4: O valor deste parâmetro é expandido como noPS1, e o valor é impresso antes de cada comandobater exibe durante um rastreamento de execução. O primeiro personagem dePS4 é replicado várias vezes, conforme necessário, para indicar vários níveis de indireção. O padrão é "+ ''.

TIMEFORMAT: O valor deste parâmetro é usado como uma string de formato especificando como as informações de tempo para pipelines prefixadas com oTempo palavra reservada deve ser exibida. o % caractere introduz uma seqüência de escape que é expandida para um valor de tempo ou outra informação. As seqüências de escape e seus significados são os seguintes. As chaves denotam porções opcionais.

  • %%: Um literal%
  • % p l R: O tempo decorrido em segundos
  • % p l U: o número de segundos de CPU gastos no modo de usuário
  • % p l S: o número de segundos de CPU gastos no modo de sistema
  • % P: A porcentagem da CPU, calculada como (% U +% S) /% R

O opcional p é um dígito especificando o precisão , o número de dígitos fracionários depois de um ponto decimal. Um valor de 0 faz com que nenhum ponto decimal ou fração seja gerada. No máximo três locais após o ponto decimal pode ser especificado; valores de p maior que 3 são alterados para 3. Se p não é especificado, o valor 3 é usado.

O opcionaleu especifica um formato mais longo, incluindo minutos, do formulário MILÍMETROS m SS . FF s. O valor de p determina se a fração está incluída ou não.

Se esta variável não estiver definida,bater age como se tivesse o valor $ ' nreal t% 3lR nutilizador t% 3lU nsys% 3lS'. Se o valor for nulo, nenhuma informação de tempo será exibida. Uma nova linha é adicionada quando a string de formato é exibida.

TMOUT: Se definido para um valor maior que zero,TMOUT é tratado como o tempo limite padrão para oler construídas em. oselecione o comando termina se a entrada não chegar depoisTMOUT segundos quando a entrada está vindo de um terminal.Em um shell interativo, o valor é interpretado como o número de segundos a aguardar pela entrada após a emissão do prompt principal.Bater termina depois de esperar por esse número de segundos se a entrada não chegar.

auto_resume: Essa variável controla como o shell interage com o usuário e o controle de tarefa. Se essa variável for definida, comandos simples de palavra única sem redirecionamentos serão tratados como candidatos para retomada de um trabalho interrompido existente. Não há ambiguidade permitida. Se houver mais de um trabalho começando com a string digitada, o trabalho acessado mais recentemente será selecionado. o nome de um trabalho interrompido, neste contexto, é a linha de comando usada para iniciá-lo. Se definido para o valor exato , a string fornecida deve corresponder exatamente ao nome de um trabalho parado; se definido para substring , a cadeia fornecida precisa corresponder a uma substring do nome de um job parado. o substring valor fornece funcionalidade análoga à%? identificador de trabalho. Se definido como qualquer outro valor, a cadeia fornecida deve ser um prefixo do nome de uma tarefa interrompida; isso fornece funcionalidade análoga ao% identificador de trabalho.

histchars: Os dois ou três caracteres que controlam a expansão do histórico e a tokenização. O primeiro caractere é o expansão da história personagem, o personagem que sinaliza o início de uma expansão da história, normalmente!'. O segundo personagem é o substituição rápida caractere, que é usado como atalho para executar novamente o comando anterior inserido, substituindo uma cadeia por outra no comando. O padrão é '^'. O terceiro caractere opcional é o caractere que indica que o restante da linha é um comentário quando encontrado como o primeiro caractere de uma palavra, normalmente '#'. O caractere de comentário do histórico faz com que a substituição do histórico seja ignorada para as palavras res