Linux入門

来源:https://www.cnblogs.com/l-y-h/archive/2019/08/30/11436870.html
-Advertisement-
Play Games

一、Linux 1、什麼是Linux 是一款操作系統,免費、開源、高效、穩定、處理高併發性能強。 2、Linux目錄結構 Linux目錄結構,可以看成是一種樹形結構。其中最頂端使用 “/”表示,稱為根目錄。由於Linux是開放源代碼的,不同的公司會根據Linux的核心代碼進行修改,如果不對目錄的功能 ...


一、Linux

1、什麼是Linux

  是一款操作系統,免費、開源、高效、穩定、處理高併發性能強。

2、Linux目錄結構

  Linux目錄結構,可以看成是一種樹形結構。其中最頂端使用 “/”表示,稱為根目錄。由於Linux是開放源代碼的,不同的公司會根據Linux的核心代碼進行修改,如果不對目錄的功能進行描述、約束,那麼使用者使用不同公司開發的Linux系統時,會崩潰、懵逼的。所以需要對Linux的目錄作用有個大概的瞭解。
常用目錄:
(1)根目錄(/):最重要的目錄,相當於Windows系統中的C盤。所有的目錄都是由根目錄衍生出來的, 同時根目錄也與開機/還原/系統修複等動作有關。

(2)/bin:用於存放一些常用指令的目錄。
  比如cat,chmod(修改許可權), chown, date, mv, mkdir, cp, bash等等常用的指令。

(3)/sbin:用於存放系統管理員才能使用的指令的目錄。(系統管理員用其設定系統,其他使用者最多只能用來查詢)
  比如:常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

(4)/home:用於存放普通用戶的主(家)目錄。
  註:~ :代表當前使用者的家目錄,而 ~guest:則代表用戶名為guest的家目錄。

(5)/root:用於存放系統管理員的主目錄。

(6)/lib:用於存放開機所需的函數庫,所有的應用程式都需要用到這些函數庫。
  比如:/lib/modules/這個目錄,會放置核心相關的模組(驅動程式)。

(7)/lost+found:這個目錄一般是空的,但是系統非法關機後,這個目錄會存放一些文件。

(8)/etc:用於存放所有的配置文件和子目錄。

(9)/usr:用於存放應用程式的目錄。
  註意:不是user的縮寫,其實usr是Unix Software Resource的縮寫, 也就是Unix操作系統軟體資源所放置的目錄,而不是用戶的數據。相當於Windows系統中的Program files目錄。

(10)/boot:用於存放啟動Linux時使用的一些核心文件,比如一些連接文件以及鏡像文件。

(11)/proc:是一個虛擬的目錄,用來存放系統記憶體的映射,訪問這個目錄可以獲取系統信息。

(12)/srv:是service的縮寫,該目錄存放的是一些服務啟動後需要提取的數據。

(13)/sys:與/proc類似,一個虛擬的目錄,記錄與核心相關的信息。

(14)/tmp:用來存放臨時文件的一個目錄。

(15)/dev:類似於Windows的設備管理器,把所有的硬體用文件的形式存儲。

(16)/media:自動識別媒體設備,比如U盤,光碟機等,識別後,會掛載到此目錄。

(17)/mnt:暫時掛載某些額外的設備,類似於/media。

(18)/opt:當安裝額外的軟體時,可以放在該目錄下,預設為空,也可放在/usr/local目錄下。

(19)/usr/local:類似於/opt。

(20)/var:針對動態性文件,比如緩存、日誌等經常變化的文件,可以存放在此處。
註:
  /usr是安裝時會占用較大硬碟容量的目錄,/var是在系統運作後才會漸漸占用硬碟容量的目錄。

3、根目錄下必須存在的目錄

  根目錄與開機有關,開機過程中僅有根目錄會被掛載, 其他分區則是在開機完成之後才會持續的進行掛載的行為。就是因為如此,因此根目錄下與開機過程有關的目錄, 就不能夠與根目錄放到不同的分區去。
目錄:
(1)/etc:開機所需配置文件。
(2)/bin:開機所需命令。
(3)/dev:開機所需要的裝置文件。
(4)/lib:開機所需的函式庫與核心所需的模塊。
(5)/sbin:開機所需的系統執行文件

4、絕對路徑、相對路徑

(1)絕對路徑:指文件或目錄在硬碟上的絕對位置。(以/開頭)。 例如: /usr/local
(2)相對路徑:指文件或目錄相對於當前工作目錄的位置。(不以/開頭)。例如:./local
註:
  . :代表當前的目錄,也可以使用 (./ ) 來表示;
  .. :代表上一層目錄,也可以 (../ )來代表。

 

二、vi、vim

1、什麼是vi?

  vi是一個Linux內嵌的一個文本編輯器。

2、什麼是vim?

  vim可以看成是vi的增強版,具有程式編輯的能力,可以主動以字體顏色區分語法的正確性,方便程式設計、代碼補充、編譯以及錯誤跳轉等常用編程的功能。

3、vi與vim的三種常見模式

(1)正常模式
  即正常打開一個文件,可以使用快捷鍵進行上下左右移動以及粘貼複製操作。

(2)插入模式(編輯模式)
  按下 i, I, o , O, a, A, r, R 中任意一個字母後(一般按 i),會進入一個編輯狀態,此時可以修改文件。

(3)命令模式
  此模式提供相關指令,完成讀取、存檔、替換、顯示文件行號、離開vim編輯器等操作。

【舉例:新建一個helloWorld.java】
在終端輸入
    vim helloWorld.java         
    #若當前helloWorld.java文件不存在,則會創建一個。
    此時進入 正常模式。
    
    輸入 i 可以進入 編輯模式。
    class helloWorld{
        public static void main(String[] args){
            System.out.println("helloWorld");
        }
    }
    
    按下ESC,可以退出編輯模式,進入命令模式。
    輸入 
        :wq   保存文件並退出
        :q    對於未修改的文件,可以直接退出,若已經修改文件,會提示進行 :q! 操作
        :q!   強制退出文件,不保存文件。

4、常用快捷鍵(命令)的使用

(1)拷貝、粘貼行
  在命令模式下輸入快捷鍵(命令)。若處於編輯模式,使用ESC退出即可。
拷貝:
  輸入 yy 可以拷貝一行(拷貝游標所在當前行),
  輸入 5yy 可以從當前行開始向下拷貝5行。
粘貼:
  輸入 p 可以粘貼拷貝的數據。

yy
5yy
p

(2)刪除行
  在命令模式下輸入快捷鍵(命令)。若處於編輯模式,使用ESC退出即可。
  輸入 dd 可以刪除一行(刪除游標所在當前行)。
  輸入 5dd 可以從當前行開始向下刪除5行。

dd
5dd

(3)查找某個關鍵字
  在命令模式下輸入快捷鍵(命令)。若處於編輯模式,使用ESC退出即可。
  輸入 /關鍵字, 然後回車,即可開始查找 關鍵字。 若有多個數據時,輸入 n 即可查找下一個。

 /關鍵字     比如 : /hello
 n

(4)設置文件行號、取消文件的行號
  在命令模式下輸入快捷鍵(命令)。若處於編輯模式,使用ESC退出即可。
  輸入 :set nu 顯示文件行號
  輸入 :set nonu 不顯示文件行號

:set nu
:set nonu

(5)快速定位到文檔首行 或者 尾行。
  正常模式下輸入:
  G 快速定位到文檔末尾行。
  gg 快速定位到文檔首行。

G
gg

(6)快速定位到某行
  非編輯模式下:
  比如定位到 第 20 行,
    step1:可以使用 :set nu 顯示行號,
    step2:然後輸入 20 這個數。
    step3:按住 shift + g 可以 切換到第 20 行。

(7)撤銷某次編輯操作。
  若某次編輯文件後,想回退回上個版本。
  首先ESC退出編輯,然後輸入 u 即可回退回上個版本。


三、重啟、關機、用戶註銷命令

1、shutdown

shutdown -h now         表示立即關機
shotdown -h 1           表示1分鐘後關機
shotdown -r now         表示立即重啟

2、halt

halt          表示立即關機
    等價於
shutdown -h now         表示立即關機

3、reboot

reboot        表示立即重啟
    等價於
shotdown -r now         表示立即重啟

4、sync

sync          表示將記憶體中的數據同步到磁碟,防止數據丟失。
註:
    不管是重啟系統還是關閉系統,應該首先運行 sync 命令,將記憶體中的數據寫入磁碟。

5、logout

logout        表示註銷當前用戶的登錄狀態,
只適用於遠程登錄(比如使用Xshell5遠程連接Linux,在Xshell5中輸入logout可以註銷當前用戶連接)

 

四、用戶管理

1、基本介紹

  Linux系統是一個多用戶多任務的操作系統(即Linux 系統支持多個用戶在同一時間內登陸,不同用戶可以執行不同的任務,並且互不影響。),任何一個需要使用該系統資源的用戶,均需要向系統管理員申請一個賬號,然後根據這個賬號進入系統。每個賬號對應一個 /home/ 目錄, 不同的賬號登錄系統後,會進入不同的 /home/ 。

2、添加用戶

useradd 用戶名           #此時會預設在  /home 下創建一個與 用戶名 同名的 文件夾
useradd -d 指定目錄 用戶名   #此時會預設在  /home 下創建一個 指定目錄名的文件夾

即:
    useradd tom    #此時會預設創建一個  /home/tom
    useradd -d /home/jarry jarry   #此時會創建一個  /home/jarry, 若文件已存在,可能會出現一些問題。

3、指定用戶密碼

passwd 用戶名     #給用戶指定密碼,此時輸入密碼不可見

4、刪除用戶

userdel 用戶名      #刪除用戶,但不刪除家目錄
userdel -r 用戶名      #刪除用戶,同時刪除家目錄(一般不進行此操作)

即:
    userdel tom    #此時會刪除用戶,但是仍然存在  /home/tom
    userdel -r tom  #此時會刪除用戶,且刪除 /home/tom

5、查詢用戶信息

id 用戶名         #用於查詢用戶的信息。若用戶不存在,則提示無此用戶。
會列印出 uid, gid, 以及 組 的相關信息。
其中:
    uid:指的是用戶的 id 號
    gid:指的是用戶所在組的 id 號。
    組: 指的是組的名稱

6、切換用戶

  在Linux操作系統中,如果當前用戶的許可權不夠,可以使用 su - 用戶名, 來切換到高許可權的用戶(比如切換到 root 上)。
註:
  許可權高的用戶切換到許可權低的用戶,不需要密碼,反之需要。

su - tom    #切換到tom用戶,此時不能訪問 /root/ 目錄,會有提示信息。
exit        #退回到原來的用戶,比如root,此時可以訪問 /root/ 目錄。

7、查看當前登錄的用戶

whoami      #用於查看當前用戶

8、用戶組

  用戶組是具有相同特征用戶的邏輯集合。簡單的理解,有時我們需要讓多個用戶具有相同的許可權,比如查看、修改某一個文件的許可權,一種方法是分別對多個用戶進行文件訪問授權,如果有 10 個用戶的話,就需要授權 10 次,那如果有 100、1000 甚至更多的用戶呢?

  顯然,這種方法不太合理。最好的方式是建立一個組,讓這個組具有查看、修改此文件的許可權,然後將所有需要訪問此文件的用戶放入這個組中。那麼,所有用戶就具有了和組一樣的許可權,這就是用戶組。

groupadd 組名        #創建一個組 
groupdel 組名        #刪除一個組

【在創建用戶的同時指定用戶組】
groupadd 組名        #創建一個組 
useradd -g 組名 用戶名   #在創建用戶的同時指定用戶組

【修改(切換)用戶的用戶組】
usermod -g 組名 用戶名    #修改用戶的用戶組

9、用戶和組的相關文件

/etc/password     #用戶的配置文件,記錄用戶的各種信息
    包含:用戶名、口令(密碼)、用戶標識號、組標識號、註釋性描述、主目錄。
    
/etc/shadow       #口令(密碼)的配置文件
    包含:登錄名、加密口令、最後一次修改時間、最小時間間隔、最大時間間隔、警告時間、不活動時間、失效時間、標誌。

/etc/group        #組的配置文件,記錄Linux的組的信心
    包含:組名、口令、組標識號、組內用戶列表。

 


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

-Advertisement-
Play Games
更多相關文章
  • 首先新建一個窗體應用程式,在項目屬性中點擊右鍵->添加->添加新項,選擇Windows窗體->添加。 在Form1和Form2視窗中各添加一個按鈕,並雙擊添加事件處理函數: 父視窗Form1的按鈕處理函數,打開子視窗Form2,另外定義一個顯示消息框的方法供子視窗調用(定義為public才能被調用) ...
  • 場景 在Winform的窗體A中打開另一個窗體B。 實現 效果 以上代碼的實現參照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100140716 ...
  • 場景 Winform中實現ZedGraph中曲線右鍵顯示為中文: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100115292 在上面實現將ZedGraph的右鍵顯示為中文後,再實現自定義菜單的添加。 效果 源碼下載 http ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr ...
  • 在 上一篇 中講到了在NetCore項目中如何配置NLog將日誌存到資料庫,這篇中將講述如何處理自定義拋出的異常以及未處理的異常,並通過日誌記錄下來。 為什麼要進行異常的全局處理和記錄日誌呢? 在實際的軟體項目開發與迭代中,無論程式員是久經沙場的老將,還是初出茅廬的萌新,出現異常(尤其是空指針異常) ...
  • 前言 開發時一定要用管理員模式打開VS或者VSCODE進行開發,同時不要在nuget上直接下載,要去github上下載源代碼調試。第一方便調試,第二Surging迭代較快,nuget版本往往不是最新的。 錯誤 問題:fail: Surging.Core.DotNetty.DotNettyServer ...
  • Note: '=> ' 表示返回值 參考資料:請點擊這裡! 1:創建Xml文檔 2:寫Xml文檔(必須保證有根元素) XmlDocument Xd (實例化一個對象) CreateXmlDeclaration => XmlDecalration (文檔聲明) Xd.AppendChild (添加節點 ...
  • 前端頁面:.aspx <asp:CheckBoxList ID="ckbdot" runat="server" RepeatDirection="Horizontal" Style=" display: inline-block; vertical-align: middle;" CellPaddi ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...