第一章
1.Linux是一套免費使用和自由傳播的類UNIX操作系統,它可以基于Intel x86系列處理器以及Cyrix,AMD的兼容芯片的計算機上運行。
Linux是一個誕生于網絡、成長于網絡且成熟于網絡的奇特的操作系統,是一個由全世界的電腦高手們自愿地自制出的,類似于Unix風格的操作系統。
POSIX 表示可移植操作系統接口(Portable Operating System Interface),
POSIX標準定義了操作系統應該為應用程序提供的接口標準,是IEEE為要在各種UNIX操作系統上運行的軟件而定義的一系列API標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。
2.Linux的誕生和發展與UNIX系統,Minix系統,Internet,GNU計劃密不可分,1971年,Unix操作系統誕生于AT&T公司的貝爾實驗室。它的產生與美國國防計劃署的MULTICS項目密切相關。
Unix的出現源于貝爾實驗室的兩位軟件工程師Ken Thompson(肯.湯姆森)與Dennis Ritchie(丹尼斯.里奇)。在Linux出現之前,Unix操作系已經得到廣泛的應用。Linux和Unix的設計有很多相似之處。
Unix系統內核短小精悍,但性能優異。在20世紀70年代,源代碼公開,因此,它的應用范圍變得十分廣泛,遍布與科研院所、高校、工作站、PC、服務器等。Unix具有高安全性與穩定性、良好的伸縮性、強大的TCP/IP支持功能、良好的可移植性。Unix的優秀的設計思想和理念深深影響著Linux的開發。
Minix系統:20世紀70年代,Unix系統是免費的。但隨著它的廣泛應用,它由一個免費軟變成一個商用軟件。因此,需要花費高昂的源碼許可證費用才能獲得Unix系統的源代碼,并且Unix對硬件性能的要求也較高。
1987年,荷蘭教授Andrew S.Tanenbaum(安德魯.坦尼鮑姆)利用業余時間開發了一個微型的Unix系統-Minix,主要用于教學和研究。
Minix系統:與Unix系統不同,它對硬件的要求不高,可以運行在廉價的PC上。Linux就是在Minix的基礎上開發和設計的。
Internet:20世紀80年代中期,Internet形成,所有用戶可以通過互聯網相互交流和獲取信息。
無數的程序員通過互聯網參與了Linux的技術改進與測試工作。
GNU計劃:Linux的發展史和GNU計劃(GNU Is Not Unix)緊密聯系在一起。Linux內核從一開始就大量使用了來自麻省劍橋自由軟件基金會的GNU的軟件。20世紀80年代,自由軟件運動興起。
自由軟件:任何人都有共享和修改自由軟件的自由。
任何人有權取得、修改和重新發布自由軟件的源代碼,并且規定在不增加附加費用的條件下可以得到自由軟件的源代碼。
“自由軟件”的獨特之處在于不受任何商品化軟件的版權制約,全世界都能自由使用。
3.GNU計劃:自由軟件“四大自由”即運行軟件的自由,獲得源代碼修改軟件的自由,發布軟件的自由,發布后修改軟件的自由。GNU計劃是自由軟件基金會的一個項目,該項目的目標是開發一個自由的類Unix操作系統,包括內核、軟件開發工具和各種應用程序。
4.Linux的誕生:起源于一個芬蘭赫爾辛基大學計算機系的學生——芬蘭人(李納斯·托沃茲)
Linux操作系統特點:開放性,高效性,遵循POSIX標準,多用戶多任務,良好的用戶界面,X-Window圖形界面,設備獨立性,提供豐富的網絡功能,支持Internet,文件傳輸,遠程訪問,可靠的系統安全性, 良好的可移植性。
5.設備獨立性:是指操作系統把所有外部設備統一當作成文件來看待。
6.Linux系統組成:基本組成包括Linux內核,Linux Shell,Linux文件系統,Linux應用程序等幾部分。
Linux版本
內核版本:(kernel)版本號:3.19
發行版本:(distribution)=內核+tools
常見套件:Red Hat Linux,Red Flag Linux,SuSE Linux,Fedora Linux,Dedian Linux,Ubuntu
第二章
1.什么是虛擬機?虛擬機是指通過軟件來模擬具有完整硬件系統功能的,運行在一個完全隔離環境中的完整計算機系統。
第三章
1.操作系統的接口分為用戶接口和程序接口兩大類。用戶接口中又包括命令行用戶接口和圖形用戶接口。
2.Shell命令接口由一組命令和命令解釋程序Shell組成。
3.X Window是Linux系統的視窗系統,著名的桌面環境GNOME和KDE也都是以X Window系統為基礎建構成的。X Window系統的核心概念,是客戶/服務器架構。只要組成成分是X Server、X Client和X Protocol,即X服務器、X客戶端和X協議。
4.X Window系統組成
X Server:是X系統的核心,其運行在有顯示設備的主機上,是服務器端。
X Client:凡是需要在屏幕上進行圖形界面顯示的程序都可看做X Client,其是以請求的方式讓X Server管理圖形化界面。
X Protocol:即X協議,它是X Client和X Server之間通信時所遵循的一套規則,規定了通信雙方交互信息的格式和順序。
分區命名
Linux系統使用字母和數字的組合來指代磁盤空間。
命名方案基于文件的,格式為/dev/xxyN。
/dev/:所有設備文件所在的目錄名。
xx:分區名的前兩個字母標明分區所在設備的類型。hd(IDE磁盤Integrated Drive Electronics )或sd(SCSI磁盤Small Computer System Interface )
y:標明分區所在的設備。/dev/hda (第一個IDE磁盤)
N:代表分區。主分區或擴展分區用數字1-4表示,邏輯分區從5開始。例如/dev/hda3;/dev/sdb5
系統調用接口是由一系列的系統調用函數構成的“特殊”接口。程序員或應用程序通過這個特殊的接口取得操作系統內核提供的服務,它是專為程序員編程時使用,是應用程序與系統內核通訊的橋梁。
API(Application Programming Interface),即應用程序接口。通過該接口,程序員可以間接地訪問到系統硬件和操作系統資源。
第四章
1.ls命令 ls -l /etc ?| head -5
功能:列出當前目錄下的所有內容。格式:ls選項 文件名或目錄名
選項:
-s顯示每個文件的大小
-S按文件的大小排序
-a顯示目錄中全部文件,包括隱藏文件
-l使用長列表格式,顯示文件詳細信息
-t按文件修改的時間排序顯示
黑:普通文件。綠:可執行文件。紅:代表tar包文件,即Linux下的壓縮打包文件。藍:目錄文件。水紅:圖像文件。青:鏈接文件。黃:設備文件。
drwxr-xr-x ?2 ?ubuntu ?ubuntu ?100 ?2012-10-24 ?Desktop了解7部分含義(P60)
第一行“total 4”:當前目錄下文件的總和為4KB。
每一行可以分為7部分來解釋(第二行開始)。
“drwxr-xr-x”的含義
第一個字符有3中情況,“-”表示普通文件,d代表目錄,b代表設備文件。
后面的9個字符每3個字符為一組,分別代表文件所有者、文件所有者所在的用戶組、其他用戶對文件擁有的權限。每組中3個字符分別代表讀、寫、執行的權限。
“2”:代表當前目錄下的目錄文件的數目。
“ubuntu”:代表這個文件(目錄)的屬主是用戶“ubuntu”。
“ubuntu”:代表這個文件(目錄)所屬的用戶組為組ubuntu。
“100”:代表文件(目錄)的大小為100字節。
“2012-10-24 15:17”:文件(目錄)修改時間。
“Desktop”:代表文件(目錄)的名字。
目錄:/root:啟動Linux時使用的一些核心文件。如操作系統內核、引導程序Grub等。
/home:存儲普通用戶的個人文件 。
/bin:執行文件(二進制)的目錄
/sbin :可執行程序的存放目錄,但大多存放涉及系統管理的命令。只有root權限才能執行
/usr:應用程序存放目錄
/lib :支持位于/bin和/sbin下的二進制文件的庫文件
/dev :設備文件的存放目錄
/etc :配置文件的存放目錄
/var:放置系統執行過程中經常變化的文件
2.cd命令
功能:轉換用戶所在的目錄。格式:cd路徑名(Cd ..代表回退到上一層)“..代表上層目錄”、“~代表當前用戶的宿主目錄”、“/代表回到根目錄”、“-代表前一目錄”
3.pwd命令
功能:顯示當前工作目錄的絕對路徑。格式:pwd
4.mkdir命令
功能:創建一個新目錄。格式:mkdir選項 目錄名
-m權限 對新建目錄設置存取權限。權限777,744,755等
-p 一次性建立多級目錄,即以遞歸形式建立目錄
rmdir命令
功能:刪除一個空目錄
格式:rmdir [-p]目錄名
5.touch命令
功能:創建一個空文件。格式:touch文件名
6.cat命令
用法1:功能:顯示某文件的內容。格式:cat 選項 文件名
-n對文件中所有的行進行編號并顯示行號
-s將連續的空行壓縮為一個空行
在一個命令中執行顯示多個文件的內容,可以用“;”隔開。cat 文件名1;文件名2
用法2:功能:重復剛剛輸入的行。即顯示標準輸入內容。按Ctrl+D退出新文件的制作。
用法3:功能:制作一個新文件。格式:cat >新文件名
用法4:功能:cat實現文件的合并。格式:cat 文件名1 文件名2 > 文件名3
用法5:功能:給文件追加內容。格式:cat 文件名2 ?>> 文件名1
7.cp命令
功能:實現文件的復制。格式:cp選項 源文件 目標
(1)cp –r ???/home/ubuntu ??????/home/ubuntu1
(2)cp –r ??/home/ubuntu/ ?????/home/ubuntu1
(3)cp –r /home/ubuntu/* ????/home/ubuntu1
8.rm命令
功能:刪除指定文件。格式:rm選項 文件或目錄名
-i以安全詢問的方式進行刪除操作
-r/R遞歸處理,將指定目錄下的所有文件及子目錄一并處理
-f強制刪除文件或目錄
-v顯示指令執行過程
-d直接把欲刪除的目錄的硬連接數據刪成,刪除該目錄
rm命令可以結合通配符“*”實現刪除一類文件。
rm命令可以使用一條語句一次性刪除多個文件或目錄,文件名或目錄名之間用空格隔開。
9.mv命令
功能:實現文件的轉移。格式:mv文件名 路徑名
(1)mv /home/ubuntu/dir /home/ubuntu1
(2)mv /home/ubuntu/dir/ /home/ubuntu1
(3)mv /home/ubuntu/dir/* /home/ubuntu1
功能:實現文件夾或文件的重命名格式:mv目錄名或文件名 新目錄名或文件名
(1)mv /home/picture/pict.png /home/picture/pict1.png
(2)mv /home/picture ?/home/picture1
10.chmod命令
功能:修改文件的權限和文件的屬性。格式:chmod 文件使用者+/-/=權限類型 文件1…
文件使用者有四種類型:u:文件主,文件或目錄的所有者,g:文件主所在組群的用戶,o:其他用戶,a:所有用戶。
操作符號包括三種類型:+:代表增加權限,-:代表刪除取消權限,=:代表賦予給定的權限,并取消其他權限。
權限類型包括三種基本類型:r:代表只讀權限,w:代表寫權限,x:代表可執行權限。
(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] …
多個文件的壓縮,文件之間用空格隔開。
2.壓縮格式:gzip [-選項] 文件名
解壓gzip -d hello.txt
3.解壓.zip文件。它能夠將經過winzip壓縮的文件進行解壓操作。
格式:unzip [選項] 文件名.zip
-d 將文件解壓到指定目錄中
-v 查看文件目錄列表但不解壓
-n 不覆蓋原來已經存在的文件
-o 以默認方式覆蓋已經存在的文件
舉例:將當前目錄的file.zip文件進行解壓 unzip file.zip
舉例:只查看壓縮文件里的文件目錄,但不解壓。unzip–v file.zip
舉例:將file.zip文件解壓到/home/ubuntu/dir目錄下。 unzip –n file.zip –d /home/ubuntu/dir
zcat命令專門針對.gz后綴的壓縮文件進行查看。
bzcat是針對.bz2后綴的壓縮文件進行查看。
tar命令
功能:對文件或目錄進行打包備份或者解包操作。格式:tar–選項備份包的文件名要打包或解包的文件或目錄
-c創建新的打包文件
-x抽取.tar文件里的內容
-z打包后直接用gzip命令進行壓縮或解壓文件
-j打包后直接用bzip2命令進行壓縮或解壓文件
-t查看一個打包文件里的文件目錄
-f使用文件或設備
-v在打包壓縮或解包解壓后將文件的詳細清單顯示出來
舉例:將當前目錄下的文件hell.txt、number.txt打包后壓縮成new.tar.gz。
tar–czf new.tar.gz hell.txt number.txt
舉例:將當前目錄下的文件hell.txt、number.txt打包后壓縮成new.tar.bz2
tar–cjf new.tar.bz2 hell.txt number.txt
解壓縮
-xzf ??-xjf
12.mount命令
功能:掛載。格式:mount–t vfstype ?–o選項 ?device dir
舉例:掛載U盤
對Linux系統而言,把U盤當做SCSI設備對待。
插入U盤之前,應先用fdisk –l或more /proc/partitions命令查看系統的硬盤和硬盤分區情況。 fdisk -l
插入U盤后,再用fdisk –l或more /proc/partitions命令看系統的硬盤和硬盤分區情況。
會看到系統多了一個SCSI硬盤/dev/sdx(例如sdd)和一個磁盤分區/dev/sdx1 (例如sdd1) ,即為即將掛載的U盤。
建立一個目錄用來作掛載點。
mkdir–p /mnt/usb
使用掛載命令如下:
mount–t vfat /dev/sdd1 /mnt/usb
2.對Linux系統而言,USB接口的移動硬盤也是當做SCSI設備。
插入移動硬盤之前,應先用fdisk–l或more /proc/partitions查看系統的硬盤和硬盤分區情況。fdisk -l
接好移動硬盤后,再用fdisk–l或more /proc/partitions查看系統的硬盤和硬盤分區情況。
可以發現多了一個SCSI硬盤/dev/sdx和它的兩個磁盤分區/dev/sdx1和/dev/sdx2,其中/dev/sdx5是/dev/sdx2的邏輯分區。
建立目錄用來建立掛載
mkdir–p /mnt/usbhd1
mkdir–p /mnt/usbhd2
用mount命令建立掛載
mount–t ntfs /dev/sdc1 /mnt/usbhd1
mount–t vfat /dev/sdc5 /mnt/usbhd2
3.功能:卸載一個文件系統,它的使用權限是超級用戶。
格式:umount <掛載點|設備>
舉例:umount ?/mnt/usb
13.關機啟用命令
1)shutdown命令 功能:安全關機 格式:shutdown 選項 時間 警告信息
-h:將系統服務停掉然后安全關機
-r:將系統服務停掉然后安全重啟
-k:不真正關機,只是發出警告信息
-t:在規定的時間后關機
2)halt命令 功能:關機 格式:halt 選項(常用-f,用于控制強行關機)
3)poweroff命令 功能:關機 格式:poweroff
4)reboot命令 功能:重新啟動系統 格式:reboot
5)init命令 功能:切換Ubuntu的運行級別 格式:init 運行級別
init共有7個運行級別
0-停機
1-單用戶模式
2-多用戶,沒有NFS
3-完全多用戶模式(標準的運行級)
4-沒有用到
5-X11(x window)
6-重新啟動
init進程是系統啟動進程,它是系統啟動后的由內核創建的第一個進程,進程號為1。
舉例:系統在22:00關機
shutdown–h 22:00
舉例:系統在1min后重啟,并通知用戶進行保存操作。
shutdown–r +1 “system will be reboot after 1 minute”
14.su命令:轉換用戶sudo命令:超級管理員的身份執行某種操作:sudo passwd root
重新鎖定root用戶sudo passwd –l root
useradd命令:創建一個新用戶adduser zhang??passwd命令:修改用戶密碼
15.ifconfig命令功能:查看IP地址。 ifconfig eth0 192.168.0.1 netmask 255.255.255.0
ping命令功能:測試網絡是否暢通。ping -c5 127.0.0.1
16.more命令和less命令
功能:對文件內容或者查詢結果分屏顯示
格式:more選項 文件名 less 選項 文件名
Ls -l /bin | more
第五章
1.目錄是文件系統維護所需的特殊文件,它包含了一個項目列表。一個計算機系統中有成千上萬的文件,為了便于對文件進行存取和管理,計算機系統建立文件的索引,即文件和文件物理位置之間的映射關系,這種文件的索引稱為文件目錄。
文件系統是操作系統用于明確磁盤或分區上的文件的存儲方法和數據結構,即文件在磁盤上的組織方法。
文件系統由三部分組成:與文件管理有關的軟件、被管理的文件,以及實施文件管理所需數據結構。
2.Linux文件系統架構
1)設備驅動程序
2)實際文件系統
3)虛擬文件系統
4)緩存機制
3.Ext2的核心是兩個內部數據結構,即超級塊和i結點。
4.Ubuntu的目錄結構 (詳細參考P111)
/:Linux文件系統的根目錄
/bin:存放系統中的最常用的可執行文件(二進制文件)。系統所需要的那些命令位于此目錄,也是最小系統所需要的命令;例如?ls、cp、mkdir等命令。功能和/usr/bin類似,這個目錄中的文件都是可執行的,普通用戶都可以使用的命令。
/boot:存放Linux內核和系統啟動文件,包括Grub、lilo啟動程序。
/dev:存放所有設備文件,包括硬盤、分區、鍵盤、鼠標、USB、tty等。
/etc:存放系統所有配置文件,例如passwd存放用戶賬戶信息,hostname存放主機名等。/etc/fstab實現開機自動掛載,在里面寫入一些分區的信息,就能實現開機掛載分區。
/home:用戶主目錄的默認位置。
/lib:存放共享的庫文件,包含許多被/bin和/sbin中程序使用的庫文件。
/media:即插即用型存儲設備的掛載點自動在這個目錄下創建。例如USB盤系統自動掛載后,會在這個目錄下產生一個目錄;CDROM/DVD自動掛載后,也會在這個目錄中創建一個目錄,存放臨時讀入的文件。
/mnt:此目錄通常用于作為被掛載的文件系統的掛載點。
/opt:作為可選文件和程序的存放目錄,有些軟件包也會被安裝在這里,也就是自定義軟件包;有些用戶自己編譯的軟件包,就可以安裝在這個目錄中。
/proc:存放所有標志為文件的進程,它們是通過進程號或其它的系統動態信息進行標識。例如cpu、硬盤分區、內存信息等存放在這里。
/root:根用戶(超級用戶)的主目錄。
/sbin:超級權限用戶root的可執行命令存放地。
/srv:/tmp:臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。/var/tmp目錄和這個目錄相似。
/usr:用于存放于系統用戶直接有關的文件和目錄,如應用程序及支持系統的庫文件。
/var:通常用于存放長度可變的文件,例如日志文件和打印機文件。
存放系統所提供的服務數據。
絕對路徑:指文件的準確位置且以根目錄為起點。
相對路徑:相對路徑是相對于用戶當前的位置的一個文件或目錄的位置。
5.掛載與卸載文件系統(P113全看)
文件系統
文件系統是文件存放在磁盤等存儲設備上的組織方式。Linux系統能支持多種目前流行的文件系統,如EXT2、EXT3、FAT、FAT32、VFAT和ISO9660等。
Linux中文件是如何保存的?
硬盤先進行分區,然后進行格式化稱為文件系統,格式化后才能夠存儲資料。
格式化的過程就是將硬盤分割為一個一個的小單位(block),并依序編號。
block是資料存儲的最小單位,也就是存儲文件的地方。默認情況,其大小是4K。
如果一個文件是13k,那么這個文件就會占用4個block
當一個分區被格式化的時候,會產生inode編號,這些編號決定了這個分區可以存儲多少個文件,這是因為一個文件或者是目錄都會對應到一個inode。
這些inode會對應到一個表,這個表稱為:inode table。
inode table中記錄了這個inode所對應的文件的元數據(metadata)。
元數據的主要作用用來描述資料的屬性
這些屬性包括文件類型,權限、鏈接、UID、GID、文件大小、時間、 pointer值等,這些只是用來描述文件的屬性,而不是文件的內容。
如果要存取文件的內容,必須靠屬性中的pointer的值,才能存取到文件的內容,pointer就是指向這個屬性里面的值記錄了這個文件用到了那幾個block。
所以存取一個文件前,所以系統會先找到這個文件所對應的inode-no,然后讀取inode table,然后根據pointer的值得知這個文件存儲在那幾個block中。才能存取這個文件。
當我們存取文件的時候,我們是靠文件的名稱來存取這個文件的,但是電腦看不懂文件名稱,必須靠inode才能找到這個文件。
第六章
1.vi編輯器的工作模式:命令模式,插入模式,轉義模式。
三種模式轉換方式:P128
在命令模式下,輸入的任何字符vi都把它當作相應的命令執行。因此,輸入的字符并不在屏幕上顯示。
命令模式用于完成各種文本的修改工作。例如,可以對文件內容中的字符串進行剪切、復制、粘貼、替換等。
vi啟動之后首先進入命令模式,用戶可以使用編輯命令進入插入模式,進行文本的編輯。
在插入模式下,輸入的字符都是作為文件的內容顯示在屏幕上。
輸入完畢后,按Esc就可以回到命令模式。
在轉義模式下,光標停留在屏幕的最末行,以接受輸入的命令并執行。
該模式用于執行一些全局性的操作,如查找、替換、保存、退出文本等。
按Esc鍵后,回到命令模式,再輸入轉義字符 “:” ,就進入轉義模式。執行完相應的命令后,返回命令模式或退出vi編輯器。
2.在命令模式下,光標的移動命令。h、j、k、l:光標向左、下、上、右移動一個字符
常用的插入命令:
a:在光標位置后開始接收輸入。
A:在行尾后開始接收輸入。
i:在光標位置前開始接收輸入。
I:在行首后開始接收輸入。
o:在光標所在行之后開辟一個新的空行,并開始接收輸入。
O:在光標所在行之前開辟一個新的空行,并開始接收輸入。
添加文本:P128
刪除文本:x:刪除光標處的單個字符;X:刪除光標左邊的單個字符;D:刪除一行文本;dd:刪除光標所在行的文本,包括硬回車。2x:刪5dd:刪除5行。在命令模式下,可以按Delete鍵實現刪除光標處的字符,與x命令相同。
常用的替代命令:s:用輸入的新文本替換光標處的字符;S:用輸入的新文本替換光標所在行;r:用輸入的新字符替換光標處的字符;R:用輸入的新文本逐個替換從光標處開始的各個字符。
3.文本的剪切復制粘貼:yy:復制光標所在的行;y0:復制光標左邊的文本內容;y$:復制光標右邊的文本內容;p:粘貼文本到光標處;dd:剪切光標所在行的文本。5yy:復制五行
m,ny:復制m到n行
4.關鍵字的查找??:/my
字符串的替換(P137)執行替換命令s?;靖袷饺缦?/p>
[替換起始處,替換結束處] ??s/要被替換的字符串/替換的字符串/[g][c]
執行:1,$ s/is/are/g
5.保存與退出命令
:q:如果原文本未修改,不保存文件,直接退出vi。
:q !:不保存文件,強制退出。
:wq!:強制保存文件并退出。
:e!:放棄修改,編輯區恢復為文件原樣。
:w:保存當前文件。
在vi中依次打開兩個文件
輸入命令vi文件名1,打開一個文件1
在一打開的文件1中,按Esc鍵回到命令模式。
進入末行模式,輸入命令:sp文件名2
如果當前光標處于下面窗口的文件中,按Esc鍵,Ctrl+W鍵,鍵入k(j),是光標定位到上(下)面的窗口
區域復制打開某個文件,光標移動到需要復制的第一行
按Esc鍵,確保當前處于命令模式,在按Ctrl+V鍵。
使用小鍵盤上的上、下、左、右方向鍵,進行區域選取。
鍵入y,結束區域選取。
光標移至目標位置,鍵入p,實現區域復制
第八章
1.Linux系統中的用戶可以分為三種:超級用戶(root),管理用戶和普通用戶。
超級用戶是一個特殊用戶(UID=0),它可以訪問任何程序和文件。
管理用戶用于運行一定的系統服務程序,支持和維護相應的系統功能。這些用戶ID號位于1-999的范圍內。例如ftp就是一個管理用戶,用作FTP匿名用戶,維護匿名用戶的文件傳輸,同時提供匿名用戶的默認主目錄。
2.在了解Ubuntu系統用戶的添加與刪除前,首先了解兩個重要的系統文件,它們分別是/etc/passwd和/etc/shadow。
3.命令行方式下增加用戶
命令:useradd
sudo useradd–u 1001 –d /home/jack –m –s /bin/bash jack
增加成功后,還需要設置密碼,才能登陸。
命令行方式下刪除用戶
命令:userdel格式:userdel ?–r ?login
sudo userdel–r jack
Linux的組有私有組、系統組、標準組之分。
私有組:建立賬戶時,若沒有指定賬戶所屬的組,系統會建立一個和用戶名相同的組,這個組就是私有組,私有組只容納了一個用戶。
標準組:可以容納多個用戶,組中的用戶都具有組所擁有的權利。
系統組:是Linux系統自動建立的。
4.組的添加與刪除(P169)
1)系統文件/etc/group
2)命令行方式添加組
3)命令行方式刪除組
4)圖形界面方式添加刪除組
groupadd—添加組名
添加user組
???root@Ubuntu:~# groupadd user
添加組名可以手工編輯/etc/group文件來完成組的添加。
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—刪除組
[if !supportLists]5.[endif]軟件包包括了源程序軟件包和二進制軟件包。Ubuntu軟件包的主要格式是DEB格式。
源程序軟件包主要是源代碼以及二進制軟件包的制作方法。
二進制軟件包是經過封裝的可執行程序以及相關文檔和配置文件等,其提供格式通常是一種壓縮文檔,其中包含了軟件信息、程序文件、配置文件、幫助文檔、內容啟動腳本和控制信息等內容
apt-get、aptitude和synaptic等軟件管理工具都支持deb軟件包。
6.APT是Ubuntu軟件包管理系統的高級界面,是一個客戶/服務器系統。APT包括apt-get、apt-cache、apt-cdrom等處理軟件包的命令行工具組成。
aptitude是Debian GBU/Linux系統中的軟件包管理,它基于APT機制,整合了apt-get的所有功能。
新立德軟件包管理工具起源于Debian,它是dpkg命令的圖形化前端。
第九章
1.IP地址配置/etc/network/interfaces
查看到活動的接口,不顯示down掉的
ifconfig
查看所有網卡的配置,包括down掉的
ifconfig–a
查看特定網卡的配置
ifconfig eth0
配置eth0的IP地址
ifconfig eth0 192.168.84.132
使用ifconfig更改網卡地址和子網掩碼
ifconfig eth0 192.168.1.223 netmask 255.255.255.0
禁用特定網卡
ifdown eth0
或
ifconfig eth0 down
啟用特定網卡
ifup eth0 ?
或
ifconfig eth0 up
2.Ubuntu中的DNS基礎配置 /etc/resolv.conf
3.hosts文件 /etc/hostname
netstat–r 也可以查看路由表信息。
[if !supportLists]6.[endif]Ubuntu中安裝DHCP服務
使用hostname查看服務器名稱
hostname
使用ping測試網絡,ctrl+C中斷
ping 202.99.160.68
使用traceroute跟蹤數據包路徑
apt-get install traceroute
traceroute 202.99.160.68
使用nslookup測試域名解析
nslookup www.inhe.net
[if !supportLists]4.[endif]配置FTP服務器
FTP是TCP/IP網絡上的兩臺計算機互相傳送文件的協議。
FTP客戶機可以給服務器發出命令來下載文件、上傳、創建或改變服務上的目錄。
FTP服務一般運行在20和21兩個端口。端口20用于在客戶端和服務器之間傳輸數據流,而端口21用于傳輸控制流。
5.DHCP簡介:是一個局域網的網絡協議,使用UDP協議工作,主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網路管理員作為對所有計算機作中央管理的手段。
設置DHCP
FTP是TCP/IP網絡上的兩臺計算機互相傳送文件的協議。
FTP客戶機可以給服務器發出命令來下載文件、上傳、創建或改變服務上的目錄。
FTP服務一般運行在20和21兩個端口。端口20用于在客戶端和服務器之間傳輸數據流,而端口21用于傳輸控制流。
????auto eth0iface eth0 inet dhcp
用下面的命令使網絡設置生效:sudo /etc/init.d/networking restart
配置文件
/etc/dhcp3/dhcpd.conf
啟動與停止命令
/etc/init.d/hdcp3-server start
/etc/init.d/hdcp3-server stop
第十章
shell變量
本地變量(用戶自定義變量 )
位置變量即 shell script之參數
預定義變量(特殊變量)
環境變量
目前流行的shell有ash、bash、ksh、csh、zsh等,bash是Linux系統默認使用的shell。
cat ?/etc/shells
echo $SHELL
使用echo命令輸出單個變量的值,此時要在變量名前加$
????WEEK=Satur
echo Today is $WEEKday
輸出:Today is
使用花括號來告訴shell我們要顯示的變量:
??????echo Today is ${WEEK}day
輸出:Today is Saturday
環境變量用于所有用戶進程(經常稱為子進程)。環境變量應用于用戶進程前,必須用export命令導出。
舉例:先定義一個環境變量,編寫一個腳本引用
export A2=123
一個腳本中如果有
echo $A2
?位置變量參數如果要向一個shell腳本傳遞信息,可以使用位置參數完成此功能。傳入腳本的參數數目可以任意多,但只有前9個可以被訪問。
$0?? ??$1?? ??$2?? ????$3?? ?$4?? ???$5??? ????$6??? ? $7? ??$8? ??$9
腳本名字Did? ?You? ??See? ?The? ?Full? ??Moon
測試兩個文件是否均可寫
[ -w a.txt–a –w b.txt ]
???????echo $?
測試兩個數是否相等
NUMBER=130
[ $NUMBER–eq 130 ]
echo $?
let ?a=8 ?b=13
let c=a+b
echo“The value of c is $c.”
輸出結果:The value of c is 21.
語法:expr ??args
功能:計算args的值,并返回它的值到標準輸出
?var1=10
var1=‘expr $var1 + 1’
?echo $var1
輸出結果:11
注意:單引號‘ 應該用大鍵盤上TAB鍵上方1鍵的左邊的那個鍵,并且+兩邊要加空格
if…else…fi語句
#!/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語句
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語句
#!/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語句
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語句
#!/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比較字符串的長度是否大于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語句
1.#! /bin/bash
read–p “login name:” username
until [ $username=“ubuntu” ]
do
echo“sorry,name failted!”
read–p “login 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”
硬鏈接是把許多個不同的文件對應到同一個inode上,由于對應到同一個inode,所以這些文件會有相同的inode-table.這么作的目的在于:避免重要的資料被誤刪,因為當原本的文件被刪除時,可以通過硬鏈接找到inode-table,并找到這些文件被存儲在那些block中。
每一個分區的inode都是獨立的,所以不能把硬鏈接建立在其他的分區中。也不能建立目錄的鏈接(如果引入了對目錄的硬連接就有可能在目錄中引入循環,那么在目錄遍歷的時候系統會陷入無限循環當中)。
軟鏈接在使用上與硬鏈接相似,但是意義完全不同,軟鏈接的文件名只是一個符號,指向原文件,與Windows中的快捷方式一樣。
如果硬鏈接的原文件刪除,建立的硬鏈接可以使用。
如果軟鏈接的原文件刪除,建立的軟鏈接就會失效。
第十一章
[if !supportLists]1.?[endif]Eclipse的搭建(P233)
[if !supportLists]2.?[endif]GCC對源文件進行處理的具體過程(P246)
GCC的安裝sudo ?apt-get ?install ??build-essential
GCC編譯分為四個步驟:
預處理gcc -E c1.c -o c.i
GCC調用cpp程序進行預處理,即分析像#include、#define之類的命令。
編譯gcc -S c.i
GCC是調用ccl程序進行編譯的,它根據源代碼生成匯編語言。
匯編gcc -c c.s -o c.o
GCC調用as程序將上一步的結果生成擴展名為o的目標文件
連接gcc c.o -o c
GCC調用ld程序將目標文件進行連接,最后生成可執行文 件。
GNU的調試器稱為 GDB(GNU debuger),該程序是一個交互式工具,工作在字符模式,可用于源代碼級調試,以及跟蹤沒有源代碼的程序或檢查某個終止的程序留下的核心文件。
gcc -g test.c -o test
g++ -g test.cpp -o test
[if !supportLists]3.?[endif]make命令是UNIX下重要的編譯命令
Make通過讀入配置好的文本文件,并根據文本文件中預先定義的規則和步驟,完成代碼的編譯和鏈接工作,最終生成所需要的項目文件。這個文本文件在缺失情況下為makefile或Makefile。
Make在對項目文件進行編譯時, 會判斷文件的修改和生成時間。如果某源代碼文件在上次編譯后再次被修改,則make將只編譯該文件,而不會對整個重新編譯
c1.c程序為例,使用vi編寫makefile文件,內容如下:
????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,在宿主目錄下創建目錄perm,在該目錄下創建文件newfile,授予所有用戶對perm目錄都有rwx權限;切換到普通用戶ubuntu1,執行“rm /home/ubuntu/perm/newfile”是否可以執行。
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,在宿主目錄下創建文件newfile2,移動文件newfile2到perm目錄下同時改名為file01,然后,改變file01的文件權限為“rwxrw-r--”。
ls,touch newfile2,ls,mv newfile2 perm/file01,ls perm,chmod 764 /home/yang/perm/file01,ls perm
1.系統調用的意義:
a.系統調用接口是由一系列的系統調用函數構成的“特殊”接口。程序員或應用程序通過這個特殊的接口取得操作系統內核提供的服務,它是專為程序員編程時使用,是應用程序與系統內核通訊的橋梁。
b.通過系統調用來提供給用戶程序的根本原因是為了對系統進行“保護”。用戶可以通過和文件系統相關的系統調用,請求系統打開文件、關閉文件或讀寫文件等。
2. API與系統調用的關系:
a.通過API接口,程序員可以間接地訪問到系統硬件和操作系統資源。操作系統保護系統資源不被外界破壞,因此,當用戶需要對系統資源進行訪問時,就必須通過操作系統向用戶提供的接口才能實現用戶對系統資源的訪問,取得內核的服務。
b. API一般以函數定義的形式出現,如read()、abs()、malloc()等。但是API并不需要和系統調用一一對應,它們之間的關系可以是一對一、一對多、多對一或者無關系。
c.一對一關系,即API和系統調用的形式一致,如read()函數和read系統調用對應。
多對一關系,即幾種不同的API內部使用同一個系統調用,如malloc()、free()利用brk系統調用來擴大或縮小進程的堆。
無關系,某些API不需要任何系統調用,如abs()。
[if !supportLists]3.[endif]文件系統掛載
步驟1:打開虛擬機,查看當前磁盤信息: sudo fdisk –l。
步驟2: 關閉終端,添加一塊新硬盤,使用命令查看磁盤信息。
步驟3: 建立一個目錄,掛著硬盤,做一些文件操作。
sudo makedir /yyy
sudo mount /dev/sdb /yyy
步驟4:?卸載新掛載的硬盤,再查看相關目錄和文件,已經無法查看。
4.sudo useradd -u 1003 -d /home/newuser1 -m -s /bin/bash newuser1
5.DHCP是一個局域網得網絡協議,使用UDP協議工作,主要得兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機中央管理得手段。主要工作流程:(1)發現階段;(2)提供階段;(3)選擇階段;(4)確認階段;(5)重新登錄;(6)更新租約。
安裝命令:sudo apt-get install dhcp3-server
啟動命令: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”
增加執行權限
??????chmod u+x hello.sh
開始運行程序:
??????./hello.sh
7.#/bin/bash
read -p "Enter a full path:" MYPATH
if [ -d $MYPATH ]; then
echo -e "yes!"
HERE="$(ls $MYPATH)"
#分割為數組
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。下載操作系統的鏡像ISO文件
2.下載虛擬機并安裝
3.通過ISO文件安裝操作系統
4.執行相關配置即可
40.簡述在虛擬機中安裝Red Hat Linux 9.0 的過程
答;1。下載操作系統的鏡像ISO文件
2.下載虛擬機并安裝
3.通過ISO文件安裝操作系統
4.執行相關配置即可
2.在當前目錄/home/zheng下新建一個目錄back,將當前目錄改為back,在back下新建2個長度為0的文件test1、test2,然后把test2移到其父目錄中并改名為file12。
答:$ mkdir back
??$ cd back
$ touch ?test1 test2
$ mv ?test2 ??../file2
5.若給需要將/home/zheng目錄下的所有文件打包壓縮成/tmp/zheng.tar.gz,你準備怎么做?當需要從壓縮包中恢復時,又該如何處理?
答:#tar–zcvf ?/tmp/zheng.tar.gz ?/home/zheng
??#tar -zxvf /tmp/zheng.tar.gz
2. vi編輯器有哪幾種工作模式?如何在這幾種工作模式之間轉換?
答:Vi的工作模式有三種:命令模式、輸入模式、末行模式。3分
在命令模式下輸入a、A、i、I、o、O等命令之一可以進入輸入模式,在輸入模式下按Esc鍵回到命令模式;在命令模式下輸入:進入末行模式,末行命令執行完后回到命令模式。
3.什么是位置變量?shell的變量類型有哪些種?
位置變量是指命令行上傳遞給程序的參數。1分
Shell變量可以分為:用戶自定義變量、環境變量、位置變量、特殊變量 4分
1.在其父目錄不存在時先創建父目錄的命令。 ??mkdir ??–p
2.要使得名為fido的文件具有如下權限-r-xr-x—x的命令。chmod ??551 ??fido
3.在/root文件夾下查找后綴為.cpp的文件。find ??/root ??–name ??*.cpp
4.關閉linux系統(不重新啟動)使用的命令 ?halt
5.將光盤/dev/hdc卸載的命令 。umount ??/dev/hdc
1.若下達rmdir命令來刪除某個已存在的目錄,但無法成功,請說明可能的原因。
此目錄可能不存在,
或者目錄不為空,或者目錄中有隱含文件存在,
或者目錄被設置了權限,
解決方法就是先修改權限,在使用rm–r?? 命令刪除。
1.在/home目錄下查找文件名為。Profile的文件,找到后刪除
2.將test.tar.gz文件解壓縮
3.升級安裝wu-ftpd軟件包
4.創建一個用戶,用戶名為user02,所屬私有組和標準組為stuff,用戶家目錄為/home/user2,用戶登陸shell為/bin/bash。
5.賦予所有用戶讀和寫backup.tar.gz文件的權限:
參考答案:
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.敘述Linux操作系統的三個主要部分及其功能。(6分)
內核:內核是系統的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序。
命令解釋層:是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。
文件結構:是文件存放在磁盤等存儲設備上的組織方法,文件結構的相互關聯性使共享數據變得容易。
2. 分別敘述linux對IDE硬盤和usb接口的移動硬盤的各個分區如何表示?(6分)
hdxx,sdxx,
3.敘述什么是shell? 什么是X window?Redhat的默認shell和X window是什么?(6分)
Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。是一個命令解釋器,它可以用來啟動、掛起、停止、甚至編寫程序。
Xwindow選擇shell如何進行任務控制。是否支持命令行編輯。是否支持命令行歷史記錄,環境變量有哪些,什么是它的開機啟動文件或者配置文件,支持什么樣的編程框架?
是UNIX和Linux系統上的圖形用戶界面系統。
3 Linux的默認shell是bash,默認XWindow是XFree86
6. 利用vsftp配置FTP服務器,要求:(1)匿名用戶可以下載上傳文件;(2)本地用戶不允許登陸。寫出詳細的配置過程和配置選項。(8分)
(1)主要配置文件是/etc/lvsftpd/vsftpd.conf;將vsftpd.conf文件中的#anon-upload-enalle=Yes 前的“#“刪掉,并將/var/ftp/pub目錄設為同組和其它可寫權限。chmod go+w /var/ftp/pub↓
(2)用service ?vsftpd ?start(stop)(restart)命令啟動(關閉)(重啟)服務器。
8. 假設linux分配給光驅的設備名是/dev/cdrecord,敘述Linux如何在這個光驅上使用光盤。寫出詳細的命令步驟解釋。(7分)
(1) 插好U盤,用fdisr –l ?/dev/sda/ 命令查看U盤分區情況
(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.敘述Linux如何使用Windows系統硬盤(設備名為/dev/hda3,分區類型為fat32)上的文件,如何實現開機自動掛載windows硬盤。寫出詳細的步驟。(8分)
(1) 用fdisk ?-l ?/dev/had 命令查看硬盤分區中情況及文件系統情況,決定要掛裝Windows分區
(2) 建立掛裝目錄 ?mkdir ?/mnt/dos
(3) 掛裝Windows系統 mount –tvfat ?/dev/had/ ?/mnt/dos
(4) 瀏覽Windows文件系統 ?ls ?/mnt/dos
(5) 卸載:umount ?/mnt/dos
(6) ??打開/etc/fstab 添加一行
??????/dev/hda3 /mnt/hd vfat defaults 0 0
1.什么是Linux?其創始人是誰?Linux操作系統的誕生、發展和成長過程始終依賴著的重要支柱都有哪些?
答:Linux是一個功能強大的操作系統,同時它是一個自由軟件,是免費的、源代碼開放的,可以自由使用的類UNIX產品。其創始人是Linus。Linux操作系統的誕生、發展和成長過程始終依賴著的重要支柱有以下幾點:(1)UNIX操作系統;(2)MINIX操作系統;(3)GNU計劃;(4)POSIX標準;(5)Internet網絡。
2.試述如何創建一個用戶。
答:可使用命令useradd創建新用戶,但不能在系統中隨便創建用戶,需經相關部分批準后方能創建。對于長期或暫時不使用的用戶,應將其從系統中刪除或鎖定起來,以防非法使用。創建新用戶時可以使用命令useradd -d home newuser指定用戶家目錄,若不指定則使用默認的家目錄/home/newuser。一般情況下,當一個用戶被創建之后,只有超級用戶為它設置密碼后才能被啟用或登錄使用。
3. Linux系統有幾種類型文件?它們分別是什么?有哪些相同點和不同點?
答:3類。分別是普通文件,目錄文件和設備文件。相同是它們都是文件,都有一個文件名和i節點號。不同點是,普通文件的內容為數據,目錄文件的內容為目錄項或文件名與i節點對應表,設備文件不占用磁盤空間,通過其i節點信息可建立與內核驅動程序的聯系。
4.綜述Linux系統的文件權限及其管理。
答:Linux用文件存取控制表來解決存取權限的控制問題。存取控制表以文件為單位,把用戶按某種關系畫分為若干組,同時規定每組用戶的存取權限。每個文件都有一張存取控制表。在實現時,該表存放在文件說明中,也就是i節點的文件權限項。
就某個文件而言,它只對三類用戶(文件主,同組人,其它人)分配權限。權限的修改或分配可通過命令chmod來實現。當然chmod和chgrp等命令也有著權限控制作用,因為文件的主和組變了,它相應的權限也會隨之改變。
5.在UNIX/Linux系統中,環境變量是非常重要,在字符界面下試說明:
(1) PATH變量的作用,如何得到PATH的值?
(2)在UNIX/Linux系統的超級用戶的環境變量PATH中允許包含當前目錄嗎?
(3)若在超級用戶的當前目錄內有可執行文件mypro,如何執行它(寫出執行時鍵盤輸入內容)?
(4)如何使用該命令在后臺執行(寫出執行時鍵盤輸入內容)?
答:(1) PATH為命令搜索路徑,可用echo $PATH命令顯示;(2)UNIX/Linux的PATH變量內不允許包含當前路徑(.);(3)./mypro;(4)./mypro &