當前位置:首頁 » Linux技術知識

初識Linux

2018-11-13 08:16 本站整理 瀏覽(17)

原文請參考微信公眾號(歡迎關注公眾號:coding_song):https://mp.weixin.qq.com/s/uxC3m8t6TM6CgDkkahtEdQ? 閱讀格式比下文清晰

?

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文件屬性

通過命令 llls-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

中国福彩25选5