ifconfig 最熟悉又陌生的命令列

2021-10-21 20:56:56 字數 1698 閱讀 5074

當面試聽到這個問題的時候,面試者常常會覺得走錯了房間。我面試的是技術崗位啊,怎麼問這麼簡單的問題?

的確,即便沒有專業學過計算機的人,只要倒騰過電腦,重灌過系統,大多也會知道這個問題的答案:在 windows 上是 ipconfig,在 linux 上是 ifconfig。

那你知道在 linux 上還有什麼其他命令可以檢視 ip 位址嗎?答案是 ip addr。如果回答不上來這個問題,那你可能沒怎麼用過 linux。

想象一下,你登入進入乙個被裁剪過的非常小的 linux 系統中,發現既沒有 ifconfig 命令,也沒有 ip addr 命令,你是不是感覺這個系統壓根兒沒法用?這個時候,你可以自行安裝 net-tools 和 iproute2 這兩個工具。當然,大多數時候這兩個命令是系統自帶的。

安裝好後,我們來執行一下 ip addr。不出意外,應該會輸出下面的內容。

root@test:~# ip addr

1: lo: mtu 65536 qdisc noqueue state unknown group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0:

mtu 1500 qdisc pfifo_fast state up group default qlen 1000

link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff

inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0

valid_lft forever preferred_lft forever

inet6 fe80::f816:3eff:fec7:7975/64 scope link

valid_lft forever preferred_lft forever

如上輸出的結果,10.100.122.2 就是乙個 ip 位址。這個位址被點分隔為四個部分,每個部分 8 個 bit,所以 ip 位址總共是 32 位。這樣產生的 ip 位址的數量很快就不夠用了。因為當時設計 ip 位址的時候,哪知道今天會有這麼多的計算機啊!因為不夠用,於是就有了 ipv6,也就是上面輸出結果裡面 inet6 fe80::f816:3eff:fec7:7975/64。這個有 128 位,現在看來是夠了,但是未來的事情誰知道呢? 

在網路位址中,至少在當時設計的時候,對於 a、b、 c 類主要分兩部分,前面一部分是網路號,後面一部分是主機號。這很好理解,大家都是六單元 1001 號,我是小區 a 的六單元 1001 號,而你是小區 b 的六單元 1001 號。

這裡面有個尷尬的事情,就是 c 類位址能包含的最大主機數量實在太少了,只有 254 個。當時設計的時候恐怕沒想到,現在估計乙個網咖都不夠用吧。而 b 類位址能包含的最大主機數量又太多了。6 萬多台機器放在乙個網路下面,一般的企業基本達不到這個規模,閒著的位址就是浪費。 

陌生又熟悉的HTTP協議

一.http是什麼?1.http協議 hypertext transfer protocol,超文字傳輸協議 2.網際網路上應用最為廣泛的一種網路傳輸協議,用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳輸協議,所有的www檔案必須遵守這個標準,3.http是乙個基於tcp ip通訊協議來傳遞資料 ...

最熟悉的陌生人 MVC

以前開發ios程式的時候用的最多的是mvc的設計模式,這種軟體架構的模式是由 模型 model 螢幕中展示的 檢視 view 如何展示的 和控制器 controller 程式的資料,本質 三部分組成。具體的使用很簡單,本質上來說就是 模型 model 響應使用者請求並返回響應資料,檢視 view 負...

熟悉又陌生的正則匹配之基礎篇

從當前專案中,隨便拉了一塊兒小 vue.prototype.getquerystring function name 功能麼,就是從url中匹配出key等於入參為name的值。這段 直接簡化,把被匹配的url字串和入參name變成已知,來看看結果是啥 var name d var reg new r...