1. 程式人生 > >Linux基礎知識總結

Linux基礎知識總結

Linux啟動過程
啟動流程:作業系統->/boot -> init程序 -> 執行級別 -> /etc/rc.d->使用者登入->login shell

核心的引導:首先是BIOS開機自檢,按照BIOS中設定的啟動裝置(通常是硬碟)來啟動,作業系統接管硬體以後,首先讀入 /boot 目錄下的核心檔案

執行init程序:init 程序是系統所有程序的起點,沒有這個程序,系統中任何程序都不會啟動,init程式首先是需要讀取配置檔案 /etc/inittab,init程序的任務之一是執行開機啟動的程式;許多程式需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護程序"(daemon)

Linux開機時根據/etc/inittab中配置的執行級別,啟動相應的程式:

執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動

執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸

執行級別2:多使用者狀態(沒有NFS)

執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式

執行級別4:系統未使用,保留

執行級別5:X11控制檯,登陸後進入圖形GUI模式

執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動

系統初始化:執行Shell指令碼/etc/rc.d/rc.sysinit完成初始化工作,主要工作是啟用交換分割槽,檢查磁碟,載入硬體模組以及其他一些需要優先執行任務

建立終端:rc執行完畢後,返回init。這時基本系統環境已經設定好了,各種守護程序也已經啟動了;init接下來會開啟6個終端,以便使用者登入系統

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

從上面可以看出在2、3、4、5的執行級別中都將以respawn方式執行mingetty程式,mingetty程式能開啟終端、設定模式。同時它會顯示一個文字登入介面,這個介面就是我們經常看到的登入介面,在這個登入介面中會提示使用者輸入使用者名稱,而使用者輸入的使用者名稱將作為引數傳給login程式來驗證使用者的身份

使用者登入系統:命令列登入、ssh登入、圖形介面登入;

Linux 的賬號驗證程式是 login,login 會接收 mingetty 傳來的使用者名稱作為使用者名稱引數;然後 login 會對使用者名稱進行分析:如果使用者名稱不是 root,且存在 /etc/nologin 檔案,login 將輸出 nologin 檔案的內容,然後退出;只有/etc/securetty中登記了的終端才允許 root 使用者登入,如果不存在這個檔案,則 root 使用者可以在任何終端上登入

Linux關機


正確的關機流程為:sync>shutdown>reboot>halt

sync:將資料有記憶體同步到硬碟中

shutdown:關機指令;

shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴大家,計算機將在10分鐘後關機,並且會顯示在登陸使用者的當前螢幕中。

shutdown –h now:立馬關機

shutdown –h 20:25:系統會在今天20:25關機

shutdown –h +10:10分鐘後關機

shutdown –r now:系統立馬重啟

shutdown –r +10:系統10分鐘後重啟

reboot:就是重啟,等同於 shutdown –r now

halt:關閉系統,等同於shutdown –h now 和 poweroff

init 0:關機

init 6:開機

linux系統目錄結構
/bin:bin是Binary的縮寫,此目錄中存放著經常使用的命令

/boot:存放啟動Linux時使用的一些核心檔案。包括連線檔案以及映象檔案

/dev:dev是Device(裝置)的縮寫,該目錄下存放的是Linux的外部裝置,在Linux中訪問裝置的方式和訪問檔案的方式是相同的

/etc:存放所有的系統管理所需要的配置檔案和子目錄

/home:使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的

/lib:存放著系統最基本的動態連線共享庫,幾乎所有的應用程式都需要用到這些共享庫 /lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案

/media:linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下

/mnt:讓使用者臨時掛載別的檔案系統,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了

/opt:給主機額外安裝軟體所擺放的目錄,比如安裝Oracle資料庫在此目錄下,預設是空的

/proc:是一個虛擬的目錄,它是系統記憶體的對映,可以通過直接訪問這個目錄來獲取系統資訊,這個目錄的內容不在硬碟上而是在記憶體裡

/root:該目錄為系統管理員,也稱作超級許可權者的使用者主目錄

/sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式

/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的

/srv:存放一些服務啟動之後需要提取的資料

/sys:該目錄下安裝了2.6核心中新出現的一個檔案系統sysfs,sysfs檔案系統集成了:針對程序資訊的proc檔案系統、針對裝置的devfs檔案系統以及針對偽終端的devpts檔案系統

/tmp:存放一些臨時檔案

/usr:使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄 /usr/bin:系統使用者使用的應用程式

/usr/sbin:超級使用者使用的比較高階的管理程式和系統守護程式

/usr/src:核心原始碼預設的放置目錄

/var:存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。主要存放各種日誌檔案

/run:是一個臨時檔案系統,儲存系統啟動以來的資訊。當系統重啟時,這個目錄下的檔案應該被刪掉或清除,如果你的系統上有 /var/run 目錄,應該讓它指向 run

Linux檔案屬性


通過命令 ll或 ls-l可以檢視某個目錄下所有的檔案以及檔案型別、許可權、屬組等

[[email protected] /]# ll

total 64

dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin

dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot

……

每個檔案的屬性從左到右由10個字元確定

第0位確定檔案型別,其字元意義如下:

d:目錄 -:檔案

l:連結文件(link file)

b:裝置檔案裡面的可供儲存的介面裝置

c:裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠

第1-3位確定屬主(該檔案的所有者)擁有該檔案的許可權

第4-6位確定屬組(所有者的同組使用者)擁有該檔案的許可權,

第7-9位確定其他使用者擁有該檔案的許可權。

第1、4、7表示讀許可權:如果用"r"字元表示,則有讀許可權,如果用"-"字元表示,則沒有讀許可權

第2、5、8表示寫許可權:如果用"w"字元表示,則有寫許可權,如果用"-"字元表示沒有寫許可權

第3、6、9表示執行許可權:如果用"x"字元表示,則有執行許可權,如果用"-"字元表示,則沒有執行許可權

dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin:表示bin是一個目錄,屬主、屬組以及其他使用者具有讀許可權,沒有寫許可權,具有執行許可權;dr-xr-xr-x表示檔案屬性,第一個root表示屬主(該檔案的所有者),第二個root表示屬組(所有者使用者所在的組)

Linux常用命令


ls: 列出目錄

cd:切換目錄

pwd:Print Working Directory,顯示目前的目錄

mkdir:建立一個新的目錄

rmdir:刪除一個空的目錄

cp: 複製檔案或目錄,命令 cp/usr/text.txt/tmp/text1.txt將usr目錄下的text.txt複製到tmp目錄下,並重命名為text1.txt

rm: 移除檔案或目錄,命令 rm-f text.txt強制刪除檔案

mv:移動檔案與目錄,或修改名稱,命令 mv/tmp/test.txt/usr將tmp目錄下的test.txt檔案移動到/usr目錄下

cat:由第一行開始顯示檔案內容

tac:從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫

nl:顯示的時候,順道輸出行號

more:一頁一頁的顯示檔案內容

less:與 more 類似,但是比 more 更好的是,他可以往前翻頁

head:只看頭幾行

tail:只看尾巴幾行

vim或vi:編輯檔案

Linux使用者管理


新增賬號
命令: useradd[option]使用者名稱:系統管理員新增賬號,並未新賬號分配使用者號、使用者組、主目錄和登陸Shell等資源,剛新增的賬號是被鎖定的,無法使用

useradd[option]使用者名稱:如 useradd-d/usr/jack-m jack表示建立一個使用者jack,其中-d和-m選項用來為登入名jack產生一個主目錄/usr/jack

option:

-c comment:指定一段註釋性描述。

-d 目錄:指定使用者主目錄,如果此目錄不存在,則同時使用-m選項,可以建立主目錄。

-g 使用者組:指定使用者所屬的使用者組。

-G 使用者組,使用者組:指定使用者所屬的附加組。

-s Shell檔案:指定使用者的登入Shell。

-u 使用者號:指定使用者的使用者號,如果同時有-o選項,則可以重複使用其他使用者的標識號

useradd-s/bin/sh-ggroup–G adm,root gem:此命令新建了一個使用者gem,該使用者的登入Shell是 /bin/sh,它屬於group使用者組,同時又屬於adm和root使用者組,其中group使用者組是其主組,adm、root是附加組

刪除賬號
命令: userdel選項使用者名稱

userdel-r jack:刪除使用者jack,-r的作用是把使用者jack的主目錄一起刪除

修改賬號
命令: usermod選項使用者名稱,可以修改使用者的使用者號、主目錄、使用者組、登入Shell

usermod-s/bin/ksh-d/home/z–g developer sam:此命令將使用者sam的登入Shell修改為ksh,主目錄改為/home/z,使用者組改為developer

使用者口令(密碼)管理
命令: passwd選項使用者名稱

選項: -l 鎖定口令,即禁用賬號 -u 口令解鎖 -d 使賬號無口令 -f 強迫使用者下次登入時修改口令

當前登入賬號修改口令

輸入命令 passwd:需輸入舊口令和新口令

Old password:xxxxxx

New password:xxxxxx

Re-enter new password:xxxxxx

超級管理員修改使用者口令

命令 passwd jack:修改jack的口令,只需輸入新口令即可

New password:xxxxxx

Re-enter new password:xxxxxx

Linux使用者組管理


每個使用者都有一個或多個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理

新增使用者組
命令 groupadd選項使用者組

選項:

-g GID:指定新使用者組的組標識號(GID)。

-o:一般與-g選項同時使用,表示新使用者組的GID可以與系統已有使用者組的GID相同。

groupadd group1:向系統中增加了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎上加1

groupadd-g101group2:向系統中增加了一個新組group2,同時指定新組的組標識號是101

刪除使用者組
命令 groupdel使用者組

groupdel group1:從系統中刪除使用者組group1

修改使用者組
命令 groupmod選項使用者組

選項:

-g GID: 為使用者組指定新的組標識號。

-o:與-g選項同時使用,使用者組的新GID可以與系統已有使用者組的GID相同。

-n 新使用者組 :將使用者組的名字改為新名字

groupmod-g102group2:將組group2的組標識號修改為102

groupmod–g10000-n group3 group2:將組group2的標識號改為10000,組名修改為group3

/etc/passwd檔案
Linux系統中每個使用者都在/etc/passwd檔案中有一個對應的記錄行,用於記錄此使用者的一些基本屬性;/etc/passwd檔案所有賬戶都是可讀的

執行命令:cat /etc/passwd

root:x:0:0:Superuser:/: 

 daemon:x:1:1:System daemons:/etc:

bin:x:2:2:Owner of system commands:/bin:

sys:x:3:3:Owner of system files:/usr/sys:

adm:x:4:4:System accounting:/usr/adm:

uucp:x:5:5:UUCP administrator:/usr/lib/uucp:

auth:x:7:21:Authentication administrator:/tcb/files/auth:

cron:x:9:16:Cron daemon:/usr/spool/cron:

listen:x:37:4:Network daemon:/usr/net/nls:

lp:x:71:18:Printer administrator:/usr/spool/lp:

jack:x:200:50:jack san:/usr/jack:/bin/sh

使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell

口令:使用者加密的口令是存放在/etc/shadow檔案中,/etc/passwd檔案中的口令之存放一個特殊字元“x”,

使用者標識號:使用者標識號和使用者名稱是一一對應的,幾個使用者名稱對應一個使用者標誌號,表示是同一使用者,但可以有不同的口令、不同的主目錄以及不同的登入Shell

組標誌號:對應著/etc/group檔案中的一條記錄

主目錄:使用者的起始工作目錄,建立使用者時可以指定使用者的主目錄

登入Shell:使用者登入後,要啟動一個程序,負責將使用者的操作傳給核心,這個程序是使用者登入到系統後執行的命令直譯器或某個特定的程式,即Shell

/etc/group檔案
使用者組的所有資訊都存放在/etc/group檔案中

輸入命令 cat /etc/group

root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin

tty:x:5:

disk:x:6:

mem:x:8:

組名:口令:組標識號:組內使用者列表

組名:是使用者組的名稱,由字母或數字構成。與/etc/passwd中的登入名一樣,組名不應重複。

口令:欄位存放的是使用者組加密後的口令字。一般Linux 系統的使用者組都沒有口令,即這個欄位一般為空,或者是x。

組標識號:與使用者標識號類似,也是一個整數,被系統內部用來標識組。

組內使用者列表:是屬於這個組的所有使用者的列表,不同使用者之間用逗號(,)分隔。這個使用者組可能是使用者的主組,也可能是附加組。

Linux磁碟管理


Linux磁碟管理好壞直接關係到整個系統的效能問題,磁碟管理常用命令:df、du、fdisk

df:列出檔案系統的整體磁碟使用量

du:檢查磁碟空間使用量

fdisk:用於磁碟分割槽

命令 df選項目錄或檔名

選項:

-a:列出所有的檔案系統,包括系統特有的 /proc 等檔案系統;

-k:以 KBytes 的容量顯示各檔案系統;

-m:以 MBytes 的容量顯示各檔案系統;

-h:以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;

-H:以 M=1000K 取代 M=1024K 的進位方式;

-T:顯示檔案系統型別, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;

-i:不用硬碟容量,而以 inode 的數量來顯示

輸入命令: df -h 

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 26G 12G 14G 47% /

tmpfs 7.8G 0 7.8G 0% /dev/shm

 /dev/sda1 477M 52M 400M 12% /boot

/dev/sdb1 99G 66G 28G 71% /data1

Linux yum 命令


yum提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令 語法: yum[options][command][package...]

options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等

command:要進行的操作

package:操作的物件

yum常用命令 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

相關推薦

linux基礎知識總結(三)

界面 當前日期 ech sed文本處理 時間 sed 簡單的 編寫 代碼 第三周學習總結 目錄 一.知識脈絡圖二.shell腳本三.shell登錄方式四.文件查找和壓縮及tar五.簡單的sed文本處理 一.知識脈絡圖 二.shell腳本 1.shell腳本簡介

linux基礎知識總結(四)

基礎知識第四周學習總結 目錄 一.知識脈絡圖二.軟件包管理三.磁盤管理 一.知識脈絡圖 二.軟件包管理 1.軟件組成 二進制應用程序的組成部分: 二進制文件,庫文件,配置文件,幫助文件 庫文件: 庫文件是一個很特殊的存在,他對於很多程序起著支持作用,如果不小心

Linux基礎知識總結

Linux啟動過程 啟動流程:作業系統->/boot -> init程序 -> 執行級別 -> /etc/rc.d->使用者登入->login shell 核心的引導:首先是BIOS開機自檢,按照BIOS中設定的啟動裝置(通常是硬碟)來啟

學習總結Linux基礎知識

基礎 bug 引用 hosts 個人版 boot -s 發布 分配 在經過了一段時間的學習之後,不但對之前較模糊的知識點有了一個比較清晰的認識,還學到了一些沒學到的東西。下面對這些知識點做一個總結,一是想對這一階段畫上一個比較完美的句號,二是想把這篇博客當做以後的一個筆記之

嵌入式LINUX學習-基於4412-LIUNX SHELL基礎知識總結筆記

1、SHELL是什麼? Shell 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程式設計語言。Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。Ken Thompson 的 s

嵌入式LINUX學習-基於4412-LIUNX基礎知識總結筆記

硬碟主分割槽、擴充套件分割槽和邏輯分割槽是什麼? 硬碟分割槽是針對一個硬碟進行操作的,它可以分為:主分割槽、擴充套件分割槽、邏輯分割槽。其中主分割槽就是包含 作業系統啟動所必需的檔案和資料的硬碟分割槽,要在硬碟上安裝作業系統,則該硬碟必須要有一個主分割槽, 而且其主分割槽的數

後端程式設計師必備的 Linux 基礎知識+常見命令(近萬字總結

[大家好!我是 Guide 哥,Java 後端開發。一個會一點前端,喜歡烹飪的自由少年。](https://www.yuque.com/docs/share/71251673-1fef-416e-93d7-489a25a9eda5?#%20%E3%80%8A%E8%B5%B0%E8%BF%91JavaGuid

前端基礎知識總結

pla 部分 一個 知識 法則 總結 情況 元素 保存 一、html中alt和title的區別 1.alt是圖片的屬性值,當圖片無法加載的時候,會用alt屬性的值來替換圖片。 2.而title是圖片的標題,當鼠標移動到圖片上時,會顯示圖片的名稱。 [email 

工作中能用到的基礎知識總結(二)

protected 構造函數 blog 繼承鏈 附加 調用 初始化 傳統 -s 簡介 繼承、封裝和多態是面向對象編程的重要特性。要想運用好,就必須熟悉這三種特性,本篇說說我對封裝、繼承和多態相關的知識總結。 知識點 一、訪問修飾符 C#中類及

基礎知識總結之 jdk部分

比較 java_home 二進制 一模一樣 出現 path 解釋 字節碼 編譯 第一次安裝jdk 按照操作走完 會出現 C:\Program Files\Java\jdk1.8.0_91 和 C:\Program Files\Java\jre1.8.0_91 兩個目錄 (

Linux基礎知識part2

.bashrc uid 用戶家目錄 進制 子進程 保存 dbo tmp 使用 繼續上一節,這次主要是用戶和權限的一些知識點。 命令創建用戶:useradd 手動創建用戶: /etc/passwd /etc/shadow /etc/gshadow /home/用戶名/ /va

Linux基礎知識day-7

user 周期性 ava atime 修改 epo app 它的 mount NFS服務   1)NFS(Network File System)即網絡文件系統,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。NFS在文件傳送或信息傳送過程中依賴於RPC協議。RPC,

Linux基礎知識-第二天

linux基礎知識一、相對路徑和絕對路徑在Linux中,絕對路徑是從/(也被稱為根目錄)開始的,比如/usr、/etc/X11。如果一個路徑是從/開始的,它一定是絕對路徑。相對路徑是以 . 或 .. 開始的,.表示用戶當前操作所處的位置,而.. 表示上級目錄;在路徑中,.表示用戶當前所處的目錄,而..上級目錄

Linux基礎知識

如果 linux 文件 我們 linux基礎知識 末尾 知識 基礎 新的 1 重定向“>”和“>>” >:> 是定向輸出到文件,如果文件不存在,就創建文件;如果文件存在,就將其清空;一般我們備份清理日誌文件的時候,就是這種方法:先備份日誌,再

linux基礎知識-第三天

linux基礎知識一、環境變量PATH$PATH:決定了shell將到哪些目錄中尋找命令或程序,PATH的值是一系列目錄,當您使用某個命令時,Linux在這些目錄中尋找具體的命令程序。[[email protected]/* */ ~]# echo $PATH/application/mysql/

Linux-基礎知識-第四天

linux基礎知識一、權限管理文件的權限主要針對三類對象進行定義:owner: 屬主, ugroup: 屬組, gother: 其他, o每個文件針對每類訪問者都定義了三種權限:r: Readablew: Writablex: eXcutable文件:r: 可使用文件查看類工具獲取其內容;w: 可修改其內容;

linux基礎知識-第四天

linux基礎知識Linux文件系統上的特殊權限SUID, SGID, Sticky權限r, w, xuser, group, other安全上下文前提:進程有屬主和屬組;文件有屬主和屬組;(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限;(2) 啟動為進程之後,其進程的屬

Linux基礎知識-第六天

linux基礎知識一、文件查找:在文件系統上查找符合條件的文件;文件查找:locate, find非實時查找(數據庫查找):locate實時查找:findlocate:依賴於事先構建的索引;索引的構建是在系統較為空閑時自動進行(周期性任務);手動更新數據庫(updatedb);索引構建過程需要遍歷整個根文件系

操作系統基礎知識總結(一)

一個 快速 會有 處理死鎖 b2c fcm 死鎖 空間 存儲系統 1. 進程和線程的區別 進程 進程,即正在運行的程序,程序從硬盤載入到內存就變成進程。進程是資源的擁有者,每個進程都擁有著自己的內存空間與多個線程。 線程 線程是指令的執行者,是計算機執行指令的基本單元,一個

linux-基礎知識-第9天

linux-基礎知識su命令su的作用是變更為其它使用者的身份,超級用戶除外,需要鍵入該使用者的密碼。su 是切換到其他用戶,但是不切換環境變量(比如說那些export命令查看一下,就知道兩個命令的區別了)su - 是完整的切換到一個用戶環境所以建議大家切換用戶的時候,盡量使用 su - linuxso 這