2021-05-12 14:32:11
Linux下Shell介紹以及TCP、IP基礎
一、Linux下的shell
概述:每個人在成功登入Linux後,系統會出現不同的提示符號,例如 $、~、#等,然後你就可以開始輸入需要的命令,若是命令正確,系統 就會依據命令的要求來執行,直到登出系統為止,在登入到登出期間, 輸入的每個命令都會經常解譯及執行。而這個負責的機制就是shell。其實作為命令語言互動式地解釋和執行使用者輸入的命令只是Shell 功能的一個方面,Shell還可以用來進行程式設計,它提供了定義變數和 引數的手段以及豐富的程式控制結構。使用Shell程式設計類似於DOS中的批 處理檔案,稱為Shell script,又叫Shell程式或Shell命令檔案。
如下圖所示:
二、shell的分類
概述:shell有很多,但常用的就幾種:
Shell名稱 開發者 命令名稱
Bourne S.R.Bourne /bin/sh ->/bin/bash (大陸)
C Bill Joy /bin/csh
Kom David /bin/ksh
看看Ubuntu上的shell種類:
檢視目前使用的是哪種shell
命令:env 【顯示當前系統的環境變數】
如果你不想使用bash的shell命令,可以進行修改,命令:
chsh -s 輸入新的shell 如:/bin/dash
chsh -s /bin/dash,然後登出一下。
這裡我就不試了。
三、小技巧
(1)shell命令的補全:是指使用者輸入命令時,並不需要輸入完整的命令,而系統自 動會找出最符合的名稱。這種功能可以節省經常輸入命令的時間。 直接輸入“mk”——再按兩下“tab“鍵——出現兩頭兩個字 母為”mk“的命令。cat p 再按兩下“tab“鍵 會出現開頭字母為 “p“的所有檔案或目錄。
(2)在linux下,我們有時可能希望知道或是使用最 近執行的命令,history可能會幫上大忙。
1、history 5:此項說明會顯示最近使用的5個命令。
2、 !5:此項說明執行歷史編號為5的命令。
3、 !ls:此項說明執行最後一次以“ls”開頭的命令。
如果不想輸入命令,可以這樣使用:
四、TCP/IP基礎
這裡簡單介紹一下,關於更深入的東西,可以參考其他的資料,《TCP/IP詳解卷1:協定》
概述:linux /unix的世界就是網路的世界,而網路的 基礎就是tcp/ip,在某種意 義上,unix網路就是Tcp/ip,而且Tcp/ip就是網路互聯的 標準。它不是一個獨立的協定,而是一組協定。(tcp,ip ,udp,arp,rarp等協定)。所以一個優秀的程式設計師必 須了解並掌握tcp/ip,tcp/ip究竟是什麼呢?
- Ip地址與包的路由傳遞
每個internet上的主機和路由器都有一個ip地址 ,它包括網路號和主機號,所有ip地址都是32位元的(當然現在也有IPV6),ip 地址按照國際標準的劃分為a,b,c,d,e五種型別(從上到下)
a類的IP地址非常珍貴,原因是:網路號8位元,剩餘的全是主機號,所以能分配更多的IP地址。其中網路號確定了就不能再變了。
如何檢視Linux中的ip地址:ifconfig
下面我們舉個例子:兩個微信的通訊案例
比如有兩個使用者使用微信聊天,其中一個使用者A向另外一個使用者B傳送了:“您好!”,然後,這條訊息會經過應用層,會被在開頭加上一個app(這裡的app指的是微信這個程式,唯一標識),接著向下走,到了傳輸層,資料會上面傳過來的資料全面再加上tcp頭,接著經過IP層,資料段,會在前面加上ip,形成封包,最後經過鏈路層,在封包的前面加上了幀頭,然後發到網絡卡,在通過路由器傳送到B使用者,當到了B使用者的網絡卡之後,再進入到資料鏈路層,去掉封包的幀頭,在經過IP層的時候,會把IP頭去掉,在經過TCP層,會把TCP頭去掉,在經過應用層的時候,根據app找到對應的微信,並把app頭去掉,最後“您好!”就會被對方收到。
好了,大概就是這個過程,可能有些專業術語描述的不準確,關於網路方面的知識也是我的一個盲區,希望能和大家一起學習。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-10/147458.htm
相關文章