windows下有用winroll來改電腦名稱,而在linux下電腦名稱沒那麼重要。不過筆者在一個時機下想辦視學生機,例如nitroshare這隻檔案分享程式評價不錯,但是你會不知下面學生機器有哪些。於是有想到如何設定電腦名稱呢?想一下用IP來當可能最好,於是查了一些資料。
1.在ubuntu下查IP指令是ifconfig,不過你會得到像以下資料:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:25:11:68:a6:e4
inet addr:10.231.97.10 Bcast:10.231.97.255 Mask:255.255.255.0
inet6 addr: fe80::225:11ff:fe68:a6e4/64 Scope:Link
inet6 addr: 2001:288:2263:10:225:11ff:fe68:a6e4/64 Scope:Global
inet6 addr: 2001:288:2263:10:a41c:32d1:179a:c210/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7180 errors:0 dropped:0 overruns:0 frame:0
TX packets:6352 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3491074 (3.4 MB) TX bytes:1710426 (1.7 MB)
Interrupt:19
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:835 errors:0 dropped:0 overruns:0 frame:0
TX packets:835 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:63148 (63.1 KB) TX bytes:63148 (63.1 KB)
雖然得到了IP,但取出來用卻有困難。
2.於是想到寫一個sh來用,其中用到了grep這個功能
myip=$(ifconfig |grep "inet addr")
這個時候就會過濾掉不少資料
inet addr:10.231.97.10 Bcast:10.231.97.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0
再過濾
w=$(echo $myip | sed "s/inet addr:127.0.0.1 Mask:255.0.0.0//g")
x=$(echo $w | sed "s/inet addr://g")
y=$(echo $x | sed "s/Bcast:10.231.97.255 Mask:255.255.255.0//g")
就會得到自己的IP
注意:藍色部分要改成自己網路實際情形
3.寫入/etc/hostname
echo $y >/etc/hostname
4.重新執行hostname
/etc/init.d/hostname restart
5.把檔案放入/etc/init.d資料夾中並讓它開機執行
sudo update-rc.d chhostname.sh
如果想下載我的檔案來改,請點選:
https://docs.google.com/file/d/0Bz6-J_NwALFBZzlVYUdNRzZBRjg/edit?usp=sharing
沒有留言:
張貼留言