1、【1】鸟哥的Linux私房菜 基础学习篇 第三版,人民邮电出版社,鸟哥【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心关于Linux文件与目录的部分。5 实验步骤(1)熟悉Red Hat Enterprise Linux系统。(2)根据实验重点内容测试。6 实验重点:(1)文件的复制、删除与移动: cp, rm, mv要复制文件,请使用 cp (copy) 这个命令即可。不过, cp 这个命令的用途不仅仅于此。除了单纯的复制之外,还可以建立连结文件(就是快捷方式),比对两文件的新旧而
2、予以更新, 以及复制整个目录等等的功能。至于移动目录与文件,则使用 mv (move), 这个命令也可以直接拿来作重命名 (rename) 的操作!至于(移除)删除文件,使用 rm (remove) 这个命令。cp (复制文件或目录) rootlocalhost # cp -adfilprsu 源文件(source) 目标文件(destination) rootlocalhost # cp options source1 source2 source3 . directory 选项与参数:-a:相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用) -d:若源文件为链接文件的属性(l
3、ink file),则复制链接文件属性而非文件本身; -f :为强制(force)的意思,若目标文件已经存在则无法开启,则移除后再尝试一次;-i :若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用) -l :进行硬式连结(hard link)的连结文件建立,而非复制文件本身;-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);-r :递归持续复制,用于目录的复制行为;-s :复制成为符号链接文件 (symbolic link),亦即快捷方式文件;-u :若 destination 比 source 旧,才更新 destination !最后需要注意的
4、,如果源文件有两个以上,则最后一个目标文件一定要是目录才行!范例一:用root身份,将主目录下的 .bashrc 复制到 /temp 下,并更名为bashrc (代表目前用户身份所在的主文件夹)rootlocalhost # cp /.bashrc /temp/bashrc rootlocalhost # cp -i /.bashrc /temp/bashrccp: overwrite /temp/bashrc? n =n不覆盖,y为覆盖 说明:重复作两次操作,由于 /temp 下已经存在 bashrc 了,加上 -i 选项后,则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 来二次确认
5、。范例二:将主目录下的.bashrc和.bash_history 复制到/temp下。rootlocalhost cp /.bashrc /.bash_history /temp可以将多个数据一次复制到同一目录中去,最后面一定是目录。范例三:复制 /etc/ 这个目录下的所有内容到 /tmp 下rootwww tmp# cp /etc/ /tmp omitting directory /etc = 如果是目录则不能直接复制,要加上 -r 的选项rootwww tmp# cp -r /etc/ /tmp-r 是可以复制目录,但是,文件与目录的权限可能会被改变。所以,也可以利用 cp a /etc
6、 /tmp 来下执行!尤其是在备份的情况下!rm (移除文件或目录) rootlocalhost # rm -fir 文件或目录 选项与参数:就是 force 的意思,忽略不存在的文件,不会出现警告信息;互动模式,在删除前会询问使用者是否操作递归删除!最常用在目录的删除了!这是非常危险的选项!将刚刚在 cp 的范例中建立的 bashrc 删除掉!rootlocalhost # cd /temp rootlocalhost tmp# rm -i bashrc rm: remove regular file bashrc y 如果加上 -i 的选项就会主动询问,避免删除到错误的文件!通过通配符*的
7、帮助,将/temp下开头为bashrc的文件名通通删除:rootlocalhost tmp# rm -i bashrc* 注意星号,代表的是 0 到无穷多个任意字符!将 cp 范例中所建立的 /temp/etc/ 这个目录删除掉!rootlocalhost tmp# rmdir /temp/etcrmdir: etc: Directory not empty = 删不掉!因为这不是空的目录! rootlocalhost tmp# rm -r /temp/etc descend into directory /temp/etc y .(中间省略). 因为身份是 root ,预先已经加入了 -i
8、的选项,所以要一直按 y 才会删除!如果不想要继续按 y ,可以按下 ctrl-c 来结束 rm 的工作。 这是一种保护的操作,如果确定要删除掉此目录而不要询问,可以这样做:rootlocalhost tmp# rm -r /temp/etc 在命令前加上反斜杠,可以忽略掉 alias 的指定的参数!对于删除命令(remove),要注意的是,通常在Linux系统下,为了怕文件被误删除,所以很多 distributions 都已经默认加入 -i 这个选项!而如果要连目录下的东西都一起删掉的话, 例如子目录里面还有子目录时,那就要使用 -r 这个选项了!不过,使用 rm -r 这个命令之前,请千万
9、注意,因为该目录或文件肯定会被 root 删掉!因为系统不会再次询问你是否要删掉!所以那是个超级严重的命令!mv (移动文件与目录,或更名) rootlocalhost # mv -fiu source destinationrootlocalhost # mv options source1 source2 source3 . directory force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;若目标文件 (destination) 已经存在时,就会询问是否覆盖!若目标文件已经存在,且 source 比较新,才会更新 (update)复制一文件,建立一目录,将文件移动到目录
10、中 rootlocalhost # cd /temp rootlocalhost tmp# cp /.bashrc bashrcrootlocalhost tmp# mkdir mvtestrootlocalhost tmp# mv bashrc mvtest 将某个文件移动到某个目录去,就是这样做!将刚刚的目录名称更名为 mvtest2 rootlocalhost tmp# mv mvtest mvtest2 = 这样就更名了!再建立两个文件,再全部移动到 /temp/mvtest2 当中 rootlocalhost tmp# cp /.bashrc bashrc1 rootlocalhos
11、t tmp# cp /.bashrc bashrc2 rootlocalhost tmp# mv bashrc1 bashrc2 mvtest2 注意,如果有多个来源文件或目录,则最后一个目标文件一定是目录!这里将所有的数据移动到该目录!在Linux系统中,所有的系统账号的相关信息,都是记录在/etc/passwd这个文件内。个人的密码则是记录在/etc/shadow这个文件下。此外,Linux所有的群组名称都纪录在/etc/group内!这三个文件是Linux系统里面账号、密码、群组信息的集中地 不能随便删除这三个文件。Linux 文件权限概念文件的权限针对“使用者”与“群组”来设定。尤其是
12、当屏幕前面出现了“Permission deny”的时候,肯定是权限设定错误。Linux文件的属性在以root的身份登入Linux之后,执行ls -al 第一栏代表这个文件的类型与权限(permission):这一栏其实共有十个字符:第一个字符代表这个文件是“目录、文件或连结文件”:当为 d 则是目录,例如上表文件名为”.gconf”的那一行;当为 - 则是普通文件,例如上表文件名为”install.log”那一行;若是 l 则表示为连结文件(link file);若是 b 则表示为设备文件里面的可供储存的接口设备(可随机存取装置);若是 c 则表示为设备文件里面的串行端口设备,例如键盘、鼠标
13、(一次性读取装置)。接下来的字符中,以三个为一组,且均为“rwx” 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 。第一组为“文件拥有者的权限”, 第二组为“同群组的权限”;第三组为“其它非本群组的权限”。例题:若有一个文件的类型与权限数据为”-rwxr-xr-”,请说明其意义为何?答:先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:- rwx r-x r- 1 234 567 890 1 为:代表这个文件名为目录或文件,本例中为文件(-
14、);234为:拥有者的权限,本例中为可读、可写、可执行(rwx);567为:同群组使用者权限,本例中为可读可执行(rx);890为:其它使用者权限,本例中为可读(r)第二栏表示有多少文件名连结到此节点(i-node):每个文件都会将他的权限与属性记录到文件系统的i-node中,目录树是使用文件名来记录,因此每个文件名就会连结到一个i-node。这个属性记录的,就是有多少不同的文件名连结到相同的一个i-node号码。第三栏表示这个文件(或目录)的“拥有者账号” 第四栏表示这个文件的所属群组。在Linux系统下,账号可能会附属于一个或多个的群组中。第五栏为这个文件的容量大小,单位为bytes;第六栏为这个文件的建文件日期或者是最近的修改日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1