一、Linux入門概述 1.1 概述 Linux內核最初由芬蘭人Linus Torvalds在赫爾辛基大學就讀時處於個人愛好編寫的。 Linux是一套免費使用且自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。Linux能運行主要的Unix ...
一、Linux入門概述
1.1 概述
Linux內核最初由芬蘭人Linus Torvalds在赫爾辛基大學就讀時處於個人愛好編寫的。
Linux是一套免費使用且自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。Linux能運行主要的Unix工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
而目前市面上較為知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SUSE、OpenSUSE。
1.2 下載地址
CentOS下載地址:
網易鏡像:http://mirrors.163.com/centos/8/isos/
搜狐鏡像:http://mirrors.sohu.com/centos/8/isos/
1.3 Linux的特點
在Linux系統中,一切皆是文件,沒有尾碼名的這一說法。
1.4 Linux和Windows的區別
目前國內Linux更多應用於伺服器上,而桌面操作系統(個人PC以及辦公電腦)更多使用的是Windows,不過也有少數人選擇Deepin(國產Linux桌面操作系統)。Linux和Windows的主要區別有:
- 在界面上,windows的界面統一,外殼程式固定所有Windows程式菜單幾乎一致,快捷鍵也幾乎相同;而Linux使用圓形界面風格,且不同的發佈版本也會有不同的改變,可能互不相容。GNU/Linux的終端機是從Unix傳承下來,基本命令和操作方法也幾乎一致。
- 在驅動程式上,Windows的驅動程式豐富,版本更新頻繁。預設安裝程式裡面一般包含該版本發佈時流行的硬體驅動程式,之後所出的新硬體驅動依賴於硬體廠商提供,對於一些老硬體,如果沒有了原配的驅動有時候很難支持,另外有時硬體廠商未提供所需版本的Windows下的驅動,會比較難搞;而Linux的驅動程式由志願者開發,由核心開發小組發佈,很多硬體廠商基於版本考慮並未提供驅動程式,儘管多數無需手動安裝,但是涉及安裝則相對複雜,是的新用戶面對驅動程式問題會一籌莫展,但是在開源開發模式下,許多老硬體儘管在Windows下很難支持的也容易趙鐸驅動,HP、Intel和AMD等硬體廠商逐步不同程式支持開源驅動,問題正在得到緩解。
- 在使用方面,Windows的使用更加簡單卻容易入門,圓形化界面對沒有電腦背景知識的用戶使用十分有利;而Linux的文字界面(即命令行界面)需要學習才能掌握,相對較難入門。
- 在學習方面,Windows系統構造複雜、變化頻繁,且知識、技能淘汰快,深入學習較難;而Linux系統構造簡單、穩定,且知識、技能傳承性好,深入學習相對容易。
- 在軟體方面,Windows每一種特定功能可能都需要商業軟體的支持,需要購買相應的授權;而Linux大部分軟體都可以自由獲取,同樣功能的軟體選擇較少。
二、Linux目錄結構
2.1 概覽
2.2 目錄結構及作用
- /bin:是Binary的縮寫,該目錄下存放著系統必備的執行命令,例如:cd、ls、cat...
- /boot:這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件和鏡像文件,類似於Windows下的system目錄
- /dev:Device的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的
- /etc:所有的系統管理所需要的配置文件和子目錄
- /home:存放普通用戶的主目錄,在Linux中每個yoghurt都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的
- /lib:系統開機所需要最基本的動態鏈接共用庫,其作用類似於Windows里的dll文件,幾乎所有的應用程式都需要用到這些共用庫
- /lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就會產生會自動刪除的碎片文件
- /media:linux系統會自動識別一些設備,例如U盤、光碟機等,當識別後,Linux會把識別的設備掛載到這個目錄下
- /mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機裡面的文件了
- /net:存放著和網路相關的一些文件
- /opt:這是給主機額外安裝軟體所擺放的目錄,比如要安裝一個Oracle資料庫就可以放在這個目錄下,預設是空的
- /proc:該目錄是一個虛擬的目錄,是系統記憶體的映射,可以通過直接訪問這個目錄來獲取系統信息
- /root:該目錄為系統管理員,也稱作超級許可權者的用戶主目錄
- /sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式
- /selinux:這個目錄是Redhat和CentOS特有的目錄,Selinux是一個安全機制,類似於windows的防火牆
- /srv:service的縮寫,該目錄存放一些服務啟動之後需要提取的數據
- /sys:存放著與Linux系統相關的文件
- /tmp:用來存放臨時文件
- /usr:存放用戶的很多應用程式和文件,類似於windows的program files目錄
- /var:存放著不斷擴充的東西,我們習慣將那些經常被修改的目錄放在該目錄下,包括各種日誌文件
三、VI、VIM編輯器
3.1 概述
所有的Unix Like系統都會內建vi文書編輯器,其他的文書編輯器則不一定會存在。但是目前我們使用比較多的是vim編輯器。
Vim具有程式編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程式設計。Vim是從VI發展出來的一個文本編輯器,代碼補完、編譯及錯誤 跳轉等方便編程的功能特別豐富,被廣泛使用。
具體來說,VI是老師的字處理器,不過功能已經齊全,但是可以改進;VIM則可以說是程式開發者的一項很好用的工具。
3.2 一般模式
以VI打開一個檔案就直接進入一般模式了,也是預設模式。在這個模式中,你可以使用【上下左右】按鍵來移動游標,可以使用【刪除字元】或【刪除整行】來處理檔案內容,也可以使用【複製】【粘貼】來處理文件數據。
常用語法
- 【yy】:複製游標單簽一行
- 【y數字Ny】:複製一段(游標後N行)
- 【p】:箭頭移動到目的行粘貼
- 【u】:撤銷上一步
- 【dd】:刪除游標當前行
- 【d數字Nd】:刪除游標後N行
- 【x】:刪除一個字母,相當於del
- 【X】:刪除一個字母,相當於backspace
- 【yw】:複製一個詞
- 【dw】:刪除一個詞
- 【shift+^】:移動到行頭
- 【shift+$】:移動到行尾
- 【1+shift+g】:移動到頁頭,數字
- 【shift+g】:移動到頁尾
- 【數字N+shift+g】:移動到目標行
3.3 編輯模式
在一般模式中可以進行刪除、複製、粘貼等動作,但是卻無法編輯文件內容。要等按下【i,I,o,O,a,A,r,R】任何一個字母之後才會進入編輯模式。
在Linux中,按下這些按鍵時,會在畫面的左下方出現【INSERT】或【REPLACE】字樣,此時代表進入編輯模式,可以進行編輯,如果要回到一般模式時,必須按下【Esc】退出編輯模式。
常用語法
- 【i】:進入編輯模式,當前游標前
- 【a】:進入編輯模式,當前游標後
- 【o】:進入編輯模式,當前游標行的下一行
- 【Esc】:退出編輯模式
3.4 指令模式
在一般模式中,輸入【:】【/】【?】中的任何一個按鈕,就可以將游標移動到最底下那一行。
在這個模式中,可以提供搜尋資料的動作,而讀取、存檔、大量取代字元、離開vi、顯示行號等動作都是在此模式中達成。
常用語法
- 【:】:選項
- 【w】:保存
- 【q】:退出
- 【!】:強制執行
- 【/被查找詞】:n是查找下一個,shift+n是往上查找
- 【?被查找詞】:n是查找上一個,shift+n是往下查找
- 【:wq!】:強制保存退出
四、網路與防火牆
4.1 查看、修改IP、網關、DNS
一、臨時修改IP地址、網關
- 修改IP:命令行輸入 network eth0 192.168.1.100 netmask 255.255.255.0
- 修改網關:命令行輸入 route add default gw 192.168.1.1
- 刪除網關:命令行輸入 route del dafault gw 192.168.1.1
註意:在命令行中的操作待用戶退出後會失效,如要永久生效,則需要修改配置文件
二、永久修改IP地址、網關、DNS
- 在命令行輸入setup,在彈出的視窗中手動配置IP、網關、DNS即可
- 修改IP地址和網關:
命令行輸入:vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE = eth0 //etho標識網卡的標識
IPADDR =192.138.1.100 //標識網卡的IP
GATWAY = 192.168.1.1 //標識網關
NETMASK = 255.255.255.0 //標識子網掩碼
HWADDR = 11:22:***:33 //標識Mac地址
ONBOOT = yes/no //啟動時是否激活該網卡
3. 修改DNS:在命令行輸入 vim /etc/resolv.conf,手動輸入:nameserver 123.125.81.6
三、查看IP、網關、DNS
命令行中輸入ifconfig可以查看IP
命令行中輸入route -n ,IP地址為0.0.0.0後的gateway即為預設網關
四、IP等信息修改完成後需要執行service network restart重啟生效
4.2 防火牆
一、基本語法
- 【service iptables statas】:查看防火牆狀態
- 【chkconfig iptables -list】:查看防火牆開機啟動狀態
- 【service iptables stop】:臨時關閉防火牆
- 【chkconfig iptables off】:關閉防火牆開機啟動
- 【chkconfig iptables on】:開啟防火牆開機啟動
二、擴展
Linux系統有7個運行級別(runlevel),分別是:
- 運行級別0:系統停機狀態,系統預設運行級別不能設為0,否則不能正常啟動
- 運行級別1:單用戶工作狀態,root許可權,用戶系統維護,進位遠程登陸
- 運行級別2:多用戶狀態(沒有NFS)
- 運行界別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式
- 運行級別4:系統未使用,保留
- 運行級別5:X11控制台,登錄後進入圖形GUI模式
- 運行級別6:系統正常關閉並重啟,預設運行級別不能設為6,否則不能正常啟動
4.3 關機重啟
Linux大多用於伺服器,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。正確的關機流程為:sync ->shutdown ->reboot -> halt。
一、基本語法
- 【sync】:將數據有記憶體同步到硬碟中
- 【shutdown [選項][時間]】,選項:-h:關機,-r:重啟
- 【halt】:關閉系統,等同於shutdown -h now 和 poweroff
- 【reboot】:重啟,等同於shutdown -r now
二、示例
- 10分鐘後關機:shutdown -h 10
- 立即重啟:shutdown -r now或者reboot
- 關機:halt
五、常用基本命令
5.1 幫助命令
5.1.1 man獲得幫助信息
基本語法
man 【命令或配置文件】:獲得幫助信息
- 顯示說明
NAME | 命令的名稱和單行描述 |
SYNOPSIS | 怎樣使用命令 |
DESCRIPTION | 命令功能的深入討論 |
EXAMPLES | 示例 |
SEE ALSO | 相關主題 |
2. 數字說明(命令之後括弧中的數字)
1 | 用戶在shell環境中可以操作的命令或是可執行的文件 |
2 | 系統內核(Kernel)可以調用的函數 |
3 | 常用的函數或函數庫 |
4 | 設備配置文件 |
5 | 配置文件的格式 |
6 | 游戲相關 |
7 | linux網路協議和文件系統 |
8 | 系統管理員可以用的命令 |
9 | 和內核有關係的文件 |
5.1.2 help獲得shell內置命令的幫助信息
基本語法
help 【命令】:獲得shell內置命令的幫助信息
5.1.3 常用快捷鍵
Ctrl+C | 停止進程 |
Ctrl+L | 清屏 |
Ctrl+Q | 退出 |
Ctrl+ALT | 虛擬機中linux和window切換 |
TAB | 命令、目錄補全 |
上下鍵 | 查找執行過的命令 |
5.2 文件目錄類命令
5.2.1 pwd顯示當前工作目錄的絕對路徑
基本語法
【pwd】:顯示當前工作目錄的絕對路徑
5.2.2 ls 列出目錄的內容
基本語法
ls【選項】【目錄或是文件】
選項:
-a :全部的文件,連同隱藏文件一起列出來
-l :長數據串列出,包含文件的屬性與許可權等,每行列出的基本信息依次為:文件類型與許可權、鏈接數、文件屬主、文件屬組、文件大小(用byte表示)、建立或最近修改的時間、名字。
5.2.3 mkdir創建一個新的目錄
基本語法
mkdir 【-p】目錄名稱
選項:-p:創建多層目錄
5.2.4 rmdir 刪除一個空的目錄
基本語法
rmdir 【目錄名稱】
5.2.5 touch創建空文件
基本語法
touch 【文件名稱】
5.2.6 cd切換目錄
基本語法
cd 絕對路徑 | 進入指定目錄 |
cd 相對路徑 | 進入指定目錄 |
cd~或cd | 進入home家目錄 |
cd - | 回到上一次所在目錄 |
cd .. | 回到當前目錄的上一級目錄 |
cd -P | 跳轉到實際物理路徑,而非快捷方式路徑 |
5.2.7 cp複製文件或目錄
基本語法
- cp 【source】【dest】:複製source文件到dest
- cp -r【sourceFolder】 【targetFolder】:遞歸複製整個文件夾
5.2.8 rm 移除文件或目錄
基本語法
rm 【文件名】 | 刪除文件 |
rm -r 【目錄名】 | 遞歸刪除目錄 |
rm -rf【目錄名】 | 強制遞歸刪除目錄 |
rm -rf * | 刪庫跑路必備 |
5.2.9 mv移動文件與目錄或重命名
基本語法
- mv 【oldNameFolder】【newNameFolder】:重命名
- mv 【movefile】 【targetFolder】:移動文件
5.2.10 cat查看文件內容
查看文件內容,從第一行開始顯示。
基本語法
cat 【選項】【文件名】
選項:
-A | 相當於-vET的整合,可列出一些特殊字元而不是空白 |
-b | 列出行號,僅針對非空白行做行號顯示,空白行不標行號 |
-E | 將結尾的斷行位元組$顯示出來 |
-n | 列出行號,連同空白行也會有行號 |
-T | 將【TAB】按鍵以^I顯示出來 |
-v | 列出一些看不出來的特殊字元 |
5.2.11 tac查看文件內容
查看文件內容,從最後一行開始顯示,可以看出tac是cat的反寫。
基本語法
tac 【選項參數】【文件名】
5.2.12 more查看文件內容
查看文件內容,一頁一頁的顯示。
基本語法
more 【文件名】
Space空格鍵 | 向下翻一頁 |
Enter回車鍵 | 向下翻一行 |
q | 立刻離開more,不再顯示內容 |
Ctrl+F | 向下滾動一屏 |
Ctrl+B | 返回上一屏 |
= | 輸出當前行的行號 |
:f | 輸出文件名和當前行的行號 |
5.2.13 less查看文件內容
less的作用於more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less允許使用【pageUp】和【pageDown】來回滾動。
基本語法
less 【文件名】
Space空格鍵 | 向下翻動一頁 |
pageDown | 向下翻動一頁 |
pageUp | 向上翻動一頁 |
/【字串】 | 向下搜尋【字串】,n:向下查找,N:向上查找 |
?【字串】 | 向上搜尋【字串】,n:向上查找,N:向下查找 |
q | 離開less程式 |
5.2.14 head查看文件內容
查看文件內容,只看前幾行。
基本語法
head -n 【數字M】【文件名】:查看文件的前M行內容。
5.2.15 tail查看文件內容
查看文件內容,只看後幾行。
基本語法
- tail -n 【數字M】【文件名】:查看文件後M行內容。
- tail -f 【文件名】:實時追蹤該文件的所有更新。
5.2.16 重定向命令
基本語法
- ls -l >文件名:列表的內容寫入文件中(覆蓋寫)
- ls -al >>文件名:列表的內容追加到文件的末尾
5.1.17 echo命令
基本語法
- echo【要顯示的內容】>>【文件名】:將要顯示的內容存儲到文件中
- echo 【變數】:顯示變數的值
5.2.18 In軟鏈接
基本語法
In -s 【原文件】【目標文件】:給原文件創建一個軟鏈接,軟鏈接存放在目標文件目錄
5.2.19 history查看命令歷史
基本語法
【history】
==================================================================================================================================================================
2020-07-14
22:36:00