解決策 1:
CentOS 7 の場合 および Debian 8 (そしておそらく他のものも)、次の行を /etc/issue
に追加するだけです
My IP address: \4
これは、マシンの IPv4 アドレスに解決されます。複数のネットワーク インターフェースがあり、特定の 1 つを選択したい場合は、
で指定できます。My IP address: \4{eth0}
man getty
をチェック ディストリビューションでサポートされているエスケープ シーケンスのリストについては、
解決策 2:
これは単なるテキスト ファイルです。他のシェル スクリプトを使用してファイルにテキストを送信するのと同じ方法でファイルに書き込みます。このようなものは、/etc/issue をあなたの IP アドレスだけに置き換えます:
ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: > /etc/issue
明らかに、 /etc/issue
に必要な情報に応じて、これを任意に複雑にすることができます ファイル。
/etc/rc.d/rc.local に相当するローカルでこのファイルに書き込むことができます (これは通常、他のすべての起動スクリプトの後に実行されます)。
解決策 3:
このスクリプトは、/etc/issue
に IP アドレスを追加/削除します 必要に応じてファイルしてください:
#!/bin/sh
PREFIX="Local IP addresses:"
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tr "\n" " ")
perl -i -p -0777 -e "s/^$PREFIX[^\n]*\n\n//m; s/$/\n$PREFIX $IPADDRS\n/ if length('$IPADDRS')>6" /etc/issue
Debian ベースのディストリビューションを使用している場合は、スクリプトを次の場所に配置することをお勧めします:
/etc/network/if-up.d/update-issue
/etc/network/if-post-down.d/update-issue
このようにして、インターフェイスがアップまたはダウンするたびにスクリプトが実行されます。 /etc/rc.d/rc.local
に配置する 起動時に 1 回しか実行されないという欠点があります。
解決策 4:
一度書けばよい。残念ながら、eth0 の IP アドレスを表示する getty エスケープ シーケンスはありませんが、/etc/issue でホスト名を表示するために使用できるエスケープ シーケンスがあります:\n
ファイルに直接書き込むことで、マシンの IP を /etc/issue にいつでも静的に設定できます。ファイル /etc/issue.net はリモート ログインに使用されるので、それも編集する必要があることに注意してください。
いずれにせよ、ターミナル ウィンドウで作業した後は、最初の画面と IP/ホスト アドレス情報が表示されなくなります。最善の方法は、\h または \H を使用してプロンプトでホスト名を設定することです (ほとんどの Linux ディストリビューションが行います)。または、PS1 変数でホストに設定されていることがわかっている IP アドレスを静的に設定します。/etc/profile で PS1 変数を設定できます。ほとんどの Linux ディストリビューションで。
解決策 5:
Systemd はこれを比較的簡単にします。 systemctl edit [email protected]
次のような内容:
[Service]
ExecStartPre=-/bin/bash -c '[ ! -f /etc/.issue.orig ] && cp /etc/issue /etc/.issue.orig; int=`ls /sys/class/net|grep enp|head -1`; sed -r "s/\\\\\\n/[\\\\\\4\{$$int\}]/" < /etc/.issue.orig > /etc/issue'
次に systemctl daemon-reload && systemctl restart [email protected]