本文轉載自【微信公眾號: 五角錢的程式設計師 ,ID:xianglin965】
來自專輯
美團面試面經真題
第一時間關注技術乾貨!
一起學習、成長、溫情的熱愛生活
前言
今天繼續來講面試,已經出了將近十個美團java一面真題系列文章了,今天來講一講Linux命令相關內容,在全球超級計算機TOP500強作業系統排行榜中,Linux的佔比最近十幾年長期保持在85%以上,且一直呈現快速上升趨勢。根據2016年的排行榜,
Linux的佔比已經高達98.80%。其實在各種大、中小型企業的伺服器應用領域,Linux系統的市場份額也越來越接近這個比例,這足以說明Linux的表現是多麼出色。
所以面試的時候卻經常會被問到,我們根據面經來進行補短板,查漏補缺。下面開始今天的乾貨內容吧,走起,
1.ping命令
ping命令用來測試主機之間網絡的連通性。執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。
用法
(1)命令格式
ping ( 選項)目的地址
目的地址指的是被測計算機的IP 地址、主機名或者是域名。ping 命令包含12 個參數,所有參數都可以通過執行ping來查看
(2)實例
ping www.baidu.com
註:
Linux下的ping命令和Windows下的ping命令不同
,需要Ctrl+C來終止
(3)選項
-d:使用Socket的SO_DEBUG功能;-c<完成次數>:設置完成要求回應的次數;-f:極限檢測;-i<間隔秒數>:指定收發信息的間隔時間;-L<網絡界面>:使用指定的網絡界面送出數據包;-l<前置載入>:設置在送出要求信息之前,先行發出的數據包;-n:只輸出數值;-p<範本樣式>:設置填滿數據包的範本樣式;-q:不顯示指令執行過程,開頭和結尾的相關信息除外;-r:忽略普通的Routing Table,直接將數據包送到遠端主機上;-R:記錄路由過程;-s<數據包大小>:設置數據包的大小;-v:詳細顯示指令的執行過程。-t<存活數值>:設置存活數值TTL的大小
說一下其中的
-c、 -i
參數其中 –c count 次數,也就是ping的次數;-i interval 間隔 ,每次ping之間的時間空格
ping www.baidu.com -c 6-i 0.6
2、telnet
telnet命令用於登錄遠程主機,對遠程主機進行管理。telnet因為採用明文傳送報文,安全性不好,很多
Linux伺服器都不開放telnet服務,而改用更安全的ssh方式了。
3、netstat
netstat命令用來列印Linux中網絡系統的狀態信息,可讓你得知整個Linux系統的網絡情況。
用法:
(1)命令格式:
netstat(選項)
(2)選項
-a或–all:顯示所有連線中的Socket;-A<網絡類型>或–<網絡類型>:列出該網絡類型連線中的相關地址;-c或–continuous:持續列出網絡狀態;-C或–cache:顯示路由器配置的快取信息;-e或–extend:顯示網絡其他相關信息;-F或–fib:顯示FIB;-g或–groups:顯示多重廣播功能群組組員名單;-h或–help:在線幫助;-i或–interfaces:顯示網絡界面信息表單;-l或–listening:顯示監控中的伺服器的Socket;-M或–masquerade:顯示偽裝的網絡連線;-n或–numeric:直接使用ip地址,而不通過域名伺服器;-N或–netlink或–symbolic:顯示網絡硬體外圍設備的符號連接名稱;-o或–timers:顯示計時器;-p或–programs:顯示正在使用Socket的程序識別碼和程序名稱;-r或–route:顯示Routing Table;-s或–statistice:顯示網絡工作信息統計表;-t或–tcp:顯示TCP傳輸協議的連線狀況;-u或–udp:顯示UDP傳輸協議的連線狀況;-v或–verbose:顯示指令執行過程;-V或–version:顯示版本信息;-w或–raw:顯示RAW傳輸協議的連線狀況;-x或–unix:此參數的效果和指定」-A unix」參數相同;–ip或–inet:此參數的效果和指定」-A inet」參數相同
(3)實例
netstat -a //列出所有埠netstat -at//列出所有tcp埠netstat -au//列出所有udp埠
在這裡顯示所有的TCP埠
netstat -l//只顯示監聽埠netstat -lt//只列出所有監聽 tcp 埠netstat -lu//只列出所有監聽 udp 埠
和上面的圖相比,可以看到只顯示出了監聽狀態的TCP埠
4、ifconfig
ifconfig命令被用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦裡,那就要修改網卡的配置文件了。
用法:(1)命令格式
ifconfig(參數)
(2)實例
inet 用來表示網卡的IP位址,此網卡的IP位址是:192.168.1.106廣播地址Bcast:192.168.1.255掩碼地址Mask:255.255.255.0
lo是表示主機的迴環地址
,這個一般是用來測試一個網絡程序,但又不想讓區域網或外網的用戶能夠查看,只能在此臺主機上運行和查看所用的網絡接口。
(3)參數
add<地址>:設置網絡設備IPv6的ip地址del<地址>:刪除網絡設備IPv6的IP位址down:關閉指定的網絡設備io_addr< I/O地址>:設置網絡設備的I/O地址irq< IRQ地址>:設置網絡設備的IRQ;media<網絡媒介類型>:設置網絡設備的媒介類型;mem_start<內存地址>:設置網絡設備在主內存所佔用的起始地址;metric<數目>:指定在計算數據包的轉送次數時,所要加上的數目;mtu<字節>:設置網絡設備的MTU;netmask<子網掩碼>:設置網絡設備的子網掩碼;tunnel<地址>:建立IPv4與IPv6之間的隧道通信地址;up:啟動指定的網絡設備;-broadcast<地址>:將要送往指定地址的數據包當成廣播數據包來處理;-pointopoint<地址>:與指定地址的網絡設備建立直接連線,此模式具有保密功能;-promisc:關閉或啟動指定網絡設備的promiscuous模式;IP位址:指定網絡設備的IP位址;網絡設備:指定網絡設備的名稱。
5、route
route命令用來
顯示並設置Linux內核中的網絡路由表
,route命令設置的路由主要是靜態路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之後,該路由就失效了;可以在
*/etc/rc.local
中添加route命令來保證該路由設置永久有效。
用法:(1)命令格式
route(選項)(參數)
(2)選項
-A:設置地址類型;-C:列印將Linux核心的路由緩存;-v:詳細信息模式;-n:不執行DNS反向查找,直接顯示數字形式的IP位址;-e:netstat格式顯示路由表;-net:到一個網絡的路由表;-host:到一個主機的路由表。
(3)參數
Add:增加指定的路由記錄Del:刪除指定的路由記錄Target:目的網絡或目的主機gw:設置默認網關mss:設置TCP的最大區塊長度(MSS),單位為MBwindow:指定通過路由表的TCP連接的TCP窗口大小dev:路由記錄所表示的網絡接口
(4)實例
顯示當前路由,從圖中可以看出加了選項-n的變化
刪除和添加設置默認網關(這裡就不演示了)
6、arp
arp命令用於操作主機arp緩衝區,可以顯示arp緩衝區的所有條目、刪除指定條目或增加靜態IP位址與MAC地址的對應關係
用法:(1)命令格式
arp(選項)(參數)
(2)選項
-a<主機>:顯示arp緩衝區的所有條目-H<地址類型>:指定arp指令使用的地址類型-d<主機>:從arp緩衝區中刪除指定主機的arp條目-D:使用指定接口的硬體地址-e:以Linux的顯示風格顯示arp緩衝區中的條目-i<接口>:指定要操作arp緩衝區的網絡接口-s<主機><硬體地址>:設置指定主機的IP位址與MAC地址的靜態映射-n:以數字方式顯示arp緩衝區中的條目-v:顯示詳細的arp緩衝區條目,包括緩衝區條目的統計信息-f<文件>:設置主機的IP位址與MAC地址的靜態映射
(3)參數
主機:查詢arp緩衝區中指定主機的arp條目。
(4)實例
arp -aarp -v
7、traceroute
traceroute命令用於追蹤數據包在網絡上傳輸時的全部路徑
,它默認發送的數據包大小是40位元組通過traceroute我們可以知道
信息從你的計算機到網際網路另一端的主機是走的什麼路徑
。當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其ip地址
用法:(1)命令格式
traceroute(選項)(參數)
(2)選項
-d:使用Socket層級的排錯功能-f<存活時間>:設置第一個檢測數據包的存活數值TTL的大小-F:設置勿離斷位-g<網關>:設置來源路由網關,最多可設置8個-i<網絡界面>:使用指定的網絡界面送出數據包-l:使用ICMP回應取代UDP資料信息-m<存活數值>:設置檢測數據包的最大存活數值TTL的大小-n:直接使用IP位址而非主機名-p<通信埠>:設置UDP傳輸協議的通信埠-r:忽略普通的Routing Table,直接將數據包送到遠端主機上-s<來源地址>:設置本地主機送出數據包的TOS數值-v:詳細顯示指令的執行過程-w<超時秒數>:設置等待遠端主機回報的時間-x:開啟或關閉數據包的正確性檢驗
(3)參數
主機:指定目的主機IP位址或主機名
(4)實例
traceroute www.baidu.com
從圖中可以看出記錄按序列號從1開始,
每個紀錄就是一跳 ,每跳表示一個網關,
我們看到每行有三個時間,單位是ms,其實就是-q的默認參數。探測數據包向每個網關發送三個數據包後,網關響應後返回的時間;在後面一部分我們會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。
8、host
host命令是常用的分析域名查詢工具,可以檢測域名系統工作是否正常
用法:(1)命令格式
host(選項)(參數)
(2)選項
-a:顯示詳細的DNS信息-c<類型>:指定查詢類型,默認值為「IN」-C:查詢指定主機的完整SOA記錄-r:在查詢域名時,不使用遞歸的查詢方式-t<類型>:指定查詢第域名信息類型-v:顯示指令執行的詳細信息-a:顯示詳細的DNS信息;-w:如果域名伺服器沒有給出應答信息,則一直等待,直到域名伺服器給出應答-W<時間>:指定域名查詢的最長時間,如果在指定時間內域名伺服器沒有給出應答信息,則退出指令-4:使用IPv4-6:使用IPv6
(3)參數
主機:要查詢的主機信息
9、tcpdump
tcpdump命令是一款抓取數據包的工具,它可以列印所有經過網絡接口的數據包的頭信息,也可以使用-w選項將數據包保存到文件中,方便以後分析。
用法:
(1)命令格式
tcpdump(選項)
(2)選項
-a:嘗試將網絡和廣播地址轉換成名稱;-c<數據包數目>:收到指定的數據包數目後,就停止進行傾倒操作;-d:把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標準輸出;-dd:把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標準輸出;-ddd:把編譯過的數據包編碼轉換成十進位數字的格式,並傾倒到標準輸出;-e:在每列傾倒資料上顯示連接層級的文件頭;-f:用數字顯示網際網絡地址;-F<表達文件>:指定內含表達方式的文件;-i<網絡界面>:使用指定的網絡截面送出數據包;-l:使用標準輸出列的緩衝區;-n:不把主機的網絡地址轉換成名字;-N:不列出域名;-O:不將數據包編碼最佳化;-p:不讓網絡界面進入混雜模式;-q :快速輸出,僅列出少數的傳輸協議信息;-r<數據包文件>:從指定的文件讀取數據包數據;-s<數據包大小>:設置每個數據包的大小;-S:用絕對而非相對數值列出TCP關聯數;-t:在每列傾倒資料上不顯示時間戳記;-tt:在每列傾倒資料上顯示未經格式化的時間戳記;-T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型;-v:詳細顯示指令執行過程;-vv:更詳細顯示指令執行過程;-x:用十六進位字碼列出數據包資料;-w<數據包文件>:把數據包數據寫入指定的文件。
本文轉載自【微信公眾號: 五角錢的程式設計師 ,ID:xianglin965】