Usando a seta para cima para executar o comando anterior

10

Qual configuração eu preciso usar a seta para cima para executar o comando anterior? Com o Mac, posso usar a seta para cima para executar novamente o comando que acabei de executar, mas não parece funcionar com o meu shell bash.

Eu uso 8.04 (não consigo usar a distribuição mais recente por causa de alguns problemas de versão do compilador).

ADICIONADO

Eu não mudei nada, pois é uma instalação nova com o VMWare Fusion no Mac.

    
por prosseek 11.04.2011 / 18:12

3 respostas

10

Certifique-se de que seu histórico esteja ativado. Você pode verificar o status atual executando:

set -o

A saída deve conter (observe a linha history on ):

histexpand      on
history         on
ignoreeof       off

Se isso não estiver ativado, você precisa executar set -o history . Para tornar essa alteração persistente, você precisa anexá-la a ~/.bashrc :

set -o history

Se você quiser executar o comando anterior, também poderá executar o próximo comando:

!!

De Página de manual do Bash :

Event Designators
   An event designator is a reference to a command line entry in the history list.

   !      Start a history substitution, except when followed by a blank, newline,
          carriage return, = or ( (when the extglob shell option  is
          enabled using the shopt builtin).
   !n     Refer to command line n.
   !-n    Refer to the current command line minus n.
   !!     Refer to the previous command.  This is a synonym for '!-1'.
   !string
          Refer to the most recent command starting with string.
   !?string[?]
          Refer to the most recent command containing string.  The trailing ? 
          may be omitted if string is followed immediately by a newline.
   ^string1^string2^
          Quick  substitution.  Repeat the last command, replacing string1 with
          string2.  Equivalent to ''!!:s/string1/string2/'' (see Modifiers below).
   !#     The entire command line typed so far.

Se você estiver usando o Bash, também poderá usar os atalhos padrão para navegar pelo histórico:

  • Ctrl + P : comando anterior
  • Ctrl + N : comando seguinte

    Comandos para manipular o histórico    história prévia (C-p)           Busque o comando anterior da lista do histórico, retornando           a lista.    próxima história (C-n)           Busque o próximo comando da lista de histórico, avançando em           a lista.

por Lekensteyn 11.04.2011 / 18:32
13

Certifique-se de estar usando o bash. Uma pegadinha comum é criar um novo usuário com useradd em vez de adduser ou o aplicativo Usuários e grupos (GUI). Com o primeiro, o conjunto de shell padrão é /bin/sh . Corre chsh ( ch ange sh ell) para se certificar de que está definido para /bin/bash .

    
por geirha 11.04.2011 / 18:32
1

No terminal, digite:

gedit  ~/.inputrc

Copie e salve:

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

De agora em diante no terminal você pode fazer uma busca incremental, Tudo que você precisa fazer para encontrar um comando anterior é digitar as primeiras duas ou três letras e a seta para cima irá levá-lo rapidamente.

    
por Shailesh Singh 24.08.2015 / 16:42