操作系統linux
常識
- 系統啟動:1. 內核引導2. 運行init3. 系統初始化4. 建立終端5. 用戶登錄系統
- 系統目錄:
- /bin:是 Binaries (二進制文件) 的縮寫, 這個目錄存放著最經常使用的命令。
- /boot:這里存放的是啟動 Linux 時使用的一些核心文件,包括一些連接文件以及鏡像文件。
- /dev :是 Device(設備) 的縮寫, 該目錄下存放的是 Linux 的外部設備,在 Linux 中訪問設備的方式和訪問文件的方式是相同的。
- /etc:是 Etcetera(等等) 的縮寫,這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
- /home:用戶的主目錄,在 Linux 中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的,如上圖中的 alice、bob 和 eve。
- /lib:是 Library(庫) 的縮寫這個目錄里存放著系統最基本的動態連接共享庫,其作用類似于 Windows 里的 DLL 文件。幾乎所有的應用程序都需要用到這些共享庫。
- /lost+found:這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些文件。
- /media:linux 系統會自動識別一些設備,例如U盤、光驅等等,當識別后,Linux 會把識別的設備掛載到這個目錄下。
- /mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在 /mnt/ 上,然后進入該目錄就可以查看光驅里的內容了。
- /opt:opt 是 optional(可選) 的縮寫,這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。
- /proc:proc 是 Processes(進程) 的縮寫,/proc 是一種偽文件系統(也即虛擬文件系統),存儲的是當前內核運行狀態的一系列特殊文件,這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。這個目錄的內容不在硬盤上而是在內存里,我們也可以直接修改里面的某些文件,
- /root:該目錄為系統管理員,也稱作超級權限者的用戶主目錄。
- /sbin:就是 Super User 的意思,是 Superuser Binaries (超級用戶的二進制文件) 的縮寫,這里存放的是系統管理員使用的系統管理程序。
- /selinux: 這個目錄是 Redhat/CentOS 所特有的目錄,Selinux 是一個安全機制,類似于 windows 的防火墻,但是這套機制比較復雜,這個目錄就是存放selinux相關的文件的。
- /srv: 該目錄存放一些服務啟動之后需要提取的數據。
- /sys:這是 Linux2.6 內核的一個很大的變化。該目錄下安裝了 2.6 內核中新出現的一個文件系統 sysfs 。sysfs 文件系統集成了下面3種文件系統的信息:針對進程信息的 proc 文件系統、針對設備的 devfs 文件系統以及針對偽終端的 devpts 文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。
- /tmp:tmp 是 temporary(臨時) 的縮寫這個目錄是用來存放一些臨時文件的。
- /usr: usr 是 unix shared resources(共享資源) 的縮寫,這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似于 windows 下的 program files 目錄。
- /usr/bin:系統用戶使用的應用程序。
- /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。
- /usr/src:內核源代碼默認的放置目錄。
- /var:var 是 variable(變量) 的縮寫,這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日志文件。
- /run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
指令
權限
- chown:修改所屬用戶和組
- chmod:修改用戶權限
- ll / ls -l 展示文件權限 【d r-x r-x r-x】
- 第0位,文件類型【d:目錄,-:文件,l:鏈接文件,b:裝置文件中可供存儲的接口設備(可隨機存儲裝置),c:裝置文件中串行端口設備(鍵盤等一次性讀取裝置)】
- 第1-3位,第4-6位,第7-9位分別為屬主(文件所有者)權限,屬組(所有者的同組用戶)權限,其他用戶權限
- 第 1、4、7 位表示讀權限,如果用 r 字符表示,則有讀權限,如果用 - 字符表示,則沒有讀權限;
- 第 2、5、8 位表示寫權限,如果用 w 字符表示,則有寫權限,如果用 - 字符表示沒有寫權限
- 第 3、6、9 位表示可執行權限,如果用 x 字符表示,則有執行權限,如果用 - 字符表示,則沒有執行權限。
文件目錄:使用 man [命令] 來查看各個命令的使用文檔
- ls(英文全拼:list files): 列出目錄及文件名
- -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)
- -d :僅列出目錄本身,而不是列出目錄內的文件數據(常用)
- -l :長數據串列出,包含文件的屬性與權限等等數據;(常用)
- cd [相對路徑或絕對路徑](英文全拼:change directory):切換目錄
- pwd [-P](英文全拼:print work directory):顯示目前的目錄
- -P :顯示出確實的路徑,而非使用連結 (link) 路徑。
- mkdir [-mp] 目錄名稱(英文全拼:make directory):創建一個新的目錄
- -m :配置文件的權限喔!直接配置,不需要看默認權限 (umask) 的臉色~
- -p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創建起來!
- rmdir [-p] 目錄名稱(英文全拼:remove directory):刪除一個空的目錄
- -p :連同上一級『空的』目錄也一起刪除
- cp(英文全拼:copy file): 復制文件或目錄
- -a:相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)
- -d:若來源檔為連結檔的屬性(link file),則復制連結檔屬性而非文件本身;
- -f:為強制(force)的意思,若目標文件已經存在且無法開啟,則移除后再嘗試一次;
- -i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
- -l:進行硬式連結(hard link)的連結檔創建,而非復制文件本身;
- -p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);
- -r:遞歸持續復制,用於目錄的復制行為;(常用)
- -s:復制成為符號連結檔 (symbolic link),亦即『捷徑』文件;
- -u:若 destination 比 source 舊才升級 destination !
- rm [-fir] 文件或目錄(英文全拼:remove): 刪除文件或目錄
- -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
- -i :互動模式,在刪除前會詢問使用者是否動作
- -r :遞歸刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!
- mv(英文全拼:move file): 移動文件與目錄,或修改文件與目錄的名稱
- -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
- -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
- -u :若目標文件已經存在,且 source 比較新,才會升級 (update)
文件內容查看
- cat [-AbEnTv] 由第一行開始顯示文件內容
- -A :相當於 -vET 的整合選項,可列出一些特殊字符而不是空白而已;
- -b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!
- -E :將結尾的斷行字節 $ 顯示出來;
- -n :列印出行號,連同空白行也會有行號,與 -b 的選項不同;
- -T :將 [tab] 按鍵以 ^I 顯示出來;
- -v :列出一些看不出來的特殊字符
- tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!
- nl [-bnw] 文件 顯示的時候,順道輸出行號!
- -b :指定行號指定的方式,主要有兩種:
- -b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);
- -b t :如果有空行,空的那一行不要列出行號(默認值);
- -n :列出行號表示的方法,主要有三種:
- -n ln :行號在熒幕的最左方顯示;
- -n rn :行號在自己欄位的最右方顯示,且不加 0 ;
- -n rz :行號在自己欄位的最右方顯示,且加 0 ;
- -w :行號欄位的占用的位數。
- -b :指定行號指定的方式,主要有兩種:
- more 一頁一頁的顯示文件內容。以下是指令運行時可進行操作
- 空白鍵 (space):代表向下翻一頁;
- Enter :代表向下翻『一行』;
- /字串 :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
- :f :立刻顯示出檔名以及目前顯示的行數;
- q :代表立刻離開 more ,不再顯示該文件內容。
- b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。
- less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
- 空白鍵 :向下翻動一頁;
- [pagedown]:向下翻動一頁;
- [pageup] :向上翻動一頁;
- /字串 :向下搜尋『字串』的功能;
- ?字串 :向上搜尋『字串』的功能;
- n :重復前一個搜尋 (與 / 或 ? 有關!)
- N :反向的重復前一個搜尋 (與 / 或 ? 有關!)
- q :離開 less 這個程序;
- head [-n number] 文件 只看頭幾行
- -n :后面接數字,代表顯示幾行的意思
- tail [-n number] 文件 只看尾巴幾行
- -n :后面接數字,代表顯示幾行的意思
- -f :表示持續偵測后面所接的檔名,要等到按下[ctrl]-c才會結束tail的偵測
用戶和用戶組管理
-
useradd 選項 用戶名:添加新的用戶賬號
- -c comment 指定一段注釋性描述。
- -d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
- -g 用戶組 指定用戶所屬的用戶組。
- -G 用戶組,用戶組 指定用戶所屬的附加組。
- -s Shell文件 指定用戶的登錄Shell。
- -u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號。
-
userdel 選項 用戶名:刪除一個已有的用戶賬號
- -r 把用戶的主目錄一起刪除。
-
usermod 選項 用戶名:修改用戶賬號,根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登錄Shell等
-
passwd 選項 用戶名:指定和修改用戶口令
- -l 鎖定口令,即禁用賬號。
- -u 口令解鎖。
- -d 使賬號無口令。
- -f 強迫用戶下次登錄時修改口令。
-
groupadd 選項 用戶組:增加一個新的用戶組
- -g GID 指定新用戶組的組標識號(GID)。
- -o 一般與-g選項同時使用,表示新用戶組的GID可以與系統已有用戶組的GID相同。
-
groupdel 用戶組:刪除一個已有的用戶組
-
groupmod 選項 用戶組:修改用戶組的屬性
- -g GID 為用戶組指定新的組標識號。
- -o 與-g選項同時使用,用戶組的新GID可以與系統已有用戶組的GID相同。
- -n新用戶組 將用戶組的名字改為新名字
-
newgrp 用戶組:當前用戶切換到用戶組【用戶存在于該用戶組中】
重要文件
- etc/passwd:賬戶信息 用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
- etc/group:用戶組信息 組名:口令:組標識號:組內用戶列表
磁盤管理
- df [-ahikHTm] [目錄或文件名](英文全稱:disk full):列出文件系統的整體磁盤使用量
- -a :列出所有的文件系統,包括系統特有的 /proc 等文件系統;
- -k :以 KBytes 的容量顯示各文件系統;
- -m :以 MBytes 的容量顯示各文件系統;
- -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
- -H :以 M=1000K 取代 M=1024K 的進位方式;
- -T :顯示文件系統類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
- -i :不用硬盤容量,而以 inode 的數量來顯示
- du [-ahskm] 文件或目錄名稱(英文全稱:disk used):檢查磁盤空間使用量
- a :列出所有的文件與目錄容量,因為默認僅統計目錄底下的文件量而已。
- -h :以人們較易讀的容量格式 (G/M) 顯示;
- -s :列出總量而已,而不列出每個各別的目錄占用容量;
- -S :不包括子目錄下的總計,與 -s 有點差別。
- -k :以 KBytes 列出容量顯示;
- -m :以 MBytes 列出容量顯示;
- fdisk [-l] 裝置名稱:用于磁盤分區
- -l :輸出后面接的裝置所有的分區內容。若僅有 fdisk -l 時, 則系統將會把整個系統內能夠搜尋到的裝置的分區均列出來。
- mkfs [-t 文件系統格式] 裝置文件名 磁盤格式化
- -t :可以接文件系統格式,例如 ext3, ext2, vfat 等(系統有支持才會生效)
- fsck [-t 文件系統] [-ACay] 裝置名稱 磁盤檢驗,檢查和維護不一致的文件系統
- -t : 給定檔案系統的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此參數
- -s : 依序一個一個地執行 fsck 的指令來檢查
- -A : 對/etc/fstab 中所有列出來的 分區(partition)做檢查
- -C : 顯示完整的檢查進度
- -d : 打印出 e2fsck 的 debug 結果
- -p : 同時有 -A 條件時,同時有多個 fsck 的檢查一起執行
- -R : 同時有 -A 條件時,省略 / 不檢查
- -V : 詳細顯示模式
- -a : 如果檢查有錯則自動修復
- -r : 如果檢查有錯則由使用者回答是否修復
- -y : 選項指定檢測每個文件是自動輸入yes,在不確定那些是不正常的時候,可以執行 # fsck -y 全部檢查修復。
- mount [-t 文件系統] [-L Label名] [-o 額外選項] [-n] 裝置文件名 掛載點 磁盤掛載
- umount [-fn] 裝置文件名或掛載點 磁盤卸載
- -f :強制卸除!可用在類似網絡文件系統 (NFS) 無法讀取到的情況下;
- -n :不升級 /etc/mtab 情況下卸除。
安裝命令
- yum [options] [command] [package ...]:options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部為 "yes"),-q(不顯示安裝的過程)等等; command:要進行的操作; package:安裝的包名。
- 列出所有可更新的軟件清單命令:yum check-update
- 更新所有軟件命令:yum update
- 僅安裝指定的軟件命令:yum install <package_name>
- 僅更新指定的軟件命令:yum update <package_name>
- 列出所有可安裝的軟件清單命令:yum list
- 刪除軟件包命令:yum remove <package_name>
- 查找軟件包命令:yum search
- 清除緩存命令:
- yum clean packages: 清除緩存目錄下的軟件包
- yum clean headers: 清除緩存目錄下的 headers
- yum clean oldheaders: 清除緩存目錄下舊的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的 headers
- apt [options] [command] [package ...]:options:可選,選項包括 -h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等; command:要進行的操作; package:安裝的包名。
- 列出所有可更新的軟件清單命令:sudo apt update
- 升級軟件包:sudo apt upgrade
- 列出可更新的軟件包及版本信息:apt list --upgradeable
- 升級軟件包,升級前先刪除需要更新軟件包:sudo apt full-upgrade
- 安裝指定的軟件命令:sudo apt install <package_name>
- 安裝多個軟件包:sudo apt install <package_1> <package_2> <package_3>
- 更新指定的軟件命令:sudo apt update <package_name>
- 顯示軟件包具體信息,例如:版本號,安裝大小,依賴關系等等:sudo apt show <package_name>
- 刪除軟件包命令:sudo apt remove <package_name>
- 清理不再使用的依賴和庫文件: sudo apt autoremove
- 移除軟件包及配置文件: sudo apt purge <package_name>
- 查找軟件包命令: sudo apt search
- 列出所有已安裝的包:apt list --installed
- 列出所有已安裝的包的版本信息:apt list --all-versions
浙公網安備 33010602011771號