嵌入式系统概论实验三Word格式.docx
《嵌入式系统概论实验三Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统概论实验三Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
【1】鸟哥的Linux私房菜基础学习篇第三版,人民邮电出版社,鸟哥
【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心
【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心
关于Linux文件与目录的部分。
5实验步骤
(1)熟悉RedHatEnterpriseLinux系统。
(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]source1source2source3....directory
选项与参数:
-a:
相当于-pdr的意思,至于pdr请参考下列说明;
(常用)
-d:
若源文件为链接文件的属性(linkfile),则复制链接文件属性而非文件本身;
-f:
为强制(force)的意思,若目标文件已经存在则无法开启,则移除后再尝试一次;
-i:
若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用)
-l:
进行硬式连结(hardlink)的连结文件建立,而非复制文件本身;
-p:
连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:
递归持续复制,用于目录的复制行为;
-s:
复制成为符号链接文件(symboliclink),亦即快捷方式文件;
-u:
若destination比source旧,才更新destination!
最后需要注意的,如果源文件有两个以上,则最后一个目标文件一定要是目录才行!
范例一:
用root身份,将主目录下的.bashrc复制到/temp下,并更名为bashrc(~代表目前用户身份所在的主文件夹)
[root@localhost~]#cp~/.bashrc/temp/bashrc
[root@localhost~]#cp-i~/.bashrc/temp/bashrc
cp:
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@wwwtmp]#cp/etc//tmp
omittingdirectory`/etc'
<
==如果是目录则不能直接复制,要加上-r的选项
[root@wwwtmp]#cp-r/etc//tmp
-r是可以复制目录,但是,文件与目录的权限可能会被改变。
所以,也可以利用cp–a/etc/tmp来下执行!
尤其是在备份的情况下!
rm(移除文件或目录)
[root@localhost~]#rm[-fir]文件或目录
选项与参数:
就是force的意思,忽略不存在的文件,不会出现警告信息;
互动模式,在删除前会询问使用者是否操作
递归删除!
最常用在目录的删除了!
这是非常危险的选项!
!
将刚刚在cp的范例中建立的bashrc删除掉!
[root@localhost~]#cd/temp
[root@localhosttmp]#rm-ibashrc
rm:
removeregularfile`bashrc'
y
如果加上-i的选项就会主动询问,避免删除到错误的文件!
通过通配符*的帮助,将/temp下开头为bashrc的文件名通通删除:
[root@localhosttmp]#rm-ibashrc*
注意星号,代表的是0到无穷多个任意字符!
将cp范例中所建立的/temp/etc/这个目录删除掉!
[root@localhosttmp]#rmdir/temp/etc
rmdir:
etc:
Directorynotempty<
==删不掉!
因为这不是空的目录!
[root@localhosttmp]#rm-r/temp/etc
descendintodirectory`/temp/etc'
y....(中间省略)....
因为身份是root,预先已经加入了-i的选项,所以要一直按y才会删除!
如果不想要继续按y,可以按下[ctrl]-c来结束rm的工作。
这是一种保护的操作,如果确定要删除掉此目录而不要询问,可以这样做:
[root@localhosttmp]#\rm-r/temp/etc
在命令前加上反斜杠,可以忽略掉alias的指定的参数!
对于删除命令(remove),要注意的是,通常在Linux系统下,为了怕文件被误删除,所以很多distributions都已经默认加入-i这个选项!
而如果要连目录下的东西都一起删掉的话,例如子目录里面还有子目录时,那就要使用-r这个选项了!
不过,使用rm-r这个命令之前,请千万注意,因为该目录或文件肯定会被root删掉!
因为系统不会再次询问你是否要删掉!
所以那是个超级严重的命令!
mv(移动文件与目录,或更名)
[root@localhost~]#mv[-fiu]sourcedestination
[root@localhost~]#mv[options]source1source2source3....directory
force强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
若目标文件(destination)已经存在时,就会询问是否覆盖!
若目标文件已经存在,且source比较新,才会更新(update)
复制一文件,建立一目录,将文件移动到目录中
[root@localhost~]#cd/temp
[root@localhosttmp]#cp~/.bashrcbashrc
[root@localhosttmp]#mkdirmvtest
[root@localhosttmp]#mvbashrcmvtest
将某个文件移动到某个目录去,就是这样做!
将刚刚的目录名称更名为mvtest2
[root@localhosttmp]#mvmvtestmvtest2<
==这样就更名了!
再建立两个文件,再全部移动到/temp/mvtest2当中
[root@localhosttmp]#cp~/.bashrcbashrc1
[root@localhosttmp]#cp~/.bashrcbashrc2
[root@localhosttmp]#mvbashrc1bashrc2mvtest2
注意,如果有多个来源文件或目录,则最后一个目标文件一定是目录!
这里将所有的数据移动到该目录!
在Linux系统中,所有的系统账号的相关信息,都是记录在/etc/passwd这个文件内。
个人的密码则是记录在/etc/shadow这个文件下。
此外,Linux所有的群组名称都纪录在/etc/group内!
这三个文件是Linux系统里面账号、密码、群组信息的集中地不能随便删除这三个文件。
Linux文件权限概念
文件的权限针对“使用者”与“群组”来设定。
尤其是当屏幕前面出现了“Permissiondeny”的时候,肯定是权限设定错误。
Linux文件的属性
在以root的身份登入Linux之后,执行ls-al
第一栏代表这个文件的类型与权限(permission):
这一栏其实共有十个字符:
第一个字符代表这个文件是“目录、文件或连结文件”:
当为[d]则是目录,例如上表文件名为”.gconf”的那一行;
当为[-]则是普通文件,例如上表文件名为”install.log”那一行;
若是[l]则表示为连结文件(linkfile);
若是[b]则表示为设备文件里面的可供储存的接口设备(可随机存取装置);
若是[c]则表示为设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为“rwx”的三个参数的组合。
其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]。
第一组为“文件拥有者的权限”,
第二组为“同群组的权限”;
第三组为“其它非本群组的权限”。
例题:
若有一个文件的类型与权限数据为”-rwxr-xr--”,请说明其意义为何?
答:
先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:
[-][rwx][r-x][r--]
1234567890
1为:
代表这个文件名为目录或文件,本例中为文件(-);
234为:
拥有者的权限,本例中为可读、可写、可执行(rwx);
567为:
同群组使用者权限,本例中为可读可执行(rx);
890为:
其它使用者权限,本例中为可读(r)
第二栏表示有多少文件名连结到此节点(i-node):
每个文件都会将他的权限与属性记录到文件系统的i-node中,目录树是使用文件名来记录,因此每个文件名就会连结到一个i-node。
这个属性记录的,就是有多少不同的文件名连结到相同的一个i-node号码。
第三栏表示这个文件(或目录)的“拥有者账号”
第四栏表示这个文件的所属群组。
在Linux系统下,账号可能会附属于一个或多个的群组中。
第五栏为这个文件的容量大小,单位为bytes;
第六栏为这个文件的建文件日期或者是最近的修改日