Linux基礎(chǔ)知識(shí)

第一章


1.Linux是一套免費(fèi)使用自由傳播類UNIX操作系統(tǒng),它可以基于Intel x86系列處理器以及Cyrix,AMD的兼容芯片的計(jì)算機(jī)上運(yùn)行。

Linux是一個(gè)誕生于網(wǎng)絡(luò)、成長(zhǎng)于網(wǎng)絡(luò)且成熟于網(wǎng)絡(luò)的奇特的操作系統(tǒng),是一個(gè)由全世界的電腦高手們自愿地自制出的,類似于Unix風(fēng)格的操作系統(tǒng)。

POSIX 表示可移植操作系統(tǒng)接口(Portable Operating System Interface),

POSIX標(biāo)準(zhǔn)定義了操作系統(tǒng)應(yīng)該為應(yīng)用程序提供的接口標(biāo)準(zhǔn),是IEEE為要在各種UNIX操作系統(tǒng)上運(yùn)行的軟件而定義的一系列API標(biāo)準(zhǔn)的總稱,其正式稱呼為IEEE 1003,而國(guó)際標(biāo)準(zhǔn)名稱為ISO/IEC 9945。


2.Linux的誕生和發(fā)展與UNIX系統(tǒng)Minix系統(tǒng),Internet,GNU計(jì)劃密不可分,1971年,Unix操作系統(tǒng)誕生于AT&T公司的貝爾實(shí)驗(yàn)室。它的產(chǎn)生與美國(guó)國(guó)防計(jì)劃署的MULTICS項(xiàng)目密切相關(guān)。

Unix的出現(xiàn)源于貝爾實(shí)驗(yàn)室的兩位軟件工程師Ken Thompson(肯.湯姆森)Dennis Ritchie(丹尼斯.里奇)。在Linux出現(xiàn)之前,Unix操作系已經(jīng)得到廣泛的應(yīng)用。Linux和Unix的設(shè)計(jì)有很多相似之處。

Unix系統(tǒng)內(nèi)核短小精悍,但性能優(yōu)異。在20世紀(jì)70年代,源代碼公開(kāi),因此,它的應(yīng)用范圍變得十分廣泛,遍布與科研院所、高校、工作站、PC、服務(wù)器等。Unix具有高安全性與穩(wěn)定性、良好的伸縮性、強(qiáng)大的TCP/IP支持功能、良好的可移植性。Unix的優(yōu)秀的設(shè)計(jì)思想和理念深深影響著Linux的開(kāi)發(fā)。

Minix系統(tǒng):20世紀(jì)70年代,Unix系統(tǒng)是免費(fèi)的。但隨著它的廣泛應(yīng)用,它由一個(gè)免費(fèi)軟變成一個(gè)商用軟件。因此,需要花費(fèi)高昂的源碼許可證費(fèi)用才能獲得Unix系統(tǒng)的源代碼,并且Unix對(duì)硬件性能的要求也較高。

1987年,荷蘭教授Andrew S.Tanenbaum(安德魯.坦尼鮑姆)利用業(yè)余時(shí)間開(kāi)發(fā)了一個(gè)微型的Unix系統(tǒng)-Minix,主要用于教學(xué)和研究。

Minix系統(tǒng):與Unix系統(tǒng)不同,它對(duì)硬件的要求不高,可以運(yùn)行在廉價(jià)的PC上。Linux就是在Minix的基礎(chǔ)上開(kāi)發(fā)和設(shè)計(jì)的。

Internet:20世紀(jì)80年代中期,Internet形成,所有用戶可以通過(guò)互聯(lián)網(wǎng)相互交流和獲取信息。

無(wú)數(shù)的程序員通過(guò)互聯(lián)網(wǎng)參與了Linux的技術(shù)改進(jìn)與測(cè)試工作。

GNU計(jì)劃:Linux的發(fā)展史和GNU計(jì)劃(GNU Is Not Unix)緊密聯(lián)系在一起。Linux內(nèi)核從一開(kāi)始就大量使用了來(lái)自麻省劍橋自由軟件基金會(huì)的GNU的軟件。20世紀(jì)80年代,自由軟件運(yùn)動(dòng)興起。

自由軟件:任何人都有共享和修改自由軟件的自由。

任何人有權(quán)取得、修改和重新發(fā)布自由軟件的源代碼,并且規(guī)定在不增加附加費(fèi)用的條件下可以得到自由軟件的源代碼。

“自由軟件”的獨(dú)特之處在于不受任何商品化軟件的版權(quán)制約,全世界都能自由使用。


3.GNU計(jì)劃:自由軟件“四大自由”即運(yùn)行軟件的自由,獲得源代碼修改軟件的自由發(fā)布軟件的自由,發(fā)布后修改軟件的自由。GNU計(jì)劃是自由軟件基金會(huì)的一個(gè)項(xiàng)目,該項(xiàng)目的目標(biāo)是開(kāi)發(fā)一個(gè)自由的類Unix操作系統(tǒng),包括內(nèi)核、軟件開(kāi)發(fā)工具和各種應(yīng)用程序。

4.Linux的誕生:起源于一個(gè)芬蘭赫爾辛基大學(xué)計(jì)算機(jī)系的學(xué)生——芬蘭人(李納斯·托沃茲

Linux操作系統(tǒng)特點(diǎn):開(kāi)放性,高效性,遵循POSIX標(biāo)準(zhǔn),多用戶多任務(wù),良好的用戶界面,X-Window圖形界面,設(shè)備獨(dú)立性,提供豐富的網(wǎng)絡(luò)功能,支持Internet,文件傳輸,遠(yuǎn)程訪問(wèn),可靠的系統(tǒng)安全性, 良好的可移植性。

5.設(shè)備獨(dú)立性:是指操作系統(tǒng)把所有外部設(shè)備統(tǒng)一當(dāng)作成文件來(lái)看待。

6.Linux系統(tǒng)組成:基本組成包括Linux內(nèi)核,Linux Shell,Linux文件系統(tǒng),Linux應(yīng)用程序等幾部分。

Linux版本

內(nèi)核版本:(kernel)版本號(hào):3.19

發(fā)行版本:(distribution)=內(nèi)核+tools

常見(jiàn)套件:Red Hat Linux,Red Flag Linux,SuSE Linux,F(xiàn)edora Linux,Dedian Linux,Ubuntu

第二章

1.什么是虛擬機(jī)?虛擬機(jī)是指通過(guò)軟件來(lái)模擬具有完整硬件系統(tǒng)功能的,運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。

第三章

1.操作系統(tǒng)的接口分為用戶接口程序接口兩大類。用戶接口中又包括命令行用戶接口圖形用戶接口。

2.Shell命令接口由一組命令命令解釋程序Shell組成。

3.X Window是Linux系統(tǒng)的視窗系統(tǒng),著名的桌面環(huán)境GNOMEKDE也都是以X Window系統(tǒng)為基礎(chǔ)建構(gòu)成的。X Window系統(tǒng)的核心概念,是客戶/服務(wù)器架構(gòu)。只要組成成分是X Server、X Client和X Protocol,即X服務(wù)器、X客戶端和X協(xié)議。

4.X Window系統(tǒng)組成

X Server:是X系統(tǒng)的核心,其運(yùn)行在有顯示設(shè)備的主機(jī)上,是服務(wù)器端。

X Client:凡是需要在屏幕上進(jìn)行圖形界面顯示的程序都可看做X Client,其是以請(qǐng)求的方式讓X Server管理圖形化界面。

X Protocol:即X協(xié)議,它是X Client和X Server之間通信時(shí)所遵循的一套規(guī)則,規(guī)定了通信雙方交互信息的格式和順序。

分區(qū)命名

Linux系統(tǒng)使用字母和數(shù)字的組合來(lái)指代磁盤空間。

命名方案基于文件的,格式為/dev/xxyN。

/dev/:所有設(shè)備文件所在的目錄名。

xx:分區(qū)名的前兩個(gè)字母標(biāo)明分區(qū)所在設(shè)備的類型。hd(IDE磁盤Integrated Drive Electronics )或sd(SCSI磁盤Small Computer System Interface )

y:標(biāo)明分區(qū)所在的設(shè)備。/dev/hda (第一個(gè)IDE磁盤)

N:代表分區(qū)。主分區(qū)或擴(kuò)展分區(qū)用數(shù)字1-4表示,邏輯分區(qū)從5開(kāi)始。例如/dev/hda3;/dev/sdb5

系統(tǒng)調(diào)用接口是由一系列的系統(tǒng)調(diào)用函數(shù)構(gòu)成的“特殊”接口。程序員或應(yīng)用程序通過(guò)這個(gè)特殊的接口取得操作系統(tǒng)內(nèi)核提供的服務(wù),它是專為程序員編程時(shí)使用,是應(yīng)用程序與系統(tǒng)內(nèi)核通訊的橋梁。

API(Application Programming Interface),即應(yīng)用程序接口。通過(guò)該接口,程序員可以間接地訪問(wèn)到系統(tǒng)硬件和操作系統(tǒng)資源。

第四章

1.ls命令 ls -l /etc ?| head -5

功能:列出當(dāng)前目錄下的所有內(nèi)容。格式:ls選項(xiàng) 文件名或目錄名

選項(xiàng):

-s顯示每個(gè)文件的大小

-S按文件的大小排序

-a顯示目錄中全部文件,包括隱藏文件

-l使用長(zhǎng)列表格式,顯示文件詳細(xì)信息

-t按文件修改的時(shí)間排序顯示

黑:普通文件。綠:可執(zhí)行文件。紅:代表tar包文件,即Linux下的壓縮打包文件。藍(lán):目錄文件。水紅:圖像文件。青:鏈接文件。黃:設(shè)備文件。

drwxr-xr-x ?2 ?ubuntu ?ubuntu ?100 ?2012-10-24 ?Desktop了解7部分含義(P60)

第一行“total 4”:當(dāng)前目錄下文件的總和為4KB。

每一行可以分為7部分來(lái)解釋(第二行開(kāi)始)。

“drwxr-xr-x”的含義

第一個(gè)字符有3中情況,“-”表示普通文件,d代表目錄,b代表設(shè)備文件。

后面的9個(gè)字符每3個(gè)字符為一組,分別代表文件所有者、文件所有者所在的用戶組、其他用戶對(duì)文件擁有的權(quán)限。每組中3個(gè)字符分別代表讀、寫、執(zhí)行的權(quán)限。

“2”:代表當(dāng)前目錄下的目錄文件的數(shù)目。

“ubuntu”:代表這個(gè)文件(目錄)的屬主是用戶“ubuntu”。

“ubuntu”:代表這個(gè)文件(目錄)所屬的用戶組為組ubuntu。

“100”:代表文件(目錄)的大小為100字節(jié)。

“2012-10-24 15:17”:文件(目錄)修改時(shí)間。

“Desktop”:代表文件(目錄)的名字。

目錄:/root:啟動(dòng)Linux時(shí)使用的一些核心文件。如操作系統(tǒng)內(nèi)核、引導(dǎo)程序Grub等。

/home:存儲(chǔ)普通用戶的個(gè)人文件 。

/bin:執(zhí)行文件(二進(jìn)制)的目錄

/sbin :可執(zhí)行程序的存放目錄,但大多存放涉及系統(tǒng)管理的命令。只有root權(quán)限才能執(zhí)行

/usr:應(yīng)用程序存放目錄

/lib :支持位于/bin和/sbin下的二進(jìn)制文件的庫(kù)文件

/dev :設(shè)備文件的存放目錄

/etc :配置文件的存放目錄

/var:放置系統(tǒng)執(zhí)行過(guò)程中經(jīng)常變化的文件


2.cd命令

功能:轉(zhuǎn)換用戶所在的目錄。格式:cd路徑名(Cd ..代表回退到上一層)“..代表上層目錄”、“~代表當(dāng)前用戶的宿主目錄”、“/代表回到根目錄”、“-代表前一目錄”

3.pwd命令

功能:顯示當(dāng)前工作目錄的絕對(duì)路徑。格式:pwd

4.mkdir命令

功能:創(chuàng)建一個(gè)新目錄。格式:mkdir選項(xiàng) 目錄名

-m權(quán)限 對(duì)新建目錄設(shè)置存取權(quán)限。權(quán)限777,744,755等

-p 一次性建立多級(jí)目錄,即以遞歸形式建立目錄

rmdir命令

功能:刪除一個(gè)空目錄

格式:rmdir [-p]目錄名

5.touch命令

功能:創(chuàng)建一個(gè)空文件。格式:touch文件名

6.cat命令

用法1:功能:顯示某文件的內(nèi)容。格式:cat 選項(xiàng) 文件名

-n對(duì)文件中所有的行進(jìn)行編號(hào)并顯示行號(hào)

-s將連續(xù)的空行壓縮為一個(gè)空行

在一個(gè)命令中執(zhí)行顯示多個(gè)文件的內(nèi)容,可以用“;”隔開(kāi)。cat 文件名1;文件名2

用法2:功能:重復(fù)剛剛輸入的行。即顯示標(biāo)準(zhǔn)輸入內(nèi)容。按Ctrl+D退出新文件的制作。

用法3:功能:制作一個(gè)新文件。格式:cat >新文件名

用法4:功能:cat實(shí)現(xiàn)文件的合并。格式:cat 文件名1 文件名2 > 文件名3

用法5:功能:給文件追加內(nèi)容。格式:cat 文件名2 ?>> 文件名1

7.cp命令

功能:實(shí)現(xiàn)文件的復(fù)制。格式:cp選項(xiàng) 源文件 目標(biāo)

(1)cp –r ???/home/ubuntu ??????/home/ubuntu1

(2)cp –r ??/home/ubuntu/ ?????/home/ubuntu1

(3)cp –r /home/ubuntu/* ????/home/ubuntu1

8.rm命令

功能:刪除指定文件。格式:rm選項(xiàng) 文件或目錄名

-i以安全詢問(wèn)的方式進(jìn)行刪除操作

-r/R遞歸處理,將指定目錄下的所有文件及子目錄一并處理

-f強(qiáng)制刪除文件或目錄

-v顯示指令執(zhí)行過(guò)程

-d直接把欲刪除的目錄的硬連接數(shù)據(jù)刪成,刪除該目錄

rm命令可以結(jié)合通配符“*”實(shí)現(xiàn)刪除一類文件。

rm命令可以使用一條語(yǔ)句一次性刪除多個(gè)文件或目錄,文件名或目錄名之間用空格隔開(kāi)。

9.mv命令

功能:實(shí)現(xiàn)文件的轉(zhuǎn)移。格式:mv文件名 路徑名

(1)mv /home/ubuntu/dir /home/ubuntu1

(2)mv /home/ubuntu/dir/ /home/ubuntu1

(3)mv /home/ubuntu/dir/* /home/ubuntu1

功能:實(shí)現(xiàn)文件夾或文件的重命名格式:mv目錄名或文件名 新目錄名或文件名

(1)mv /home/picture/pict.png /home/picture/pict1.png

(2)mv /home/picture ?/home/picture1

10.chmod命令

功能:修改文件的權(quán)限和文件的屬性。格式:chmod 文件使用者+/-/=權(quán)限類型 文件1…

文件使用者有四種類型:u:文件主,文件或目錄的所有者,g:文件主所在組群的用戶,o:其他用戶,a:所有用戶。

操作符號(hào)包括三種類型:+:代表增加權(quán)限,-:代表刪除取消權(quán)限,=:代表賦予給定的權(quán)限,并取消其他權(quán)限。

權(quán)限類型包括三種基本類型:r:代表只讀權(quán)限,w:代表寫權(quán)限,x:代表可執(zhí)行權(quán)限。

(1)chmod a=rwx filename

??????????chmod 777 filename

(2)chmod ug=rwx,o=x filename

??????????chmod 771 filename

11.壓縮解壓命令

1.壓縮文件: bzip2文件名1 [文件名2] …

解壓文件:bunzip2文件名1 [文件名2] …

多個(gè)文件的壓縮,文件之間用空格隔開(kāi)。

2.壓縮格式:gzip [-選項(xiàng)] 文件名

解壓gzip -d hello.txt

3.解壓.zip文件。它能夠?qū)⒔?jīng)過(guò)winzip壓縮的文件進(jìn)行解壓操作。

格式:unzip [選項(xiàng)] 文件名.zip

-d 將文件解壓到指定目錄中

-v 查看文件目錄列表但不解壓

-n 不覆蓋原來(lái)已經(jīng)存在的文件

-o 以默認(rèn)方式覆蓋已經(jīng)存在的文件

舉例:將當(dāng)前目錄的file.zip文件進(jìn)行解壓 unzip file.zip

舉例:只查看壓縮文件里的文件目錄,但不解壓。unzip–v file.zip

舉例:將file.zip文件解壓到/home/ubuntu/dir目錄下。 unzip –n file.zip –d /home/ubuntu/dir

zcat命令專門針對(duì).gz后綴的壓縮文件進(jìn)行查看。

bzcat是針對(duì).bz2后綴的壓縮文件進(jìn)行查看。

tar命令

功能:對(duì)文件或目錄進(jìn)行打包備份或者解包操作。格式:tar–選項(xiàng)備份包的文件名要打包或解包的文件或目錄

-c創(chuàng)建新的打包文件

-x抽取.tar文件里的內(nèi)容

-z打包后直接用gzip命令進(jìn)行壓縮或解壓文件

-j打包后直接用bzip2命令進(jìn)行壓縮或解壓文件

-t查看一個(gè)打包文件里的文件目錄

-f使用文件或設(shè)備

-v在打包壓縮或解包解壓后將文件的詳細(xì)清單顯示出來(lái)

舉例:將當(dāng)前目錄下的文件hell.txt、number.txt打包后壓縮成new.tar.gz。

tar–czf new.tar.gz hell.txt number.txt

舉例:將當(dāng)前目錄下的文件hell.txt、number.txt打包后壓縮成new.tar.bz2

tar–cjf new.tar.bz2 hell.txt number.txt

解壓縮

-xzf ??-xjf

12.mount命令

功能:掛載。格式:mount–t vfstype ?–o選項(xiàng) ?device dir

舉例:掛載U盤

對(duì)Linux系統(tǒng)而言,把U盤當(dāng)做SCSI設(shè)備對(duì)待。

插入U(xiǎn)盤之前,應(yīng)先用fdisk –l或more /proc/partitions命令查看系統(tǒng)的硬盤和硬盤分區(qū)情況。 fdisk -l

插入U(xiǎn)盤后,再用fdisk –l或more /proc/partitions命令看系統(tǒng)的硬盤和硬盤分區(qū)情況。

會(huì)看到系統(tǒng)多了一個(gè)SCSI硬盤/dev/sdx(例如sdd)和一個(gè)磁盤分區(qū)/dev/sdx1 (例如sdd1) ,即為即將掛載的U盤。

建立一個(gè)目錄用來(lái)作掛載點(diǎn)。

mkdir–p /mnt/usb

使用掛載命令如下:

mount–t vfat /dev/sdd1 /mnt/usb

2.對(duì)Linux系統(tǒng)而言,USB接口的移動(dòng)硬盤也是當(dāng)做SCSI設(shè)備。

插入移動(dòng)硬盤之前,應(yīng)先用fdisk–lmore /proc/partitions查看系統(tǒng)的硬盤和硬盤分區(qū)情況。fdisk -l

接好移動(dòng)硬盤后,再用fdisk–l或more /proc/partitions查看系統(tǒng)的硬盤和硬盤分區(qū)情況。

可以發(fā)現(xiàn)多了一個(gè)SCSI硬盤/dev/sdx和它的兩個(gè)磁盤分區(qū)/dev/sdx1和/dev/sdx2,其中/dev/sdx5是/dev/sdx2的邏輯分區(qū)。

建立目錄用來(lái)建立掛載

mkdir–p /mnt/usbhd1

mkdir–p /mnt/usbhd2

用mount命令建立掛載

mount–t ntfs /dev/sdc1 /mnt/usbhd1

mount–t vfat /dev/sdc5 /mnt/usbhd2

3.功能:卸載一個(gè)文件系統(tǒng),它的使用權(quán)限是超級(jí)用戶。

格式:umount <掛載點(diǎn)|設(shè)備>

舉例:umount ?/mnt/usb

13.關(guān)機(jī)啟用命令

1)shutdown命令 功能:安全關(guān)機(jī) 格式:shutdown 選項(xiàng) 時(shí)間 警告信息

-h:將系統(tǒng)服務(wù)停掉然后安全關(guān)機(jī)

-r:將系統(tǒng)服務(wù)停掉然后安全重啟

-k:不真正關(guān)機(jī),只是發(fā)出警告信息

-t:在規(guī)定的時(shí)間后關(guān)機(jī)

2)halt命令 功能:關(guān)機(jī) 格式:halt 選項(xiàng)(常用-f,用于控制強(qiáng)行關(guān)機(jī))

3)poweroff命令 功能:關(guān)機(jī) 格式:poweroff

4)reboot命令 功能:重新啟動(dòng)系統(tǒng) 格式:reboot

5)init命令 功能:切換Ubuntu的運(yùn)行級(jí)別 格式:init 運(yùn)行級(jí)別

init共有7個(gè)運(yùn)行級(jí)別

0-停機(jī)

1-單用戶模式

2-多用戶,沒(méi)有NFS

3-完全多用戶模式(標(biāo)準(zhǔn)的運(yùn)行級(jí))

4-沒(méi)有用到

5-X11(x window)

6-重新啟動(dòng)

init進(jìn)程是系統(tǒng)啟動(dòng)進(jìn)程,它是系統(tǒng)啟動(dòng)后的由內(nèi)核創(chuàng)建的第一個(gè)進(jìn)程,進(jìn)程號(hào)為1。

舉例:系統(tǒng)在22:00關(guān)機(jī)

shutdown–h 22:00

舉例:系統(tǒng)在1min后重啟,并通知用戶進(jìn)行保存操作。

shutdown–r +1 “system will be reboot after 1 minute”


14.su命令:轉(zhuǎn)換用戶sudo命令:超級(jí)管理員的身份執(zhí)行某種操作:sudo passwd root

重新鎖定root用戶sudo passwd –l root

useradd命令:創(chuàng)建一個(gè)新用戶adduser zhang??passwd命令:修改用戶密碼

15.ifconfig命令功能:查看IP地址。 ifconfig eth0 192.168.0.1 netmask 255.255.255.0

ping命令功能:測(cè)試網(wǎng)絡(luò)是否暢通。ping -c5 127.0.0.1

16.more命令和less命令

功能:對(duì)文件內(nèi)容或者查詢結(jié)果分屏顯示

格式:more選項(xiàng) 文件名 less 選項(xiàng) 文件名

Ls -l /bin | more

第五章

1.目錄是文件系統(tǒng)維護(hù)所需的特殊文件,它包含了一個(gè)項(xiàng)目列表。一個(gè)計(jì)算機(jī)系統(tǒng)中有成千上萬(wàn)的文件,為了便于對(duì)文件進(jìn)行存取和管理,計(jì)算機(jī)系統(tǒng)建立文件的索引,即文件和文件物理位置之間的映射關(guān)系,這種文件的索引稱為文件目錄

文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的存儲(chǔ)方法和數(shù)據(jù)結(jié)構(gòu),即文件在磁盤上的組織方法。

文件系統(tǒng)由三部分組成:與文件管理有關(guān)的軟件、被管理的文件,以及實(shí)施文件管理所需數(shù)據(jù)結(jié)構(gòu)。

2.Linux文件系統(tǒng)架構(gòu)

1)設(shè)備驅(qū)動(dòng)程序

2)實(shí)際文件系統(tǒng)

3)虛擬文件系統(tǒng)

4)緩存機(jī)制

3.Ext2的核心是兩個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),即超級(jí)塊i結(jié)點(diǎn)

4.Ubuntu的目錄結(jié)構(gòu) (詳細(xì)參考P111)

/:Linux文件系統(tǒng)的根目錄

/bin:存放系統(tǒng)中的最常用的可執(zhí)行文件(二進(jìn)制文件)。系統(tǒng)所需要的那些命令位于此目錄,也是最小系統(tǒng)所需要的命令;例如?ls、cp、mkdir等命令。功能和/usr/bin類似,這個(gè)目錄中的文件都是可執(zhí)行的,普通用戶都可以使用的命令。

/boot:存放Linux內(nèi)核和系統(tǒng)啟動(dòng)文件,包括Grub、lilo啟動(dòng)程序。

/dev:存放所有設(shè)備文件,包括硬盤、分區(qū)、鍵盤、鼠標(biāo)、USB、tty等。

/etc:存放系統(tǒng)所有配置文件,例如passwd存放用戶賬戶信息,hostname存放主機(jī)名等。/etc/fstab實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載,在里面寫入一些分區(qū)的信息,就能實(shí)現(xiàn)開(kāi)機(jī)掛載分區(qū)。

/home:用戶主目錄的默認(rèn)位置。

/lib:存放共享的庫(kù)文件,包含許多被/bin和/sbin中程序使用的庫(kù)文件。

/media:即插即用型存儲(chǔ)設(shè)備的掛載點(diǎn)自動(dòng)在這個(gè)目錄下創(chuàng)建。例如USB盤系統(tǒng)自動(dòng)掛載后,會(huì)在這個(gè)目錄下產(chǎn)生一個(gè)目錄;CDROM/DVD自動(dòng)掛載后,也會(huì)在這個(gè)目錄中創(chuàng)建一個(gè)目錄,存放臨時(shí)讀入的文件。

/mnt:此目錄通常用于作為被掛載的文件系統(tǒng)的掛載點(diǎn)。

/opt:作為可選文件和程序的存放目錄,有些軟件包也會(huì)被安裝在這里,也就是自定義軟件包;有些用戶自己編譯的軟件包,就可以安裝在這個(gè)目錄中。

/proc:存放所有標(biāo)志為文件的進(jìn)程,它們是通過(guò)進(jìn)程號(hào)或其它的系統(tǒng)動(dòng)態(tài)信息進(jìn)行標(biāo)識(shí)。例如cpu、硬盤分區(qū)、內(nèi)存信息等存放在這里。

/root:根用戶(超級(jí)用戶)的主目錄。

/sbin:超級(jí)權(quán)限用戶root的可執(zhí)行命令存放地。

/srv:/tmp:臨時(shí)文件目錄,有時(shí)用戶運(yùn)行程序的時(shí)候,會(huì)產(chǎn)生臨時(shí)文件。/var/tmp目錄和這個(gè)目錄相似。

/usr:用于存放于系統(tǒng)用戶直接有關(guān)的文件和目錄,如應(yīng)用程序及支持系統(tǒng)的庫(kù)文件。

/var:通常用于存放長(zhǎng)度可變的文件,例如日志文件和打印機(jī)文件。

存放系統(tǒng)所提供的服務(wù)數(shù)據(jù)。

絕對(duì)路徑:指文件的準(zhǔn)確位置且以根目錄為起點(diǎn)。

相對(duì)路徑:相對(duì)路徑是相對(duì)于用戶當(dāng)前的位置的一個(gè)文件或目錄的位置。

5.掛載與卸載文件系統(tǒng)(P113全看)

文件系統(tǒng)

文件系統(tǒng)是文件存放在磁盤等存儲(chǔ)設(shè)備上的組織方式。Linux系統(tǒng)能支持多種目前流行的文件系統(tǒng),如EXT2、EXT3、FAT、FAT32、VFAT和ISO9660等。

Linux中文件是如何保存的?

硬盤先進(jìn)行分區(qū),然后進(jìn)行格式化稱為文件系統(tǒng),格式化后才能夠存儲(chǔ)資料。

格式化的過(guò)程就是將硬盤分割為一個(gè)一個(gè)的小單位(block),并依序編號(hào)。

block是資料存儲(chǔ)的最小單位,也就是存儲(chǔ)文件的地方。默認(rèn)情況,其大小是4K。

如果一個(gè)文件是13k,那么這個(gè)文件就會(huì)占用4個(gè)block

當(dāng)一個(gè)分區(qū)被格式化的時(shí)候,會(huì)產(chǎn)生inode編號(hào),這些編號(hào)決定了這個(gè)分區(qū)可以存儲(chǔ)多少個(gè)文件,這是因?yàn)橐粋€(gè)文件或者是目錄都會(huì)對(duì)應(yīng)到一個(gè)inode。

這些inode會(huì)對(duì)應(yīng)到一個(gè)表,這個(gè)表稱為:inode table。

inode table中記錄了這個(gè)inode所對(duì)應(yīng)的文件的元數(shù)據(jù)(metadata)。

元數(shù)據(jù)的主要作用用來(lái)描述資料的屬性

這些屬性包括文件類型,權(quán)限、鏈接、UID、GID、文件大小、時(shí)間、 pointer值等,這些只是用來(lái)描述文件的屬性,而不是文件的內(nèi)容。

如果要存取文件的內(nèi)容,必須靠屬性中的pointer的值,才能存取到文件的內(nèi)容,pointer就是指向這個(gè)屬性里面的值記錄了這個(gè)文件用到了那幾個(gè)block。

所以存取一個(gè)文件前,所以系統(tǒng)會(huì)先找到這個(gè)文件所對(duì)應(yīng)的inode-no,然后讀取inode table,然后根據(jù)pointer的值得知這個(gè)文件存儲(chǔ)在那幾個(gè)block中。才能存取這個(gè)文件。

當(dāng)我們存取文件的時(shí)候,我們是靠文件的名稱來(lái)存取這個(gè)文件的,但是電腦看不懂文件名稱,必須靠inode才能找到這個(gè)文件。

第六章

1.vi編輯器的工作模式:命令模式,插入模式,轉(zhuǎn)義模式。

三種模式轉(zhuǎn)換方式:P128

在命令模式下,輸入的任何字符vi都把它當(dāng)作相應(yīng)的命令執(zhí)行。因此,輸入的字符并不在屏幕上顯示。

命令模式用于完成各種文本的修改工作。例如,可以對(duì)文件內(nèi)容中的字符串進(jìn)行剪切、復(fù)制、粘貼、替換等。

vi啟動(dòng)之后首先進(jìn)入命令模式,用戶可以使用編輯命令進(jìn)入插入模式,進(jìn)行文本的編輯。

在插入模式下,輸入的字符都是作為文件的內(nèi)容顯示在屏幕上。

輸入完畢后,按Esc就可以回到命令模式。

在轉(zhuǎn)義模式下,光標(biāo)停留在屏幕的最末行,以接受輸入的命令并執(zhí)行。

該模式用于執(zhí)行一些全局性的操作,如查找、替換、保存、退出文本等。

按Esc鍵后,回到命令模式,再輸入轉(zhuǎn)義字符 “:” ,就進(jìn)入轉(zhuǎn)義模式。執(zhí)行完相應(yīng)的命令后,返回命令模式或退出vi編輯器。

2.在命令模式下,光標(biāo)的移動(dòng)命令。h、j、k、l:光標(biāo)向左、下、上、右移動(dòng)一個(gè)字符

常用的插入命令:

a:在光標(biāo)位置后開(kāi)始接收輸入。

A:在行尾后開(kāi)始接收輸入。

i:在光標(biāo)位置前開(kāi)始接收輸入。

I:在行首后開(kāi)始接收輸入。

o:在光標(biāo)所在行之后開(kāi)辟一個(gè)新的空行,并開(kāi)始接收輸入。

O:在光標(biāo)所在行之前開(kāi)辟一個(gè)新的空行,并開(kāi)始接收輸入。

添加文本:P128

刪除文本:x:刪除光標(biāo)處的單個(gè)字符;X:刪除光標(biāo)左邊的單個(gè)字符;D:刪除一行文本;dd:刪除光標(biāo)所在行的文本,包括硬回車。2x:刪5dd:刪除5行。在命令模式下,可以按Delete鍵實(shí)現(xiàn)刪除光標(biāo)處的字符,與x命令相同。

常用的替代命令:s:用輸入的新文本替換光標(biāo)處的字符;S:用輸入的新文本替換光標(biāo)所在行;r:用輸入的新字符替換光標(biāo)處的字符;R:用輸入的新文本逐個(gè)替換從光標(biāo)處開(kāi)始的各個(gè)字符。

3.文本的剪切復(fù)制粘貼:yy:復(fù)制光標(biāo)所在的行;y0:復(fù)制光標(biāo)左邊的文本內(nèi)容;y$:復(fù)制光標(biāo)右邊的文本內(nèi)容;p:粘貼文本到光標(biāo)處;dd:剪切光標(biāo)所在行的文本。5yy:復(fù)制五行

m,ny:復(fù)制m到n行

4.關(guān)鍵字的查找??:/my

字符串的替換(P137)執(zhí)行替換命令s。基本格式如下

[替換起始處,替換結(jié)束處] ??s/要被替換的字符串/替換的字符串/[g][c]

執(zhí)行:1,$ s/is/are/g

5.保存與退出命令

:q:如果原文本未修改,不保存文件,直接退出vi。

:q !:不保存文件,強(qiáng)制退出。

:wq?。簭?qiáng)制保存文件并退出。

:e?。悍艞壭薷?,編輯區(qū)恢復(fù)為文件原樣。

:w:保存當(dāng)前文件。

在vi中依次打開(kāi)兩個(gè)文件

輸入命令vi文件名1,打開(kāi)一個(gè)文件1

在一打開(kāi)的文件1中,按Esc鍵回到命令模式。

進(jìn)入末行模式,輸入命令:sp文件名2

如果當(dāng)前光標(biāo)處于下面窗口的文件中,按Esc鍵,Ctrl+W鍵,鍵入k(j),是光標(biāo)定位到上(下)面的窗口

區(qū)域復(fù)制打開(kāi)某個(gè)文件,光標(biāo)移動(dòng)到需要復(fù)制的第一行

按Esc鍵,確保當(dāng)前處于命令模式,在按Ctrl+V鍵。

使用小鍵盤上的上、下、左、右方向鍵,進(jìn)行區(qū)域選取。

鍵入y,結(jié)束區(qū)域選取。

光標(biāo)移至目標(biāo)位置,鍵入p,實(shí)現(xiàn)區(qū)域復(fù)制

第八章

1.Linux系統(tǒng)中的用戶可以分為三種:超級(jí)用戶(root),管理用戶普通用戶。

超級(jí)用戶是一個(gè)特殊用戶(UID=0),它可以訪問(wèn)任何程序和文件。

管理用戶用于運(yùn)行一定的系統(tǒng)服務(wù)程序,支持和維護(hù)相應(yīng)的系統(tǒng)功能。這些用戶ID號(hào)位于1-999的范圍內(nèi)。例如ftp就是一個(gè)管理用戶,用作FTP匿名用戶,維護(hù)匿名用戶的文件傳輸,同時(shí)提供匿名用戶的默認(rèn)主目錄。

2.在了解Ubuntu系統(tǒng)用戶的添加與刪除前,首先了解兩個(gè)重要的系統(tǒng)文件,它們分別是/etc/passwd/etc/shadow。

3.命令行方式下增加用戶

命令:useradd

sudo useradd–u 1001 –d /home/jack –m –s /bin/bash jack

增加成功后,還需要設(shè)置密碼,才能登陸。

命令行方式下刪除用戶

命令:userdel格式:userdel ?–r ?login

sudo userdel–r jack

Linux的組有私有組、系統(tǒng)組、標(biāo)準(zhǔn)組之分。

私有組:建立賬戶時(shí),若沒(méi)有指定賬戶所屬的組,系統(tǒng)會(huì)建立一個(gè)和用戶名相同的組,這個(gè)組就是私有組,私有組只容納了一個(gè)用戶。

標(biāo)準(zhǔn)組:可以容納多個(gè)用戶,組中的用戶都具有組所擁有的權(quán)利。

系統(tǒng)組:是Linux系統(tǒng)自動(dòng)建立的。

4.組的添加與刪除(P169)

1)系統(tǒng)文件/etc/group

2)命令行方式添加組

3)命令行方式刪除組

4)圖形界面方式添加刪除組

groupadd—添加組名

添加user組

???root@Ubuntu:~# groupadd user

添加組名可以手工編輯/etc/group文件來(lái)完成組的添加。

groupmod—修改組屬性

修改user組的GID。

root@Ubuntu:~# groupadd–g 1005 user

修改user組的名為user1。

root@Ubuntu:~# groupadd–n ?user1 user

gpasswd—改變組中的成員用戶;還可以修改組密碼,而且可以添加、刪除組成員。

修改user1組密碼

???root@Ubuntu:~# gpasswd user1

添加student用戶到user1組

???root@Ubuntu:~# gpasswd ?-a ?student user1

從user1組刪除student用戶

???root@Ubuntu:~# gpasswd ?-d ?student user1

groupdel—?jiǎng)h除組

[if !supportLists]5.[endif]軟件包包括了源程序軟件包二進(jìn)制軟件包。Ubuntu軟件包的主要格式是DEB格式。

源程序軟件包主要是源代碼以及二進(jìn)制軟件包的制作方法。

二進(jìn)制軟件包是經(jīng)過(guò)封裝的可執(zhí)行程序以及相關(guān)文檔和配置文件等,其提供格式通常是一種壓縮文檔,其中包含了軟件信息、程序文件、配置文件、幫助文檔、內(nèi)容啟動(dòng)腳本和控制信息等內(nèi)容

apt-get、aptitude和synaptic等軟件管理工具都支持deb軟件包。

6.APT是Ubuntu軟件包管理系統(tǒng)的高級(jí)界面,是一個(gè)客戶/服務(wù)器系統(tǒng)。APT包括apt-get、apt-cache、apt-cdrom等處理軟件包的命令行工具組成。

aptitude是Debian GBU/Linux系統(tǒng)中的軟件包管理,它基于APT機(jī)制,整合了apt-get的所有功能。

新立德軟件包管理工具起源于Debian,它是dpkg命令的圖形化前端。

第九章

1.IP地址配置/etc/network/interfaces

查看到活動(dòng)的接口,不顯示down掉的

ifconfig

查看所有網(wǎng)卡的配置,包括down掉的

ifconfig–a

查看特定網(wǎng)卡的配置

ifconfig eth0

配置eth0的IP地址

ifconfig eth0 192.168.84.132

使用ifconfig更改網(wǎng)卡地址和子網(wǎng)掩碼

ifconfig eth0 192.168.1.223 netmask 255.255.255.0

禁用特定網(wǎng)卡

ifdown eth0

ifconfig eth0 down

啟用特定網(wǎng)卡

ifup eth0 ?

ifconfig eth0 up

2.Ubuntu中的DNS基礎(chǔ)配置 /etc/resolv.conf

3.hosts文件 /etc/hostname

netstat–r 也可以查看路由表信息。

[if !supportLists]6.[endif]Ubuntu中安裝DHCP服務(wù)

使用hostname查看服務(wù)器名稱

hostname

使用ping測(cè)試網(wǎng)絡(luò),ctrl+C中斷

ping 202.99.160.68

使用traceroute跟蹤數(shù)據(jù)包路徑

apt-get install traceroute

traceroute 202.99.160.68

使用nslookup測(cè)試域名解析

nslookup www.inhe.net

[if !supportLists]4.[endif]配置FTP服務(wù)器

FTP是TCP/IP網(wǎng)絡(luò)上的兩臺(tái)計(jì)算機(jī)互相傳送文件的協(xié)議。

FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來(lái)下載文件、上傳、創(chuàng)建或改變服務(wù)上的目錄。

FTP服務(wù)一般運(yùn)行在20和21兩個(gè)端口。端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流。

5.DHCP簡(jiǎn)介:是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作,主要有兩個(gè)用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動(dòng)分配IP地址,給用戶或者內(nèi)部網(wǎng)路管理員作為對(duì)所有計(jì)算機(jī)作中央管理的手段。

設(shè)置DHCP

FTP是TCP/IP網(wǎng)絡(luò)上的兩臺(tái)計(jì)算機(jī)互相傳送文件的協(xié)議。

FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來(lái)下載文件、上傳、創(chuàng)建或改變服務(wù)上的目錄。

FTP服務(wù)一般運(yùn)行在20和21兩個(gè)端口。端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流。

????auto eth0iface eth0 inet dhcp

用下面的命令使網(wǎng)絡(luò)設(shè)置生效:sudo /etc/init.d/networking restart

配置文件

/etc/dhcp3/dhcpd.conf

啟動(dòng)與停止命令

/etc/init.d/hdcp3-server start

/etc/init.d/hdcp3-server stop

第十章

shell變量

本地變量(用戶自定義變量 )

位置變量即 shell script之參數(shù)

預(yù)定義變量(特殊變量)

環(huán)境變量

目前流行的shell有ash、bash、ksh、csh、zsh等,bash是Linux系統(tǒng)默認(rèn)使用的shell。

cat ?/etc/shells

echo $SHELL

使用echo命令輸出單個(gè)變量的值,此時(shí)要在變量名前加$

????WEEK=Satur

echo Today is $WEEKday

輸出:Today is

使用花括號(hào)來(lái)告訴shell我們要顯示的變量:

??????echo Today is ${WEEK}day

輸出:Today is Saturday

環(huán)境變量用于所有用戶進(jìn)程(經(jīng)常稱為子進(jìn)程)。環(huán)境變量應(yīng)用于用戶進(jìn)程前,必須用export命令導(dǎo)出。

舉例:先定義一個(gè)環(huán)境變量,編寫一個(gè)腳本引用

export A2=123

一個(gè)腳本中如果有

echo $A2

?位置變量參數(shù)如果要向一個(gè)shell腳本傳遞信息,可以使用位置參數(shù)完成此功能。傳入腳本的參數(shù)數(shù)目可以任意多,但只有前9個(gè)可以被訪問(wèn)。

$0?? ??$1?? ??$2?? ????$3?? ?$4?? ???$5??? ????$6??? ? $7? ??$8? ??$9

腳本名字Did? ?You? ??See? ?The? ?Full? ??Moon


測(cè)試兩個(gè)文件是否均可寫

[ -w a.txt–a –w b.txt ]

???????echo $?

測(cè)試兩個(gè)數(shù)是否相等

NUMBER=130

[ $NUMBER–eq 130 ]

echo $?

let ?a=8 ?b=13

let c=a+b

echo“The value of c is $c.”

輸出結(jié)果:The value of c is 21.

語(yǔ)法:expr ??args

功能:計(jì)算args的值,并返回它的值到標(biāo)準(zhǔn)輸出

?var1=10

var1=‘expr $var1 + 1’

?echo $var1

輸出結(jié)果:11

注意:?jiǎn)我?hào)‘ 應(yīng)該用大鍵盤上TAB鍵上方1鍵的左邊的那個(gè)鍵,并且+兩邊要加空格

if…else…fi語(yǔ)句

#!/bin/bash

echo–n “please input a score:”

read SCORE

echo–n “you input score is $SCORE”

if [ $SCORE–ge 60 ]; then

echo–n “you pass the exam”

else

echo–n “you fail the exam”

Fi

if…elif…fi語(yǔ)句

1.#!/bin/bash

if [ $1–lt 0 ] ; then

echo“error: invalid grade”

elif [ $1–lt 60 ] ; then

echo“no pass”

elif [ $1–lt 70 ] ; then

echo“pass”

elif [ $1–lt 80 ] ; then

echo“good”

elif [ $1–le 100 ] ; then

echo“excellent”

else

echo“error: invalid grade”

fi

2.#!/bin/bash

read–p “input your score:” score

if [ $score–lt 60 ] ; then

echo“not pass”

elif [ $score–ge 60 –a $score –lt 70 ] ; then

echo“pass-D”

elif [ $score–ge 70 –a $score –lt 80 ] ; then

echo“pass-C”

elif ?[ $score–ge 80 –a $score –lt 90 ] ; then

echo“pass-B”

elif [ $score–ge 90 –a $score –le 100 ] ; then

echo“pass-A”

else

echo“error: invalid score”

Fi

嵌套的if語(yǔ)句

#!/bin/bash

read–p “input your name:” name

if [ $name =“user” ]; then

read–p “input you password:” password

if [ $password =“123456” ];then

echo“hello ubuntu $name”

????else

echo“your password is not right”

????fi

else

echo“sorry,your name is not right”

Fi

case語(yǔ)句

1.#!/bin/bash

echo–n "Do you want to continue this operation? y or n"

read YESNO

case $YESNO in

y | Y | Yes | yes)

echo "system will continue this operation“;;

n | N | no | NO)

echo "system will skip this operation";;

*)

echo "Incorrect input";;

esac

2.#!/bin/bash

hour=`date +%H`

case $hour in

08|09|10|11|12) echo“good morning”;;

13|14|15|16|17) echo“good afterning”;;

18|19|20|21|22) echo“good evening”;;

*) echo“hello”;;

Esac

for語(yǔ)句

#!/bin/bash

read–p “input a directory:” dire

if [ -e $dire–a –d $dire ]; then

????file=`ls $dire`

????for filename in $file

????do

????????if[ -r $dire/$filename ];then

echo“$filename can be read!”

ls–l $dire/$filename

????????fi

????done

else

echo“sorry, $dire can not be exists!”

Fi

while

#!/bin/bash

While [ 1 ]

do

read–p “input login name:” username

if [ $username =“ubuntu” ];then

echo“hello $username”

???????break

????if

echo“sorry, name failed!”

Done

2.#! /bin/bash

count=1

while [-n "$*"]

do

?????echo "This is parameter number $count $1"

?????shift

?????let count=count+1

done

注:-n比較字符串的長(zhǎng)度是否大于0,如果大于0,為真。

3.#! /bin/bash

loopcount=0

result=0

while [ $loopcount–lt 5 ]

do

read–p “input a number:” num

declare–i loopcount =$loopcount +1

declare–i result =$result+$num

done

echo“result is $result”

until語(yǔ)句

1.#! /bin/bash

read–p “l(fā)ogin name:” username

until [ $username=“ubuntu” ]

do

echo“sorry,name failted!”

read–p “l(fā)ogin name:” username

done

echo“hello ubuntu”

2.#! /bin/bash

loopcount=0

result=0

until [ $loopcount–ge 5 ]

do

read–p “input a number:” num

declare–i loopcount =$loopcount +1

declare–i result =$result+$num

done

echo“result is $result”



硬鏈接是把許多個(gè)不同的文件對(duì)應(yīng)到同一個(gè)inode上,由于對(duì)應(yīng)到同一個(gè)inode,所以這些文件會(huì)有相同的inode-table.這么作的目的在于:避免重要的資料被誤刪,因?yàn)楫?dāng)原本的文件被刪除時(shí),可以通過(guò)硬鏈接找到inode-table,并找到這些文件被存儲(chǔ)在那些block中。

每一個(gè)分區(qū)的inode都是獨(dú)立的,所以不能把硬鏈接建立在其他的分區(qū)中。也不能建立目錄的鏈接(如果引入了對(duì)目錄的硬連接就有可能在目錄中引入循環(huán),那么在目錄遍歷的時(shí)候系統(tǒng)會(huì)陷入無(wú)限循環(huán)當(dāng)中)。

軟鏈接在使用上與硬鏈接相似,但是意義完全不同,軟鏈接的文件名只是一個(gè)符號(hào),指向原文件,與Windows中的快捷方式一樣。

如果硬鏈接的原文件刪除,建立的硬鏈接可以使用。

如果軟鏈接的原文件刪除,建立的軟鏈接就會(huì)失效。

第十一章

[if !supportLists]1.?[endif]Eclipse的搭建(P233)

[if !supportLists]2.?[endif]GCC對(duì)源文件進(jìn)行處理的具體過(guò)程(P246)

GCC的安裝sudo ?apt-get ?install ??build-essential

GCC編譯分為四個(gè)步驟:

預(yù)處理gcc -E c1.c -o c.i

GCC調(diào)用cpp程序進(jìn)行預(yù)處理,即分析像#include、#define之類的命令。

編譯gcc -S c.i

GCC是調(diào)用ccl程序進(jìn)行編譯的,它根據(jù)源代碼生成匯編語(yǔ)言。

匯編gcc -c c.s -o c.o

GCC調(diào)用as程序?qū)⑸弦徊降慕Y(jié)果生成擴(kuò)展名為o的目標(biāo)文件

連接gcc c.o -o c

GCC調(diào)用ld程序?qū)⒛繕?biāo)文件進(jìn)行連接,最后生成可執(zhí)行文 件。

GNU的調(diào)試器稱為 GDB(GNU debuger),該程序是一個(gè)交互式工具,工作在字符模式,可用于源代碼級(jí)調(diào)試,以及跟蹤沒(méi)有源代碼的程序或檢查某個(gè)終止的程序留下的核心文件。

gcc -g test.c -o test

g++ -g test.cpp -o test


[if !supportLists]3.?[endif]make命令是UNIX下重要的編譯命令

Make通過(guò)讀入配置好的文本文件,并根據(jù)文本文件中預(yù)先定義的規(guī)則和步驟,完成代碼的編譯和鏈接工作,最終生成所需要的項(xiàng)目文件。這個(gè)文本文件在缺失情況下為makefile或Makefile。

Make在對(duì)項(xiàng)目文件進(jìn)行編譯時(shí), 會(huì)判斷文件的修改和生成時(shí)間。如果某源代碼文件在上次編譯后再次被修改,則make將只編譯該文件,而不會(huì)對(duì)整個(gè)重新編譯

c1.c程序?yàn)槔?,使用vi編寫makefile文件,內(nèi)容如下:

????c.1:c1.c

[tab鍵]gcc –o c.1 c1.c

1.ls -al /etc?= cd /home/yang = mkdir -p dir/dir1/dir2=cat a.txt b.txt > c.txt =cat d.txt >> c.txt

2.mkdir newdir1,mkdir newdir2,cd newdir1,touch file.txt,mkdir newdir11

3.cp -r /home/yang/newdir1 /home/yang/newdir2,cd ..,ls newdir2,cd newdir1,ls

4.cp -r /home/yang/newdir1/* /home/yang/newdir2,cd ..,ls newdir2

5.cat > d.txt,hello boy,ls,cat d.txt,cat d.txt >> c.txt ,cat -n c.txt

6.cat > a.txt,hello,cat > b.txt,world,cat -n a.txt,cat -n b.txt,cat a.txt b.txt > c.txt ,ls,cat -n c.txt

7.cd dir/dir1 , touch file.txt , ls , rmdir -p dir2 , ls ,rmdir -p dir1, cd .., ls

8.cat > file.txt,hello world,hello everyone,end,cat file.txt,grep hello file.txt

9.touch 1.txt,touch 2.txt,ls,tar–czf 3.tar.gz 1.txt 2.txt,tar –cjf 4.tar.bz2 1.txt 2.txt,ls,rm 1.txt,rm 2.txt,ls,gzip -d 3.tar.gz

10.用ubuntu用戶登錄Linux,在宿主目錄下創(chuàng)建目錄perm,在該目錄下創(chuàng)建文件newfile,授予所有用戶對(duì)perm目錄都有rwx權(quán)限;切換到普通用戶ubuntu1,執(zhí)行“rm /home/ubuntu/perm/newfile”是否可以執(zhí)行。

fdisk -l,mkdir–p /mnt/usb,mount –t vfat /dev/sdd1 /mnt/usb,su root,umount ?/mnt/usb,exit

11.mkdir perm,cd perm,touch newfile,ls ,cd ..,ls,chmod a=rwx perm,ls,su ubuntu,ls,rm /home/yang/perm/newfile,ls,ls perm

12.用ubuntu用戶登錄Linux,在宿主目錄下創(chuàng)建文件newfile2,移動(dòng)文件newfile2到perm目錄下同時(shí)改名為file01,然后,改變file01的文件權(quán)限為“rwxrw-r--”。

ls,touch newfile2,ls,mv newfile2 perm/file01,ls perm,chmod 764 /home/yang/perm/file01,ls perm

1.系統(tǒng)調(diào)用的意義:

a.系統(tǒng)調(diào)用接口是由一系列的系統(tǒng)調(diào)用函數(shù)構(gòu)成的“特殊”接口。程序員或應(yīng)用程序通過(guò)這個(gè)特殊的接口取得操作系統(tǒng)內(nèi)核提供的服務(wù),它是專為程序員編程時(shí)使用,是應(yīng)用程序與系統(tǒng)內(nèi)核通訊的橋梁。

b.通過(guò)系統(tǒng)調(diào)用來(lái)提供給用戶程序的根本原因是為了對(duì)系統(tǒng)進(jìn)行“保護(hù)”。用戶可以通過(guò)和文件系統(tǒng)相關(guān)的系統(tǒng)調(diào)用,請(qǐng)求系統(tǒng)打開(kāi)文件、關(guān)閉文件或讀寫文件等。

2. API與系統(tǒng)調(diào)用的關(guān)系:

a.通過(guò)API接口,程序員可以間接地訪問(wèn)到系統(tǒng)硬件和操作系統(tǒng)資源。操作系統(tǒng)保護(hù)系統(tǒng)資源不被外界破壞,因此,當(dāng)用戶需要對(duì)系統(tǒng)資源進(jìn)行訪問(wèn)時(shí),就必須通過(guò)操作系統(tǒng)向用戶提供的接口才能實(shí)現(xiàn)用戶對(duì)系統(tǒng)資源的訪問(wèn),取得內(nèi)核的服務(wù)。

b. API一般以函數(shù)定義的形式出現(xiàn),如read()、abs()、malloc()等。但是API并不需要和系統(tǒng)調(diào)用一一對(duì)應(yīng),它們之間的關(guān)系可以是一對(duì)一、一對(duì)多、多對(duì)一或者無(wú)關(guān)系。

c.一對(duì)一關(guān)系,即API和系統(tǒng)調(diào)用的形式一致,如read()函數(shù)和read系統(tǒng)調(diào)用對(duì)應(yīng)。

多對(duì)一關(guān)系,即幾種不同的API內(nèi)部使用同一個(gè)系統(tǒng)調(diào)用,如malloc()、free()利用brk系統(tǒng)調(diào)用來(lái)擴(kuò)大或縮小進(jìn)程的堆。

無(wú)關(guān)系,某些API不需要任何系統(tǒng)調(diào)用,如abs()。

[if !supportLists]3.[endif]文件系統(tǒng)掛載

步驟1:打開(kāi)虛擬機(jī),查看當(dāng)前磁盤信息: sudo fdisk –l。

步驟2: 關(guān)閉終端,添加一塊新硬盤,使用命令查看磁盤信息。

步驟3: 建立一個(gè)目錄,掛著硬盤,做一些文件操作。

sudo makedir /yyy

sudo mount /dev/sdb /yyy

步驟4:?卸載新掛載的硬盤,再查看相關(guān)目錄和文件,已經(jīng)無(wú)法查看。

4.sudo useradd -u 1003 -d /home/newuser1 -m -s /bin/bash newuser1

5.DHCP是一個(gè)局域網(wǎng)得網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作,主要得兩個(gè)用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動(dòng)分配IP地址,給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對(duì)所有計(jì)算機(jī)中央管理得手段。主要工作流程:(1)發(fā)現(xiàn)階段;(2)提供階段;(3)選擇階段;(4)確認(rèn)階段;(5)重新登錄;(6)更新租約。

安裝命令:sudo apt-get install dhcp3-server

啟動(dòng)命令:sudo /etc/init.d/dhcp3-server start

停止命令:sudo /etc/init.d/dhcp3-server stop

6.touch hello.sh

vi hello.sh

#! /bin/bash

echo“hello shell”

增加執(zhí)行權(quán)限

??????chmod u+x hello.sh

開(kāi)始運(yùn)行程序:

??????./hello.sh

7.#/bin/bash

read -p "Enter a full path:" MYPATH

if [ -d $MYPATH ]; then

echo -e "yes!"

HERE="$(ls $MYPATH)"

#分割為數(shù)組

ARR=($HERE)


for X in ${ARR[@]}; do

??CHILDPATH=$MYPATH/$X

??if [ -f $CHILDPATH -a -r $CHILDPATH ]; then

?? echo "$(ls -l $CHILDPATH)"

??fi

done

Fi

8.#!/bin/bash

sum=0

I=0

while :

do

echo -n "input a score:"

read score

let sum=sum+score

let I=I+1

if [ $I -gt 4 ] ;then

break

fi

done

echo "sum: $sum"

1。下載操作系統(tǒng)的鏡像ISO文件

2.下載虛擬機(jī)并安裝

3.通過(guò)ISO文件安裝操作系統(tǒng)

4.執(zhí)行相關(guān)配置即可

40.簡(jiǎn)述在虛擬機(jī)中安裝Red Hat Linux 9.0 的過(guò)程

答;1。下載操作系統(tǒng)的鏡像ISO文件

2.下載虛擬機(jī)并安裝

3.通過(guò)ISO文件安裝操作系統(tǒng)

4.執(zhí)行相關(guān)配置即可

2.在當(dāng)前目錄/home/zheng下新建一個(gè)目錄back,將當(dāng)前目錄改為back,在back下新建2個(gè)長(zhǎng)度為0的文件test1、test2,然后把test2移到其父目錄中并改名為file12。

答:$ mkdir back

??$ cd back

$ touch ?test1 test2

$ mv ?test2 ??../file2

5.若給需要將/home/zheng目錄下的所有文件打包壓縮成/tmp/zheng.tar.gz,你準(zhǔn)備怎么做?當(dāng)需要從壓縮包中恢復(fù)時(shí),又該如何處理?

答:#tar–zcvf ?/tmp/zheng.tar.gz ?/home/zheng

??#tar -zxvf /tmp/zheng.tar.gz

2. vi編輯器有哪幾種工作模式?如何在這幾種工作模式之間轉(zhuǎn)換?

答:Vi的工作模式有三種:命令模式、輸入模式、末行模式。3分

在命令模式下輸入a、A、i、I、o、O等命令之一可以進(jìn)入輸入模式,在輸入模式下按Esc鍵回到命令模式;在命令模式下輸入:進(jìn)入末行模式,末行命令執(zhí)行完后回到命令模式。

3.什么是位置變量?shell的變量類型有哪些種?

位置變量是指命令行上傳遞給程序的參數(shù)。1分

Shell變量可以分為:用戶自定義變量、環(huán)境變量、位置變量、特殊變量 4分

1.在其父目錄不存在時(shí)先創(chuàng)建父目錄的命令。 ??mkdir ??–p

2.要使得名為fido的文件具有如下權(quán)限-r-xr-x—x的命令。chmod ??551 ??fido

3.在/root文件夾下查找后綴為.cpp的文件。find ??/root ??–name ??*.cpp

4.關(guān)閉linux系統(tǒng)(不重新啟動(dòng))使用的命令 ?halt

5.將光盤/dev/hdc卸載的命令 。umount ??/dev/hdc

1.若下達(dá)rmdir命令來(lái)刪除某個(gè)已存在的目錄,但無(wú)法成功,請(qǐng)說(shuō)明可能的原因。

此目錄可能不存在,

或者目錄不為空,或者目錄中有隱含文件存在,

或者目錄被設(shè)置了權(quán)限,

解決方法就是先修改權(quán)限,在使用rm–r?? 命令刪除。

1.在/home目錄下查找文件名為。Profile的文件,找到后刪除

2.將test.tar.gz文件解壓縮

3.升級(jí)安裝wu-ftpd軟件包

4.創(chuàng)建一個(gè)用戶,用戶名為user02,所屬私有組和標(biāo)準(zhǔn)組為stuff,用戶家目錄為/home/user2,用戶登陸shell為/bin/bash。

5.賦予所有用戶讀和寫backup.tar.gz文件的權(quán)限:

參考答案:

1.find ??/home–name ?.profile ?-exec ??rm{ ?} \;

2.tar ?-xzvf ??test.tar.gz

3.rpm–Uvh ??wu-ftpd-2.6.2-8.i386.rpm

4.useradd–g ?stuff ?–G ?stuff ?-d /home/user2 ?-s ?/bin/bash ?user02

5.Chmod a+rw ??back.tar.gz

1.?dāng)⑹鯨inux操作系統(tǒng)的三個(gè)主要部分及其功能。(6分)

內(nèi)核:內(nèi)核是系統(tǒng)的心臟,是運(yùn)行程序和管理像磁盤和打印機(jī)等硬件設(shè)備的核心程序。

命令解釋層:是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。

文件結(jié)構(gòu):是文件存放在磁盤等存儲(chǔ)設(shè)備上的組織方法,文件結(jié)構(gòu)的相互關(guān)聯(lián)性使共享數(shù)據(jù)變得容易。

2. 分別敘述linux對(duì)IDE硬盤和usb接口的移動(dòng)硬盤的各個(gè)分區(qū)如何表示?(6分)

hdxx,sdxx,

3.?dāng)⑹鍪裁词莝hell? 什么是X window?Redhat的默認(rèn)shell和X window是什么?(6分)

Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。是一個(gè)命令解釋器,它可以用來(lái)啟動(dòng)、掛起、停止、甚至編寫程序。

Xwindow選擇shell如何進(jìn)行任務(wù)控制。是否支持命令行編輯。是否支持命令行歷史記錄,環(huán)境變量有哪些,什么是它的開(kāi)機(jī)啟動(dòng)文件或者配置文件,支持什么樣的編程框架?

是UNIX和Linux系統(tǒng)上的圖形用戶界面系統(tǒng)。

3 Linux的默認(rèn)shell是bash,默認(rèn)XWindow是XFree86

6. 利用vsftp配置FTP服務(wù)器,要求:(1)匿名用戶可以下載上傳文件;(2)本地用戶不允許登陸。寫出詳細(xì)的配置過(guò)程和配置選項(xiàng)。(8分)

(1)主要配置文件是/etc/lvsftpd/vsftpd.conf;將vsftpd.conf文件中的#anon-upload-enalle=Yes 前的“#“刪掉,并將/var/ftp/pub目錄設(shè)為同組和其它可寫權(quán)限。chmod go+w /var/ftp/pub↓

(2)用service ?vsftpd ?start(stop)(restart)命令啟動(dòng)(關(guān)閉)(重啟)服務(wù)器。

8. 假設(shè)linux分配給光驅(qū)的設(shè)備名是/dev/cdrecord,敘述Linux如何在這個(gè)光驅(qū)上使用光盤。寫出詳細(xì)的命令步驟解釋。(7分)

(1) 插好U盤,用fdisr –l ?/dev/sda/ 命令查看U盤分區(qū)情況

(2) 建立掛袋目錄:mkdir ?/mnt/usb

(3) 掛載U盤:mount ?–tvfat ?/dev/sda1 ?/mnt/usb

(4) 用文件管理器或命令行方式瀏覽文件

(5) 卸載U盤:umount/mnt/usb

(6) 卸去U盤。

掛載

Mount /dev/cdrecord /mnt/cdrom

卸載umount /mnt/cdrom

9.?dāng)⑹鯨inux如何使用Windows系統(tǒng)硬盤(設(shè)備名為/dev/hda3,分區(qū)類型為fat32)上的文件,如何實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載windows硬盤。寫出詳細(xì)的步驟。(8分)

(1) 用fdisk ?-l ?/dev/had 命令查看硬盤分區(qū)中情況及文件系統(tǒng)情況,決定要掛裝Windows分區(qū)

(2) 建立掛裝目錄 ?mkdir ?/mnt/dos

(3) 掛裝Windows系統(tǒng) mount –tvfat ?/dev/had/ ?/mnt/dos

(4) 瀏覽Windows文件系統(tǒng) ?ls ?/mnt/dos

(5) 卸載:umount ?/mnt/dos

(6) ??打開(kāi)/etc/fstab 添加一行

??????/dev/hda3 /mnt/hd vfat defaults 0 0

1.什么是Linux?其創(chuàng)始人是誰(shuí)?Linux操作系統(tǒng)的誕生、發(fā)展和成長(zhǎng)過(guò)程始終依賴著的重要支柱都有哪些?

答:Linux是一個(gè)功能強(qiáng)大的操作系統(tǒng),同時(shí)它是一個(gè)自由軟件,是免費(fèi)的、源代碼開(kāi)放的,可以自由使用的類UNIX產(chǎn)品。其創(chuàng)始人是Linus。Linux操作系統(tǒng)的誕生、發(fā)展和成長(zhǎng)過(guò)程始終依賴著的重要支柱有以下幾點(diǎn):(1)UNIX操作系統(tǒng);(2)MINIX操作系統(tǒng);(3)GNU計(jì)劃;(4)POSIX標(biāo)準(zhǔn);(5)Internet網(wǎng)絡(luò)。

2.試述如何創(chuàng)建一個(gè)用戶。

答:可使用命令useradd創(chuàng)建新用戶,但不能在系統(tǒng)中隨便創(chuàng)建用戶,需經(jīng)相關(guān)部分批準(zhǔn)后方能創(chuàng)建。對(duì)于長(zhǎng)期或暫時(shí)不使用的用戶,應(yīng)將其從系統(tǒng)中刪除或鎖定起來(lái),以防非法使用。創(chuàng)建新用戶時(shí)可以使用命令useradd -d home newuser指定用戶家目錄,若不指定則使用默認(rèn)的家目錄/home/newuser。一般情況下,當(dāng)一個(gè)用戶被創(chuàng)建之后,只有超級(jí)用戶為它設(shè)置密碼后才能被啟用或登錄使用。

3. Linux系統(tǒng)有幾種類型文件?它們分別是什么?有哪些相同點(diǎn)和不同點(diǎn)?

答:3類。分別是普通文件,目錄文件和設(shè)備文件。相同是它們都是文件,都有一個(gè)文件名和i節(jié)點(diǎn)號(hào)。不同點(diǎn)是,普通文件的內(nèi)容為數(shù)據(jù),目錄文件的內(nèi)容為目錄項(xiàng)或文件名與i節(jié)點(diǎn)對(duì)應(yīng)表,設(shè)備文件不占用磁盤空間,通過(guò)其i節(jié)點(diǎn)信息可建立與內(nèi)核驅(qū)動(dòng)程序的聯(lián)系。

4.綜述Linux系統(tǒng)的文件權(quán)限及其管理。

答:Linux用文件存取控制表來(lái)解決存取權(quán)限的控制問(wèn)題。存取控制表以文件為單位,把用戶按某種關(guān)系畫分為若干組,同時(shí)規(guī)定每組用戶的存取權(quán)限。每個(gè)文件都有一張存取控制表。在實(shí)現(xiàn)時(shí),該表存放在文件說(shuō)明中,也就是i節(jié)點(diǎn)的文件權(quán)限項(xiàng)。

就某個(gè)文件而言,它只對(duì)三類用戶(文件主,同組人,其它人)分配權(quán)限。權(quán)限的修改或分配可通過(guò)命令chmod來(lái)實(shí)現(xiàn)。當(dāng)然chmod和chgrp等命令也有著權(quán)限控制作用,因?yàn)槲募闹骱徒M變了,它相應(yīng)的權(quán)限也會(huì)隨之改變。

5.在UNIX/Linux系統(tǒng)中,環(huán)境變量是非常重要,在字符界面下試說(shuō)明:

(1) PATH變量的作用,如何得到PATH的值?

(2)在UNIX/Linux系統(tǒng)的超級(jí)用戶的環(huán)境變量PATH中允許包含當(dāng)前目錄嗎?

(3)若在超級(jí)用戶的當(dāng)前目錄內(nèi)有可執(zhí)行文件mypro,如何執(zhí)行它(寫出執(zhí)行時(shí)鍵盤輸入內(nèi)容)?

(4)如何使用該命令在后臺(tái)執(zhí)行(寫出執(zhí)行時(shí)鍵盤輸入內(nèi)容)?

答:(1) PATH為命令搜索路徑,可用echo $PATH命令顯示;(2)UNIX/Linux的PATH變量?jī)?nèi)不允許包含當(dāng)前路徑(.);(3)./mypro;(4)./mypro &

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容