1、Linux入門概述
1.1 概述
Linux內核最初由芬蘭人Linus Torvalds在赫爾辛基大學就讀時處於我的愛好編寫的。linux
Linux是一套無償使用且自由傳播的類Unix操做系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操做系統。Linux能運行主要的Unix工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操做系統。shell
而目前市面上較爲知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SUSE、OpenSUSE。數據庫
1.2 下載地址
CentOS下載地址:編程
網易鏡像:http://mirrors.163.com/centos/8/isos/vim
搜狐鏡像:http://mirrors.sohu.com/centos/8/isos/windows
1.3 Linux的特色
在Linux系統中,一切皆是文件,沒有後綴名的這一說法。centos
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大部分軟件均可以自由獲取,一樣功能的軟件選擇較少。
2、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:存放着不斷擴充的東西,咱們習慣將那些常常被修改的目錄放在該目錄下,包括各類日誌文件
3、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、網絡與防火牆
4.1 查看、修改IP、網關、DNS
1、臨時修改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
注意:在命令行中的操做待用戶退出後會失效,如要永久生效,則須要修改配置文件
2、永久修改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
3、查看IP、網關、DNS
命令行中輸入ifconfig能夠查看IP
命令行中輸入route -n ,IP地址爲0.0.0.0後的gateway即爲默認網關
4、IP等信息修改完成後須要執行service network restart重啓生效
4.2 防火牆
1、基本語法
- 【service iptables statas】:查看防火牆狀態
- 【chkconfig iptables -list】:查看防火牆開機啓動狀態
- 【service iptables stop】:臨時關閉防火牆
- 【chkconfig iptables off】:關閉防火牆開機啓動
- 【chkconfig iptables on】:開啓防火牆開機啓動
2、擴展
Linux系統有7個運行級別(runlevel),分別是:
- 運行級別0:系統停機狀態,系統默認運行級別不能設爲0,不然不能正常啓動
- 運行級別1:單用戶工做狀態,root權限,用戶系統維護,進制遠程登錄
- 運行級別2:多用戶狀態(沒有NFS)
- 運行界別3:徹底的多用戶狀態(有NFS),登錄後進入控制檯命令行模式
- 運行級別4:系統未使用,保留
- 運行級別5:X11控制檯,登陸後進入圖形GUI模式
- 運行級別6:系統正常關閉並重啓,默認運行級別不能設爲6,不然不能正常啓動
4.3 關機重啓
Linux大多用於服務器,不多遇到關機的操做。畢竟服務器上跑一個服務是永無止境的,除非特殊狀況下,不得已纔會關機。正確的關機流程爲:sync ->shutdown ->reboot -> halt。
1、基本語法
- 【sync】:將數據有內存同步到硬盤中
- 【shutdown [選項][時間]】,選項:-h:關機,-r:重啓
- 【halt】:關閉系統,等同於shutdown -h now 和 poweroff
- 【reboot】:重啓,等同於shutdown -r now
2、示例
- 10分鐘後關機:shutdown -h 10
- 當即重啓:shutdown -r now或者reboot
- 關機:halt
5、經常使用基本命令
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