1. 相对路径的妙用在linux中,只要不是以“/”开头的都是相对路径,如:cd /tmp/123/a...cd /tmp/123/b..此时如果要回到文件夹a,则使用命令cd ../a 即可。这样比较方便请注意一下路径并非相对路径(假设alex是linux的一个用户):cd ~alex/123 -----进入alex用户目录下的123文件夹,虽然不是以“/”开头,但是 ~alex代表的意思是用户alex的家目录,即路径为/home/alex,所以第一个字符还是“/”,因此还是绝对路径,而不是相对路径。思考一下,如果你写了一个软件,包含3个目录,a,b,c 但是有的人喜欢安装在/usr中,有的喜欢安装在/opt中,那你要怎么办呢?当然是使用相对路径了,这样就方便的多了。不过如果是你的写程序,那么强烈建议使用绝对路径,应为绝对路径虽然相对麻烦一些,但是他绝对正确。2. 目录相关指令。cd (chang directory) 变换工作目录。pwd (print working directory) 输出当前工作目录 pwd -P (输出当前实际工作目录,而非链接文件本身的路径)# cd /var/mail# pwd# pwd -Pmkdir ---建立文件夹-p ------递归建立目录。如果 mkdir /tmp/123/123/123mkdir: cannot create directory `test1/test2/test3/test4": No such file or directory <== 没办法直接建立此目录,此时可以:mkdir -p /tmp/123/123/123-m ------建立文件夹的同时,直接设定文件夹权限,而非使用umask的默认权限。mkdir -m 7777 /tmp/123 ----在/tmp下建立123这个文件夹,给予其满权限。rmdir ---删除空的文件夹-p ------递归删除目录(连同上层所有空目录一起删除,非空则停止)3. 执行文件路径变量PATHecho $PATH ----输出path的路径。如果一个指令被从$PATH的路径中移动到了另外一个非$PATH的路径,而权限并没有变动,那么如果直接执行这个指令就不会成功,因为系统在$PATH中找不到的缘故。此时可以有两种方法来执行指令:1. 使用完全路径来执行这个指令。如:/root/ls -al ---执行/root目录下的ls这个指令。2. 将次指令移动后的目录增加到$PATH路径中,时$PATH可以识别它。# PATH="$PATH":/root4. 复制,移动,删除,重命名。复制:cp(copy)cp -a = cp -pdrcp -p 连同档案的属性一起复制(而非使用默认属性),常用于备份。cp -r 持续递归赋值cp -d 如果要复制的文件是链接文件(link file),则复制链接文件属性而非档案本身。如果不加-d,则赋值链接文件指向的实际档案。cp -s 建立一个符号链接文档,相当于windows中的快捷方式。比如:/var/mail 这就是一个链接档。可以观察一下。cp -l 建立一个实体链接文档,inode会增加1。(实体链接不可以跨文件系统,不是可以使用目录)如果是一般性的赋值,直接使用cp即可,如果是需要备份,则使用cp -a 即可。rm ---删除(remove)-f ---强制性删除文档,忽略不存在的信息,即不出现警告信息。-r ---递归删除,常用于删除文件夹。如果要删除文件夹,可以使用 rm -rf xxxx 这样整个世界清净了,不会弹出任何警告信息。。。但是这个删除法很危险,万一误删可就悲剧了。。。。如果碰到特殊文件要删除的话,可以直接使用标注路径法:如下:rm -aaa- ----删除“-aaa-”这个文件。Try `rm --help" for more information. <== 因为 "-" 是选项嘛!所以系统误判了!可以使用 rm -- -aaa- 这个方法删除,也可以使用rm ./-aaa- 这样指明路径也可以删除。mv ---移动档案(相当于剪切),更改档案名称。mv 123.txt test 将123.txt这个档案剪切到test这个目录。mv 123.txt 456.txt 将123.txt这个档案更名为456.txtmv 123.txt 456.txt test 将123.txt和456.txt这两个档案都移动到test这个目录。basename ---取得当前档名 如: basename /root/123.txt 得到 123.txtdirname ----取得当前目录名 如:dirname /root/123.txt 得到/root5. 档案内容查询,有以下命令。cat xxx 猫一下,就可以知道档案中的内容了。如果 cat -n /etc/fstab 查看档案 /etc/fstab 的内容,并显示行号tac xxx 反着猫一下,从最后一行开始倒序显示档案内容。nl xxx 显示档案内容并自动加上行号,类似 cat -n xxxmore xxx 一页一页的查看档案的内容,但是不能够向上翻页。less xxx 类似more的功能,但是可以向上翻页。head -n xxx 攫取档案的头几行数据tail -n xxx 攫取档案的末尾几行数据od xxx 查看二进制数据文件。不过请注意的是,如果使用more或者less来查看文档内容的话,是可以进行搜索的,向下搜索使用“/123”,即可搜素“123”这个字符串,反向搜索使用“?123”。当使用“/”或者“?”进行搜素的时候,使用n表示继续前一个搜素,使用N表示反向继续前一个搜索。touch xx 新建空档案。touch 也可以修改已经存在档案的时间属性。如 touch -d "2 days ago" /etc/issue6. 档案目录的默认权限和隐藏权限。(1)默认权限umask ----查看档案目录的预设权限(linux中档案默认拿掉x权限)一般情况下linux中root用户umask一下得到的结果时 0022 普通用户为0002下边解释一下,其中第一位是特殊权限,即3种,SUID,SGID,SBITSUID查看一下/usr/bin/passwd的属性先, ls -l /usr/bin/passwd显示结果如下 -rwsr-xr-x 1 root root 22984 JAN 7 2007 /usr/bin/passwd我们发现“/usr/bin/passwd”这个档案的拥有者的可执行权限变了,变成了s,而不再时x了。解释如下:当s这个特殊权限出现在档案拥有者的x权限上时,被称为Set UID权限,建成SUID的特殊权限。这个权限的意义在于:1. SUID权限仅仅对二进制文件有效。2. 此权限在执行者执行期间有效(run-time)3. 执行者需要有此文件的x权限。4. 执行者在执行此程序过程中将拥有该程序拥有者的权限。如果不理解这个概念的话,可以看一下 /usr/bin/passwd 这个执行档就明白了。#passwd 是修改用户密码的意思。 但是我们可以看到 /etc/shadow 这个档案的拥有者为root 并且只有root可以读并且强制写入。但是我们每个用户运行passwd还是可以修改自己的密码,即可以更改/etc/shadow这个档案,这就是SUID的功劳了。。。SGID 类似于SUID 只不过,SUID在owner的x权限上,而SGID出现在group的x权限上。SBIT 查看一下 /tmp 这个目录的权限即可知道。1. SBIT 只对目录有效。2. SBIT 出现在others的x权限上。以t表示。(SUID和SGID都是以s表示的)2. SBIT 权限的目录,如果用户有此目录的写入和执行权限的话(w和x),该用户建立的档案只有用户自己和root才能删除,其他人是不可以删除的。如果按照rwx的分数来对照的话,SUID,SGID,SBIT的分数分别为4,2,1 代号为s,s,t可以使用数字发赋予权限,也可以使用增减法赋予,如下:chmod 4777 /root/123.txt 给123.txt 满权限,并且加上SUID的特殊权限。chmod u-s /root/123.txt 将123.txt的SUID权限拿掉。回过头来,umask的第一位指的就是这3个特殊权限,预设为0,即没有任何特殊权限。umask的后3位就比较容易理解了。是建立目录或者档案时需要去掉的权限,比如root用户为0022,也就是说如果root用户建立一个目录的话,默认没有任何特殊权限,owner具有全部权限,group具有r和x权限,other也具有r和x权限 即为: -rwxr-xr-x由于档案默认没有执行权限,所以root用户建立档案的默认权限为 -rw-r--r--如果想要改变umask的默认值,设定方式为 umask = 0022(2)隐藏权限和属性除了(1)中所讲的权限以外,linux中还有一些隐藏的权限和属性,这些属性需要使用chattr来修改。chattr +a /etc/login 给/etc/login这个档案加上特殊权限,此档案任何用户都不能修改,删除,只能增加内容。(如果要取消这个属性,chattr -a /etc/login 即可)chattr +i /etc/login 给/etc/login这个档案加上特殊权限,此档案任何用户都不能修改,删除和增加如何内容。(如果要取消这个属性,chattr -i /etc/login 即可)这两个属性只有root用户可以设定。查看一个档案的属性,可以使用lsattrlsattr /etc/login 显示档案/etc/login的隐藏属性。
Linux档案和目录管理的一道例题Linux的目录长度限???与配置介绍相关资讯 Linux知识
- 时光总是太匆匆!Linux已经诞生23 (08/29/2014 14:12:03)
- Linux虚拟文件系统之文件打开(sys (02/14/2012 11:41:54)
- 2012 年 Linux 峰会时间表 (02/14/2012 06:47:27)
| - 报告称当前 Linux 人才抢手 高薪也 (02/15/2012 06:35:56)
- 解析企业为何选择Linux及其特别之 (02/14/2012 08:17:59)
- Linux禁用字符闪烁的方法 (11/02/2011 10:28:25)
|
本文评论 查看全部评论 (0)