RH124-02-03 通過命令管理文件和目錄

第二章 通過命令管理文件和目錄


課程目標:

認識重要的系統目錄

瞭解絕對路徑和相對路徑

通過命令創建,拷貝,移動,刪除文件和目錄

使用通配符匹配一個或多個文件


2.1  Linux文件系統的結構

Linux一切皆爲文件

目錄結構


常見的重要目錄說明:


/usr  

安裝的軟件,共享庫,程序數據.重要的子目錄有

/usr/bin用戶命令

/usr/sbin管理員命令

/usr/local本地自定義安裝的軟件(一般爲通過源代碼安裝的軟件)


/etc

系統,軟件的配置文件


/var

存放系統引導啓動時產生的可變文件,文件通常動態更改的,例如數據庫文件,緩存目錄,日誌文件,打印池文件,網頁等


/run

系統啓動後期運行的程序的運行時數據,包括進程的pid文件,鎖文件等.這些文件一般在系統重啓後會重建


/home

一般用戶的主目錄都在該目錄下以用戶名爲名字的子目錄的形式存在


/root

系統管理員root的主目錄


/tmp

存放臨時文件,文件一般存放超過10天以上都會自動刪除,可以通過對系統的設定,更改刪除這些臨時文件的期限


/boot

存放系統引導時候需要的文件


/dev

存放設備文件




注意:

在rhel7中,  /bin , /sbin , /lib , /lib64都以字符鏈接的形式鏈接到/usr/目錄下,例如

/bin --> /usr/bin

/sbin --> /usr/sbin



2.2 通過名字定位文件或目錄

介紹 pwd,cd,ls命令  cd =change directory  改變目錄  cd ~ 到根目錄,cd -上次的目錄 ,ctrl+l 或clear 是清屏


絕對路徑: 所有路徑描述都必須是以 "/" 開頭

相對路徑: 所有路徑直接以文件名字或者 "." 或者 ".."開頭   在當前絕對跟徑下的相對目錄。你的背景路徑在哪裏,相對路徑在哪裏。執行的結果是不同的,相對路徑不一定對,因爲依靠背景路徑,比如在etc下 ls ./run無結果,但是在根下執行同樣的命令就有輸出。

../   上一級目錄     ls ../看上面一個目錄的內容

./當前目錄

etc/sysconfig/

路徑區分大小寫



2.3 通過命令行工具管理文件   ctrl+shift+T  再打開一個窗口,可以作遠程


命令作用需要掌握的參數

ls列表-l , -h , -a , -t ,d   list列表命令

touch創建空白文件

cp拷貝文件-a 保留屬性 , -r

mv移動文件-f

rm刪除文件-f , -r

mkdir創建目錄-p , -f



練習:用student身份登陸desktop虛擬機上完成練習

在用戶家目錄下創建6個文件 song1.mp3 ~ song6.mp3

把上出創建的songX.mp3文件移動到Music目錄下

在用戶家目錄下創建三個目錄,分別爲 friends,family,work

切換到friends目錄下,把Music目錄下的song1.mp3 ~ song3.mp3 拷貝到當前目錄

切換到family目錄下,把Music目錄下的song4.mp3 ~ song6.mp3 移動到當前目錄

切換到用戶主目錄

刪除family目錄

切換到friends目錄,把目錄下的所有文件刪除

切換到主目錄,把friends目錄刪除.





2.4  使用正則表達式匹配一個或多個文件


$ mkdir glob;cd glob  建一個目錄並進入目錄

$ touch alfa bravo charlie delta echo able baker cast dog easy  建多個目錄


*  匹配零個或若干個任意字符

?  匹配一個任意字符

[ac]* 包含a或者c任意一個字符開頭的字符串

[ac]? 以a和c開頭,並且兩個字符組成的字符串     ls ./[ac]?  如 ab   ac   ca都可以匹配出來

{a..k}    

如  touch a{1,2,3} 創建出 a1  a2  a3  

    touch b{1..5}  創建出b1 b2 b3 b4 b5

~

\ 轉義符,取消符號的特殊作用


ls ./a*   ls a*  顯示當前目錄所有以a開頭的文件

ls *a*  有a的所有文件都會顯示


如:

[student@desktop0 ~]$ mkdir ex;cd ex

[student@desktop0 ex]$ ls

[student@desktop0 ex]$ touch d{1..5}{a,b,c}

[student@desktop0 ex]$ ls

d1a  d1b  d1c  d2a  d2b  d2c  d3a  d3b  d3c  d4a  d4b  d4c  d5a  d5b  d5c


========================================================


課堂聽講筆記:


1、lsblk看磁盤大小

nautilus /usr 顯示圖形界面



2、ls命令

[root@desktop0 home]#    ls -l /home

total 4

drwx------. 17 student student 4096 Apr 29 10:31 student

[root@desktop0 home]#    ls -l -h  /home    可以看大小     命令:ls -lh /home   h一定要和l一起用,區別就是單位變成K了。

total 4.0K

drwx------. 17 student student 4.0K Apr 29 10:31 student


ls -a   纔可以看到以.開頭的文件或文件夾,這是爲了保護一些重要文件,降低誤操作的機率。


[root@desktop0 home]# ls /etc/cron.d/ -l -d    只看一個文件,不會顯示很多

drwxr-xr-x. 2 root root 72 Jul 11  2014 /etc/cron.d/


3、cp命令


[root@desktop0 student]# cp /etc/hosts ./     copy到當前文件夾


[root@desktop0 student]# cp /etc/hosts ./newhosts copy到當前文件夾並改名   相對路徑


[root@desktop0 student]# cp /etc/hosts /home/student/hosts2   絕對路徑

[root@desktop0 student]# cp -a /etc/hosts /home/student/hosts3    保留文件的屬性,如ls -lh時可以看到時間還是原來最初生成的時間



[student@desktop0 ~]$ cp/home/student/hosts2 /tmp/

bash: cp/home/student/hosts2: No such file or directory

[student@desktop0 ~]$ cp /home/student/hosts2 /tmp/

[student@desktop0 ~]$ cp -a /home/student/hosts2 /tmp/hosts22

[student@desktop0 ~]$ ll /tmp/hosts*

-rw-r--r--. 1 student student 231 Apr 29 13:39 /tmp/hosts2

-rw-r--r--. 1 student student 231 Apr 29 13:34 /tmp/hosts22


備份時需要保留屬性,所以用這個-a參數   可以保留下組和名



拷目錄:


[student@desktop0 ~]$ cp /home/student /tmp/  一般管理員不具有權限,需要加-r參數

cp: omitting directory ‘/home/student’

[student@desktop0 ~]$ ^C

[student@desktop0 ~]$ ^C

[student@desktop0 ~]$ cp -r /home/student /tmp/

[student@desktop0 ~]$ ls /tmp/student

Desktop    Downloads  hosts2  hostsnew  Pictures  tanpao.txt  Templates

Documents  hosts      hosts3  Music     Public    Tanpao.txt  Videos

[student@desktop0 ~]$ ls -ld /tmp/student

drwx------. 17 student student 4096 Apr 29 13:42 /tmp/student


4、移文件


[student@desktop0 ~]$ mv /home/student/tanpao.txt  /tmp


[student@desktop0 ~]$ su -              切換成超級用戶

Password: 

Last login: Sat Apr 29 10:55:59 CST 2017 on :0

[root@desktop0 ~]# mv /home/student/T

Tanpao.txt  Templates/  

[root@desktop0 ~]# mv /home/student/Tanpao.txt /tmp/tanpao.txt     超級用戶會提示是否覆蓋

mv: overwrite ‘/tmp/tanpao.txt’? 


[root@desktop0 ~]# exit    退出超級用戶

logout

[student@desktop0 ~]$ ^C



5、刪除文件(相對跟徑和絕對跟徑)

[student@desktop0 ~]$ rm hosts2

rm: remove write-protected regular file ‘hosts2’? y

[student@desktop0 ~]$ rm /home/student/hosts

rm: remove write-protected regular file ‘/home/student/hosts’? y

[student@desktop0 ~]$ ls -lh /home/student/

total 8.0K

drwxr-xr-x. 2 student student   6 Jan  5  2015 Desktop

drwxr-xr-x. 2 student student   6 Jan  5  2015 Documents

drwxr-xr-x. 2 student student   6 Jan  5  2015 Downloads

-rw-r--r--. 1 root    root    231 Jul 11  2014 hosts3

-rw-r--r--. 1 root    root    231 Apr 29 13:33 hostsnew

drwxr-xr-x. 2 student student   6 Jan  5  2015 Music

drwxr-xr-x. 2 student student   6 Jan  5  2015 Pictures

drwxr-xr-x. 2 student student   6 Jan  5  2015 Public

-rw-r--r--. 1 root    root      0 Apr 29 13:30 Tanpao.txt

drwxr-xr-x. 2 student student   6 Jan  5  2015 Templates

drwxr-xr-x. 2 student student   6 Jan  5  2015 Videos


6、創建目錄

[student@desktop0 ~]$ mkdir /tmp/test

[student@desktop0 ~]$ ls -ld /tmp/test

drwxrwxr-x. 2 student student 6 Apr 29 13:51 /tmp/test

[student@desktop0 ~]$ 



[student@desktop0 etc]$ cp /etc/hosts /tmp/test/

[student@desktop0 etc]$ ls /tmp/test

hosts

[student@desktop0 etc]$ 


刪除目錄

[student@desktop0 /]$ rm /tmp/test    

rm: cannot remove ‘/tmp/test’: Is a directory

[student@desktop0 /]$ rm -r /tmp/test   刪除目錄需要-r,同時不提示,但是root用戶就會提示

如果需要提示

[student@desktop0 /]$ rm -i -r /tmp/test

rm: descend into directory ‘/tmp/test’? n


用超級管理員來作操作:

[root@desktop0 ~]# mkdir /tmp/test

[root@desktop0 ~]# cp /etc/host* /tmp/test

[root@desktop0 ~]# cd /tmp/test

[root@desktop0 test]# ls

host.conf  hosts  hosts.allow  hosts.deny


刪除所有文件(千萬注意,不要在/目錄下作這個操作

[root@desktop0 ~]# cd /tmp/test

[root@desktop0 test]# ls

host.conf  hosts  hosts.allow  hosts.deny

[root@desktop0 test]# pwd

/tmp/test

[root@desktop0 test]# rm ./*

rm: remove regular file ‘./host.conf’? y

rm: remove regular file ‘./hosts’? y

rm: remove regular file ‘./hosts.allow’? y

rm: remove regular file ‘./hosts.deny’? y


rm -rf ./* 這個可以不用提示一下刪除掉


一次性創建我個目錄

[root@desktop0 test]# mkdir /tmp/test/a/b

mkdir: cannot create directory ‘/tmp/test/a/b’: No such file or directory

[root@desktop0 test]# mkdir /tmp/test/a

[root@desktop0 test]# mkdir /tmp/test/a/b

[root@desktop0 test]# mkdir -p /tmp/test/a/b




=====================================

===============================================================================================

練習:用student身份登陸desktop虛擬機上完成練習

在用戶家目錄下創建6個文件 song1.mp3 ~ song6.mp3

[student@desktop0 Desktop]$ touch song1.mp3 song2.mp3 song3.mp3 song4.mp3 song5.mp3 song6.mp3

[student@desktop0 Desktop]$ ls -l

total 0

-rw-rw-r--. 1 student student 0 Apr 30 15:09 song1.mp3

-rw-rw-r--. 1 student student 0 Apr 30 15:09 song2.mp3

-rw-rw-r--. 1 student student 0 Apr 30 15:09 song3.mp3

-rw-rw-r--. 1 student student 0 Apr 30 15:09 song4.mp3

-rw-rw-r--. 1 student student 0 Apr 30 15:09 song5.mp3

-rw-rw-r--. 1 student student 0 Apr 30 15:09 song6.mp3

[student@desktop0 Desktop]$ 


把上出創建的songX.mp3文件移動到Music目錄下

[student@desktop0 Desktop]$ mkdir Music

mkdir: cannot create directory ‘Music’: File exists

[student@desktop0 Desktop]$ mv song1.mp3 song2.mp3 song3.mp3 song4.mp3 song5.mp3 song6.mp3 ./Music/

[student@desktop0 Desktop]$ ls

Music

在用戶家目錄下創建三個目錄,分別爲 friends,family,work

[student@desktop0 Desktop]$ mkdir friends family work




切換到friends目錄下,把Music目錄下的song1.mp3 ~ song3.mp3 拷貝到當前目錄

老師方法:

 [student@desktop0 friends]$cp ../Music/song1.mp3   ../Music/song2.mp3  ../Music/song3.mp3  。、


我的方法:

[student@desktop0 friends]$ cp /home/student/Desktop/Music/song1.mp3 ./

[student@desktop0 friends]$ cp /home/student/Desktop/Music/song3.mp3 ./

[student@desktop0 friends]$ ls

song1.mp3  song3.mp3

切換到family目錄下,把Music目錄下的song4.mp3 ~ song6.mp3 移動到當前目錄

老師方法:

[student@desktop0 family]$mv  ../Music/song1.mp4  ../Music/song1.mp5 ../Music/song1.mp6 ./

我的方法:

[student@desktop0 family]$ mv /home/student/Desktop/Music/song4.mp3 ./

[student@desktop0 family]$ mv /home/student/Desktop/Music/song6.mp3 ./

[student@desktop0 family]$ ls

song4.mp3  song6.mp3

[student@desktop0 family]$ 


切換到用戶主目錄


刪除family目錄

[student@desktop0 ~]$ rm -r /home/student/family


切換到friends目錄,把目錄下的所有文件刪除

[student@desktop0 friends]$ rm ./*


切換到主目錄,把friends目錄刪除.

[student@desktop0 ~]$ rm -r friends








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章