Linux應知應會(一)

来源:https://www.cnblogs.com/wsm-loveu/archive/2020/07/14/13302513.html
-Advertisement-
Play Games

一、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打開一個檔案就直接進入一般模式了,也是預設模式。在這個模式中,你可以使用【上下左右】按鍵來移動游標,可以使用【刪除字元】或【刪除整行】來處理檔案內容,也可以使用【複製】【粘貼】來處理文件數據。

常用語法

  1. 【yy】:複製游標單簽一行
  2. 【y數字Ny】:複製一段(游標後N行)
  3. 【p】:箭頭移動到目的行粘貼
  4. 【u】:撤銷上一步
  5. 【dd】:刪除游標當前行
  6. 【d數字Nd】:刪除游標後N行
  7. 【x】:刪除一個字母,相當於del
  8. 【X】:刪除一個字母,相當於backspace
  9. 【yw】:複製一個詞
  10. 【dw】:刪除一個詞
  11. 【shift+^】:移動到行頭
  12. 【shift+$】:移動到行尾
  13. 【1+shift+g】:移動到頁頭,數字
  14. 【shift+g】:移動到頁尾
  15. 【數字N+shift+g】:移動到目標行

3.3 編輯模式

在一般模式中可以進行刪除、複製、粘貼等動作,但是卻無法編輯文件內容。要等按下【i,I,o,O,a,A,r,R】任何一個字母之後才會進入編輯模式。

在Linux中,按下這些按鍵時,會在畫面的左下方出現【INSERT】或【REPLACE】字樣,此時代表進入編輯模式,可以進行編輯,如果要回到一般模式時,必須按下【Esc】退出編輯模式。

常用語法

  1. 【i】:進入編輯模式,當前游標前
  2. 【a】:進入編輯模式,當前游標後
  3. 【o】:進入編輯模式,當前游標行的下一行
  4. 【Esc】:退出編輯模式

3.4 指令模式

在一般模式中,輸入【:】【/】【?】中的任何一個按鈕,就可以將游標移動到最底下那一行。

在這個模式中,可以提供搜尋資料的動作,而讀取、存檔、大量取代字元、離開vi、顯示行號等動作都是在此模式中達成。

常用語法

  1. 【:】:選項
  2. 【w】:保存
  3. 【q】:退出
  4. 【!】:強制執行
  5. 【/被查找詞】:n是查找下一個,shift+n是往上查找
  6. 【?被查找詞】:n是查找上一個,shift+n是往下查找
  7. 【:wq!】:強制保存退出

四、網路與防火牆

4.1 查看、修改IP、網關、DNS

一、臨時修改IP地址、網關

  1. 修改IP:命令行輸入 network eth0 192.168.1.100 netmask 255.255.255.0
  2. 修改網關:命令行輸入 route add default gw 192.168.1.1
  3. 刪除網關:命令行輸入 route del dafault gw 192.168.1.1

註意:在命令行中的操作待用戶退出後會失效,如要永久生效,則需要修改配置文件

二、永久修改IP地址、網關、DNS

  1.  在命令行輸入setup,在彈出的視窗中手動配置IP、網關、DNS即可
  2. 修改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 防火牆

一、基本語法

  1. 【service iptables statas】:查看防火牆狀態
  2. 【chkconfig iptables -list】:查看防火牆開機啟動狀態
  3. 【service iptables stop】:臨時關閉防火牆
  4. 【chkconfig iptables off】:關閉防火牆開機啟動
  5. 【chkconfig iptables on】:開啟防火牆開機啟動

二、擴展

Linux系統有7個運行級別(runlevel),分別是:

  1. 運行級別0:系統停機狀態,系統預設運行級別不能設為0,否則不能正常啟動
  2. 運行級別1:單用戶工作狀態,root許可權,用戶系統維護,進位遠程登陸
  3. 運行級別2:多用戶狀態(沒有NFS)
  4. 運行界別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式
  5. 運行級別4:系統未使用,保留
  6. 運行級別5:X11控制台,登錄後進入圖形GUI模式
  7. 運行級別6:系統正常關閉並重啟,預設運行級別不能設為6,否則不能正常啟動

4.3 關機重啟

Linux大多用於伺服器,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。正確的關機流程為:sync ->shutdown ->reboot -> halt。

一、基本語法

  • 【sync】:將數據有記憶體同步到硬碟中
  • 【shutdown [選項][時間]】,選項:-h:關機,-r:重啟
  • 【halt】:關閉系統,等同於shutdown -h now 和 poweroff
  • 【reboot】:重啟,等同於shutdown -r now

二、示例

  1. 10分鐘後關機:shutdown -h 10
  2. 立即重啟:shutdown -r now或者reboot
  3. 關機:halt

五、常用基本命令

5.1 幫助命令

5.1.1 man獲得幫助信息

基本語法

man 【命令或配置文件】:獲得幫助信息

  1. 顯示說明
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  

                  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用Topshelf部署.net core windows服務 首先新建一個.net core的模板worker程式 過程 略 打開Program.cs namespace TopshelfDemo { public class Program { public static void Main(s ...
  • 筆試考試系統需求分析 1. 引言 1.1編寫目的 項目需求分析目的是使用戶和軟體開發者雙方對項目開發目標有一個共同的理解,便於對軟體開發各個過程的控制與管理,通過對項目開發目標的描述,使開發人員能夠正確理解用戶需求,明確該系統應具有的功能。性能與界面要求。 需求分析作為項目開放的基礎和依據,其預期讀 ...
  • 1、前言 ​ 不知道你是否對.NET裡面的定時器產生過一些疑問,以下是武小棧個人的一些總結。 2、官方介紹 在.NET的框架之內定時器有四種,先看一下微軟官方對他們各自特點介紹: System.Timers.Timer,它將觸發事件,並定期在一個或多個事件接收器中執行代碼。 類旨在用作多線程環境中基 ...
  • 在不同的區域中使用Convert.ToDouble可能會產生問題。 string str = "20.0"; double val = Convert.ToDouble(str); 比如在某些區域語言中得到的結果是200,如: Thread.CurrentThread.CurrentCulture ...
  • 場景 ASP.NET中新建Web網站並部署到IIS上(詳細圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199747 前面講過將ASP.NET的項目部署到本機的IIS上。 但是如果將其部署到伺服器上Window ...
  • // from https://stackoverflow.com/questions/35381238/how-to-use-custom-fonts-in-emgucv string text = "塗聚文(Geovin Du)"; // 下麵定義一個矩形區域 int rectWidth = t ...
  • 案例:修改預設線程個數 1.NameValueCollection System.Collections.Specialized.NameValueCollection collection = new System.Collections.Specialized.NameValueCollecti ...
  • 背景 習慣使用markdown的人應該都知道Typora這個神器,它非常簡潔高效。雖然博客園的線上markdown編輯器也不錯,但畢竟是網頁版,每次寫東西需要登錄系統-進後臺-找到文章-編輯-保存草稿。。。非常難受。。。 但是使用Typora來寫的話,文章圖片又是個問題,本地寫完粘貼到網站上,圖片全 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...