No Mac, o reset
comando no terminal quase faz a mesma coisa que clear
. No Ubuntu Linux, e talvez em outros tipos de Linux, o reset
comando realmente "redefine" o terminal para que você não possa rolar para cima ou ver os comandos de entrada anteriores ao rolar. Existe uma maneira de fazer o reset
comando no Mac agir/fazer a mesma coisa reset
que no Linux? Em caso afirmativo, como posso fazê-lo?
relate perguntas
-
Área de memória Flash Nand de backup
-
Qual é a interface recomendada para um utilitário que requer muitos parâmetros? [fechado]
-
Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]
-
Fazendo mysql CLI me pedir uma senha interativamente
-
Pub / sub de linha de comando sem um servidor?
Na verdade (no MacOS), não é "exatamente a mesma coisa" (a descrição da página de manual para "limpar" é diferente de "redefinir" ).
MacOS vem com ncurses 5.7 ( 9 anos), com algumas atualizações no banco de dados do terminal. Se você quiser algo mais novo, a instalação do MacPorts permite atualizar o ncurses para a versão atual (menos alguns meses).
A propósito, isso seria mais recente que o Ubuntu, que geralmente fica para trás nas versões de desenvolvimento em 6 meses a 2 ou mais anos.
Este é um pouco de um artefato histórico. No início do Unix
time_t
, os computadores eram as grandes caixas no datacenter e os terminais eram peças separadas de hardware usadas para se comunicar com eles. Um terminal não vinha necessariamente do mesmo fabricante do computador, e cada fabricante e modelo de terminal tinha seu próprio conjunto de recursos extras e peculiaridades que precisavam ser levados em consideração.curses
, e seu sucessor posteriorncurses
são bibliotecas que ocultam todas as especificações dependentes de marca e modelo dos terminais e fornecem maneiras padrão de realizar operações de controle de terminal como "limpar a tela" ou "redefinir o terminal para as configurações padrão sãs". Essas bibliotecas usam a variável de ambienteTERM
para decidir qual conjunto de sequências de controle deve ser usado.Os comandos gostam
clear
ereset
usam essas bibliotecas para traduzir a operação solicitada pelo usuário em sequências de controle específicas do modelo de terminal e enviá-las ao terminal. Essas sequências de controle específicas do modelo são armazenadas emtermcap
outerminfo
arquivos -termcap
é o estilo antigo eterminfo
é o que é usado porncurses
.Hoje, é muito comum que o "terminal" seja na verdade um emulador de terminal que roda no mesmo hardware físico do computador real. Mas ainda é controlado como se fosse uma peça separada de hardware.
Isso deixa o programador do emulador de terminal um certo grau de liberdade para escolher como recursos específicos devem ser implementados. Por exemplo, o programador pode fazer com que a reinicialização do terminal limpe o buffer de rolagem - ou ele pode escolher o contrário, se for da opinião que o buffer de rolagem "pertence" ao usuário e nenhum aplicativo deve tem o poder de limpá-lo.
Como alternativa, o programador do emulador de terminal pode ter fornecido diferentes sequências de controle para redefinir o terminal com ou sem limpar o buffer de rolagem. Nesse caso, a pessoa que empacota as bibliotecas de controle de terminal para uma distribuição de sistema operacional terá uma escolha a fazer: o
reset
comando deve limpar a rolagem por padrão ou não? Dependendo da escolha, ele/ela pode armazenar uma sequência de controle diferente no local apropriado nos arquivos de dados usados pelas bibliotecas de controle do terminal.Sempre foi possível para o administrador do sistema adicionar novos conjuntos de sequências de controle de terminal aos arquivos
termcap
outerminfo
modificar os existentes. Talvez algum site tenha um modelo de terminal que não seja amplamente conhecido, ou talvez uma definição padrão exija apenas alguns ajustes para corresponder a um caso de uso específico. Se a sequência de controle padrão usada peloreset
comando for realmente "redefinir terminal sem limpar a rolagem", você poderá substituí-la por um código "redefinir terminal e rolagem" nos arquivos.