Como exibir informações atuais da máquina no terminal?

0

Existe uma linha de comando para ver em qual computador estou realmente?

Eu uso extensivamente terminais, e meu PS1 entre sessões e computadores são parecidos, então fico confuso com a máquina que estou usando atualmente. Por máquina quero dizer computador local ou servidor, não o usuário atual (porque o PS1 está mostrando essa informação). Existe uma linha de comando para isso?

(ps: Eu solicito uma linha de comando, não como alterar o PS1 porque às vezes estou trabalhando em uma tela pequena e tento gerenciar linhas relativamente curtas)

obrigado

    
por vdegenne 16.09.2017 / 07:38

4 respostas

4

IMHO, o prompt é a melhor coisa para lembrar de onde você está. Ele pode ser usado para lembrá-lo sobre a máquina, o nome do usuário atual, o diretório, etc. O prompt está sempre lá na linha de comando, então será difícil ignorá-lo. Usar algum outro comando para procurar o nome da máquina atual (como hostname ) obviamente também funcionará, mas você se esquecerá de fazê-lo.

Defina seu prompt principal para uma string que inclua o nome do host:

PS1="$(id -un)@$(hostname) \$ "

Isto irá, na minha máquina atual, e para o meu usuário, definir o prompt para

[email protected] $ 

Você pode usar hostname -s em vez de apenas hostname para remover a parte do domínio do nome do host.

Alguns shells, como bash , possuem notações abreviadas que você pode usar para a mesma coisa. Por bash (substitua \H por \h para obter a versão mais curta do nome do host):

PS1='\u@\H \$ '

Observe que não há necessidade de export PS1 , pois é usado apenas pelo processo atual do shell.

Alterações nesta variável podem ser feitas no seu arquivo de inicialização do shell. Para bash , modifique ~/.bashrc . Leia o manual do seu shell sobre PS1 .

Para telas muito pequenas, convém criar seu próprio prompt dinâmico:

case "$(hostname)" in
    bigserver*)  promptstr='bs'  ;;
    srv-*)       promptstr='srv' ;;
    accounting*) promptstr='a'   ;;
    web-dev-*)   promptstr='wd'  ;;
    *)           promptstr=$(hostname -s) ;;
esac

PS1="$promptstr \$ "

Ou apenas use os três primeiros caracteres do nome do host:

HOSTNAME=$(hostname)
PS1="${HOSTNAME:0:3} \$ "

(isso requer um shell que saiba como fazer esse tipo de substituição de variável, obviamente, mas bash faz)

... ou apenas outro indicador para lembrá-lo de que você não é mais local, como usar um * antes do $ ( PS1='*$ ' ) remotamente sem usar esse indicador localmente. Ou qualquer outro dos muitos prompts possíveis.

    
por 16.09.2017 / 10:01
2

Existem diversas maneiras, dependendo das informações necessárias para diferenciar suas máquinas.

dmidecode -t1 mostra informações sobre o computador em que você está, incluindo fabricante e modelo, por exemplo

> dmidecode -t1 | grep Version
    Version: ThinkPad T520

uname -a imprime informações do sistema como o nome do host do nó da rede ( -n ) e a liberação do kernel ( -r ).

lsb_release -a mostra informações específicas da distribuição, por exemplo

> lsb_release -d
Description:    Ubuntu 16.04.3 LTS
    
por 16.09.2017 / 07:43
1

Tente o comando  %código% OU uname -a , hostname ..etc

    
por 16.09.2017 / 08:07
0

escreva no terminal

hostnamectl

    
por 12.05.2018 / 21:12

Tags