AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 509150
Accepted
Victor
Victor
Asked: 2019-03-28 23:11:07 +0800 CST2019-03-28 23:11:07 +0800 CST 2019-03-28 23:11:07 +0800 CST

O que significa "per-interactive-shell"?

  • 772

Ao digitar man bash, podemos ver

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bashrc
              The systemwide per-interactive-shell startup file
       /etc/bash.bash.logout
              The systemwide login shell cleanup file, executed when a login shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a login shell exits
       ~/.inputrc
              Individual readline initialization file

O que significa "per-interactive-shell"? Especialmente, o que "per" significa aqui? "per" significa "cada" aqui? Cada shell interativo? Ou significa outra coisa?

O "arquivo de inicialização individual por shell interativo" significa "o arquivo de inicialização individual para cada shell interativo"?

bash man
  • 2 2 respostas
  • 167 Views

2 respostas

  • Voted
  1. Best Answer
    Kusalananda
    2019-03-29T01:33:55+08:002019-03-29T01:33:55+08:00

    Os bashrcarquivos são usados ​​para inicializar cada shell interativo individual.

    Estou um pouco incerto por que o prefixo "per-" é realmente necessário aqui, visto que a mesma situação também é verdadeira para os shells de login (embora em relação a outros arquivos). Além disso, um shell não interativo usaria qualquer arquivo que $BASH_ENVcontenha o nome do caminho ou, em outras palavras, " $BASH_ENVé o arquivo de inicialização por shell não interativo" se você desejar.

    Pode ser uma tentativa de enfatizar (por qualquer motivo) que os arquivos são realmente originados para cada shell interativo.

    O texto foi introduzido na versão 2.0 de bash(eu acredito).

    • 2
  2. LL3
    2019-03-29T06:05:25+08:002019-03-29T06:05:25+08:00

    Duas coisas aqui. Primeiro o mais fácil:

    “individual” é apenas outra palavra para “pessoal”, significando (neste caso) arquivo do diretório inicial da sua conta de usuário. Observe de fato o ~/prefixo para todos os arquivos individuais/pessoais.

    Em sistemas desktop como o seu computador em casa você normalmente tem apenas uma conta de usuário, mas em computadores servidores pode haver várias contas cadastradas, e cada uma tem seu próprio diretório pessoal e, portanto, seu próprio pessoal/individual .bash_profile, .bashrc, etc.


    Agora o difícil, e para tentar explicar isso eu preciso de um pequeno prefácio:

    O Bash diferencia entre shells interativos “ login ” e “ outros ” shells interativos. (Eu não tenho experiência com outros programas como zshou ksh, mas suponho que eles também).

    Por exemplo, em sistemas Linux, um shell de login normalmente é apenas o primeiro que é iniciado depois que você digita (corretamente) seu nome de usuário e senha no console textual ou em uma conexão de rede como ssh.

    Pelo contrário, “ outros ” shells interativos são tipicamente aqueles iniciados por uma área de trabalho gráfica quando você clica no ícone do aplicativo emulador de terminal.

    Os shells interativos “ outros ” (ou seja, sem login) também são quando você subsequentemente invoca shells interativos aninhados, mesmo de um login .

    Um exemplo prático deste último caso. Suponha que você esteja no prompt do primeiro shell depois de se autenticar (ou seja , fazer login ) em um computador remoto via ssh: esse é o login shell interativo demas se você digitar bashe pressionar Return, você iniciará um novo outro shell interativo. Você pode aninhá-los quantos quiser. Apenas, você precisa digitar exit(ou Control-D) para cada um deles para desenrolar a pilha de shells interativos aninhados que você iniciou.

    A documentação do Bash informa quais arquivos são executados automaticamente na inicialização dos shells de login e quais outros arquivos na inicialização de outros shells. Há também alguns arquivos que são executados automaticamente apenas quando você encerra os shells de login , mas não quando você encerra outros shells.

    • 0

relate perguntas

  • exportar variáveis ​​​​env programaticamente, via stdout do comando [duplicado]

  • Problema estranho ao passar variáveis ​​do arquivo de texto

  • Enquanto a linha lê mantendo os espaços de escape?

  • ordem de substituição de processos `te` e `bash`

  • Execute um script muito lento até que seja bem-sucedido

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve