Como você pode exibir o endereço IP do host no prompt do bash?

6

Como acima, gostaria de exibir o endereço IPv4 de eth0 (ou parte dele) no PS1 ou bash. Existe uma maneira de fazer isso?

    
por lang2 01.11.2013 / 04:53

8 respostas

9

Eu uso o seguinte no meu .bashrc

THEIP=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | tail -1 | cut -d: -f2 | awk '{ print $1}')
PS1="\[3[01;31m\]\u@"$THEIP" \w $\[3[00m\] ";

Isso mostrará um prompt de:

[email protected] /opt/amazon/jungle $

Remova o \w para se livrar do diretório de trabalho atual ou torne-o \W para torná-lo apenas o diretório de trabalho parcial

[email protected] jungle $

Você também pode usar o seguinte, assumindo que haja apenas um endereço IP no arquivo /etc/hosts :

THEIP=$(hostname -i)
    
por 26.03.2014 / 15:39
4

Disclaimer: literalmente nenhuma tentativa feita para tornar isso menos lixo.

Abaixo está a maneira de fazer isso ...

PS1=$(ifconfig $(route -n | grep ^0.0.0.0 | awk '{print $NF}') | grep inet | grep -v inet6 | awk '{print $2}')
    
por 01.11.2013 / 04:58
3

Como afirmado pelo Sirex você pode fazer muitas coisas complicadas com a substituição de comandos, eu preferiria a seguinte declaração usando o utilitário ip :

export PS1="IP: $(ip addr show dev eth0 | grep "inet " | cut -d" " -f6) #" ou algo parecido.

Outra opção é usar a ferramenta facter , que fornece muitas informações sobre o seu sistema, por isso, um simples facter ipaddress_eth0 fornece o endereço IP. Então o novo exemplo seria

export PS1="IP: $(facter ipaddress_eth0) #

facter permite que você use muito mais informações do sistema para scripts, se desejar. Apenas execute facter para ver o que ele obteve em toda a sua configuração. Se você quiser, também pode declarar seus próprios fatos em /etc/facts.d .

    
por 01.11.2013 / 15:57
0

Endereço IP em prompt com atualização automática

Minha solução foi a seguinte (funciona no Fedora). Adaptado das outras respostas aqui e das informações desta postagem link .

Crie o seguinte script como root: /etc/NetworkManager/dispatcher.d/99smartsynergy.sh

#!/bin/sh
# http://sysadminsjourney.com/content/2008/12/18/use-networkmanager-launch-scripts-based-network-location/

IF=$1
STATUS=$2

if [ "$STATUS" = "up" ]; then
        ip=$(/usr/sbin/ip addr show dev $IF | grep "inet " | cut -d" " -f6)

        echo -n $ip > /tmp/ip_address.txt
        chmod a+w /tmp/ip_address.txt
fi

Em seguida, no seu .bashrc :

RED='3[0;31m'
NC='3[0m' # No Color
WHITE='\e[97m'
GREEN='\e[0;32m'

touch /tmp/ip_address.txt
export PS1='\['$GREEN'\][\d \t \u@\h \W][\'$WHITE'\]$(cat /tmp/ip_address.txt)[\'$NC'\] \$ \[\e[m\]'

    
por 01.04.2019 / 10:20
0

Eu peguei a resposta de @ SomeGuyOnAComputer e a melhorei ligeiramente:

IP=$( ifconfig | grep ^eth -A2 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1 }' ) PS1='\n\[3[00;32m\]\u@$IP \[3[00;33m\]\w\n\$\[3[00m\] '

Eu tinha um contêiner do docker em execução na minha máquina, por isso, estava pegando o endereço IP do docker quando eu executei o comando @ SomeGuyOnAComputer. A nova versão procura a linha que começa com 'eth' e imprime as duas linhas depois da informação da linha correspondente (-A2). O resto é como a versão @ SomeGuyOnAComputer.

    
por 16.03.2017 / 15:59
0

Estou usando essa configuração no .bashrc e é bem legal (semelhante ao sugerido acima)

pyclean () {

        find . -type f -name "*.py[co]" -delete -print
        find . -type f -name ".DS_Store" -delete -print

        find . -type d -name "__pycache__" -delete -print

}
IP=$( ifconfig | grep ^eth -A2 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1 }' )
export PS1="\e[1;32m\D{%T} @$IP\e[1;34m\w/\e[m\n\$ "
    
por 13.08.2017 / 12:43
0

Você também pode gostar disso

IP=$( ifconfig | grep ^eth -A2 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1 }' )
PS1='\e[1;34m\D{%T} \[3[00;39m\]\u\[3[00;32m\]@$IP \[3[00;33m\]\w/\n\$\[3[00m\] '
    
por 13.08.2017 / 12:52
-2

Exportar sua variável IP: exportar MYIP = $ (ifconfig | grep inet | egrep -v "127 | inet6" | awk '{print $ 2}') Exporte sua variável bash: exportar PS1 = '[\ u @ "$ MYIP" \ W] \ $'

    
por 24.10.2017 / 21:33

Tags