一、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的組的信心 包含:組名、口令、組標識號、組內用戶列表。