一、 linux文件系統
linux使用標准的目錄結構,在安裝的時候,安裝程序就已經為用戶創建了文件系統和完整而固定的目錄組成形式,並指定了每個目錄的作用和其中的文件類型。
文件系統樹狀結構如下:
/ 根目錄
┏━━━┳━━━┳━━━┳━━┳━━━┳━━┳━━┳━━┳━━━┳━━━━━┳━━┓
bin home dev etc lib sbin tmp usr var lost+found root
linux采用的是樹型結構。最上層是根目錄,其他的所有目錄都是從根目錄出發而生成的。微軟的DOS和windows也是采用樹型結構,但是在DOS和windows中這樣的樹型結構的根是磁盤分區的盤符,有幾個分區就有幾個樹型結構,他們之間的關系是並列的。但是在linux中,無論操作系統管理幾個磁盤分區,這樣的目錄樹只有一個。從結構上講,各個磁盤分區上的樹型目錄不一定是並列的。
下面列出linux的一些主要目錄的功用
/bin: 存放用戶命令文件。
/home:存放用戶主目錄文件。
/dev:存放設備特殊文件 。
/etc:存放系統管理和配置文件。
/etc/rc.d:存放啟動的配置文件和腳本
/lib: 存放標准程序設計庫,又叫動態鏈接共享庫。類似windows裡的.dll文件
/sbin:存放系統管理命令。
/tmp:存放公用的臨時文件存儲點。
/root:存放系統管理員的用戶文件。
/mnt:存放讓用戶臨時掛載其他的文件系統。
/lost+found:用於存放系統非正常關機產生的零散文件。
/proc:存放虛擬的目錄,是系統內存的映射。
/var:存放某些大文件的溢出區,比方說各種服務的日志文件 。
/usr:存放最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。
Linux內核支持十多種不同類型的文件系統,對於Red Hat Linux,系統默認使用ext2或ext3和swap文件系統,下面對Linux常用的文件系統作一個簡單介紹。
ext2、ext3與swap文件系統介紹:
ext是第一個專門為Linux設計的文件系統類型,稱為擴展文件系統,在Linux發展的早期,起過重要的作用。由於穩定性,速度和兼容性方面存在許多缺陷,ext現已很少使用。
ext2是為解決ext文件系統存在的缺陷而設計的可擴展、高性能的文件系統,稱為二級擴展文件系統。ext2於1993年發布,在速度和CPU利用率上具有較突出的優勢,是GNU/Linux系統中標准的文件系統,支持256個字節的長文件名,文件存取性能極好。
ext3是ext2的升級版本,兼容ext2,在ext2的基礎上,增加了文件系統日志記錄功能,稱為日志式文件系統。日志式文件系統在因斷電或其他異常事件而停機重啟後,操作系統會根據文件系統的日志,快速檢測並恢復文件系統到正常的狀態,並可提高系統的恢復時間,提高數據的安全性。若對數據有較高安全性要求,建議使用ext3文件系統。
swap文件系統用於Linux的交換分區。在Linux中,使用整個交換分區來提供虛擬內存,其分區大小一般應是系統物理內存的2倍,在安裝Linux操作系統時,就應創分交換分區,它是Linux正常運行所必需的,其類型必須是swap,交換分區由操作系統自行管理。
二、 linux命令介紹
1. 查看linux版本信息
1) uname –a
2) lsb_release –a
3) cat /proc/version
4) cat /etc/issue
2. ls 列出當前目錄內容
格式:ls [選項] 目錄或文件名
-a:列出隱藏目錄和文件。
-c:按文件最後修改時間排序。
-t:按最後修改的時間排序(新的在前,舊的在後)。
-l:列出文件或目錄的詳細信息。
1) ls -al:以詳細方式列出所有文件。
2) ll:同ls -l類似
3) ls /boot直接顯示boot目錄下文件信息
4) ls / 顯示根目錄信息
5) ls -R 遞歸顯示所有目錄
6) ls –ltr查看目錄的所有文件信息(包括權限信息,同時排序)
3. pwd 列出當前用戶所在目錄路徑
格式:pwd
1) pwd:顯示當前路徑。
4. cd更改當前目錄路徑。
1) cd: 返回到當前用戶的主目錄。注意cd後面緊跟冒號
2) cd .. 返回到當前目錄的上一層目錄,例當前目錄為/home/user,使用該命令後將當前的目錄返回到/home下。注意cd後面有空格。
3) cd ~ 返回到當前用戶的主目錄,適合任何用戶。
4) cd / 返回到根目錄 /目錄。
5) cd ../..返回到當前目錄的父目錄,cd ../../..返回當前目錄的父目錄的父目錄,該命令可以類推。
5. mkdir 創建目錄
格式:mkdir [選項] 目錄名
-m: 數字 設置目錄權限。
-p: 創建父目錄並創建子目錄。
1) mkdir -p li/document 如果li目錄不存在,則創建li目錄和document目錄。
6. rmdir 刪除空目錄
格式:rmdir [選項] 目錄名
1) rmdir –pv link/doc:刪除指定目錄和該目錄的祖先目錄(路徑中的目錄必須非空,只要有任何一級目錄不為空,則刪除目錄就會失敗)
rm -rfv:遞歸刪除目錄(r表示遞歸刪除目錄及其內容,f表示ignore nonexistent files, never prompt, v表示詳細顯示進行的步驟)
7. cp 復制目錄或文件
格式:cp [選項] 源文件目錄 目標文件目錄
-a: 復制目錄時保持文件屬性。
-f: 目標文件存在時,則不加提示的覆蓋目標文件。
-i: 目標文件存在時,則會讓用戶輸入"Y"來確認是否覆蓋。
-r: 若源是一個目錄,那麼 cp將遞歸復制該目錄下所有子目錄和文件。
1) cp -arf:遞歸復制該目錄下的所有子目錄和文件,且不加提示,同時保持文件屬性。
8. mv 移動或重命名文件或目錄
格式:mv [選項] 源文件目錄 目標文件目錄
-f: 覆蓋目標文件時不加提示。
-i: 交互式操作,覆蓋時詢問。
1) mv –vf test2 test3將test2文件名修改為test3,且打印出詳細信息。
2) mv –vf mulu2 mulu1將mulu2移動到mulu1中,且打印出詳細信息。
9. rm 刪除文件或目錄
格式:rm [選項] 文件目錄名
-f: 刪除時不加提示。
-r: 刪除目錄包括子目錄。
-i: 交互式刪除。
1) rm –rf 文件或者文件夾名稱:刪除該目錄以及子目錄,且忽略不存在的文件。
2) rm –rfv doc1:刪除該目錄以及子目錄,且忽略不存在的文件,同時打印出詳細信息。
10. cat 顯示文件
格式:cat [選項] 文件名
11. vi 全屏幕編輯器
格式:vi [參數] [文件]
1) 重復操作命令
Ctrl+r:重做上一個動作。(常用)
2) 撤銷命令
u:復原前一個動作。(常用)
3) 進入vi的命令
vi filename :打開或新建文件,並將光標置於第一行首
vi +n filename :打開文件,並將光標置於第n行首
vi + filename :打開文件,並將光標置於最後一行首
vi +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :打開多個文件,依次編輯
4) 移動光標類命令
h 或 向左方向鍵(←) :光標左移一個字符
l 或 向右方向鍵(→) :光標右移一個字符
k 或 向上方向鍵(↑) 或 Ctrl+p :光標向上移動一行
j 或 向下方向鍵(↓) 或 Ctrl+n :光標向下移動一行
0:(注意是數字零)光標移至當前行首
$:光標移至當前行尾
G:光標移至文件最後一行首
gg:光標移至第一行首
nG:光標移至第n行首
space:光標右移一個字符
Backspace:光標左移一個字符
Enter :光標下移一行
w或W :光標右移一個字至字首
b或B :光標左移一個字至字首
e或E :光標右移一個字j至字尾
) :光標移至句尾
( :光標移至句首
}:光標移至段落開頭
{:光標移至段落結尾
n+:光標下移n行
n-:光標上移n行
n$:光標移至第n行尾
H :光標移至屏幕頂行
M :光標移至屏幕中間行
L :光標移至屏幕最後行
5) 屏幕翻滾類命令
Ctrl+b;向文件首翻一屏
Ctrl+f:向文件尾翻一屏
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
6) 插入文本類命令
Esc:退出插入命令使用其他命令
i,I:在目前的光標所在處插入輸入之文字,已存在的文字會向後
a,A:a 為從目前光標所在的下一個字符處開始插入, A 為從光標所在行的最後一個字符處開始插入。(常用)
o,O:o 為在目前光標所在的下一行處插入新的一行, O 為在目前光標所在處的上一行插入新的一行!(常用)
r, R:r替換當前字符,R替換當前字符及其後的字符,直至按ESC鍵
s,S:從當前光標位置處開始,以輸入的文本替代指定數目的字符,S刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
7) 刪除命令
x或X:刪除一個字符,x刪除光標後的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
dd:刪除游標所在的那一整列(常用)
ndd:n 為數字。刪除光標所在的向下 n 列,例如 20dd 則是刪除 20 列 (常用)
ndw或ndW:刪除光標處開始及其後的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
8) 復制命令
yy:復制游標所在的那一行(常用)
nyy:n 為數字。復制光標所在的向下 n 列,例如 20yy 則是復制 20 列(常用)
y1G:復制光標所在列到第一列的所有數據
yG:復制光標所在列到最後一列的所有數據
y0:復制光標所在的那個字符到該行行首的所有數據
y$:復制光標所在的那個字符到該行行尾的所有數據
p, P:p 為將已復制的數據在光標下一行貼上,P 則為貼在游標上一行! 舉例來說,我目前光標在第 20 行,且已經復制了 10 行數據。則按下 p 後, 那 10 行數據會貼在原本的 20 行之後,亦即由 21 行開始貼。但如果是按下 P 呢? 那麼原本的第 20 行會被推到變成 30 行。
(常用)
9) 搜索及替換命令
/pattern:從光標開始處從上到下搜索pattern
?pattern:從光標開始處從下到上搜索pattern
n:在同一方向重復上一次搜索命令
ddp:上下兩行的內容互換
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
:1,$s/word1/word2/g:n1 與 n2 為數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,並將該字符串取代為 word2 !舉例來說,在 100 到 200 行之間搜尋 vbird 並取代為 VBIRD 則: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g:從第一行到最後一行尋找 word1 字符串,並將該字符串取代為 word2 !(常用)
:1,$s/word1/word2/gc:從第一行到最後一行尋找 word1 字符串,並將該字符串取代為 word2 !且在取代前顯示提示字符給使用者確認 (conform) 是否需要取代!(常用)
10) 最後行方式命令
:w :保存當前文件
:x :保存當前文件並退出
:q :退出vi
:q! :不保存文件並退出vi
:wq! :強制寫入並保存(前提是當前用戶有權限改變文件寫入權限)
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:e filename:打開文件filename進行編輯
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指
定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行 。
12. grep 在文本中搜索指定的字符串
格式:grep [options] [pattern] [文件]
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
[pattern]主要參數:
\:忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字符。
* :有字符,長度可以為0。
1) grep –i [要搜索的字符串] [要搜索的文件],注意i表示忽略大小寫。例如:grep –i wo test.txt
2) grep –l [要搜索的字符串] [要搜索的文件],注意l表示列出匹配的文件名。例如:grep -l wo test.txt
3) grep ^th test.txt,在test.txt中搜索以th開頭的行
4) grep "145608157732696" reso* 在以reso開頭的resourcePool.log文件中查找其內容包含145608157732696的文件
5)
13. find 在目錄中查找
格式: find pathname -options [-print -exec -ok ...]
Pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
Option參數:
-name 按照文件名查找文件。
-perm 按照文件權限來查找文件。
-prune 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那麼-prune將被find命令忽略。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件。
-type 查找某一類型的文件,諸如:b - 塊設備文件。d - 目錄。c - 字符設備文件。p - 管道文件。l - 符號鏈接文件。f - 普通文件。
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節計。
-depth:在查找文件時,首先查找當前目錄中的文件,然後再在其子目錄中查找。
-fstype:查找位於某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
-print: find命令將匹配的文件輸出到標准輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。
1) find :
14. more 分頁顯示文件
格式:more [選項] 文件名
+n: 從第n行開始顯示。
-n: 定義屏幕大小為n行。
-c: 從頂部清屏顯示。
-d: 提示"Press space to continue,q to quit"(按空格鍵繼續,按q退出)。
顯示文件2行
head 輸出文件開頭部分
格式:head [-n]
-n:顯示文件從第n行開始顯示,默認顯示前10行
chmod 設置文件或目錄的權限
格式:chmod [選項] 權限范圍 文件或目錄名
-c: 當發生改變時,報告處理信息。
-f: 錯誤信息不輸出。
-R:處理指定目錄及子目錄下的所有文件。
-v:運行時顯示詳細信息。
權限對應關系
--- 0 表示沒有任何權限
-x- 1 表示有執行權限
-w- 2 表示有寫入權限
-r- 4 表示有只讀權限
chmod 777 a.txt 表示用戶所有者及其他組和用戶擁有該文件的全部權限 。
chmod 755 a.txt 表示用戶所有者擁有全部權限,其他組和用戶擁有該文件只讀和執行權限。
chown 改變文件的擁有者或群組
格式:chown [選項] 用戶或組群 文件名
chown test:test file.txt 改變文件的用戶和組信息
chown test: file.txt 改變文件的用戶和組信息
chown :root file.txt 改變文件的組信息
15. du 顯示目錄或文件所占的磁盤空間
格式:du [選項] 文件目錄名
-a: 顯示所有文件大小。
-b: 以字節單位顯示文件大小。
-c: 顯示目錄或文件的總和。
-h:以便於用戶閱讀的方式顯示結果。
> 輸出重定向
>將輸出到屏幕信息重定向到文件中,如果重定向的文件不存在,則自動創建,如果文件存在則覆蓋文件。
>>將新添加的數據追加到文件文件的尾部,以避免文件被覆蓋。
<< 附加輸入重定向
格式: << [字符]
16. df -h 查看各分區使用情況
格式:df [options] [pattern] [文件]
1) df -h 查看各分區使用情況
17. hostname 查看服務器ip
1) hostname –i查看主機IP
2) hostname查看主機名
18. env查看環境變量
19. ps –ef查看進程
1) ps –ef | grep dbm 查看包含dbm字符串的進程
20. ifconfig查看所有網絡接口的屬性
21. chmod權限修改
chmod命令用於修改文件的權限,一般來說文件的創建者擁有修改文件權限的能力。文件權限分為3中:一種是文件屬主權限,另一種是同組用戶權限,最後一種是其他用戶權限。權限的描述形式一般為:-rwxr-xr-x或者drwxr-xr-x。權限若已-開頭,則表示該資源為文件,若為d開頭,則表示該資源為目錄。除了開頭字符外,後面的9為字符中每3個字符為一組,共3組,第一組為文件屬主權限,第二組為同組用戶權限,第三組為其他用戶權限。r代表讀權限(對應的數字為4),w代表寫權限(對應數字為2),x代表為執行權限(對應數字為1)。
我們通常用命令“chmod 755 文件名”來修改文件的權限,那麼755這個數字與rwxr-xr-x是什麼對應關系呢?我們可以這樣看,將rwxr-xr-x分為3組,rwx、r-x、r-x。然後根據r、w、x這3個字母對應的數字,對rwxr-xr-x字符串進行翻譯,得到的結果為4214-14-1。然後我們將4214-14-1又分為3組,421、4-1、4-1,每3個數字進行相加,得到7、5、5(其中-字符忽略不計)。解釋到這,我想大家都應該看明白了。那麼如果我們想將一個文件的權限設置為,屬主能夠讀寫執行,同組用戶和其他用戶只能讀,那麼我們可以這樣修改權限。命令為:chmod
744 文件名。
1) chmod 755 屬主可以讀寫執行,其他用戶只能讀、執行
2) chmod 777賦予所有用戶所有權限
22. 常用的Linux命令
1) uname -a 查看內核/操作系統/CPU信息
2) head -n 1 /etc/issue 查看操作系統版本
3) cat /proc/cpuinfo 查看CPU信息
4) lsmod
lsmod 列出加載的內核模塊
free -m 查看內存使用量和交換區使用量
du -sh 查看指定目錄的大小
grep MemTotal /proc/meminfo 查看內存總量
grep MemFree /proc/meminfo 查看空閒內存量
5) uptime 查看系統運行時間、用戶數、負載
cat /proc/loadavg 查看系統負載 磁盤和分區
mount | column -t 查看掛接的分區狀態
fdisk -l 查看所有分區
swapon -s 查看所有交換分區
hdparm -i /dev/hda 查看磁盤參數(僅適用於IDE設備)
dmesg | grep IDE 查看啟動時IDE設備檢測狀況網絡
iptables -L 查看防火牆設置
route -n 查看路由表
netstat -lntp 查看所有監聽端口
netstat -antp 查看所有已經建立的連接
netstat -s 查看網絡統計信息 進程
6) top 實時顯示進程狀態用戶
7) w 查看活動用戶
8) id 查看指定用戶信息
9) last 查看用戶登錄日志
cut -d: -f1 /etc/passwd 查看系統所有用戶
cut -d: -f1 /etc/group 查看系統所有組
crontab -l 查看當前用戶的計劃任務服務
chkconfig --list 列出所有系統服務
chkconfig --list | grep on 列出所有啟動的系統服務程序
rpm -qa 查看所有安裝的軟件包
23. su 切換用戶
格式: su – 用戶名
1) su – billcs2 從billcs3用戶切換到billcs2用戶
24. unzip 解壓war包
格式: unzip 文件名 –d 解壓目錄
1) unzip dbm-1.0.0-import.war –d dbm_import 將dbm-1.0.0-import.war包解壓到當前目錄的dbm_import目錄中
25. tar解壓tar包命令
格式:tar [-cxtzjvfpPN] [文件與目錄] ……
主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息
-v:顯示不包含匹配文本的所有行
-r:向歸檔文件末尾追加文件
-z:調用gzip來壓縮歸檔文件,與-x聯用時調用gzip完成解壓縮
-c:建立一個壓縮文件的參數指令
-x:解開一個壓縮文件的參數指令
-t:查看 tarfile 裡面的文件
特別注意,在參數的下達中, c/x/t 僅能存在一個!不可同時存在!因為不可能同時壓縮與解壓縮。
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數!
例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成
『 tar -zcvPf tfile sfile』才對喔!
-p :使用原文件的原來屬性(屬性不會依據使用者而變)
-P :可以使用絕對路徑來壓縮!
-N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的文件中!
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!
1) tar -czvf this.tar.gz ./*.txt
將當前目錄下所有.txt文件打包並壓縮歸檔到文件this.tar.gz,我們可以使用
2) tar -xzvf this.tar.gz ./
將當前目錄下的this.tar.gz中的文件解壓到當前目錄我們可以使用
3) tar -xzvpf /tmp/etc.tar.gz /etc
將 /etc/ 內的所有文件備份下來,並且保存其權限!這個 -p 的屬性是很重要的,尤其是當您要保留原本文件的屬性時!
4) tar -N "2005/06/01" -zcvf home.tar.gz /home
在 /home 當中,比 2005/06/01 新的文件才備份
5) tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
我要備份 /home, /etc ,但不要 /home/dmtsai
26. rpm安裝命令
參考鏈接:http://marklinux.blog.51cto.com/515329/255971
1) 查詢
命令格式:rpm -q ( or --query) options
參數:
pkg1 ... pkgN :查詢已安裝的軟件包
詳細選項
-p (or ``-'') 查詢軟件包的文件
-f 查詢屬於哪個軟件包
-a 查詢所有安裝的軟件包
--whatprovides 查詢提供了 功能的軟件包
-g 查詢屬於 組的軟件包
--whatrequires 查詢所有需要 功能的軟件包
信息選項
顯示軟件包的全部標識
-i 顯示軟件包的概要信息
-l 顯示軟件包中的文件列表
-c 顯示配置文件列表
-d 顯示文檔文件列表
-s 顯示軟件包中文件列表並顯示每個文件的狀態
--scripts 顯示安裝、卸載、校驗腳本
--queryformat (or --qf) 以用戶指定的方式顯示查詢信息
--dump 顯示每個文件的所有已校驗信息
--provides 顯示軟件包提供的功能
--requires (or -R) 顯示軟件包所需的功能
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
a. 查詢一個包是否被安裝
rpm -q *.rpm
b. 查看軟件包裡的內容
rpm -qpi *.rpm
c. 查看軟件包將會在系統裡安裝哪些部分
rpm -qpl *.rpm
d. 快速判定某個文件屬於哪個軟件包
rpm -qf *.rpm
e. 列出所有被安裝的rpm 軟件包
rpm –qa
2) 卸載
命令格式: rpm -e ( or --erase) options pkg1 ... pkgN
參數
pkg1 ... pkgN :要刪除的軟件包
詳細選項
--test 只執行刪除的測試
--noscripts 不運行預安裝和後安裝腳本程序
--nodeps 不檢查依賴性
通用選項
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
a. 卸載軟件
rpm-e *.rpm
3) 安裝
命令格式: rpm -i ( or --install) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 將要安裝的RPM包的文件名
詳細選項:
-h (or --hash) 安裝時輸出hash記號 (``#'')
--test 只對安裝進行測試,並不實際安裝。
--percent 以百分比的形式輸出安裝的進度。
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬於其它軟件包的文件--force 忽略軟件包及文件的沖突
--noscripts 不運行預安裝和後安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作為 FTP代理
--ftpport 指定FTP的端口號為
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
a. 安裝軟件
rpm -ivh *.rpm
若系統提示此軟件已安裝過或因其他原因無法繼續安裝,但若我們確實想執行安裝命令,可以在 -ivh後加一參數“-replacepkgs”。
b. 在線安裝軟件
rpm -i ftp://ftp.* *.rpm
ftp://ftp.*是地址 *.rpm軟件包
4) 升級
命令格式: rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm
參數
file1.rpm ... fileN.rpm 軟件包的名字
詳細選項
-h (or --hash) 安裝時輸出hash記號 (``#'')
--oldpackage 允許"升級"到一個老版本
--test 只進行升級測試
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬於其它軟件包的文件
--force 忽略軟件包及文件的沖突
--percent 以百分比的形式輸出安裝的進度。
--noscripts 不運行預安裝和後安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作為 FTP代理
--ftpport 指定FTP的端口號為
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
a. 升級
rpm -uvh *.rpm
注意:此時的文件名必須是要升級軟件的升級補丁
27. FTP使用方法
1) 登錄FTP服務器
方法一:輸入命令 ftp host
其中host是FTP服務器的域名或IP地址。如:
C:\>ftp ftp.bttc.cn
圖1
啟動FTP後,命令提示符變為ftp>
方法二:先輸入命令 ftp 啟動FTP,再用命令 open host 登錄服務器。如:
C:\>ftp
C:\>open ftp.bttc.cn
圖2
登錄時先是顯示一些歡迎信息,然後會要求輸入用戶名和密碼,比如匿名登錄服務器:
C:\>ftp ftp.bttc.cn
…………
User:anonymous
331 User name okay,please send complete E-mail address as password
Password:
230 User logged in,proceed
ftp>
圖3
注意:在輸入密碼時,屏幕沒有任何顯示,但已經輸入了,不要認為出錯。登錄成功後就可以訪問FTP服務器上的文件了。
如果由於用戶名或密碼錯誤導致登錄失敗,可以用user命令重新登錄。
2) 查看FTP服務器上的文件
dir 命令:顯示目錄和文件列表。
ls 命令:顯示簡易的文件列表。
cd 命令:進入指定的目錄。
dir命令可以使用通配符“*”和“?”,比如,顯示當前目錄中所有擴展名為jpg的文件,可使用命令 dir *.jpg。
cd命令中必須帶目錄名。比如 cd main 表示進入當前目錄下的main子目錄,cd .. 表示退回上一級子目錄。
3) 下載文件
上傳和下載文件時應該使用正確的傳輸類型,FTP的傳輸類型分為ASCII碼方式和二進制方式兩種,對.txt、.htm等文件應采用ASCII碼方式傳輸,對.exe或圖片、視頻、音頻等文件應采用二進制方式傳輸。在默認情況下,FTP為ASCII碼傳輸方式。
type 命令:查看當前的傳輸方式。
ascii 命令:設定傳輸方式為ASCII碼方式。
binary 命令:設定傳輸方式為二進制方式。
以上命令都不帶參數。
get 命令:下載指定文件。
get命令的格式:get filename [newname],filename為下載的FTP服務器上的文件名,newname為保存在本地計算機上時使用的名字,如果不指定newname,文件將以原名保存。
get命令下載的文件將保存在本地計算機的工作目錄下。該目錄是啟動FTP時在盤符C:後顯示的目錄。如果想修改本地計算機的工作目錄,可以使用 lcd 命令。比如:lcd d:\ 表示將工作目錄設定為D盤的根目錄。
mget 命令:下載多個文件。
mget命令的格式:mget filename [filename ……]。
mget命令支持通配符“*”和“?”,比如:mget *.mp3 表示下載FTP服務器當前目錄下的所有擴展名為mp3的文件。
4) 上傳文件
put 命令:上傳指定文件。
put命令的格式:put filename [newname],filename為上傳的本地文件名,newname為上傳至FTP服務器上時使用的名字,如果不指定newname,文件將以原名上傳。
上傳文件前,應該根據文件的類型設置傳輸方式,本機的工作目錄也應該設置為上傳文件所在的目錄。
5) 結束並退出FTP
close 命令:結束與服務器的FTP會話。
quit 命令:結束與服務器的FTP會話並退出FTP環境。
6) 其它FTP命令
pwd 命令:查看FTP服務器上的當前工作目錄。
!與其他linux命令一起使用,可以在ftp模式下,調用本地的主機的shell腳本。比如說在輸入pwd命令查看遠程主機的當前目錄後,然後輸入!pwd命令,可以查看本地主機的當前目錄。
?顯示本地ftp幫助信息。
rename filename newfilename 命令:重命名FTP服務器上的文件。
delete filename 命令:刪除FTP服務器上的文件。
help [cmd] 命令:顯示FTP命令的幫助信息,cmd是命令名,如果不帶參數,則顯示所有FTP命令。
用法舉例:
案例如下:現需要從10.10.12.15主機上的billcs3用戶的ftp上取一個名叫commlog.log文件,然後放到10.10.12.11主機的billcs3用戶的目錄下
操作如下:
a. 首先登錄到10.10.12.11主機的billcs3用戶,然後進入如下目錄,並顯示出文件列表
b. 然後輸入ftp 10.10.12.11,同時輸入billcs3用戶的用戶名和密碼,最後出現ftp>的字符串表示成功的已ftp形式連接到了10.10.12.11的ftp根目錄上。
c. 輸入ls命令,查看ftp根目錄有哪些文件,從中找出commlog.log文件。
d. 然後輸入mget commlog.log命令,然後輸入y,緊接著就成功的將commlog.log文件從10.10.12.11上拷貝到10.10.12.15上。
e. 最後輸入bye命令,離開ftp模式。
f. 然後輸入ls命令,查看10.10.12.15主機上是否會出現commlog.log文件。
三、 Linux軟件安裝
1. JDK安裝
1) RPM安裝
查看已經安裝的jdk:
rpm -qa|grep jdk 卸載:
rpm -e rpm包名(上面看到的)若存在依賴關系,先卸載上層的。
安裝(這裡以jdk-6u32-linux-i586-rpm.bin為例):
將jdk-6u32-linux-i586-rpm.bin拷貝到服務器
給其運行權限: chmod u+x jdk-1_5_0_09-linux-i586-rpm.bin
運行(它將自己解壓出jdk-1_5_0_09-linux-i586.rpm包): ./jdk-1_5_0_09-linux-i586-rpm.bin
安裝rpm包: rpm -iv jdk-1_5_0_09-linux-i586.rpm 這樣將jdk安裝到了/usr/java下
然後修改/etc/profile:
JAVA_HOME=/usr/share/jdk1.5.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
2) tar包安裝
在Sun官網上下載jdk的linux版安裝包,地址為:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html。我選擇的是jdk-6u32-linux-x64.bin版tar包安裝包。通常來講tar包比較好安裝一點,直接解壓,然後配置環境變量就可以使用。使用rpm安裝包會出現比較惡心的安裝包依賴問題。
將jdk-6u32-linux-x64.bin包拷貝到Linux桌面,然後運行./ jdk-6u32-linux-x64.bin命令,tar包會自動解壓成jdk1.6.0_32文件夾。將其移動到/home/test1/java目錄下。
然後修改/etc/profile文件,在其末尾增加如下片段:
JAVA_HOME=/home/test1/java/jdk1.6.0_32
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
至此jdk6安裝成功,在控制台運行java -version測試是否安裝成功。
四、 Linux系統維護
1. 為普通用戶添加sudo權限
修改/etc/sudoers文件,修改命令必須為visudo才行
#visudo -f /etc/sudoers
像root ALL=(ALL) ALL 這樣增加你所需要的用戶
xxx ALL=(ALL) ALL
然後用xxx用戶登錄,測試時會發現
#sudo ifconfig
sudo: ifconfig: command not found
修改普通用戶的.bash_profile文件在PATH變量中增加:
/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin
然後重啟機器,即可。