一、linux系統結構
1.linux是一個倒樹結構
linux中所有的東西都是文件
這些文件都在系統頂級目錄“/” /就是根目錄
/目錄以下爲二級目錄這些目錄都是系統裝機時系統自動建立的
2.二級目錄的作用
/bin
存放系統文件,如cat、mkdir、mv、cp、tar、chmod等
/boot
存放開機所需的文件,開機時載入開機程序,並影像到內存中
/dev
存放設備的文件,如sidk、dvd、hdc等
/etc
存放絕大多數linux系統引導所需的配置文件,如yum、conf、hosts、gconf等
/home
存放用戶賬號,系統管理員添加時,在此目錄下創建並默認有Desktop目錄
/lib
存放系統程序文件,含c編譯程序需要的數據庫,是一組二進制文件,如iptable
/mnt
常用掛載點,專門外掛系統文件的,裏面可能含有cdrom、hgfs、floopy
/opt
第三方程序安裝目錄,如QQ、Linux、Linux opera等
/proc
存記錄系統狀態的文件,meminfo、devices、cpuinfo、version、partitions等
/root
管理員目錄,存放Desktop
/sbin
超級管理員專用的目錄,包含一些重要的目錄,如shutdown、dump
/tmp
臨時文件,臨時性存儲,存在中間產生的文件
/usr
含其他一些重要內容,如bin、sbin、lib、include,且bin下含有gcc、Python。
/var
存放系統定義表,以便在系統運行改變時備份目錄,如cache、ftp、mail、www
二、文件的尋址
1.絕對路徑
文件在系統的真實位置,文件名字以“/”開頭
下圖創建的文件file1在多級目錄下,/home/student/Desktop是絕對路徑。
2.相對路徑
文件相對與當前所在位置的一個名字的簡寫,這個名字不會以/開頭,而且名字會自動添加pwd顯示的值
三、文件的管理
1.touch ## 建立文件或修改文件時間戳
touch file ##創建文件
在下圖中建立文件,通過stat file命令來體驗touch建立文件或修改時間戳的作用。Access後面的時間表示file被訪問的時間;Modify表示file被修改的時間(包括修改內容、文件權限等),Modify包含Change的作用;Change表i示file被改變的時間,如:修改權限。
##訪問文件、修改文件內容、改文件權限並沒有在該shell中操作,圖中沒有這些操作的命令。第二次輸入state file,Access時間改變是因爲,文件被訪問;第三次輸入state file,Modify時間改變是由於修改文件內容;Change時間變化了是由於改文件權限了。
2.mkdir ## 建立目錄
mkdir directory ##創建目錄
-p ##上級目錄不存在自動建立
下圖中的mkdir -p westos/linux/file表示在westos目錄下的linux目錄下創建file目錄,westos和linux不存在,需要加上-p。
3.rm ##刪除目錄或文件
rm -f ##強行刪除不提示
-r ##刪除目錄
如下圖所示刪除目錄需要加-r。目錄Unitiled Folder被單引號(英文 )引起來是因爲目錄名中間含有空格。
當不加參數-f時,會有提示,輸入y回車則刪除,如下圖所示。
4.查看文件內容
cat ##將文件所有內容輸出到屏幕
-b ##不顯示空行的行號
-n ##顯示所有的行號
less ##將文件內容按頁/分頁顯示;當文件後綴特殊無法查看
head ##查看文件的前十行
head -n ##查看文件的前n行
tail ##查看文件的後十行
tail -n ##查看文件的後n行
如下圖所示,用cat查看文件的內容。
如下圖less查看file內容(file內容已被修改,故查出來與cat查看結果不同)
head和tail查看文件的內容如下圖所示
查看文件的第5行至8行的內容:
(1)head -n 8 file | tail -n 4
(2)sed -n '4,8p' file
5.查看日曆
cal ##查當前日曆
cal -j 日月年 ##查看某年某月某日是該年的第多少天
使用如下圖所示
6.vim 文本方式編輯文件
vim filename 進入到命令模式
命令模式不能編輯文件,如果要編輯文件要進入插入模式
按"i"進入插入模式
如果完成編輯,按”esc“推出插入模式,輸入”:wq“ 保存退出
vim filename 如果文件名字不存在,會自動創建
vim 沒有操作對象直接打開,編輯文件後要 :wq filename
輸入vim filename回車後,界面如下圖所示:
輸入i後才能開始輸入文件內容,界面如下圖所示:
當編輯結束,按鍵盤上的ESC,然後輸入“:wq”保存,回車後即回到shell界面。若編輯結束不想保存文件,但是希望強制離開,則輸入“:q!”。
注意:當因爲計算機突然關機、誤關閉窗口等致使vim編輯文件中斷,重新用vim編輯該文件時會出現下圖界面:
按E鍵可將之前編輯的內容恢復至該文件中,此時會回到shell界面。再次編輯該文件依舊會出現上圖的界面,按Q按鍵,然i後便能正常編輯該文件。
7.cd 切換工作目錄
cd directory ##切換工作目錄到指定目錄
cd - ##切換工作目錄到之前所在目錄
cd ~ ##切換到自己的家目錄
cd ~usernmae ##切換到指定用戶家目錄
cd .. ##進入到當前目錄的上級目錄
8.ls 列出目錄或文件信息
ls ##如果後面沒有目標那麼默認目標爲當前目錄
ls direcory|filename ##列出文件或目錄內容
ls -d direcotry ##列出目錄本身
ls -l filename|dorectory ##列出文件或目錄裏面內容的屬性
ls -ld directory ##列出目錄本身屬性
ls -a ##顯示目錄中的所有內容,包括以"."開頭的隱藏文件
ls -R ##第歸顯示目錄中的內容
在桌面創建有file1文件、file2目錄,使用ls如下圖所示
9.cp 文件複製
cp是新建文件的過程
cp file file1 file2 ... directory ###把file file1 file2 複製到 directory中
cp file test ###建立test文件模板爲file
cp -r directory direcotry1 ###複製目錄
cp -p ##複製文件或者目錄的時間,權限,所屬用戶、組的屬性信息
cp命令使用如下圖所示。
10.mv 移動或重命名
相同磁盤的mv是重命名,不同磁盤的mv是剪切過程
mv file file1 direcotry ##移動file file1到directory中
mv 存在文件 不存在文件 ##重命名文件
mv westos/linux . ##把westos中的linux移動到當前目錄 .代表當前目錄
mv使用如下圖所示
##cp是一個新建的過程,mv 相當於windows中的剪切。
四、正則表達式
* ###匹配0到任意字符
? ###匹配單個字符
*與?的作用如下圖所示,?只能匹配一個字符,*可以匹配多規格字符
[[:alpha:]] ###匹配單個字母
[[:lower:]] ###匹配單個小寫字母
[[:upper:]] ###匹配單個大寫字母
[[:digit:]] ###匹配單個數字
[[:alnum:]] ###匹配單個數字或字母
[[:punct:]] ###匹配單個符號
[[:space:]] ###匹配單個空格
{}表示不存在的或者存在的
{1..9} ###1-9
{a..f} ###a-f
{1,3,5} ###135
{a,c,e} ###a c e
{1..3}{a..c} ###1a 2a 3a 2a 2b 2c 3a 3b 3c
如下圖所示,touch file{1..5}新建了5個文件,rm -rf file[1-3]表示刪除存在的文件1或文件2或文件3,最後留下了文件4和文件5。
[]表示存在的
[a-C] ###aA bB cC
[a-c] ###aA或者bB或者c
[1-3] ###1或者2或者3
[145] ###1或者4或者5
[^abc]|[!abc] ###除了a並且除了b並且除了c
如下圖,建立文件{a..f},通過角號與!刪除了建立的文件
當我們新建了文件file{1..15},刪除文件命令如下圖所示。刪除命令有兩個目標,前面的目標可以刪除file{1..9},file[1-9][0-9]則可以刪除文件名後綴爲兩位數字的文件。
~ ###當前用戶家目錄
~username ###指定的用戶家目錄
~+ ###當前目錄
~- ###當前目錄之前所在目錄
. ###當前目錄
.. ###當前目錄的上一級
使用情況見下圖