How to get ip address of a server on Centos 7 in bash
Previously I used the following command in bash to find the main ip of my server
ipaddr=$(/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}' | grep -v '127.0.0.1')
But in centos7 it no longer works since ifconfig isn't available and the command no longer works even if I install ifconfig
using yum install net-tools
What is the equivalent command for centos 7
Thanks a lot
You can use hostname command :
ipaddr=$(hostname -I)
-i, --ip-address
: Display the IP address(es) of the host. Note that this works only if the host name can be resolved.
-I, --all-ip-addresses
: Display all network addresses of the host. This option enumerates all configured addresses on all network interfaces. The loopback interface and IPv6 link-local addresses are omitted. Contrary to option -i, this option does not depend on name resolution. Do not make any assumptions about the order of the output.
Enter the command ip addr
at the console
Ref: https://garbagevalue.com/blog/4-simle-ways-to-check-ip-adress-in-centos-7
I'm using CentOS 7 and command
ip a
is enough to do the job.
Edit
Just slice out the IP address part from that test.
ip a | grep 192
hostname -I | awk ' {print $1}'
Something like this - a riff on @maarten-vanlinthout's answer
ip -f inet a show eth0| grep inet| awk '{ print $2}' | cut -d/ -f1