## 跟運維學 Linux - 01 ### 運維的誕生 運維工程師有很多叫法:系統運維、Linux 工程師、系統管理員... `網管`可以說是運維工程師最早的雛形。在個人電腦未普及時,大家去網吧玩游戲。 玩家:“網關,我的電腦上不了網了” 網管負責維修電腦、維修系統、維護網路設備... ### 互 ...
跟運維學 Linux - 01
運維的誕生
運維工程師有很多叫法:系統運維、Linux 工程師、系統管理員...
網管
可以說是運維工程師最早的雛形。在個人電腦未普及時,大家去網吧玩游戲。
玩家:“網關,我的電腦上不了網了”
網管負責維修電腦、維修系統、維護網路設備...
互聯網的發展
現在大家在家裡上網、用手機上網、在公司上網、網吧上網
在網上玩游戲、看新聞、炒股、上課、購物等等
背後是無數的伺服器
(據說80%是linux)支撐著互聯網應用,運維工程師則拿著高薪維護著這些伺服器
伺服器 vs 個人電腦
伺服器和個人電腦都是電腦。個人電腦主要服務1人,而伺服器通常服務多人,所以需要更快的速度,需要全年不間斷的運行,而且穩定
有時比速度更重要。
Tip:緊急時刻甚至可以把個人電腦也加入伺服器集群中,臨時充當伺服器。
伺服器的好搭檔 Linux
伺服器就是電腦,需要操作系統才能運行。如果伺服器的硬體很穩定,但操作系統容易出問題,其上的應用也會被拖累,無數的客戶就會投訴。
linux 穩定、開源、可定製。
有了 linux 的伺服器,其上的應用再也不會輕易被拖累了。
操作系統是怎麼回事
電腦包含主板、cpu、記憶體、磁碟、鍵盤等硬體,真正幹活的就是他們。
人不能直接和這些硬體溝通並指揮它們幹活,所以才誕生了操作系統。
操作系統就是人和電腦硬體
的橋梁。
比如要查看某個記事本:
- 用戶通過滑鼠點擊文件,通過 i/o 傳給操作系統
- 操作系統指揮cpu在硬碟搜索文件地址
- 訪問文件內容並存入記憶體
- CPU告訴操作系統,最終顯示到顯示器
產品和生產環境
企業要賺錢,產品就是核心,比如網站就是產品,就網站數量在全球有上億。
現在開發產品比以前容易,以前產品可能得從0開始,現在可能找一個類似的,稍微改點東西,就是自己的一個產品。
而產品必須跑在一個平臺上,這個平臺就是生產環境
。
生產環境中除了有產品核心代碼,還包含許多伺服器,伺服器中的Linux系統,還有防火牆...
產品由程式員開發,而生產環境就由運維工程師建設和維護。
伺服器類型
一般伺服器分為:機架式伺服器(出場頻率最高)、塔式伺服器(和家用台式電腦外觀類似,通常放在辦公室給內部員工使用)、刀片伺服器(向刀片一樣整齊排列,很昂貴,十幾萬到幾十萬,上場機會少)。
機架式伺服器
就是可以放在機架上的伺服器,這個機柜上有刻度,刻度可以表示伺服器的高度。這個刻度,有一個標準單位叫 U,1U=4.445釐米,比如1U伺服器、2U伺服器(高度是1U伺服器的兩倍)、4U伺服器。
機架伺服器:
IDC和運維
伺服器通常會托管在一個叫 互聯網數據中心(簡稱 idc) 的地方。
idc 會給企業提供機房、機架、電源、帶寬等服務。
idc 維護人員只負責硬體,比如伺服器的硬碟壞了,可以遠程讓其更換,而伺服器中更高級的問題,比如linux系統和上面運行的應用,就是運維的工作
虛擬化和虛擬機
比如手上有一臺windows的電腦,現在我要學習 linux,不想把windows系統換成 linux,也沒錢在買一臺電腦,這時,我可以安裝一個虛擬機
軟體,在該軟體上在安裝 linux。
知道了虛擬機,現在說一下虛擬化。
虛擬化是虛擬機的底層實現。
一臺電腦,其上的物理資源(cpu 4 核、8G 記憶體、2T 硬碟、帶寬10M)就這麼多,可以用創建多個虛擬機,比如01虛擬機
分配20%資源、02虛擬機
分配30%資源...
Tip:如果工作中有條件,儘量優先使用linux伺服器進行學習。如果沒有,可以使用 VirtualBox。
Linux 版本和 linux 內核
linux 發行版有很多,比如 centos Linux、Redhat Linux、Ubuntu Linux、Debian、
linux 除了表示發行版,還可以表示 Linux 內核
。所有 linux 發行版,都是基於 linux 內核構建的。
通常來說,大多數 Linux 發行版都會使用最新穩定版本的 Linux 內核,並根據自身需求進行配置。這意味著雖然內核版本相同,但不同的發行版可能會有不同的內核選項、模塊和補丁。
內核
是一個比較抽象的東西,可以理解成 linux 最核心部分,可理解成底層的驅動,最靠近硬體的部分,由成百上千萬行代碼組成。前文我們也說到,電腦真正幹活的就是硬體,人得通過操作系統才能指揮硬體幹活。
Red Hat 是非常知名且被廣泛使用的 Linux 發行版之一。Redhat 是個系列,其中Redhat的企業版經克隆後,變成社區免費版本Centos
。
Tip:內核的主要功能包括:
硬體管理
:Linux 內核負責管理電腦硬體資源,包括處理器、記憶體、硬碟、網路介面等。它與這些硬體設備進行通信,併為應用程式提供訪問硬體的介面。進程管理
:內核控制和管理運行在系統上的各個進程。它分配和回收進程的資源,調度進程的執行順序,以及提供進程間通信的機制。文件系統管理
:內核提供文件系統的支持,包括文件的創建、讀取、寫入和刪除操作。它負責將數據存儲到磁碟上,並提供文件的訪問和保護機制。設備驅動程式
:內核包含了各種設備驅動程式,使得操作系統能夠與硬體設備進行通信。這些驅動程式充當了操作系統與硬體之間的橋梁,使其能夠正確地使用和控制硬體設備。網路支持
:Linux 內核具有強大的網路功能,包括網路協議棧、IP 路由、網路設備驅動程式等。它能夠實現網路通信、數據傳輸和網路安全等功能。
命令行登錄伺服器
現在有了 linux 伺服器,接下來我們就得登錄。
通常伺服器不在身邊,而且大多數企業中的 linux 伺服器都強制去除圖形桌面,只有命令行。
這裡筆者使用 mobaxterm 遠程登錄伺服器。
Tip:在 windows 上使用 Git Bash 也可以登錄。就像這樣:
Administrator@K-10 MINGW64 ~/Desktop
$ ssh [email protected]
[email protected]'s password:
Welcome to Kylin V10 (GNU/Linux ... x86_64)
* Management: http://www.kylinos.cn/ * Support: http://www.kylinos.cn/service.aspx
Last login: Thu Jul 13 11:22:26 2023 from 192.168.1.35
demo@demo-pc:~$ whoami
demo
demo@demo-pc:~$
第一個命令 ls
登錄伺服器後,進入命令行。所謂命令行,也就是命令。
第一步我們得通過命令知道有什麼內容。
第一個命令是 ls
(list),列表的意思,用於顯示當前目錄下文件和文件夾。請看示例:
// 查看當前目錄的文件和文件夾
pj@pj-pc:~/command$ ls
a2.txt a3.txt a4.txt a5.txt a6.txt dir2 test
如何判斷哪個是文件,哪些是目錄。
一種方法是通過顏色,在筆者這裡,比如文件 a2.txt 是白色
,目錄 dir2 是藍色
。
也可以通過 ls 目錄/文件
,如果是目錄則顯示其中的內容,如果是文件,則顯示該文件。就像這樣:
// ls 目錄
pj@pj-pc:~/command$ ls dir2
a.txt
// ls 文件
pj@pj-pc:~/command$ ls a2.txt
a2.txt
ls -l
上面我們通過顏色
來粗略判斷是文件還是文件夾,我們需要查看文件更詳細信息的方法。
查看一個文件有哪些屬性,可以使用 ls -l
:
pj@pj-pc:~/command$ ls -l
總用量 8
-rw-rw-r-- 1 pj pj 0 7月 11 18:36 a2.txt
-rw-rw-r-- 1 pj pj 0 7月 11 18:36 a3.txt
-rw-rw-r-- 1 pj pj 0 7月 11 18:36 a4.txt
-rw-rw-r-- 1 pj pj 0 7月 11 18:36 a5.txt
-rw-rw-r-- 1 pj pj 0 7月 11 18:36 a6.txt
drwxrwxr-x 2 pj pj 4096 7月 11 16:50 dir2
-rw-rw-r-- 1 pj pj 45 7月 11 19:38 test
絕大多數linux 命令都支持參數,比如 ls -l
,不但列出所有文件,還列出所有文件的屬性。一個文件占一行。
請看第一列的最左側:-
表示普通文件、d
代表目錄。
-rw-rw-r--
-rw-rw-r--
-rw-rw-r--
-rw-rw-r--
-rw-rw-r--
drwxrwxr-x
-rw-rw-r--
其他屬性,例如rw-rw-r--
是什麼意思?後續學到相應的知識點在解釋。
查看文件內容
分清楚哪個是文件,哪個是文件夾後,現在我們需要查看文件內容。
請看操作:
// cat - 一次性將內容輸出
pj@pj-pc:~/command$ cat a2.txt
111
222
333
444
555
666
777
888
999
10
11
12
// head - 預設顯示文件頭部10行
pj@pj-pc:~/command$ head a2.txt
111
222
333
444
555
666
777
888
999
10
// tail - 預設顯示文件尾部10行
pj@pj-pc:~/command$ tail a2.txt
333
444
555
666
777
888
999
10
11
12
cat 命令 - 一次性將內容輸出
head 命令 - 預設顯示文件頭部10行
tail 命令 - 預設顯示文件尾部10行
head 和 tail 預設是10條數據,我們可以通過參數修改,比如顯示2條:
pj@pj-pc:~/command$ head -n 2 a2.txt
111
222
pj@pj-pc:~/command$ tail -n 2 a2.txt
11
12
如果文件內容很長,使用cat一次性輸出,還得滾動查找,不是很方便,如果文件內容過長,由於終端緩存有限,可能文件前頭的內容會被覆蓋。這時可以使用 less
命令,用法如下:
// less 長文件
$ less /var/log/syslog
進入 less 顯示界面後,需要一些按鍵控制:
空格
下一頁b
上一頁- 上下鍵是上一行或下一行
q
退出
文件位置
在windows中,如果要查找某個文件,直接使用滑鼠,先進入我的電腦,然後選擇D盤或E盤,然後依次點擊。
而在 linux 伺服器中,滑鼠
和圖形界面
都與我們無緣,一切得靠命令來操作。
首先通過 pwd 命令確定我們此刻的路徑:
test11@test11-pc:~$ pwd
/home/test11
Tip:在linux 中,不管是root用戶還是普通用戶,登錄後預設都會處在自己的家目錄
中(筆者使用 test11 用戶登錄)。所謂家目錄,也就是回家了,進入到自己的文件中。這種登錄後進入家目錄的方式是可以改變的,後面學習 linux 賬號管理時,會瞭解。
通過 ls 查看當前目錄中的內容,並通過 cd 進入某目錄:
test11@test11-pc:~$ ls
模板 桌面 a.txt dir1
test11@test11-pc:~$ cd dir1
test11@test11-pc:~/dir1$ ls
test11@test11-pc:~/dir1$
通過 cd ..
可以回到上一層目錄:
test11@pj-pc:~$ cd dir1
test11@pj-pc:~/dir1$ cd ..
test11@pj-pc:~$ pwd
/home/test11
只輸入 cd + 回車
會進入家目錄:
test11@pj-pc:~$ cd /var/log
// 進入家目錄
test11@pj-pc:/var/log$ cd
test11@pj-pc:~$ pwd
/home/test11
cd ~
也能回到家目錄:
test11@test11-pc:~/dir1$ cd ~
test11@test11-pc:~$ pwd
/home/test11
快捷鍵
繼續學習之前介紹幾個常用的快捷鍵。
Tab
鍵用於命令和路徑的提示或補全
比如我要輸入 history 命令,但我只記得第一個字母,可以輸入 h 後,按2次Tab,終端會將 h 開頭的所有命令羅列:
test11@pj-pc:~$ h
h2ph hciattach head helpztags history hostname htseupdate
h2xs hciconfig hedron-client hex2hcd host hostnamectl httpserv
...
輸入 his 後,由於可以確定是 hisotry,按一次 Tab 就能自動補全。
輸入路徑時也能提示或補全:
test11@pj-pc:~$ cd /var/lo
local/ lock/ log/
-
ctrl + l
清空終端(或clear 命令) -
ctrl + c
用於取消命令
比如我輸入top命令,不想要了,可以通過 ctrl + c 取消:
test11@pj-pc:~$ top^C
test11@pj-pc:~$
即使一個命令正在執行,例如 top,也可以通過 ctrl + c 將其取消。
ctrl + R
逆向查找歷史命令
剛纔輸入一個很長的命令,通過上下箭頭一個一個的查找太累,可以通過 ctrl + R 逆向查找。
// 為了測試顯示歷史命令
test11@jingjia-pc:~$ history
1 ls
2 cd
3 ls
4 mkdir dir1
5 touch a.txt
6 cd
7 pwd
8 ls
9 cd dir1
10 ls
11 cd ~
12 pwd
13 cd dir1
14 cd ..
15 pwd
16 cd /var/log
17 cd
18 pwd
19 ll
20 cd
21
22 hipercdecode
23 cd /var/lo
24 clear
25*
26 history
通過快捷鍵調出逆向查找界面:
test11@jingjia-pc:~$
(reverse-i-search)`':
輸入 h 顯示最近匹配的命令
test11@jingjia-pc:~$
(reverse-i-search)`h': history
再次輸入 ctrl + r 則逆向查找:
test11@jingjia-pc:~$
(reverse-i-search)`h': hipercdecode
確定命令後通過回車
執行。
可通過 ctrl + c 退出。
出處:https://www.cnblogs.com/pengjiali/p/17559383.html
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。