Há muitas perguntas relacionadas a essa, mas todas começam com a suposição (correta) de que a saída não está registrada.
Então, minha pergunta é: onde?
Em nenhum lugar: a saída do Bash (e qualquer outro shell que eu conheça) não está registrada.
Como a saída é exibida na tela, ela deve ser armazenada em algum lugar de qualquer maneira.
É, mas provavelmente não em texto simples e nem mesmo no disco (embora isso realmente seja do emulador de terminal): muito provavelmente, e pelo menos na maioria dos casos, em um segmento de memória alocado pelo emulador de terminal.
No entanto, com certeza, ele não está registrado em um arquivo, pelo menos não pelo shell, e eu não conheço os emuladores de terminal que registram a saída em um arquivo por padrão.
Na verdade, isso não significa que é impossível registrar a saída do terminal: primeiro vou mencionar algo que acho que muitos não sabem, já que nunca vi ninguém mencionando isso pelo menos aqui no Ask Ubuntu: Konsole permite salvar o arquivo. scrollback para um arquivo (talvez existam outros emuladores de terminal que ofereçam essa funcionalidade, o Konsole é apenas o único que conheço), embora isso seja limitado pelo limite de tamanho de scrollback do Konsole.
No entanto, isso geralmente não é realmente útil, e é mais provável que você queira procurar soluções "adequadas" para registrar a saída de uma sessão inteira em um arquivo ( como registrar todas as entradas e saídas em uma sessão de terminal? E a resposta de Ron ).
Isso não tem nada a ver com o seu shell (
bash
), não é um recurso do emulador de terminal que você está usando. Ele é armazenado no "buffer de retorno de rolagem" do seu terminal. Não consegui encontrar explicações claras sobre onde exatamente isso está armazenado, mas a experiência pessoal me mostrou que ele está armazenado em algum lugar/tmp
.Como sugere a resposta da pergunta acima, ela provavelmente é armazenada em um arquivo sem nome. Para entender o que quero dizer, abra um novo arquivo com um editor de texto:
Escreva uma linha de texto no arquivo e salve-o. Agora, enquanto esse arquivo ainda estiver aberto, abra um terminal e exclua-o:
Como você ainda tem o arquivo aberto
gedit
, você pode continuar gravando nele. Você pode até escrever vários gigabytes de dados nele, apesar de o arquivo ter sido excluído. Isso ocorre porque a exclusão de um arquivo simplesmente remove o link que aponta para o seu inode . Se seu descritor de arquivo for mantido aberto por outro programa, os dados poderão ser gravados nele, apesar do fato de que não há mais um link (arquivo) real correspondente ao descritor de arquivo no sistema de arquivos.Tudo isso significa que o histórico do seu terminal provavelmente é salvo usando um truque como esse, em algum lugar de um arquivo excluído do Windows
/tmp
. O que você provavelmente quer é simplesmente aumentar o tamanho do buffer de rolagem do seu emulador de terminal, para que você possa simplesmente rolar para cima e vê-lo. Os detalhes de como fazer isso dependem do emulador de terminal que você está usando. A maioria tem uma opção de linha de comando que permite isso e muitos também têm uma maneira GUI de defini-la. Por exemplo, emgnome-terminal
(o padrão no Ubuntu) é Editar -> Preferências -> Perfis --- clique no seu perfil -> Editar -> Rolagem -> Limitar a rolagem para NNN:fonte
script
como descrito na resposta aceita.A sessão do terminal é armazenada no
.bash_history
arquivo Digite isso no seu terminalecho $HISTFILE
, isso daria o caminho do.bash_history
arquivo.fonte