umask
1.作用
umask設置用戶文件和目錄的文件創(chuàng)建缺省屏蔽值,若將此命令放入profile文件,就可控制該用戶后續(xù)所建文件的存取許可。它告訴系統(tǒng)在創(chuàng)建文件時不給誰存取許可。使用權限是所有用戶。
2.格式
umask [-p] [-S] [mode]
3.參數(shù)
-S:確定當前的umask設置。
-p:修改umask 設置。
[mode]:修改數(shù)值。
4.說明
傳統(tǒng)Unix的umask值是022,這樣就可以防止同屬于該組的其它用戶及別的組的用戶修改該用戶的文件。既然每
個用戶都擁有并屬于一個自己的私有組,那么這種“組保護模式”就不在需要了。嚴密的權限設定構成了Linux安全的基礎,在權限上犯錯誤是致命的。需要注
意的是,umask命令用來設置進程所創(chuàng)建的文件的讀寫權限,最保險的值是0077,即關閉創(chuàng)建文件的進程以外的所有進程的讀寫權限,表示為-rw---
----。在~/.bash_profile中,加上一行命令umask 0077可以保證每次啟動Shell后, 進程的
umask權限都可以被正確設定。
5.應用實例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先顯示當前狀態(tài),然后把umask值改為177,結果只有文件所有者具有讀寫文件的權限,其它用戶不能訪問該文件。這顯然是一種非常安全的設置。
Linux的系統(tǒng)安全命令
雖
然Linux和Windows NT/2000系統(tǒng)一樣是一個多用戶的系統(tǒng),但是它們之間有不少重要的差別。對于很多習慣了Windows系統(tǒng)
的管理員來講,如何保證Linux操作系統(tǒng)安全、可靠將會面臨許多新的挑戰(zhàn)。本文將重點介紹Linux系統(tǒng)安全的命令。
passwd
1.作用
passwd命令原來修改賬戶的登陸密碼,使用權限是所有用戶。
2.格式
passwd [選項] 賬戶名稱
3.主要參數(shù)
-l:鎖定已經命名的賬戶名稱,只有具備超級用戶權限的使用者方可使用。
-u:解開賬戶鎖定狀態(tài),只有具備超級用戶權限的使用者方可使用。
-x, --maximum=DAYS:最大密碼使用時間(天),只有具備超級用戶權限的使用者方可使用。
-n, --minimum=DAYS:最小密碼使用時間(天),只有具備超級用戶權限的使用者方可使用。
-d:刪除使用者的密碼, 只有具備超級用戶權限的使用者方可使用。
-S:檢查指定使用者的密碼認證種類, 只有具備超級用戶權限的使用者方可使用。
4.應用實例
$ passwd
Changing password for user cao.
Changing password for cao
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
從上面可以看到,使用passwd命令需要輸入舊的密碼,然后再輸入兩次新密碼。
su
1.作用
su的作用是變更為其它使用者的身份,超級用戶除外,需要鍵入該使用者的密碼。
2.格式
su [選項]... [-] [USER [ARG]...]
3.主要參數(shù)
-f , --fast:不必讀啟動文件(如 csh.cshrc 等),僅用于csh或tcsh兩種Shell。
-l , --login:加了這個參數(shù)之后,就好像是重新登陸為該使用者一樣,大部分環(huán)境變
量(例如HOME、SHELL和USER等)都是以該使用者(USER)為主,并且工作目錄也會改變。如果沒有指定USER,缺省情況是root。
-m, -p ,--preserve-environment:執(zhí)行su時不改變環(huán)境變數(shù)。
-c command:變更賬號為USER的使用者,并執(zhí)行指令(command)后再變回原來使用者。
USER:欲變更的使用者賬號,ARG傳入新的Shell參數(shù)。
4.應用實例
變更賬號為超級用戶,并在執(zhí)行df命令后還原使用者。 su -c df root
umask
1.作用
umask設置用戶文件和目錄的文件創(chuàng)建缺省屏蔽值,若將此命令放入profile文件,就可控制該用戶后續(xù)所建文件的存取許可。它告訴系統(tǒng)在創(chuàng)建文件時不給誰存取許可。使用權限是所有用戶。
2.格式
umask [-p] [-S] [mode]
3.參數(shù)
-S:確定當前的umask設置。
-p:修改umask 設置。
[mode]:修改數(shù)值。
4.說明
傳統(tǒng)Unix的umask值是022,這樣就可以防止同屬于該組的其它用戶及別的組的用戶修改該用戶的文件。既然每
個用戶都擁有并屬于一個自己的私有組,那么這種“組保護模式”就不在需要了。嚴密的權限設定構成了Linux安全的基礎,在權限上犯錯誤是致命的。需要注
意的是,umask命令用來設置進程所創(chuàng)建的文件的讀寫權限,最保險的值是0077,即關閉創(chuàng)建文件的進程以外的所有進程的讀寫權限,表示為-rw---
----。在~/.bash_profile中,加上一行命令umask 0077可以保證每次啟動Shell后, 進程的
umask權限都可以被正確設定。
5.應用實例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先顯示當前狀態(tài),然后把umask值改為177,結果只有文件所有者具有讀寫文件的權限,其它用戶不能訪問該文件。這顯然是一種非常安全的設置。
chgrp
1.作用
chgrp表示修改一個或多個文件或目錄所屬的組。使用權限是超級用戶。
2.格式
chgrp [選項]... 組 文件...
或
chgrp [選項]... --reference=參考文件 文件...
將每個<文件>的所屬組設定為<組>。
3.參數(shù)
-c, --changes :像 --verbose,但只在有更改時才顯示結果。
--dereference:會影響符號鏈接所指示的對象,而非符號鏈接本身。
-h, --no-dereference:會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統(tǒng)支持更改符號鏈接的所有者,此選項才有效)。
-f, --silent, --quiet:去除大部分的錯誤信息。
--reference=參考文件:使用<參考文件>的所屬組,而非指定的<組>。
-R, --recursive:遞歸處理所有的文件及子目錄。
-v, --verbose:處理任何文件都會顯示信息。
4.應用說明
該命令改變指定指定文件所屬的用戶組。其中group可以是用戶組ID,也可以是/etc/group文件中用戶組
的組名。文件名是以空格分開的要改變屬組的文件列表,支持通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。
5.應用實例
改變/opt/local /book/及其子目錄下的所有文件的屬組為book,命令如下:
$ chgrp - R book /opt/local /book
chmod
Chmod使用格式:
Chmod [參數(shù)][模式]<文件或目錄>
參數(shù):-R:改變目錄及其所有子目錄的文件權限。
舉例:
#chmod u+x inittab
#chmod ug+wx,o-x inittab
#chmod 0644 inittab
#chmod 0755 inittab
#chmod –R 700 ~
目錄權限的補充說明:
1、目錄的只讀訪問不允許使用cd進入目錄,必須要有執(zhí)行的權限才能進入。
2、只有執(zhí)行權限只能進入目錄,不能看到目錄下的內容,要想看到目錄下的文件名和目錄名,需要可讀權限。
3、一個文件能不能被刪除,主要看該文件所在的目錄對用戶是否具有寫權限,如果目錄對用戶沒有寫權限,則該目錄下的所有文件都不能被刪除,文件所有者除外
對
特殊位的舉例說明: 操作這些特殊位與操作文件權限的命令是一樣的, 都是 chmod. 有兩種方法來操作, 1) chmod u+s temp
: 為temp文件加上setuid標志. (setuid 只對文件有效) chmod g+s tempdir
:為tempdir目錄加上setgid標志 (setgid 只對目錄有效) chmod o+t tempdir :
為temp文件加上sticky標志 (sticky只對目錄有效)
2) 采用八進制方式. 對一般文件通過三組八進制數(shù)字來置標志, 如 666, 777, 644等. 如果設置這些特殊標志, 則在這組數(shù)字之外外加一組八進制數(shù)字. 如 4666, 2777等.
設
置完這些標志后, 可以用 ls -l 來查看. 如果有這些標志, 則會在原來的執(zhí)行標志位置上顯示. 如 rwsrw-r--
表示有setuid標志 rwxrwsrw- 表示有setgid標志 rwxrw-rwt 表示有sticky標志
那么原來的執(zhí)行標志x到哪里去了呢? 系統(tǒng)是這樣規(guī)定的, 如果本來在該位上有x, 則這些特殊標志顯示為小寫字母 (s, s, t). 否則,
顯示為大寫字母 (S, S, T)
1.作用
chmod命令是非常重要的,用于改變文件或目錄的訪問權限,用戶可以用它控制文件或目錄的訪問權限,使用權限是超級用戶。
2.格式
chmod命令有兩種用法。一種是包含字母和操作符表達式的字符設定法(相對權限設定);另一種是包含數(shù)字的數(shù)字設定法(絕對權限設定)。
(1)字符設定法
chmod [who] [+ | - | =] [mode] 文件名
◆操作對象who可以是下述字母中的任一個或它們的組合
u:表示用戶,即文件或目錄的所有者。
g:表示同組用戶,即與文件屬主有相同組ID的所有用戶。
o:表示其它用戶。
a:表示所有用戶,它是系統(tǒng)默認值。
◆操作符號
+:添加某個權限。
-:取消某個權限。
=:賦予給定權限,并取消其它所有權限(如果有的話)。
◆設置mode的權限可用下述字母的任意組合
r:可讀。
w:可寫。
x:可執(zhí)行。
X:只有目標文件對某些用戶是可執(zhí)行的或該目標文件是目錄時才追加x屬性。
s:文件執(zhí)行時把進程的屬主或組ID置為該文件的文件屬主。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位。
t:保存程序的文本到交換設備上。
u:與文件屬主擁有一樣的權限。
g:與和文件屬主同組的用戶擁有一樣的權限。
o:與其它用戶擁有一樣的權限。
文件名:以空格分開的要改變權限的文件列表,支持通配符。
一個命令行中可以給出多個權限方式,其間用逗號隔開。
(2) 數(shù)字設定法
數(shù)字設定法的一般形式為: chmod [mode] 文件名
數(shù)字屬性的格式應為3個0到7的八進制數(shù),其順序是(u)(g)(o)文件名,以空格分開的要改變權限的文件列表,支持通配符。
數(shù)字表示的權限的含義如下:0001為所有者的執(zhí)行權限;0002為所有者的寫權限;0004為所有者的讀權限;
0010為組的執(zhí)行權限;0020為組的寫權限;0040為組的讀權限;0100為其他人的執(zhí)行權限;0200為其他人的寫權限;0400為其他人的讀權
限;1000為粘貼位置位;2000表示假如這個文件是可執(zhí)行文件,則為組ID為位置位,否則其中文件鎖定位置位;4000表示假如這個文件是可執(zhí)行文
件,則為用戶ID為位置位。
3.實例
如果一個系統(tǒng)管理員寫了一個表格(tem)讓所有用戶填寫,那么必須授權用戶對這個文件有讀寫權限,可以使用命令:#chmod 666 tem
上面代碼中,這個666數(shù)字是如何計算出來的呢?0002為所有者的寫權限,0004為所有者的讀權限,0020為
組的寫權限,0040為組的讀權限,0200為其他人的寫權限,0400為其他人的讀權限,這6個數(shù)字相加就是666(注以上數(shù)字都是八進制數(shù)),結果見
圖1所示。
圖1 用chmod數(shù)字方法設定文件權限
從圖1可以看出,tem文件的權限是-rw-rw-rw-,即用戶對這個文件有讀寫權限。
如果用字符權限設定使用下面命令:
#chmod a =wx tem
chown
1.作用
更改一個或多個文件或目錄的屬主和屬組。使用權限是超級用戶。
2.格式
chown [選項] 用戶或組 文件
3.主要參數(shù)
--dereference:受影響的是符號鏈接所指示的對象,而非符號鏈接本身。
-h, --no-dereference:會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統(tǒng)支持更改符號鏈接的所有者,此選項才有效)。
--from=目前所有者:目前組只當每個文件的所有者和組符合選項所指定的,才會更改所有者和組。其中一個可以省略,這已省略的屬性就不需要符合原有的屬性。
-f, --silent, --quiet:去除大部分的錯誤信息。
-R, --recursive:遞歸處理所有的文件及子目錄。
-v, --verbose:處理任何文件都會顯示信息。
4.說明
chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或用戶ID;組可以是組名或組ID;文件是以空
格分開的要改變權限的文件列表,支持通配符。系統(tǒng)管理員經常使用chown命令,在將文件拷貝到另一個用戶的目錄下以后,讓用戶擁有使用該文件的權限。
5.應用實例
1.把文件shiyan.c的所有者改為wan
$ chown wan shiyan.c
2.把目錄/hi及其下的所有文件和子目錄的屬主改成wan,屬組改成users。
$ chown - R wan.users /hi
chattr
1.作用
修改ext2和ext3文件系統(tǒng)屬性(attribute),使用權限超級用戶。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目錄
3.主要參數(shù)
-R:遞歸處理所有的文件及子目錄。
-V:詳細顯示修改內容,并打印輸出。
-:失效屬性。
+:激活屬性。
= :指定屬性。
A:Atime,告訴系統(tǒng)不要修改對這個文件的最后訪問時間。
S:Sync,一旦應用程序對這個文件執(zhí)行了寫操作,使系統(tǒng)立刻把修改的結果寫到磁盤。
a:Append Only,系統(tǒng)只允許在這個文件之后追加數(shù)據(jù),不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統(tǒng)將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。
i:Immutable,系統(tǒng)不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那么任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
D:檢查壓縮文件中的錯誤。
d:No dump,在進行文件系統(tǒng)備份時,dump程序將忽略這個文件。
C:Compress,系統(tǒng)以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之后的數(shù)據(jù);而向這個文件中寫入數(shù)據(jù)時,數(shù)據(jù)首先被壓縮之后才寫入磁盤。
s:Secure Delete,讓系統(tǒng)在刪除這個文件時,使用0填充文件所在的區(qū)域。
u:Undelete,當一個應用程序請求刪除這個文件,系統(tǒng)會保留其數(shù)據(jù)塊以便以后能夠恢復刪除這個文件。
4.說明
chattr命令的作用很大,其中一些功能是由Linux內核版本來支持的,如果Linux內核版本低于2.2,那
么許多功能不能實現(xiàn)。同樣-D檢查壓縮文件中的錯誤的功能,需要2.5.19以上內核才能支持。另外,通過chattr命令修改屬性能夠提高系統(tǒng)的安全
性,但是它并不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var目錄。
5.應用實例
1.恢復/root目錄,即子目錄的所有文件
# chattr -R +u/root
2.用chattr命令防止系統(tǒng)中某個關鍵文件被修改
在Linux下,有些配置文件(passwd ,fatab)是不允許任何人修改的,為了防止被誤刪除或修改,可以設定該文件的“不可修改位(immutable)”,命令如下:
# chattr +i /etc/fstab
sudo
1.作用
sudo是一種以限制配置文件中的命令為基礎,在有限時間內給用戶使用,并且記錄到日志中的命令,權限是所有用戶。
2.格式
sudo [-bhHpV] [-s <shell>] [-u <用戶>] [指令]
sudo [-klv]
3.主要參數(shù)
-b:在后臺執(zhí)行命令。
-h:顯示幫助。
-H:將HOME環(huán)境變量設為新身份的HOME環(huán)境變量。
-k:結束密碼的有效期,即下次將需要輸入密碼。
-l:列出當前用戶可以使用的命令。
-p:改變詢問密碼的提示符號。
-s <shell>:執(zhí)行指定的Shell。
-u <用戶>:以指定的用戶為新身份,不使用時默認為root。
-v:延長密碼有效期5分鐘。
4.說明
sudo命令的配置在/etc/sudoers文件中。當用戶使用sudo時,需要輸入口令以驗證使用者身份。隨后
的一段時間內可以使用定義好的命令,當使用配置文件中沒有的命令時,將會有報警的記錄。sudo是系統(tǒng)管理員用來允許某些用戶以root身份運行部分/全
部系統(tǒng)命令的程序。一個明顯的用途是增強了站點的安全性,如果需要每天以超級用戶的身份做一些日常工作,經常執(zhí)行一些固定的幾個只有超級用戶身份才能執(zhí)行
的命令,那么用sudo是非常適合的。
ps
1.作用
ps顯示瞬間進程 (process) 的動態(tài),使用權限是所有使用者。
2.格式
ps [options] [--help]
3.主要參數(shù)
ps的參數(shù)非常多, 此出僅列出幾個常用的參數(shù)。
-A:列出所有的進程。
-l:顯示長列表。
-m:顯示內存信息。
-w:顯示加寬可以顯示較多的信息。
-e:顯示所有進程。
a:顯示終端上的所有進程,包括其它用戶的進程。
-au:顯示較詳細的信息。
-aux:顯示所有包含其它使用者的進程。
4.說明
要對進程進行監(jiān)測和控制,首先要了解當前進程的情況,也就是需要查看當前進程。ps命令就是最基本、也是非常強大的
進程查看命令。使用該命令可以確定有哪些進程正在運行、運行的狀態(tài)、進程是否結束、進程有沒有僵尸、哪些進程占用了過多的資源等。圖2給出了ps-aux
命令詳解。大部分信息都可以通過執(zhí)行該命令得到。最常用的三個參數(shù)是u、a、x。下面就結合這三個參數(shù)詳細說明ps命令的作用:ps
aux
圖2 ps-aux命令詳解
圖2第2行代碼中,USER表示進程擁有者;PID表示進程標示符;%CPU表示占用的CPU使用率;%MEM占用的物理內存使用率;VSZ
表示占用的虛擬內存大??;RSS為進程占用的物理內存值;TTY為終端的次要裝置號碼。
STAT表示進程的狀態(tài),其中D為不可中斷的靜止(I/O動作);R正在執(zhí)行中;S靜止狀態(tài);T暫停執(zhí)行;Z不存在,但暫時無法消除;W沒有
足夠的內存分頁可分配;高優(yōu)先序的進程;N低優(yōu)先序的進程;L有內存分頁分配并鎖在內存體內 (實時系統(tǒng)或 I/O)。START為
進程開始時間。TIME為執(zhí)行的時間。COMMAND是所執(zhí)行的指令。
4.應用實例
在進行系統(tǒng)維護時,經常會出現(xiàn)內存使用量驚人,而又不知道是哪一個進程占用了大量進程的情況。除了可以使用top命令查看內存使用情況之外,還可以使用下面的命令:
ps aux | sort +5n
who
1.作用
who顯示系統(tǒng)中有哪些用戶登陸系統(tǒng),顯示的資料包含了使用者ID、使用的登陸終端、上線時間、呆滯時間、CPU占用,以及做了些什么。 使用權限為所有用戶。
2.格式
who - [husfV] [user]
3.主要參數(shù)
-h:不要顯示標題列。
-u:不要顯示使用者的動作/工作。
-s:使用簡短的格式來顯示。
-f:不要顯示使用者的上線位置。
-V:顯示程序版本。
4.說明
該命令主要用于查看當前在線上的用戶情況。如果用戶想和其它用戶建立即時通信,比如使用talk命令,那么首先要確
定的就是該用戶確實在線上,不然talk進程就無法建立起來。又如,系統(tǒng)管理員希望監(jiān)視每個登錄的用戶此時此刻的所作所為,也要使用who命令。who命
令應用起來非常簡單,可以比較準確地掌握用戶的情況,所以使用非常廣泛。
動手練習
1.使用Linux命令檢測系統(tǒng)入侵者
安裝過Mandrake Linux和Red Hat Linux的用戶都會知道,
Linux系統(tǒng)會內置三種不同級別(標準、高、更高)的防火墻,當進行了Linux服務器的安裝和一些基本的設置后,服務器應該說是比較安全的,但是也會
有黑客通過各種方法利用系統(tǒng)管理員的疏忽侵入系統(tǒng)。如何快速查找黑客非常重要。一般來說,可以使用命令查詢黑客是否入侵,見表1。
表1 查詢黑客入侵現(xiàn)象的命令對應表
舉例說明,如果黑客嗅探網(wǎng)絡,那么它必須使網(wǎng)卡接口處于混雜模式,使用下面命令進行查詢:
#ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
......
從這個命令的輸出中,可以看到上面講到的這些概念。第一行的00:00:E8:A0:25:86是mac地址,第二
行的192.168.1.7是IP地址,第四行講的是接收數(shù)據(jù)狀態(tài),這時正在被黑客嗅探。一般而言,網(wǎng)卡有幾種接收數(shù)據(jù)幀的狀態(tài),如Broadcast、
Multicast、Promiscuous等。Broadcast是指接收所有類型為廣播報文的數(shù)據(jù)幀;Multicast是指接收特定的組播報文;
Promiscuous則是通常說的混雜模式,是指對報文中的目的硬件地址不加任何檢查、全部接收的工作模式。
2.限制su命令的濫用
我們知道,超級用戶在Linux中有最大的權利,幾乎所有黑客都想得到這個目標。Linux可以增加對切換到超級用
戶的限制。使用PAM(Pluggable Authentication Modules)可以禁止除在wheel組以外的任何人
su成root,修改/etc/pam.d/su文件,除去屏蔽標識#。使用/usr/sbin/usermod G10
bjecadm將bjecadm這個賬號加入gid為10的組,就是wheel組。命令如下:
/etc/pam.d/su # 使用密碼驗證#
auth sufficient /lib/security/pam_wheel.so debug
# 限制只有wheel組用戶才可以切換到root#
auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外,每當用戶試圖使用su命令進入系統(tǒng)用戶時,命令將在/usr/adm/sulog文件中寫一條信息,若該文件記錄了大量試圖用su進入root的無效操作信息,則表明了可能有人企圖破譯root口令。
Linux命令有著強大的功能。對于Linux系統(tǒng)管理員來說,往往只需要通過各種安全命令技巧,組合構成安全防線。從計算機安全的角度看,世界上沒有絕對安全的計算機系統(tǒng),Linux系統(tǒng)也不例外。
其他信息列述
1.1 Linux操作系統(tǒng)概述
開放性的系統(tǒng)
多用戶多任務的系統(tǒng)
具有出色的穩(wěn)定性和速度性能
具有可靠的系統(tǒng)安全性
提供了豐富的網(wǎng)絡功能
標準兼容性和可移植性
提供了良好的用戶界面
Linux系統(tǒng)的組成
Kernel(內核)和版本
Linux 發(fā)行套件
Linux Shell
Linux 文件系統(tǒng)
Linux 文件系統(tǒng)標準結構
1.2 紅旗Linux的安裝
1.2.1 安裝前的準備
1.2.2 使用安裝光盤從CD-ROM安裝
1.2.3 使用Linux啟動盤從硬盤安裝
1.2.1 安裝前的準備
收集計算機硬件信息
規(guī)劃硬盤空間
選取工作站類型:至少需要1.2G左右空間;最多需要1.5G左右空間。
選取服務器類型:至少需要650M左右空間,最多需要1.2G左右空間。
選取便攜式類型:與工作站類型所需空間相當。
選取自定義類型:至少需要350M左右空間,最多需要2.4G左右空間。
規(guī)劃網(wǎng)絡配置信息
1.2.2 使用安裝光盤從CD-ROM安裝
設置CMOS
安裝
安裝紅旗linux
Server和Workstation模式:自動分割硬盤
Custom:手工分割 ? Mount Point
/ ? root根分區(qū)(建議:256MB)
SWAP ?交換分區(qū)(建議:略小于實際內存2倍)
/usr:? 安裝軟件存放位置(建議:2.5GB)
/home:? 視用戶多少而定
/var:? 存放臨時文件(建議:256MB)
/boot: ? 存放啟動文件(建議:32MB)
1.2.3 Linux的其他安裝方式
本地安裝
遠程網(wǎng)絡安裝
使用Linux啟動盤從硬盤安裝
制作啟動軟盤
1、在DOS下創(chuàng)建:
進入dosutils子目錄,運行rawrite程序 。
輸入../images/boothd.img 。
2、在linux下創(chuàng)建:
#dd if=/images/boothd.img of=/dev/fd0 bs=1440
修改CMOS設置中的引導順序
明確系統(tǒng)文件在硬盤中的存放位置
使用Linux安裝啟動盤從遠程FTP服務器安裝
遠程網(wǎng)絡安裝Linux系統(tǒng)的方法和本地硬盤安裝類似,也需要制作啟動軟盤。制作啟動軟盤的步驟和前面相同,唯一不同的是制作啟動軟盤時使用的軟盤鏡像文件是bootnet.img。
1.3、linux安裝須具備的知識
磁盤的標識:
IDE硬盤:/dev/hdxx:其中第一個X表示第幾塊硬盤,采用a、b、c、d分別對應四塊硬盤,第二個X表示分區(qū),1-4表示主分區(qū)或擴展分區(qū),邏輯分區(qū)從5開始。
SCSI硬盤:/dev/sdxx
光盤:/dev/cdrom
軟盤:/dev/fd0
1.4 Linux運行級別和系統(tǒng)的啟動和關閉
21.4.1 Linux的運行級別和切換
21.4.2 Linux的啟動過程
1.4.1 Linux的運行級別和切換
Linux的運行級別
Linux運行級別的切換
Linux的啟動、關閉和重新啟動
Linux的運行級別
Linux運行級別的切換
在inittab文件中,操作initdefault將在系統(tǒng)初始化之后啟動預設的運行級別,用戶可以通過更改此項設置來改變系統(tǒng)的預設運行級別。
用戶也可以在系統(tǒng)運行過程當中來改變系統(tǒng)的運行級別,方法是用init命令,后面加上要切換到的運行級別。
Linux的啟動、關閉和重新啟動
linux啟動
紅
旗linux在啟動過程中首先加載Linux內核,在內存中執(zhí)行內核操作,檢查硬件,掛載根文件系統(tǒng),然后啟動init進程。init進程就會根據(jù)
inittab文件中的設置來使系統(tǒng)進入預設的運行級別,讀取相關的配置文件和腳本程序,最后啟用相關服務,完成整個系統(tǒng)的啟動。
Linux的重啟方法
Reboot
Init 6
Ctrl+alt+delete
Shutdown –r time [warning-message]
如:#shutdown –r +3 “system will be down in 3 minites,please save you work”
#shutdown –r now
#shutdown –r 03:15
Linux關機的方法
Halt
Init 0
Shutdown –h time [warning-message]
如:#shutdown –h now
1.5 Linux的初步使用
1.5.1 Linux的字符運行方式
1.5.2 linux的圖形界面
1.5.3 常見問題
1.5.1 Linux的字符運行方式
登錄和注銷 :
超級用戶登錄后的操作提示符是“#”;普通用戶登錄后的操作提示符是“$”
若要注銷登錄,用戶可以在當前的登錄終端上輸入logout命令或使用Ctrl+d熱鍵進行。
終端之間的切換采用:alt+f1—f7
1.5.2 linux的圖形界面
圖形界面下運行終端命令:rxvt
圖形界面切換到字符界面:ctrl+alt +f1—f6
圖形界面下的注銷:ctrl+alt+delete
圖形界面下的鎖定:ctrl+alt+L
1.5.3 常見問題
最基本的安全問題
root口令丟失的解決方法
刪除Linux操作系統(tǒng)
最基本的安全問題
如果機箱有鎖,應該上鎖,并保證鑰匙與機箱分離放置;
若機箱沒有鎖,如果必要,當正常運行后斷開電源按鈕和復位按鈕的連接線;
禁止三鍵熱啟功能,修改/etc/inittab,將此行注釋掉;
禁止BIOS中的軟驅啟動功能,并設置BIOS開機密碼;
禁止公開root密碼,若有多個系統(tǒng)管理員則應該避免root密碼的擴散;
必須準備引導軟盤以防硬盤無法啟動時使用。
root口令丟失的解決方法
使用單用戶模式 ,重設root密碼
在紅旗linux4桌面版中,在開始菜單中選3按e,再選2按e,把3改成1,回車再按b。
刪除Linux操作系統(tǒng)
首先要修改MBR,刪除LILO。
在DOS或Windows下用fdisk命令加上/mbr參數(shù)來完成 。
重新格式化ext3分區(qū)為FAT32分區(qū)或NTFS分區(qū)。
hls
查看公開信息
發(fā)送悄悄話給hls
給hls發(fā)送Email
查找hls發(fā)表的更多帖子
添加 hls 到好友列表
第2章:linux shell和常用命令
2.1 linux常用命令
2.2 shell
2.3 vi的使用
2.1 linux的常用命令
第一節(jié):文件目錄類命令
1、 查看聯(lián)機幫助信息
man 命令 如:#man ls
info 命令 如:#info cd
2、列出當前目錄或指定目錄的文件名和目錄名
ls [選項] 文件或目錄
常用[選項]如下:
-a:顯示所有的文件,包括以“.”開頭的隱含文件。
-l:長格式輸出
-m:寬行輸出
-F:以各種符號表示不同的文件類型
--color:彩色輸出
-R:遞歸輸出
3、touch
功能:修改文件的創(chuàng)建日期或以當前系統(tǒng)日期創(chuàng)建一個空文件。
-d:修改文件的日期。
#touch –d 20030123 test.txt
4、cp
功能:復制文件
用法:cp [選項] 源文件或目錄 目標文件或目錄
選項:
a: 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經存在的目標文件而不提示。
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認?;卮饄時目標文件將被覆蓋,是交互式拷貝。
- p 此時cp除復制源文件的內容外,還將把其修改時間和訪問權限也復制到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
5、mv
功能:給文件或目錄改名或將一個文件或目錄移到另一個目錄
用法:mv [選項] 源文件或目錄 目標文件或目錄
-i 交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統(tǒng)詢問是否重寫,要求用戶回答y或n,這樣可以避免誤覆蓋文件。
- f 禁止交互操作。在mv操作要覆蓋某已有的目標文件時不給任何指示,指定此選項后,i選項將不再起作用。
6、rm
功能:刪除文件或目錄
用法:rm [選項] 文件…
- f 強制刪除
- r 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除。
- i 進行交互式刪除
7、cd
功能:改變工作目錄。
語法:cd [directory]
用法:
#cd ..返回上一層目錄
#cd ~進入自家目錄
8、pwd
功能:顯示當前工作目錄
用法:#pwd
9、mkdir
功能:創(chuàng)建一個目錄(類似MSDOS下的md命令)。
語法:mkdir [選項] dir-name
- m 對新建目錄設置存取權限。也可以用chmod命令設置。
- p 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在, 加上此選項后, 系統(tǒng)將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
#mkdir –m a=rwx test
#mkdir –m u=rwx,g=rx,o=rx test1
#mkdir –m 755 test2
#mkdir –p test3/test4(test3和test4均為新目錄)
10、rmdir
功能:刪除空目錄。
語法:rmdir [選項] dir-name
- p 遞歸刪除目錄dirname,當子目錄刪除后其父目錄為空時,也一同被刪除。
11、file
功能:查看文件類型
語法:file 文件名
12、cat
功能:查看文本文件的內容
語法:cat 文件名
13、more
功能:分屏顯示文本文件的內容。
14、less
功能:顯示文本文件的內容,可使用pageup和pagedown上翻頁下翻頁。
15、head
功能:查看文件的開頭部分內容
語法:head [行數(shù)] 文件名
用法:#head test.txt:顯示前10行內容
#head -20 test.txt 顯示前20行內容。
16、tail
功能:查看文件的結尾部分內容。
語法:tail [行數(shù)] 文件名
默認的行數(shù)為10行。
17、sort
功能:對文本文件中的各行進行排序
用法:sort 文件名
例:#sort 123.txt >456.txt 將123.txt排序后重定向到456.txt文件中。
18、uniq
功能:將重復行從輸出文件中刪除,只留下每條記錄的唯一樣本
語法: uniq 文件名
#uniq 456.txt文件中的重復行刪除后輸出
19、pr
功能:處理文件以便打印,輸出到標準輸出
語法:pr [參數(shù)] 文件名列表
[參數(shù)]
-d:將輸出的每一行后加一新的空白行
-n:輸出行號
如:#pr –n 123.txt
20、ln
功能:建立鏈接文件
語法:ls [-s] 源文件名 目標文件名
說
明:鏈接文件分為硬連接和軟連接,硬連接相當于一個數(shù)據(jù)源有兩個文件名,刪除一個文件另一個文件不變,修改一個文件的內容另一個文件的內容也跟著改變。硬
連接不能和另一個目錄鏈接,也不能和其他文件系統(tǒng)的文件進行鏈接。軟鏈接相當于快捷方式,沒有上面的限制,加-s參數(shù)創(chuàng)建軟鏈接。
21、wc
功能:統(tǒng)計文件的行數(shù)、字符數(shù)和單詞數(shù)。
語法:wc [-lwc] 文件名
-l: 只顯示行數(shù),-w:只顯示單詞數(shù),-c:只顯示字符總數(shù)。
22、whatis
功能:可以用一行內容顯示對命令行后輸入的關鍵詞的說明。
語法:whatis 關鍵詞
用法:#whatis find whereis
23、Whereis
功能:確定指定文件的源程序/二進制程序和手冊部分的位置。
用法:#whereis ls
24、which
功能:顯示可執(zhí)行命令的路徑和它的別名。
用法:#which ls
25、locate
功能:可以查找具體文件或命令的路徑,可以查找具體的字符串或子串
用法:locate 文件名或關鍵字
26、du
功能:統(tǒng)計文件和目錄所占用的磁盤空間
語法:du [-ask] 文件名或目錄名
-a:顯示對涉及到的所有文件的統(tǒng)計,而不僅僅統(tǒng)計目錄
-s:只打印出合計數(shù)
-k:以kB字節(jié)數(shù)顯示
Find使用范例
find . -name ls.txt
find . -name ls.txt –print
find / -name ‘c??’ –print
find / -name ‘f*’ –print
find . -name ‘f*’ –exec ls –l {} \;
find . -name f\* –ok rm {} \; (交互式提問)
find . -perm 644 –mtime 4
find . -name ‘c??’ –o -name ‘d??’
28、grep
功能:在文件中搜尋匹配的行并進行輸出
語法:grep [參數(shù)]<要找的字串><原文件>
-num:輸出匹配行前后各num行的內容
-A num:輸出匹配行后num行的內容
-B num:輸出匹配行前num行的內容
-i:忽略大小寫的區(qū)別
-v:只顯示出那些不包括某字串的行和文件,和默認的相反
二、文件壓縮和歸檔類命令
1、gzip
功能:是一種壓縮程序,特點是可以得到最佳的壓縮率,但速度較慢。
語法:gzip [-vd9] 文件名
-v:冗長型選項,可以顯示每個文件的大小等
-d:解壓
-9:產生最佳壓縮效果,但速度較慢。
2、gunzip
功能:可以把壓縮的文件解壓成原始文件狀態(tài),可以解壓擴展名為.gz,.z,.Z和.tgz等類型的壓縮文件
語法:gunzip [-v] 文件名
-v:顯示解壓縮文件的冗長結果
3、tar
功能:可以歸檔多個文件和目錄到一個.tar文件下,還可以從一個歸檔文件中抽取一個文件和目錄。
語法:tar [-c][-r][-t][-x][-v][-z][f 文件名] 文件和目錄名
-c:創(chuàng)建歸檔文件
-r:增加文件到歸檔文件中
-t:查看歸檔文件中的文件
-x:解開歸檔文件
-v:顯示冗長信息
-z:進行壓縮和解壓
如: #tar –cvf back.tar 文件1 目錄1 文件2
#tar –rvf back.tar 文件3
#tar –tf back.tar
#tar –xvf back.tar
#tar –czvf back.tar.gz 文件1 目錄1 文件2
#tar –xzvf back.tar.gz
4、安裝以rpm方式提供的軟件
Rpm(the red hat package manager)是一個開放的軟件包管理系統(tǒng)。
功能:可以安裝和卸載RPM包的軟件
#rpm –ivh *.rpm 安裝RPM包;
#rpm –ivh –force *.rpm 在原先安裝的基礎上再強行安裝一次;
#rpm –Uvh *.rpm 升級rpm包
#rpm –qa 查找列出系統(tǒng)中所有安裝的rpm包
#rpm –q sendmail:查看sendmail包的情況
#rpm –ql sendmail:查看sendmail安裝的位置
#rpm –e *.rpm 卸載rpm包
#rpm - qlp name.rpm 查看name.rpm有哪些文件
#rpm - qf name.rpm 查看已經裝好的文件屬于哪個rpm包
#rpm2cpio filename.rpm 使用“rpm2cpio”來從RPM文檔中提取文件
5、安裝以源代碼方式提供的軟件
(1)、解包解壓:
#tar –xzvf *.tar.gz 解包解壓后會在當前目錄下建立一個子目錄,如xxxx
(2)、#cd xxxx
(3)、#./configure
(4)、#make
(5)、#make install
三、系統(tǒng)狀態(tài)類命令
1、dmesg
功能:顯示引導時內核顯示的狀態(tài)信息
#dmesg |grep -4 “eth0”顯示狀態(tài)信息中與eth0相關的前后4行內容
2、uname
功能:顯示當前的系統(tǒng)信息
#uname -a
3、uptime
功能:顯示當前時間,自從上次重新引導之后系統(tǒng)運行的時間,服務器和多少用戶鏈接以及系統(tǒng)前1、5、15分鐘的負載信息。
4、who
功能:顯示當前登錄在系統(tǒng)上的用戶信息。
-r:查看系統(tǒng)運行等級
-w,在登錄賬號后面顯示一個字符來表示用戶的信息狀態(tài):
+:允許寫信息; -:不允許寫信息; ?:不能找到終端設備
5、w
功能:查看其他登錄的用戶(who增強版)
第一行輸出內容:當前時間,系統(tǒng)啟動到現(xiàn)在的時間,登錄用戶的數(shù)目,系統(tǒng)在最近1秒、5秒和15秒的平均負載
第二行輸出內容:登錄賬號、終端名稱、遠程主機名、登錄時間、空閑時間、JCPU、PCPU、當前正在運行進程的命令行。
*JCPU時間指的是和該終端(tty)連接的所有進程占用的時間
*PCPU時間則是指當前進程(即在WHAT項中顯示的進程)所占用的時間
6、whoami
功能:顯示當前用戶名
7、hostname
功能:顯示系統(tǒng)的主機名
8、cal [月份] [年份]
功能:顯示日歷
9、bc
功能:計算器,使用quit退出
10、date
功能:顯示或修改日期時間。
11、df
功能:報告文件系統(tǒng)磁盤空間的使用情況
語法:df[參數(shù)]
[參數(shù)]
-h:用常見的格式顯示出大?。ɡ纾?K,23M,2G等)
-t:只顯示指定類型的文件系統(tǒng)
12、free
功能:查看當前內存和交換空間的使用情況
四、網(wǎng)絡類命令
1、write
功能:向另外一個用戶發(fā)信息,以Ctrl+D作為結束,普通用戶發(fā)信息受到mesg狀態(tài)影響。
語法:write <用戶名>
2、wall
功能:向所有用戶廣播信息,普通用戶受到mesg狀態(tài)影響。
語法:wall [message]
3、mesg
功能:顯示或設置是否接受其他用戶發(fā)來的信息。
語法:mesg [參數(shù)]
[參數(shù)]
y:接受從其他用戶發(fā)來的信息
n:不接受從其他用戶發(fā)來的信息
#mesg
顯示當前是否接受其他用戶發(fā)來的信息
4、ping
功能:通過檢查網(wǎng)絡中其他主機的應答信息,來確認網(wǎng)絡的連通性。
語法:ping [參數(shù)] 主機名(或ip地址)
參數(shù):
-c count:共發(fā)出count次信息。
-R:顯示路由表的詳細信息
5、telnet
功能:遠程登錄
語法:telnet [<主機名>][:端口號]
6、ifconfig
功能:配置網(wǎng)絡接口
語法:
ifconfig [interface] [up][down][netmask mask]
#ifconfig
#ifconfig eth0 192.168.0.3 netmask 255.255.255.0 up
7、netstat
功能:顯示本地系統(tǒng)的網(wǎng)絡連接狀態(tài)
語法:netstat [-a][-r][-c][-i]
-a:顯示所有本地系統(tǒng)中的網(wǎng)絡連接
-r:顯示路由表
-c:顯示連續(xù)的網(wǎng)絡連接狀態(tài)
-i:顯示全部網(wǎng)絡接口信息。
8、ftp
功能:文件傳輸
語法:ftp [<主機名>]
子命令:
:列出所有的FTP命令;
pwd:顯示遠程主機的當前目錄
lcd:切換和顯示本機主機的當前目錄
ls:列出遠程主機當前目錄下的內容
!dir:列出本機主機的當前目錄下的內容
cd:切換遠程主機的目錄
get:下載一個文件
mget:成批下載文件
put:上傳一個文件
mput:成批上傳文件
prompt:使用mget和mput時是否采用交互式詢問
bye:中止一個FTP連接
open:打開一個FTP連接
close:關閉一個FTP連接
binary:采用二進制模式傳輸
ascii:采用ascii模式傳輸
type:查看傳輸模式
2.2 shell
一、shell簡介
二、shell功能
一、shell簡介
(一)、定義:shell是用戶與操作系統(tǒng)內核之間的接口,具有命令解釋器和編程語言的雙重功能。
(二)、shell中的命令分為內部命令和外部命令,內部命令包含在shell自身之中的,如cd,exit等,查看內部命令的方法可用help命令;而外部命令是存在于文件系統(tǒng)某個目錄下的具體的可執(zhí)行程序,如cp等,查看外部命令的路徑可用which。
(三)、命令解釋過程
二、shell功能
(一)、命令行解釋
1、交互模式
2、后臺運行:如#fsck / &
(二)、通配符
*:表示任一串字符
?:表示任一個字符
[…]:匹配方括號內的任意字符
[!...]或[^…]:匹配除方括號內的任意字符
[a-zA-Z]:匹配首字符是字母的所有文件
(三)、重定向
1、>:輸出重定向 如:#ls >1.txt
2、>>:追加重定向
如:#cat /etc/inittab >>1.txt
3、<:輸入重定向 如#wc </etc/passwd
4、<<!...!:輸入重定向特例
如#wc <<!
hello
it is a nice day
!
5、2>:錯誤重定向
6、&>:同時實現(xiàn)輸出重定向和錯誤重定向
(四)、管道操作符 |
功能:把一個命令的輸出內容作為另外一個命令的輸入內容。
#ls |more:分屏顯示
#dmesg |grep eth0
(五)、命令替換符` `
功能:把一個命令的輸出內容作為另外一個命令的參數(shù)。
#cd `pwd`
#tar –cvf zsan.tar `find / -user “zsan”`
#tar –cvf conf.tar `ls /etc *.conf`
(六)、命令執(zhí)行順序
1、;按順序執(zhí)行命令 如#date;cal
2、&&邏輯與的關系,只有前面的命令執(zhí)行成功后面的命令才會被執(zhí)行。
如:#mail zsan@ <123.txt &&rm –fr 123.txt
3、||邏輯或的關系,只有前面的命令執(zhí)行失敗后面的命令才會被執(zhí)行。
如:#write zsan <123.txt ||mail zsan@ <123.txt
4、( )組合命令行中的命令,改變執(zhí)行順序
如:#date;cal|wc與#(date;cal)|wc
(七)、自動補全:在bash下輸入命令時不必把命令輸全,bash就能判斷出用戶所要輸入的命令,可通過tab鍵完成自動補全功能。
(八)、命令別名
功能:可以使工作變得輕松的工具
語法:alias [<別名>=“<原文件名>”]
#alias 顯示所有的別名
#alias md=“mkdir” 建立別名
#unalias md 取消別名
(九)、命令歷史
功能:可以記錄一定數(shù)目的以前在shell中輸入的命令以避免重復勞動
1、查看所有的歷史命令:#history
2、查看某條歷史命令:#history n
3、引用歷史命令:#!<命令編號>
2.3 vi的使用
一、編輯模式下的常用命令
1、0:移光標到當前行的行首
2、$:移光標到當前行的行尾
3、H:移光標到當前屏第一行的行首
4、M:移光標到當前屏中間行的行首
5、L:移光標到當前屏最后一行的行首
6、pageup、pagedown:上翻頁,下翻頁
7、ctrl+g:顯示狀態(tài)信息
8、X:刪除一個字符
9、dd:刪除或剪切光標所在的行
10、d0:刪除光標處到行首的內容
11、d$:刪除光標處到行尾的內容
12、u:取消上次命令
13、. :重復操作
14、YY:復制當前行
15、p:粘貼
二、命令狀態(tài)下操作:
1、:n 跳行
2、:w 保存
3、:q 退出(須先保存)
4、:w filename 另存為
5、:wq 保存退出
6、:q! 不保存強制退出
7、:a,b w filename 將a行到b行的內容另存為
8、:.,$ w filename 將當前行到行尾的內容另存為
9、:1,. W filename 將第一行到當前行的內容另存為
10、:/string 在全文中查找string字符串
11、:a,b s/string1/string2/g 將a行到b行之間的所有string1替換成string2
12、:% s/string1/string2/g 將全文中的string1替換成string2
13、:e filename 新建文件
14、: r filename 打開一個文件
15、:f filename 重命名當前文件
16、:n1,n2 co n3 將n1和n2行的內容復制到n3行位置上
17、:n1,n2 m n3 將n1和n2行的內容移到n3行的位置上
18、:n1,n2 d 將n1到n2行的內容刪除掉
19、:set number 設置行號
20、:set autoindent 設置自動縮進
21、:!Cmd 執(zhí)行shell命令
22、:r ! Cmd 將shell命令的執(zhí)行結果作為文件的內容
23、:sh 暫時退出vi到系統(tǒng)下,按ctrl+d結束
24、:X 文件保存退出前加密。
hls
查看公開信息
發(fā)送悄悄話給hls
給hls發(fā)送Email
查找hls發(fā)表的更多帖子
添加 hls 到好友列表
第三章:文件系統(tǒng)管理
3.1 文件系統(tǒng)概述
一、文件管理
(一)、文件的類型
1、普通文件:包括文本文件和二進制文件
2、目錄文件
3、鏈接文件:包括硬鏈接和軟鏈接。
4、特殊文件:
設備文件:包括字符類設備(如打印機)和塊設備(如硬盤)以及空設備(null)
管道文件:是一個先進先出(FIFO)的緩沖區(qū)。
文件類型及其代表字符
(二)、文件權限
1、chmod
功能:改變文件(目錄)的訪問權限
權限的表示法有兩種:
一是采用符號標記模式進行更改
二是采用八進制數(shù)指定新的訪問權限
符號表示法的格式:[ugoa][+-=][rwx]
u:表示文件的所有者;
g:表示文件所有者同組的用戶;
o:其他用戶
a:所有用戶
+:添加權限
-:撤消權限
=:指定權限
r:讀權限
w:寫權限
x:執(zhí)行權(或對目錄的訪問權)
八進制數(shù)字表示法:
用1—4個八進制數(shù)來表示,其中:
第一位:
用4表示setuid:設置使文件在執(zhí)行階段具有文件所有者的權限,如/usr/bin/passwd的權限設置 ;
用2表示setgid:該權限只對目錄有效. 目錄被設置該位后, 任何用戶在此目錄下創(chuàng)建的文件都具有和該目錄所屬的組相同的組;
用1
表示sticky bit :該位可以理解為防刪除位,一個文件是否可以被某用戶刪除, 主要取決于該文件所在的目錄是否對該用戶具有寫權限.
如果沒有寫權限, 則這個目錄下的所有文件都不能被刪除, 同時也不能添加新的文件. 如果希望用戶能夠添加文件但同時不能刪除別的文件,
則可以對目錄使用sticky bit位. 用戶對目錄設置該位后, 就算對目錄具有寫權限, 也不能刪除不屬于該用戶的文件。
第二位:用來設置文件所有者的權限,用4表示可讀,用2表示可寫,用1表示可執(zhí)行
第三位:用來設置文件所在組用戶的權限,用4表示可讀,用2表示可寫,用1表示可執(zhí)行
第四位:用來設置其他用戶的權限,用4表示可讀,用2表示可寫,用1表示可執(zhí)行。
Chmod使用格式:
Chmod [參數(shù)][模式]<文件或目錄>
參數(shù):-R:改變目錄及其所有子目錄的文件權限。
舉例:
#chmod u+x inittab
#chmod ug+wx,o-x inittab
#chmod 0644 inittab
#chmod 0755 inittab
#chmod –R 700 ~
目錄權限的補充說明:
1、目錄的只讀訪問不允許使用cd進入目錄,必須要有執(zhí)行的權限才能進入。
2、只有執(zhí)行權限只能進入目錄,不能看到目錄下的內容,要想看到目錄下的文件名和目錄名,需要可讀權限。
3、一個文件能不能被刪除,主要看該文件所在的目錄對用戶是否具有寫權限,如果目錄對用戶沒有寫權限,則該目錄下的所有文件都不能被刪除,文件所有者除外
對
特殊位的舉例說明: 操作這些特殊位與操作文件權限的命令是一樣的, 都是 chmod. 有兩種方法來操作, 1) chmod u+s temp
: 為temp文件加上setuid標志. (setuid 只對文件有效) chmod g+s tempdir
:為tempdir目錄加上setgid標志 (setgid 只對目錄有效) chmod o+t tempdir :
為temp文件加上sticky標志 (sticky只對目錄有效)
2) 采用八進制方式. 對一般文件通過三組八進制數(shù)字來置標志, 如 666, 777, 644等. 如果設置這些特殊標志, 則在這組數(shù)字之外外加一組八進制數(shù)字. 如 4666, 2777等.
設
置完這些標志后, 可以用 ls -l 來查看. 如果有這些標志, 則會在原來的執(zhí)行標志位置上顯示. 如 rwsrw-r--
表示有setuid標志 rwxrwsrw- 表示有setgid標志 rwxrw-rwt 表示有sticky標志
那么原來的執(zhí)行標志x到哪里去了呢? 系統(tǒng)是這樣規(guī)定的, 如果本來在該位上有x, 則這些特殊標志顯示為小寫字母 (s, s, t). 否則,
顯示為大寫字母 (S, S, T)
2、chown
功能:修改文件(目錄)所有者和組別
語法:
chown [參數(shù)]<用戶名[.組名]><文件或目錄>
參數(shù):-R:遞歸地修改目錄及其下面內容的所有權。
#chown zsan history.doc
#chown –R zsan.sales /home/zsan
3、chgrp
功能:改變文件的組所有權
格式:chgrp [參數(shù)]<組><文件或目錄>
[參數(shù)]:-R:遞歸地將指定目錄下的所有文件和子目錄的組名修改為指定的組。
#chgrp –R student /home/st01
4、umask
功能:用于設置文件的默認生成掩碼,告訴系統(tǒng)當創(chuàng)建一個文件或目錄時不應該賦予其哪些權限。
(三)ext2(ext3)文件系統(tǒng)安全選項
A:Atime。告訴系統(tǒng)不要修改對這個文件的最后訪問時間
S:
Sync。一旦應用程序對這個文件執(zhí)行了寫操作,使系統(tǒng)立刻把修改的結果寫到磁盤。 a:Append
Only。系統(tǒng)只允許在這個文件之后追加數(shù)據(jù),不允許任何進程覆蓋或者截斷這個文件。如果目錄具有這個屬性,系統(tǒng)將只允許在這個目錄下建立和修改文件,而
不允許刪除任何文件。
i:Immutable。系統(tǒng)不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那么任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
ext2(ext3)文件系統(tǒng)安全選項
d:No dump。在進行文件系統(tǒng)備份時,dump程序將忽略這個文件。
C:Compress。系統(tǒng)以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之后的數(shù)據(jù);而向這個文件中寫入數(shù)據(jù)時,數(shù)據(jù)首先被壓縮之后,才寫
入磁盤。 s:Secure Delete。讓系統(tǒng)在刪除這個文件時,使用0填充文件所在的區(qū)域。
u:Undelete。當一個應用程序請求刪除這個文件,系統(tǒng)會保留其數(shù)據(jù)塊以便以后能夠恢復刪除這個文件。
chattr修改文件屬性
chattr +i filename 設置i屬性
chattr –i filename 取消i屬性
lsattr 查看設置的屬性
二、linux支持的文件系統(tǒng):
Ext2或ext3文件系統(tǒng)
FAT(適用各種版本的DOS)
NTFS(適用Windows NT -- Windows 2000)
VFAT和FAT32(適用Windows 9x)
HFS(適用MacOS)
HPFS(適用OS/2)
Swap(交換分區(qū))
3.2 fdisk分區(qū)工具
#fdisk –l /dev/hda
#fdisk /dev/hda
:m 列出所有的分區(qū)命令
:p 顯示分區(qū)情況
:d 刪除原有的分區(qū)
:n 增加新分區(qū)
:t 改變分區(qū)類型
:l 查看分區(qū)類型
:a 設置活動分區(qū)
: w 保存退出
: q 不保存退出
3.3 使用mkfs創(chuàng)建文件系統(tǒng)
mkfs命令的格式是:mkfs 選項 設備名
例如:
mkfs –t ext2 –c /dev/hda2
-t:指定文件系統(tǒng)類型
-c:建立文件系統(tǒng)前先檢測有無壞塊
#mke2fs –c /dev/hda2
3.4 掛載和卸載文件系統(tǒng)
掛載文件系統(tǒng)
卸載文件系統(tǒng)
掛載文件系統(tǒng)
mount /dev/sdb1 /tmp/test1
mount /mnt/floppy
mount
注意
掛載目錄必須存在
Linux專門提供了掛載目錄/mnt
不要在掛載目錄下進行掛載操作
將軟盤或光盤放入驅動器后在實施掛載操作
卸載前不要取出軟盤或光盤
不能在同一個目錄下掛載兩個文件系統(tǒng)
卸載文件系統(tǒng)
umount /mnt/cdrom
umount /dev/sdb1
umount /tmp/test1
mount –a:卸載所有掛載設備
注意:不能在掛載目錄下進行卸載操作
3.5 軟盤、光盤、USB硬盤的使用
1、軟盤格式化:fdformat –n /dev/fd0H1440
2、建立文件系統(tǒng)
mkfs –t ext2 –c /dev/fd0H1440
3、掛載文件系統(tǒng)
mount –t ext2 /dev/fd0H1440 /mnt/floppy
4、使用
cp /etc/lilo.conf /mnt/floppy
mkdir /mnt/floppy/mydir1
5、卸載
umount /mount/floppy
1、掛載文件系統(tǒng)
mount –t iso9660 /dev/cdrom /mnt/cdrom
或
mount /mnt/cdrom
2、卸載
umount /mnt/cdrom
eject(彈出光盤)
USB硬盤的使用
USB硬盤在Linux系統(tǒng)下是被模擬成SCSI設備來使用的,因此對應的設備文件是/dev/sda,如果有多塊USB硬盤,則設備文件依次是/dev/sdb、/dev/sdc等。
用mount命令加-o loop選項掛載光盤鏡像文件
1、#mkdir /mnt/iso
2、#mount –o loop rfdesktop4.iso /mnt/iso
3.6在系統(tǒng)啟動時自動掛裝文件系統(tǒng)
要系統(tǒng)自動掛載文件系統(tǒng)必須修改系統(tǒng)配置文件/etc/fstab。系統(tǒng)啟動所要掛載的文件系統(tǒng)、掛載點、文件系統(tǒng)類型等都記錄在/etc/fstab文件里。
3.7 文件系統(tǒng)管理的常用命令
df:顯示文件系統(tǒng)的統(tǒng)計數(shù)據(jù)
du:顯示硬盤使用的統(tǒng)計信息
ln:創(chuàng)建鏈接文件
tar:文件打包
fsck:文件系統(tǒng)檢查命令
dd:文件拷貝命令
fsck
功能:檢查文件系統(tǒng)
語法:fsck [選項]<設備名>
選項:
-t fstype:檢查的文件系統(tǒng)類型
-A 檢查所有在/etc/fstab中列出的文件系統(tǒng)
-p:整理文件系統(tǒng),自動修正所有問題
注意:
1、當檢查一個文件系統(tǒng)時,應該確保處于未掛裝狀態(tài)
2、當要檢查根文件系統(tǒng)時,應該使用急救軟盤或安裝光盤重新引導機器后時行
fsck命令輸入的錯誤代碼
Linux引導盤的制作
#cd /lib/modules
#mkbootdisk --device /dev/fd0 2.4.20-8
制作引導盤的好處:
1、替代LILO
2、緊急情況下使用引導盤和急救盤恢復系統(tǒng)
3、當其他系統(tǒng)覆蓋了LILO
dd:文件拷貝命令
制作Linux安裝啟動盤
dd if=boot.img of=/dev/fd0 bs=1440k
制作redhat linux急救盤
#dd if=rescue.img of=/dev/fd0
rescue.img存放在redhat linux安裝光盤的images目錄中。
備份和恢復軟盤數(shù)據(jù)
dd if= /dev/fd0 of=backup
dd if=backup of= /dev/fd0
第四章:用戶管理
本章主要內容
4.1 用戶和組管理概述
4.2 用戶賬號的管理
4.3 組的管理
4.4 磁盤限額
4.1 用戶和組管理概述
一、賬號管理包括用戶的管理、組的管理和口令的管理
二、linux下的用戶分為三類:
1、超級用戶:超級用戶的uid和gid均為0
2、普通用戶:普通用戶的uid和gid是在500-60000范圍內的一個值
3、偽用戶:uid的值是在1-499之間,不能登錄,只是滿足系統(tǒng)管理的要求,如bin,sys,lp 等。
三、linux下的組分為標準組和私有組:
1、當在創(chuàng)建一個新用戶時,若沒有指定他所屬于的組,系統(tǒng)就會建立一個和該用戶同名的私有組;
2、標準組可以容納多個用戶,若使用標準組,在創(chuàng)建一個新的用戶時就可以指定他所屬于的組。
四、賬號系統(tǒng)文件
1、linux下的賬號系統(tǒng)文件主要有/etc/passwd,/etc/group,/etc/shadow ,這些文件只有超級用戶才可以修改
2、其他文件或目錄
(1)、默認設置文件
/etc/login.defs,/etc/default/useradd
(2)、默認設置目錄
/etc/skel
2.1 用戶賬號管理
一、創(chuàng)建新的用戶賬號系統(tǒng)將會
1、在/etc/passwd中添加一筆記錄
2、創(chuàng)建用戶的自家目錄
3、在用戶自家目錄中設置默認的配置文件
4、設置用戶初始口令
二、創(chuàng)建賬號
Useradd [<選項>]<用戶名>
[<選項>]
-u uid:指定新用戶的uid,默認為使用當前最大的uid加1
-g group:指定新用戶所在的組,該組必須已經存在
-G group:指定新用戶的附加組
-d dir :指定新用戶的自家目錄
-s shell:指定新用戶使用的shell,默認為bash,也可以使用chsh命令修改,/etc/shells
-c comment:說明新用戶的附加信息,如全名等
-e expire:指定用戶的登錄失交效時間,格式y(tǒng)yyy-mm-dd
-m 建立新用戶的自家目錄
-M 不建立新用戶的自家目錄
-R 建立一個系統(tǒng)用戶
舉例:
#useradd –g ll –e 12/31/2001 lei
#passwd lei
三、刪除已存在的用戶賬號
Userdel –r lei
-r :表示連同自家目錄一起刪除
四、修改用戶屬性
Usermod [<選項>]<用戶名>
其中[<選項>]和useradd中的選項基本相同,但增加
-l:更改用戶的賬號名
-L:鎖定用戶
-U:取消賬號鎖定
#usermod –l xjlei –d /home/xjlei –G girl lei
五、成為超級用戶
修改用戶的uid和gid為0即可。
命令:usermod –u 0 –o zsan
-o:強迫修改uid
六、禁用和恢復用戶帳戶
命令:passwd [<選項>]<用戶名>
[選項]
-l:鎖定用戶
-u:對被鎖定的用戶解鎖
-d:刪除用戶密碼
-S:查看用戶賬號的狀態(tài),如是否被鎖定等
七、切換到其他用戶
命令:su [-] [username]
說明:如果目錄用戶是普通用戶,則可以切換到超級用戶或其他普通用戶,但需要口令,如果目錄用戶是超級用戶,則可以直接切換到普通用戶,不需要密碼。
[-] :連同工作環(huán)境一起切換。
八、sudo
sudo是可以讓普通用戶執(zhí)行某個超級用戶執(zhí)行的程序,如:sudo vi /etc/shadow
所有這些配置項要保存在/etc/sudoers文件中
sudo文件中語法如下:
1、用Host_Alias關鍵字定義主機列表
如:Host_Alias RED=www,ftp
2、用User_Alias關鍵字定義用戶別名列表
如:User_Alias US=wdn,zsan
3、用Cmnd_Alias關鍵字定義命令別名列表
如:Cmnd_Alias CMDS=/bin/rm,/bin/chown
一個實例:/etc/sudoers
User_Alias US=wdn
User_Alias US1=lsi,wemz
User_Alias US2=zsan
US ALL=ALL
US1 ALL=/sbin/shutdown
US2 ALL=ALL,!/bin/su
4.3 組的管理
一、添加組
命令:groupadd [<選項>]<組名>
[選項]
-g gid:指定新組的gid,默認為使用當前最大的gid加1
-r:建立一個系統(tǒng)用戶組,不指定-g選項,則分配一個1-499之間的值
#groupadd –g 888 ll
二、刪除組
命令:groupdel <組名>
三、修改組的屬性
命令:groupmod [<選項>]<組名>
其中選項與groupadd選項基本相同,但增加一個-n選項,用于修改新的組名。
#groupmod –n girl ll
四、為標準組添加用戶
命令:gpasswd [選項][用戶][組]
-a:把用戶加入組
-d:把用戶從組中刪除
#gpasswd –a zsan sales
五、查看當前用戶屬于哪些組
groups [username]
六、切換到某組運行(必須已屬此組)
newgrp [group]
七、其他命令
1、id命令
功能:可以查看一個用戶的uid和gid
格式:id 用戶名
2、finger
功能:查看用戶的相關信息
格式:finger 用戶名
3、chfn
功能:修改用戶信息
格式:chfn 用戶名
4.4 磁盤限額
一、安裝磁盤限額
在安裝光盤中找到quota的rpm軟件包。如:
#rpm –ivh quota-version.i386.rpm
可用rpm –q quota查看是否安裝
二、啟用系統(tǒng)的quota功能
編輯etc/fstab,在要啟用磁盤限額的分區(qū)
(如/home)行中的添加相應參數(shù)如
/dev/hda6 /home ext3 rw defaults,usrquota,grpquota 0 2
三、創(chuàng)建quota文件
在/home分區(qū)中添加aquota.user和aquota.group文件
#touch aquota.user
#touch aquota.group
系統(tǒng)重啟,運行quotacheck –avug命令在配額文件中創(chuàng)建磁盤信息。
四、設置用和組的quota
對
一個用戶的磁盤使用限制有兩種,一種是軟限制(soft limit),一種是硬限制(hard
limit),硬限制是分配給用戶的最大磁盤空間,使用完了就立即拒絕用戶再存放文件,而當用戶的磁盤使用空間超過了軟限制時,在一定期限內仍可繼續(xù)存儲
文件,但系統(tǒng)會有警告。而這個期限可用edquota –t 來設置
1、為用戶設置quota
#edquota –u zsan
2、為組設置quota
#edquota –g sales
3、若為多個用戶重復設置quota
#edquota –p 參考用戶 待設置用戶
#edquota –p zsan lsi wdn
四、啟動quota
#quotaon -avug
五、查看磁盤限額的情況
#quota zsan
#quota –a
六、顯示有關quota的摘要信息
# repquota /home
hls
查看公開信息
發(fā)送悄悄話給hls
給hls發(fā)送Email
查找hls發(fā)表的更多帖子
添加 hls 到好友列表
第五章 進程管理
本章主要內容
5.1 進程的基本概念
5.2 進程的管理和監(jiān)控
5.3 進程的自動執(zhí)行
5.1 進程的基本概念
一、程序、進程和作業(yè)的概念
1、程序是機器指令的集合,一般以文件的形式存儲在磁盤上,是靜態(tài)的。
2、進程是一個程序在地址空間中的一次執(zhí)行活動,是動態(tài)的。
3、作業(yè)是指用戶提交給計算機進行加工的一項任務,是由用戶程序、數(shù)據(jù)以及某種形式的控制信息組成。
二、進程的類型
1、交互進程:由一個shell啟動的進程,既可以在前臺運行,也可以在后臺運行。
2、批處理進程:不與特定的終端相關聯(lián),提交到等待隊列中順序執(zhí)行進程。
3、守護進程:在linux啟動是初始化,需要時運行于后臺的一些服務進程。
三、進程的啟動方式:
1、手工啟動,分為前臺啟動和后臺啟動,通常情況下,我們執(zhí)行一個命令就會啟動一個進程。
#ls / –R >test 前臺啟動
#ls / -R >test & 后臺啟動
2、調度啟動:事先設置好,根據(jù)用戶要求讓系統(tǒng)自動啟動。
2.2 進程的管理和監(jiān)控
一、查看系統(tǒng)中的進程
1、ps [選項]
[選項]
-a 顯示所有用戶的進程,但不包括沒有控制終端的進程
-u 顯示用戶名和啟動時間
-x 顯示沒有控制終端的進程
PS命令輸出的重要信息的含義
PID:進程號
PPID:父進程的進程號
TTY:進程啟動的終端
STAT:進程當前的狀態(tài),S代表休眠,R代表運行,T代表追蹤或停止,Z代表僵尸進程,W代表進程沒有固定的pages,<表示高優(yōu)先級的進程,N代表低優(yōu)先級的進程。
TIME:進程自從啟動以來占用CPU的總時間
COMMAND/CMD:進程的命令名
USER:用戶名
%CPU:占用CPU的時間與總時間的百分比
%mem:占用內存與系統(tǒng)總內存的百分比
SIZE:進程代碼大小
二、控制系統(tǒng)中的進程
1、kill
功能:殺死一個進程
格式:kill -9 進程號
2、renice
功能:改變一個正在運行進程的優(yōu)先級
格式:renice –n pid
-n:進程的優(yōu)先級,大于0是降低優(yōu)先級,小于0是提高優(yōu)先級,優(yōu)先級的范圍是從19到-20
3、 nohup
功能:當用戶退出登錄后,進程仍然能夠在后臺繼續(xù)運行.
語法:nohup myprogram &
4、top
功能:以動態(tài)的方式顯示進程狀態(tài)
Top命令的顯示欄說明:
PID:進程號
User:進程的所有者
Pri:進程運行的優(yōu)先級
Ni:nice值,表示進程的優(yōu)先級
VIRT:進程占用的虛擬內存的總量
RES:進程占用的非swap內存的總量
SHR:和其他進程共享內存的總量。
S:進程的狀態(tài)
TIME+:進程的累積運行時間
Top中的子命令
l,t,m:調整顯示的摘要信息,l是平均負載,t是cpu狀態(tài),m是內存信息
f:用來添加、刪除顯示欄位
u:列出某個用戶的進程
n:設置顯示總進程數(shù)的最大值
k,r:k用來殺死某個進程,r是renice
q:退出TOP
5、進程的掛起和恢復
按ctrl+z可以暫停正在運行的進程,
執(zhí)行jobs可以顯示當前終端下有哪些程序在后臺運行以及哪些進程被掛起了。
執(zhí)行fg可以在前臺恢復一個被掛起的進程。
執(zhí)行bg可以在后臺恢復一個被掛成的進程。
5.3 進程的自動運行
1、at
功能:指定在某一時刻執(zhí)行命令
格式:at [選項] 時間
選項:
-l:列出已經排定的任務
-d n 刪除序號為n的任務
-v:顯示命令將被執(zhí)行的時間
時間表示法:
HH:MM 當天中的某小時、某分鐘,如果此時刻已經過去了,則推遲到下一天的這一時刻。
Midnight:午夜
noon:中午
MM/DD/YY:某月、某日、某年
now+計時:從現(xiàn)在起某時刻后,如now+3days表示從現(xiàn)在起,三天以后
2、batch
功能:任務會在系統(tǒng)負載較小的時候運行。
3、應用程序corn
對于要在每天或每周都要定期執(zhí)行的任務,則可以使用corn來排定。
格式:crontab –e
可以調動VI來編輯計劃任務表。如:
00 03 * * * rm –fr /ftp/incoming/temp/*
分鐘 小時 日 月 星期 命令
(00-59)(00-23)(01-31)(01-12)(01-07)
#crontab –l 查看用戶的計劃表
#crontab –r 刪除用戶的計劃表
4、linux自動安排系統(tǒng)維護任務
/etc/crontab
/etc/cron.daily
/etc/cron.monthy
/etc/cron.weekly
/etc/cron.hourly
雖然 GUI 桌面(如 KDE 和 GNOME)能夠幫助用戶利用 Linux 特性,而無需關于命令行接口的功能知識,但還是經常會需要更多的功能和靈活性。而且,基本熟悉這些命令對于在 shell 腳本中正確地使某些功能自動化仍然是必需的。
這
篇文章是關于 Linux
文件命令的一個“速成教程”,它是為那些剛接觸這個操作系統(tǒng)或者只是需要補充這方面知識的用戶提供的。它包含了對一些更有用的命令的一個簡明的概述以及關
于它們的最強大的應用的指導。下面包含的信息 — 結合一些實驗 — 將使您能夠容易地掌握這些基本的命令。(注意:當涉及到一個與 Oracle
集群文件系統(tǒng) (OCFS) 結合的內核時,這些命令中的某些命令的行為可能會稍微有所不同。在此情況下,Oracle 提供了一個 OCFS
工具集,該工具集可以為文件命令應用提供一個更好的選擇。)
注意,這里包含的所有示例都在 SUSE Linux 8.0 Professional 上進行了測試。雖然沒有理由相信它們在其它的系統(tǒng)上將不能工作,但如果出現(xiàn)問題,您應當查看您的文檔,以了解可能的變化。
背景概念
在深入研究規(guī)范之前,讓我們回顧一些基礎知識。
文件和命令
在 Linux/UNIX 操作系統(tǒng)中,所有事物都被當作文件來處理:硬件設備(包括鍵盤和終端)、目錄、命令本身,當然還有文件。這個奇怪的慣例實際上是 Linux/UNIX 的能力和靈活性的基礎。
大多數(shù)(幾乎是全部)的命令形式如下:
command [option] [source file(s)] [target file]
獲取幫助
最有用的命令之一是那些提供幫助的命令(特別是對那些學習 Linux 的人而言)。Linux 中的兩個重要的信息來源是聯(lián)機參考手冊,或 man 頁面和 whatis 工具。您可以用 whatis 命令來訪問一個不熟悉的命令的 man 頁面。
$ whatis echo
要了解關于這個命令的更多信息,可以使用:
$ man echo
如果您不知道某個特殊任務所需的命令,您可以用 man -k (也稱為 apropos)和一個主題來生成可能的命令。例如:
$ man -k files
一個很有用但常常被忽視的命令可以提供關于使用 man 本身的信息:
$ man man
您可以用 SPACEBAR 來瀏覽任意的 man 頁面;UP ARROW 將向上翻滾文件。.要退出,則輸入 q,!,或 CTRL-Z。
用戶類別
記得那句名言“所有動物一例平等但有些動物比其他動物更加平等”嗎?在 Linux 世界中,根用戶掌管一切。
根
用戶可以以另一個用戶名 su (源自
"superuser")登錄。要執(zhí)行諸如添加一個新用戶、打印機或文件系統(tǒng)之類的任務,必須作為根用戶登錄或者用 su
命令和根用戶密碼切換到超級用戶。系統(tǒng)文件(包括控制初始化過程的系統(tǒng)文件)歸根用戶所有。雖然可能允許普通用戶對它們進行讀操作,但出于系統(tǒng)安全性的原
因,編輯的權利將留給根用戶。
BASH shell
雖然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默認 shell。它結合了與它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。
BASH
內置的命令 history 默認記錄最后輸入的 500 條命令??梢酝ㄟ^在命令提示符下輸入 history
來查看它們。要檢索某個特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN
ARROW,或在歷史列表中輸入它的編號,并在編號前面加上 "!",例如:
$ !49
您還可以通過一條命令在歷史列表中離位置最靠前的項目的距離來執(zhí)行該命令:如果在歷史列表中有 53 個事件,$ !-3 將執(zhí)行事件號 51。
像 UNIX/Linux 世界的其它 shell 一樣,BASH 使用了特殊的環(huán)境變量來方便系統(tǒng)管理。例如:
HOME,用戶主目錄
PATH,Linux 用來搜索您輸入的命令的可執(zhí)行鏡像的搜索路徑
HISTSIZE,系統(tǒng)保存的歷史事件的數(shù)量
除了這些保留的關鍵字之外,您還可以定義您自己的環(huán)境變量。例如,Oracle 使用 ORACLE_HOME (還有其它一些變量),要使 Oracle 安裝成功完成,必須在您的環(huán)境中設置這些變量。
可以在提示符下臨時設置變量:
$HISTSIZE=100
或者,在 /etc/profile (需要根用戶權限)中進行系統(tǒng)范圍的永久設置,或在 .profile 中進行局部永久設置。
可以通過 echo 命令,并用一個 $ 符號來訪問一個環(huán)境變量的值,進而查看該值。
$ echo $HOME
/home/bluher
可以用 env 命令來查看當前所有的環(huán)境變量。
正則表達式和通配符
許多 Linux 命令使用通配符 * 和 ? 來匹配任意數(shù)量的字符或分別匹配任意的單個字符;正則模式匹配表達式利用一個句點 (.) 來匹配除“換行符”之外的任意單個字符。這兩種情況下都使用方括號 ([ ]) 來