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








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