当前位置:文档之家› 嵌入式Linux实验三

嵌入式Linux实验三

实验三:文件、目录及其操作命令1实验目的通过实验掌握如Linux操作系统的基本操作2实验设备硬件:PC机一台软件:Windows98/XP/2000系统,VMware Workstation6.0,Red Hat Linux3实验内容(1)文件的复制、删除和移动命令:cp, rm, mv(2)Linux文件与目录(3)目录命令:mkdir, rmdir, cd, pwd, ls(4)链接文件与ln(5)文件与目录的权限4实验预习要求仔细阅读参考书:【1】鸟哥的Linux私房菜基础学习篇第三版,人民邮电出版社,鸟哥【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心关于Linux文件与目录的部分。

5实验步骤(1)熟悉Red Hat Enterprise Linux系统。

(2)根据实验重点内容测试。

6实验重点:(1)文件的复制、删除与移动:cp, rm, mv要复制文件,请使用cp (copy) 这个命令即可。

不过,cp 这个命令的用途不仅仅于此。

除了单纯的复制之外,还可以建立连结文件(就是快捷方式),比对两文件的新旧而予以更新,以及复制整个目录等等的功能。

至于移动目录与文件,则使用mv (move),这个命令也可以直接拿来作重命名(rename) 的操作!至于(移除)删除文件,使用rm (remove) 这个命令。

cp (复制文件或目录)[root@localhost ~]# cp [-adfilprsu] 源文件(source) 目标文件(destination)[root@localhost ~]# cp [options] source1 source2 source3 .... directory选项与参数:-a:相当于-pdr 的意思,至于pdr 请参考下列说明;(常用)-d:若源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;-f :为强制(force)的意思,若目标文件已经存在则无法开启,则移除后再尝试一次;-i :若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用)-l :进行硬式连结(hard link)的连结文件建立,而非复制文件本身;-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);-r :递归持续复制,用于目录的复制行为;(常用)-s :复制成为符号链接文件(symbolic link),亦即快捷方式文件;-u :若destination 比source 旧,才更新destination !最后需要注意的,如果源文件有两个以上,则最后一个目标文件一定要是目录才行!范例一:用root身份,将主目录下的.bashrc 复制到/temp 下,并更名为bashrc (~代表目前用户身份所在的主文件夹)[root@localhost ~]# cp ~/.bashrc /temp/bashrc[root@localhost ~]# cp -i ~/.bashrc /temp/bashrccp: overwrite `/temp/bashrc'? n <==n不覆盖,y为覆盖说明:重复作两次操作,由于/temp 下已经存在bashrc 了,加上-i 选项后,则在覆盖前会询问使用者是否确定!可以按下n 或者y 来二次确认。

范例二:将主目录下的.bashrc和.bash_history 复制到/temp下。

[root@localhost ~]cp ~/.bashrc ~/.bash_history /temp可以将多个数据一次复制到同一目录中去,最后面一定是目录。

范例三:复制/etc/ 这个目录下的所有内容到/tmp 下[root@www tmp]# cp /etc/ /tmpcp: omitting directory `/etc' <== 如果是目录则不能直接复制,要加上-r 的选项[root@www tmp]# cp -r /etc/ /tmp-r 是可以复制目录,但是,文件与目录的权限可能会被改变。

所以,也可以利用cp –a /etc /tmp 来下执行!尤其是在备份的情况下!rm (移除文件或目录)[root@localhost ~]# rm [-fir] 文件或目录选项与参数:-f :就是force 的意思,忽略不存在的文件,不会出现警告信息;-i :互动模式,在删除前会询问使用者是否操作-r :递归删除!最常用在目录的删除了!这是非常危险的选项!!!范例一:将刚刚在cp 的范例中建立的bashrc 删除掉![root@localhost ~]# cd /temp[root@localhost tmp]# rm -i bashrcrm: remove regular file `bashrc'? y如果加上-i 的选项就会主动询问,避免删除到错误的文件!范例二:通过通配符*的帮助,将/temp下开头为bashrc的文件名通通删除:[root@localhost tmp]# rm -i bashrc*注意星号,代表的是0 到无穷多个任意字符!范例三:将cp 范例中所建立的/temp/etc/ 这个目录删除掉![root@localhost tmp]# rmdir /temp/etcrmdir: etc: Directory not empty <== 删不掉!因为这不是空的目录![root@localhost tmp]# rm -r /temp/etcrm: descend into directory `/temp/etc'? y ....(中间省略)....因为身份是root ,预先已经加入了-i 的选项,所以要一直按y 才会删除!如果不想要继续按y ,可以按下[ctrl]-c 来结束rm 的工作。

这是一种保护的操作,如果确定要删除掉此目录而不要询问,可以这样做:[root@localhost tmp]# \rm -r /temp/etc在命令前加上反斜杠,可以忽略掉alias 的指定的参数!对于删除命令(remove),要注意的是,通常在Linux系统下,为了怕文件被误删除,所以很多distributions 都已经默认加入-i 这个选项!而如果要连目录下的东西都一起删掉的话,例如子目录里面还有子目录时,那就要使用-r 这个选项了!不过,使用rm -r 这个命令之前,请千万注意,因为该目录或文件肯定会被root 删掉!因为系统不会再次询问你是否要删掉!所以那是个超级严重的命令!mv (移动文件与目录,或更名)[root@localhost ~]# mv [-fiu] source destination[root@localhost ~]# mv [options] source1 source2 source3 .... directory选项与参数:-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;-i :若目标文件(destination) 已经存在时,就会询问是否覆盖!-u :若目标文件已经存在,且source 比较新,才会更新(update)范例一:复制一文件,建立一目录,将文件移动到目录中[root@localhost ~]# cd /temp[root@localhost tmp]# cp ~/.bashrc bashrc[root@localhost tmp]# mkdir mvtest[root@localhost tmp]# mv bashrc mvtest将某个文件移动到某个目录去,就是这样做!范例二:将刚刚的目录名称更名为mvtest2[root@localhost tmp]# mv mvtest mvtest2 <== 这样就更名了!范例三:再建立两个文件,再全部移动到/temp/mvtest2 当中[root@localhost tmp]# cp ~/.bashrc bashrc1[root@localhost tmp]# cp ~/.bashrc bashrc2[root@localhost tmp]# mv bashrc1 bashrc2 mvtest2注意,如果有多个来源文件或目录,则最后一个目标文件一定是目录!这里将所有的数据移动到该目录!(2)Linux文件与目录在Linux系统中,所有的系统账号的相关信息,都是记录在/etc/passwd这个文件内。

个人的密码则是记录在/etc/shadow这个文件下。

此外,Linux所有的群组名称都纪录在/etc/group 内!这三个文件是Linux系统里面账号、密码、群组信息的集中地不能随便删除这三个文件。

Linux 文件权限概念文件的权限针对“使用者”与“群组”来设定。

尤其是当屏幕前面出现了“Permission deny”的时候,肯定是权限设定错误。

Linux文件的属性在以root的身份登入Linux之后,执行ls -al第一栏代表这个文件的类型与权限(permission):这一栏其实共有十个字符:第一个字符代表这个文件是“目录、文件或连结文件”:当为[ d ]则是目录,例如上表文件名为”.gconf”的那一行;当为[ - ]则是普通文件,例如上表文件名为”install.log”那一行;若是[ l ]则表示为连结文件(link file);若是[ b ]则表示为设备文件里面的可供储存的接口设备(可随机存取装置);若是[ c ]则表示为设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为“rwx”的三个参数的组合。

其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]。

第一组为“文件拥有者的权限”,第二组为“同群组的权限”;第三组为“其它非本群组的权限”。

例题:若有一个文件的类型与权限数据为”-rwxr-xr--”,请说明其意义为何?答:先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:[-] [rwx] [r-x] [r--]1 234 567 8901 为:代表这个文件名为目录或文件,本例中为文件(-);234为:拥有者的权限,本例中为可读、可写、可执行(rwx);567为:同群组使用者权限,本例中为可读可执行(rx);890为:其它使用者权限,本例中为可读(r)第二栏表示有多少文件名连结到此节点(i-node):每个文件都会将他的权限与属性记录到文件系统的i-node中,目录树是使用文件名来记录,因此每个文件名就会连结到一个i-node。

相关主题