- 浏览: 467415 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
Linux的帮助命令是 man 命令名
在我们 Linux 系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有那个 root 的相关资讯,都是记录在 /etc/passwd 这个档案内的。至于密码则是记录在 /etc/shadow 这个档案下。
此外, Linux 所有的群组名称都纪录在 /etc/group 内!这三个档案可以说是 Linux 系统里面帐号、密码、群组资讯的集中地棉!不要随便删除这三个档案啊!
文件权限与属性是学习 Linux 的一个相当重要的关卡
以 root 的身份登入 Linux 之后,下达『ls -al 』命令,列出所有的文件或目录的详细信息
ls 是『list』的意思,与在早期的 DOS 年代的指令 dir 类似功能。 而参数『-al』则表示列出所有的档案 ( 包含隐藏档,就是档名前面第一个字元为 . 的那种档案 )
第一栏代表这个档案的属性∶-rwxrwx---共十个属性,
第一个属性代表这个档案是『目录、档案或连结档等等』∶
当为[ d ]则是目录,例如上表的第 11 行;
当为[ - ]则是档案,例如上表的第 5 行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置档里面的可供储存的周边设备;
若是[ c ]则表示为装置档里面的序列埠设备,例如键盘、滑鼠。
接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute)∶
第一组为『拥有人的权限』,以第 5 行为例,该档案的拥有人可以读写,但不可执行;
第二组为『同群组的权限』;
第三组为『其他非本群组的权限』。
需要特别留意的是 x 这个标号,一个目录,而且只有 root 可以读写与执行
因为 x 与 目录 的关系相当的重要, 如果您在该目录底下不能执行任何指令的话,那么自然也就无法进入了,因此, 请特别留意的是,如果您想要开放某个目录让一些人进来的话, 请记得将该目录的 x 属性给开放在 Windows 底下一个档案是否具有执行的能力是藉由『 附档名 』来判断的, 例如∶.exe, .bat, .com 等等,但是在 Linux 底下, 我们的档案是否能执行,则是藉由是否具有 x 这个属性来决定的!所以,跟档名是没有绝对的关系的!
第三栏表示这个档案(或目录)的『拥有人』。
第四栏表示拥有人的群组。
第五栏为这个档案的容量大小。
第六栏为这个档案的建档日期或者是最近的修改日期
第七栏为这个档案的档名, 如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』
复制文档命令 :cp 源文档 目的文档
如何修改一个档案的权限呢?
什么时候要使用 chown 或 chgrp 呢?!或许您会觉得奇怪吧?!是的,确实有时候需要变更档案的拥有者的, 最常见的例子就是在 copy 档案给你之外的其他人时
chgrp ∶改变档案所属群组,格式: chgrp [-r] 群组名 文件或目录名
要改变成为的群组名称必须要在 /etc/group 里面存在的名称才行,否则就会显示错误!
chown ∶改变档案所属人 ,格式:chown [-r] 账号名称 文件或目录名
使用者必须是已经存在系统中的,也就是在 /etc/passwd 这个档案中有纪录的使用者名称才行改变。
如果要连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上 -R 的参数即可!
chmod ∶改变档案的属性、 SUID 、等等的特性,格式:chmod [-r] xyz 文件或目录名
(1)数字类型改变档案权限
Linux 档案的基本属性就有九个,分别是 owner/group/others 组别的 read/write/excute 属性, 先复习一下刚刚上面提到的资料∶
-rwxrwxrwx
这九个属性是三个三个一组的!其中,我们可以使用数字来代表各个属性,各属性的对照表如下∶ r:4w:2x:1
同一组 (owner/group/others) 的三个属性 (r/w/x) 是需要累加的,例如当属性为 [-rwxrwx---] 则是∶
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以等一下我们设定属性的变更时,该属性的数字就是 770 啦!
(2)符号类型改变档案权限
九个属性分别是(1)user (2)group (3)others 三群啦!那么我们就可以藉由 u, g, o 来代表三群的属性!此外, a 则代表 all 亦即全部的三群!
格式: u
g +(加入)
chmod o -(除去) rwx 档案或目录
a =(设定)
利用 chmod a+x filename ,就可以让该程式拥有执行的权限了。 是否很方便?
那个 r, w, x 对目录是什么意义呢?简单的说∶
r (read contents in directory)∶ 表示具有读取目录结构清单的权限,所以当您具有读取 (r) 一个目录的权限时, 您就可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory)∶ 这个可写入的权限对目录来说,是很了不起的! 因为他表示您将具有异动该目录结构清单的权限,也就是底下这些权限∶
建立新的档案与目录;
删除已经存在的档案与目录(不论该档案是属于谁的!)
将已存在的档案或目录进行更名;
搬移该目录内的档案、目录位置。
所以说,如果您是一般身份使用者,例如鸟哥的帐号 dmtsai ,那么在 /home/dmtsai 这个家目录内, 无论是谁 (包括 root) 建立的档案,无论该档案属于谁,无论该档案的属性是什么, dmtsai 这个使用者都『有权力将该档案删除』的喔!
x (access directory)∶ 这个在上头我们已经稍微提过了,这个 x 与能否进入该目录有关呢!
Linux 的档案种类主要有底下这几种∶
1,正规档案 (regular file )∶ 就是一般我们在进行存取的类型的档案,在由 ls -al 所显示出来的属性方面,第一个属性为 -,如果是目录,第一个为d。按照内容分为:
(1)纯文字档(ASCII)∶就是文本文档,可以用cat命令显示文件内容
(2)二进位档(binary)∶如一些可执行文件,举例来说,刚刚下达的指令 cat 就是一个 binary file 。
(3)资料格式档(data)∶ 有些程序在运作的过程当中会读取某些特定格式的档案
举例来说,我们的 Linux 在使用者登入时,都会将登录的资料记录在 /var/log/wtmp 那个档案内,该档案是一个 data file ,他能够透过 last 这个指令读出来! 但是使用 cat 时,会读出乱码
2,目录 (directory)∶就是目录棉~第一个属性为 [ d ],例如 [drwxrwxrwx]。
3,连结档 (link)∶就是类似 Windows 底下的捷径啦!第一个属性为 [ l ], 例如 [lrwxrwxrwx] ;
4,设备与装置档 (device)∶与系统周边及储存等相关的一些档案, 通常都集中在 /dev 这个目录之下!通常又分为两种∶(1)区块 (block) 设备档 ∶就是一些储存资料, 以提供系统存取的周边设备,简单的说就是硬碟啦!例如你的一号硬碟的代码是 /dev/hda1 等等的档案啦!第一个属性为 [ b ];
(2)字元 (character) 设备档 ∶亦即是一些序列埠的周边设备, 例如键盘、滑鼠等等!第一个属性为 [ c ]。
Linux 的档案是没有所谓的『附档名』(即文件后缀名)的,因为由前面的说明我们可以知道, 一个 Linux 档案能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。虽然没有用,但通常我们还是会以适当的档名来表示该档案是什么种类的。
如*.sh ∶ 批次档 ( scripts ),因为批次档为使用 shell 写成的,所以附档名就编成 .sh 棉;
*Z, *.tar, *.tar.gz, *.zip, *.tgz∶ 经过打包的压缩档。这是因为压缩软体分别为 gunzip, tar 等等的,由于不同的压缩软体,而取其相关的附档名棉!
*.html, *.php∶网页相关档案
x 代表这个档案具有可执行的能力, 但是能不能执行成功,当然就得要看该档案的内容。如一个文本文件没有执行的内容,就执行不成功。
在 Linux 底下,每一个档案或目录的档名最长可以到达 255 的字元,加上完整路径,最长可达 4096 个字元
Linux文件名避免使用:* ? > < ; & ! [ ] | \ ' " ` ( ) { }。
另外,档案名称的开头为小数点『.』时, 代表这个档案为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的参数, 所以您最好也避免将档案档名的开头以 - 或 + 来命名啊!
Linux 目录配置的依据 FHS Filesystem Hierarchy Standard (FHS) ,因为linux开发者巨多,不可能目录结构不同,所以需要一个规范。它只是规定出根目录 ( / ) 底下各个主要的目录应该是要放置什么样的档案而已。 FHS 定义出两层规范出来,第一层是 / 底下的各个目录应该要放置什么样内容的档案资料,例如 /etc 应该要放置设定档, /bin 与 /sbin 则应该要放置可执行档等等。第二层则是针对 /usr 及 /var 这两个目录的次目录来定义的。 例如 /var/log 放置系统登录档、 /usr/share 放置共享资料等等。
根据档名写法的不同,也可将所谓的路径 (path) 定义为绝对路径 (absolute) 与相对路径 (relative)。 绝对路径为∶由根目录 (/) 开始写起的档名或目录名称, 例如 /home/dmtsai/.bashrc;相对路径为相对于目前路径的档名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法。单一档案或目录的最大容许档名为 255 个字元;
查看根目录下的
[root@linux ~]# ls -l /
drwxr-xr-x 2 root root 4096 Jul 14 05:22 bin ls, mv, rm, mkdir, rmdir, gzip, tar, cat, cp,
mount 等等重要指令都放在这个目录当中。
drwxr-xr-x 3 root root 4096 Jul 9 05:18 boot 这个目录主要的目的是放置 Linux 系统开机会用到的档案。 这个目录底下档名为 vmlinuz 的就是 Linux 的 Kernel 啦
drwxr-xr-x 9 root root 4880 Jul 11 00:45 dev
drwxr-xr-x 6 root root 4096 Jun 29 01:06 disk1
drwxr-xr-x 3 root root 4096 Jun 25 08:53 disk2
drwxr-xr-x 83 root root 12288 Jul 14 05:23 etc 系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、 各种服务的启始档等等。
drwxr-xr-x 6 root root 4096 May 30 20:07 home 这是系统预设的使用者家目录 (home directory)。
drwxr-xr-x 10 root root 4096 Jul 14 05:23 lib
drwx------ 2 root root 16384 Jun 25 16:21 lost+found 系统不正常产生错误时,会将一些遗失的片段放置于此目录下
drwxr-xr-x 3 root root 4096 Jun 25 19:34 media
drwxr-xr-x 2 root root 4096 Apr 25 23:54 misc
drwxr-xr-x 2 root root 4096 May 23 12:28 mnt 这是软碟与光碟预设挂载点的地方;通常软碟挂在 /mnt/floppy 下,而光碟挂在 /mnt/cdrom 下,不过也不一定啦
drwxr-xr-x 2 root root 4096 May 23 12:28 opt
dr-xr-xr-x 59 root root 0 Jul 10 01:25 proc
drwx------ 9 root root 4096 Jul 13 11:31 root
drwxr-xr-x 2 root root 4096 Jul 14 05:22 sbin
drwxr-xr-x 2 root root 4096 Jun 25 08:23 selinux
drwxr-xr-x 2 root root 4096 May 23 12:28 srv
drwxr-xr-x 10 root root 0 Jul 10 01:25 sys
drwxr-xr-x 10 root root 4096 Jun 25 20:24 system
drwxrwxrwt 10 root root 4096 Jul 14 05:23 tmp 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以您需要定期的清理一下。当然,重要资料不可放置在此目录啊
drwxr-xr-x 14 root root 4096 Jun 25 08:27 usr
drwxr-xr-x 24 root root 4096 Jun 25 20:16 var
从属性的角度来看,上面的档名每个都是『目录名称』,较为特殊的是 root ,由于 root 这个目录是管理员 root 的家目录,这个家目录可重要了! 所以一定要设定成较为严密的 700 ( rwx------ )这个属性才行呐!
有几个比较重要的目录您也需要了解一下∶
/etc∶这个目录是系统设定档放置的地方, 包括您系统上的帐号与密码 (/etc/passwd, /etc/shadow),还有开机时所要用到的各项设定值 (/etc/sysconfig/*) ,还有各主要的网路服务的设定档,都在这个目录中。
意思就是说,如果这个目录底下的档案被删除或者是死掉了,嘿嘿~ 您的系统大概也就需要『很花功夫』的重建了~ ^_^。因此, 一般鸟哥都会定期将这个目录的所有档案给他备份下来, 反正这个目录的大小应该不会超过 50MB 才对,多多备份,有备无患啊!
/usr/local∶虽然说目前已经将这个目录的重要性移动到 /opt 了, 但是鸟哥还是比较习惯将我自己开发或
自行额外安装的软体放置在这个 /usr/local 目录下。 如果您的 Linux 系统是多人共管的话,那么,养成一个良好的操作习惯是有必要的。 那么安装软体的习惯也要好好建立起来啊~不要随意安装呢! 统一放置在 /usr/local 或者是 /opt 底下吧! ^_^
/var∶在上面提过一次,这里再次强调。 这个目录是在管理系统运作过程中的重要中间暂存资料的,例如 /var/lib 与 /var/run 。 此外,最终的资料例如邮件 /var/spool/mail 也是放置在这个目录中~ 另外,几乎所有服务的登录档 (可以记录谁、什么时候、由哪里登入主机、做了什么事等等资讯!) 都放在 /var/log 这个目录下,因此,这个目录也很重要。记得常常去检查 /var/log/messages 这个档案是否有异常啊~
什么是档案系统 (filesystem) 呢?目前的操作系统大多数是将资料由硬碟读出来的, 那么每个操作系统使用的硬碟在 x86 架构上的,都一样啊!都是同样的硬碟。 但是,每种作业系统都有其独特的读取档案的方法,也就是说, 每种作业系统对硬碟读取的方法不同,所以就造就了不同的档案系统了。
举例来说, Windows 98 预设的档案系统是 FAT (或 FAT16) 档案系统, Windows 2000 有所谓的 NTFS 档案系统,至于 Linux 的正统档案系统则为 ext2 ( Linux second extended file system, ext2fs ) 这一个。
我们的系统能不能读取某个档案系统,与前面提过的『核心功能』有关。 你必须要将你所想要支持的档案系统编译到你的核心当中才能被支持 。
文件管理器(文件和目录管理)
特殊目录:
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表『目前使用者身份』所在的家目录
~account 代表 account 这个使用者的家目录
目录操作:
cd∶变换目录
pwd∶显示目前的目录 ,pwd 是 Print Working Directory 的缩写
mkdir∶建立一个新的目录 ,你所需要的目录得一层一层的建立才行!例如∶假如你要建立一个目录为 /home/bird/testing/test1,那么首先必须要有 /home 然后 /home/bird ,再来 /home/bird/testing 都必须要存在,才可以建立 /home/bird/testing/test1 这个目录!假如没有 /home/bird/testing 时,就没有办法建立 test1 的目录棉!不过,现在有个更简单有效的方法啦!那就是加上 -p 这个参数喔!你可以直接下达∶『 mkdir -p /home/bird/testing/test1 』 则系统会自动的帮你将 /home, /home/bird, /home/bird/testing 依序的建立起目录!并且, 如果该目录本来就已经存在时,系统也不会显示错误讯息喔!挺快乐的吧!
rmdir∶删除一个空的目录。目录需要一层一层的删除才行!而且 被删除的目录里面必定不能还有其他的目录或档案! 这也是所谓的空的目录 (empty directory) 的意思啊!那如果要将所有目录下的东西都杀掉呢?!
这个时候就必须使用 rm -rf test 棉!不过,还是使用 rmdir 比较不危险!不过,你也可以尝试以 -p 的参数加入,来删除上层的目录喔!
执行文件环境变量:$PATH
请下达 echo $PATH , echo 有『显示、印出』的意思,而 PATH 前面加的 $ 表示后面接的是变量档案与目录的管理上,不外乎『显示属性』、 『拷贝』、『删除档案』及『移动档案或目录』等等
复制、移动与删除∶ cp, rm, mv,对于cp除了复制,还可以建立连结档 (就是捷径棉),移动目录与档案,则使用 mv (move), 这个指令也可以直接拿来作更名 (rename) 的动作喔!
复制后文件,注意文件的权限。某些需要特别注意的特殊权限档案, 例如密码档 (/etc/shadow) 以及一些设定档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制档案权限的参数才行!另外,如果您想要复制档案给其他的使用者, 也必须要注意到档案的权限(包含读、写、执行以及档案拥有者等等), 否则,其他人还是无法针对您给予的档案进行修订的动作喔
硬链接:如windows的快捷方式,软链接,又叫符号链接
完整档名最长可以到达 4096 个字元。 那么您怎么知道那个是档名?那个是目录名?嘿嘿!就是利用斜线 (/) 来分辨啊
最常使用的显示档案内容的指令可以说是 cat 与 more 及 less 了!
cat 由第一行开始显示档案内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进位的方式读取档案内容!避免显示二进制文件为乱码
第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是∶『 head ˉn 20 ~/.bashrc | tail ˉn 10 』,这样就可以得到第 11 到第 20 行之间的内容了!但是里面涉及到管线命令
Linux文件有三个时间:
modification time (mtime)∶当该档案的『内容资料』变更时,就会更新这个时间! 内容资料指的是档案的内容,而不是档案的属性喔!
status time (ctime)∶当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间啊~
access time (atime)∶当『该档案的内容被取用』时,就会更新这个读取时间 (access)。 举例来说,我们使用 cat 去读取 ~/.bashrc ,就会更新 atime 了。
在预设的情况下, ls 显示出来的是该档案的 mtime ,如果显示其他时间
ls -l --time=atime /etc/man.config
touch指令的功能:
1,建立一个空的档案;
2,将某个档案日期修订为目前 (mtime 与 atime)
例题二∶你的系统有个一般身份使用者 dmtsai,他的群组为 users,他的家目录在 /home/dmtsai,你想将你的 ~/.bashrc 复制给他(假设你是 root),可以怎么作?
答∶
cp ~/.bashrc ~dmtsai/bashrc
chown dmtsai:users ~dmtsai/bashrc
例题三∶我想在 /tmp 底下建立一个目录,这个目录名称为 chap2_2_ex1 ,并且,这个目录拥有者为 dmtsai,群组为 users ,此外,任何人都可以进入该目录浏览档案,不过除了 dmtsai 之外,其他人都不能修改该目录下的档案。
答∶
因为除了 dmtsai 之外,其他人不能修改该目录下的档案,此外, dmtsai 可以修改,所以整个目录的权限应该是 drwxr-xr-x 才对!因此
mkdir /tmp/chap2_2_ex1
chown -R dmtsai:users /tmp/chap2_2_ex1
chmod -R 755 /tmp/chap2_2_ex1
当你建立一个新的档案或目录时,他的预设属性会是什么吗? umask 就是指定 『目前使用者在建立档案或目录时候的属性预设值』, 那么如何得知或设定 umask 呢?umask 指定的是『该预设值需要减掉的权限!』因为 r、w、x 分别是 4、2、1 分
得知unmask,直接输入unmask命令即可,如得到数字0022。
建立档案时∶(-rw-rw-rw-) ˉ (-----w--w-) ==> -rw-r--r--
建立目录时∶(drwxrwxrwx) ˉ (d----w--w-) ==> drwxr-xr-x
设置unmask,直接在unmask后
若使用者建立为『档案』则预设『没有可执行 ( x ) 项目』,亦即只有 rw 这两个项目,也就是最大为 666 分,预设属性如下∶
-rw-rw-rw-
若使用者建立为『目录』,则由于 x 与是否可以进入此目录有关,因此预设为所有权限均开放,亦即为 777 分,预设属性如下∶
drwxrwxrwx
例题四∶假设您的 umask 为 003 ,请问该 umask 情况下,建立的档案与目录权限为?
答∶
umask 为 003 ,所以拿掉的属性为 --------wx,因此∶
档案∶ (-rw-rw-rw-) - (--------wx) = -rw-rw-r--
目录∶ (drwxrwxrwx) - (--------wx) = drwxrwxr--
root 的 umask 会拿掉比较多的属性,root 的 umask 预设是 022 , 这是基于安全的考量
至于一般身份使用者,通常他们的 umask 为 002 ,亦即保留同群组的写入权力!
文件隐藏属性:
chattr (设定档案隐藏属性)
在我们 Linux 系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有那个 root 的相关资讯,都是记录在 /etc/passwd 这个档案内的。至于密码则是记录在 /etc/shadow 这个档案下。
此外, Linux 所有的群组名称都纪录在 /etc/group 内!这三个档案可以说是 Linux 系统里面帐号、密码、群组资讯的集中地棉!不要随便删除这三个档案啊!
文件权限与属性是学习 Linux 的一个相当重要的关卡
以 root 的身份登入 Linux 之后,下达『ls -al 』命令,列出所有的文件或目录的详细信息
ls 是『list』的意思,与在早期的 DOS 年代的指令 dir 类似功能。 而参数『-al』则表示列出所有的档案 ( 包含隐藏档,就是档名前面第一个字元为 . 的那种档案 )
第一栏代表这个档案的属性∶-rwxrwx---共十个属性,
第一个属性代表这个档案是『目录、档案或连结档等等』∶
当为[ d ]则是目录,例如上表的第 11 行;
当为[ - ]则是档案,例如上表的第 5 行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置档里面的可供储存的周边设备;
若是[ c ]则表示为装置档里面的序列埠设备,例如键盘、滑鼠。
接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute)∶
第一组为『拥有人的权限』,以第 5 行为例,该档案的拥有人可以读写,但不可执行;
第二组为『同群组的权限』;
第三组为『其他非本群组的权限』。
需要特别留意的是 x 这个标号,一个目录,而且只有 root 可以读写与执行
因为 x 与 目录 的关系相当的重要, 如果您在该目录底下不能执行任何指令的话,那么自然也就无法进入了,因此, 请特别留意的是,如果您想要开放某个目录让一些人进来的话, 请记得将该目录的 x 属性给开放在 Windows 底下一个档案是否具有执行的能力是藉由『 附档名 』来判断的, 例如∶.exe, .bat, .com 等等,但是在 Linux 底下, 我们的档案是否能执行,则是藉由是否具有 x 这个属性来决定的!所以,跟档名是没有绝对的关系的!
第三栏表示这个档案(或目录)的『拥有人』。
第四栏表示拥有人的群组。
第五栏为这个档案的容量大小。
第六栏为这个档案的建档日期或者是最近的修改日期
第七栏为这个档案的档名, 如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』
复制文档命令 :cp 源文档 目的文档
如何修改一个档案的权限呢?
什么时候要使用 chown 或 chgrp 呢?!或许您会觉得奇怪吧?!是的,确实有时候需要变更档案的拥有者的, 最常见的例子就是在 copy 档案给你之外的其他人时
chgrp ∶改变档案所属群组,格式: chgrp [-r] 群组名 文件或目录名
要改变成为的群组名称必须要在 /etc/group 里面存在的名称才行,否则就会显示错误!
chown ∶改变档案所属人 ,格式:chown [-r] 账号名称 文件或目录名
使用者必须是已经存在系统中的,也就是在 /etc/passwd 这个档案中有纪录的使用者名称才行改变。
如果要连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上 -R 的参数即可!
chmod ∶改变档案的属性、 SUID 、等等的特性,格式:chmod [-r] xyz 文件或目录名
(1)数字类型改变档案权限
Linux 档案的基本属性就有九个,分别是 owner/group/others 组别的 read/write/excute 属性, 先复习一下刚刚上面提到的资料∶
-rwxrwxrwx
这九个属性是三个三个一组的!其中,我们可以使用数字来代表各个属性,各属性的对照表如下∶ r:4w:2x:1
同一组 (owner/group/others) 的三个属性 (r/w/x) 是需要累加的,例如当属性为 [-rwxrwx---] 则是∶
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以等一下我们设定属性的变更时,该属性的数字就是 770 啦!
(2)符号类型改变档案权限
九个属性分别是(1)user (2)group (3)others 三群啦!那么我们就可以藉由 u, g, o 来代表三群的属性!此外, a 则代表 all 亦即全部的三群!
格式: u
g +(加入)
chmod o -(除去) rwx 档案或目录
a =(设定)
利用 chmod a+x filename ,就可以让该程式拥有执行的权限了。 是否很方便?
那个 r, w, x 对目录是什么意义呢?简单的说∶
r (read contents in directory)∶ 表示具有读取目录结构清单的权限,所以当您具有读取 (r) 一个目录的权限时, 您就可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory)∶ 这个可写入的权限对目录来说,是很了不起的! 因为他表示您将具有异动该目录结构清单的权限,也就是底下这些权限∶
建立新的档案与目录;
删除已经存在的档案与目录(不论该档案是属于谁的!)
将已存在的档案或目录进行更名;
搬移该目录内的档案、目录位置。
所以说,如果您是一般身份使用者,例如鸟哥的帐号 dmtsai ,那么在 /home/dmtsai 这个家目录内, 无论是谁 (包括 root) 建立的档案,无论该档案属于谁,无论该档案的属性是什么, dmtsai 这个使用者都『有权力将该档案删除』的喔!
x (access directory)∶ 这个在上头我们已经稍微提过了,这个 x 与能否进入该目录有关呢!
Linux 的档案种类主要有底下这几种∶
1,正规档案 (regular file )∶ 就是一般我们在进行存取的类型的档案,在由 ls -al 所显示出来的属性方面,第一个属性为 -,如果是目录,第一个为d。按照内容分为:
(1)纯文字档(ASCII)∶就是文本文档,可以用cat命令显示文件内容
(2)二进位档(binary)∶如一些可执行文件,举例来说,刚刚下达的指令 cat 就是一个 binary file 。
(3)资料格式档(data)∶ 有些程序在运作的过程当中会读取某些特定格式的档案
举例来说,我们的 Linux 在使用者登入时,都会将登录的资料记录在 /var/log/wtmp 那个档案内,该档案是一个 data file ,他能够透过 last 这个指令读出来! 但是使用 cat 时,会读出乱码
2,目录 (directory)∶就是目录棉~第一个属性为 [ d ],例如 [drwxrwxrwx]。
3,连结档 (link)∶就是类似 Windows 底下的捷径啦!第一个属性为 [ l ], 例如 [lrwxrwxrwx] ;
4,设备与装置档 (device)∶与系统周边及储存等相关的一些档案, 通常都集中在 /dev 这个目录之下!通常又分为两种∶(1)区块 (block) 设备档 ∶就是一些储存资料, 以提供系统存取的周边设备,简单的说就是硬碟啦!例如你的一号硬碟的代码是 /dev/hda1 等等的档案啦!第一个属性为 [ b ];
(2)字元 (character) 设备档 ∶亦即是一些序列埠的周边设备, 例如键盘、滑鼠等等!第一个属性为 [ c ]。
Linux 的档案是没有所谓的『附档名』(即文件后缀名)的,因为由前面的说明我们可以知道, 一个 Linux 档案能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。虽然没有用,但通常我们还是会以适当的档名来表示该档案是什么种类的。
如*.sh ∶ 批次档 ( scripts ),因为批次档为使用 shell 写成的,所以附档名就编成 .sh 棉;
*Z, *.tar, *.tar.gz, *.zip, *.tgz∶ 经过打包的压缩档。这是因为压缩软体分别为 gunzip, tar 等等的,由于不同的压缩软体,而取其相关的附档名棉!
*.html, *.php∶网页相关档案
x 代表这个档案具有可执行的能力, 但是能不能执行成功,当然就得要看该档案的内容。如一个文本文件没有执行的内容,就执行不成功。
在 Linux 底下,每一个档案或目录的档名最长可以到达 255 的字元,加上完整路径,最长可达 4096 个字元
Linux文件名避免使用:* ? > < ; & ! [ ] | \ ' " ` ( ) { }。
另外,档案名称的开头为小数点『.』时, 代表这个档案为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的参数, 所以您最好也避免将档案档名的开头以 - 或 + 来命名啊!
Linux 目录配置的依据 FHS Filesystem Hierarchy Standard (FHS) ,因为linux开发者巨多,不可能目录结构不同,所以需要一个规范。它只是规定出根目录 ( / ) 底下各个主要的目录应该是要放置什么样的档案而已。 FHS 定义出两层规范出来,第一层是 / 底下的各个目录应该要放置什么样内容的档案资料,例如 /etc 应该要放置设定档, /bin 与 /sbin 则应该要放置可执行档等等。第二层则是针对 /usr 及 /var 这两个目录的次目录来定义的。 例如 /var/log 放置系统登录档、 /usr/share 放置共享资料等等。
根据档名写法的不同,也可将所谓的路径 (path) 定义为绝对路径 (absolute) 与相对路径 (relative)。 绝对路径为∶由根目录 (/) 开始写起的档名或目录名称, 例如 /home/dmtsai/.bashrc;相对路径为相对于目前路径的档名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法。单一档案或目录的最大容许档名为 255 个字元;
查看根目录下的
[root@linux ~]# ls -l /
drwxr-xr-x 2 root root 4096 Jul 14 05:22 bin ls, mv, rm, mkdir, rmdir, gzip, tar, cat, cp,
mount 等等重要指令都放在这个目录当中。
drwxr-xr-x 3 root root 4096 Jul 9 05:18 boot 这个目录主要的目的是放置 Linux 系统开机会用到的档案。 这个目录底下档名为 vmlinuz 的就是 Linux 的 Kernel 啦
drwxr-xr-x 9 root root 4880 Jul 11 00:45 dev
drwxr-xr-x 6 root root 4096 Jun 29 01:06 disk1
drwxr-xr-x 3 root root 4096 Jun 25 08:53 disk2
drwxr-xr-x 83 root root 12288 Jul 14 05:23 etc 系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、 各种服务的启始档等等。
drwxr-xr-x 6 root root 4096 May 30 20:07 home 这是系统预设的使用者家目录 (home directory)。
drwxr-xr-x 10 root root 4096 Jul 14 05:23 lib
drwx------ 2 root root 16384 Jun 25 16:21 lost+found 系统不正常产生错误时,会将一些遗失的片段放置于此目录下
drwxr-xr-x 3 root root 4096 Jun 25 19:34 media
drwxr-xr-x 2 root root 4096 Apr 25 23:54 misc
drwxr-xr-x 2 root root 4096 May 23 12:28 mnt 这是软碟与光碟预设挂载点的地方;通常软碟挂在 /mnt/floppy 下,而光碟挂在 /mnt/cdrom 下,不过也不一定啦
drwxr-xr-x 2 root root 4096 May 23 12:28 opt
dr-xr-xr-x 59 root root 0 Jul 10 01:25 proc
drwx------ 9 root root 4096 Jul 13 11:31 root
drwxr-xr-x 2 root root 4096 Jul 14 05:22 sbin
drwxr-xr-x 2 root root 4096 Jun 25 08:23 selinux
drwxr-xr-x 2 root root 4096 May 23 12:28 srv
drwxr-xr-x 10 root root 0 Jul 10 01:25 sys
drwxr-xr-x 10 root root 4096 Jun 25 20:24 system
drwxrwxrwt 10 root root 4096 Jul 14 05:23 tmp 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以您需要定期的清理一下。当然,重要资料不可放置在此目录啊
drwxr-xr-x 14 root root 4096 Jun 25 08:27 usr
drwxr-xr-x 24 root root 4096 Jun 25 20:16 var
从属性的角度来看,上面的档名每个都是『目录名称』,较为特殊的是 root ,由于 root 这个目录是管理员 root 的家目录,这个家目录可重要了! 所以一定要设定成较为严密的 700 ( rwx------ )这个属性才行呐!
有几个比较重要的目录您也需要了解一下∶
/etc∶这个目录是系统设定档放置的地方, 包括您系统上的帐号与密码 (/etc/passwd, /etc/shadow),还有开机时所要用到的各项设定值 (/etc/sysconfig/*) ,还有各主要的网路服务的设定档,都在这个目录中。
意思就是说,如果这个目录底下的档案被删除或者是死掉了,嘿嘿~ 您的系统大概也就需要『很花功夫』的重建了~ ^_^。因此, 一般鸟哥都会定期将这个目录的所有档案给他备份下来, 反正这个目录的大小应该不会超过 50MB 才对,多多备份,有备无患啊!
/usr/local∶虽然说目前已经将这个目录的重要性移动到 /opt 了, 但是鸟哥还是比较习惯将我自己开发或
自行额外安装的软体放置在这个 /usr/local 目录下。 如果您的 Linux 系统是多人共管的话,那么,养成一个良好的操作习惯是有必要的。 那么安装软体的习惯也要好好建立起来啊~不要随意安装呢! 统一放置在 /usr/local 或者是 /opt 底下吧! ^_^
/var∶在上面提过一次,这里再次强调。 这个目录是在管理系统运作过程中的重要中间暂存资料的,例如 /var/lib 与 /var/run 。 此外,最终的资料例如邮件 /var/spool/mail 也是放置在这个目录中~ 另外,几乎所有服务的登录档 (可以记录谁、什么时候、由哪里登入主机、做了什么事等等资讯!) 都放在 /var/log 这个目录下,因此,这个目录也很重要。记得常常去检查 /var/log/messages 这个档案是否有异常啊~
什么是档案系统 (filesystem) 呢?目前的操作系统大多数是将资料由硬碟读出来的, 那么每个操作系统使用的硬碟在 x86 架构上的,都一样啊!都是同样的硬碟。 但是,每种作业系统都有其独特的读取档案的方法,也就是说, 每种作业系统对硬碟读取的方法不同,所以就造就了不同的档案系统了。
举例来说, Windows 98 预设的档案系统是 FAT (或 FAT16) 档案系统, Windows 2000 有所谓的 NTFS 档案系统,至于 Linux 的正统档案系统则为 ext2 ( Linux second extended file system, ext2fs ) 这一个。
我们的系统能不能读取某个档案系统,与前面提过的『核心功能』有关。 你必须要将你所想要支持的档案系统编译到你的核心当中才能被支持 。
文件管理器(文件和目录管理)
特殊目录:
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表『目前使用者身份』所在的家目录
~account 代表 account 这个使用者的家目录
目录操作:
cd∶变换目录
pwd∶显示目前的目录 ,pwd 是 Print Working Directory 的缩写
mkdir∶建立一个新的目录 ,你所需要的目录得一层一层的建立才行!例如∶假如你要建立一个目录为 /home/bird/testing/test1,那么首先必须要有 /home 然后 /home/bird ,再来 /home/bird/testing 都必须要存在,才可以建立 /home/bird/testing/test1 这个目录!假如没有 /home/bird/testing 时,就没有办法建立 test1 的目录棉!不过,现在有个更简单有效的方法啦!那就是加上 -p 这个参数喔!你可以直接下达∶『 mkdir -p /home/bird/testing/test1 』 则系统会自动的帮你将 /home, /home/bird, /home/bird/testing 依序的建立起目录!并且, 如果该目录本来就已经存在时,系统也不会显示错误讯息喔!挺快乐的吧!
rmdir∶删除一个空的目录。目录需要一层一层的删除才行!而且 被删除的目录里面必定不能还有其他的目录或档案! 这也是所谓的空的目录 (empty directory) 的意思啊!那如果要将所有目录下的东西都杀掉呢?!
这个时候就必须使用 rm -rf test 棉!不过,还是使用 rmdir 比较不危险!不过,你也可以尝试以 -p 的参数加入,来删除上层的目录喔!
执行文件环境变量:$PATH
请下达 echo $PATH , echo 有『显示、印出』的意思,而 PATH 前面加的 $ 表示后面接的是变量档案与目录的管理上,不外乎『显示属性』、 『拷贝』、『删除档案』及『移动档案或目录』等等
复制、移动与删除∶ cp, rm, mv,对于cp除了复制,还可以建立连结档 (就是捷径棉),移动目录与档案,则使用 mv (move), 这个指令也可以直接拿来作更名 (rename) 的动作喔!
复制后文件,注意文件的权限。某些需要特别注意的特殊权限档案, 例如密码档 (/etc/shadow) 以及一些设定档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制档案权限的参数才行!另外,如果您想要复制档案给其他的使用者, 也必须要注意到档案的权限(包含读、写、执行以及档案拥有者等等), 否则,其他人还是无法针对您给予的档案进行修订的动作喔
硬链接:如windows的快捷方式,软链接,又叫符号链接
完整档名最长可以到达 4096 个字元。 那么您怎么知道那个是档名?那个是目录名?嘿嘿!就是利用斜线 (/) 来分辨啊
最常使用的显示档案内容的指令可以说是 cat 与 more 及 less 了!
cat 由第一行开始显示档案内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进位的方式读取档案内容!避免显示二进制文件为乱码
第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是∶『 head ˉn 20 ~/.bashrc | tail ˉn 10 』,这样就可以得到第 11 到第 20 行之间的内容了!但是里面涉及到管线命令
Linux文件有三个时间:
modification time (mtime)∶当该档案的『内容资料』变更时,就会更新这个时间! 内容资料指的是档案的内容,而不是档案的属性喔!
status time (ctime)∶当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间啊~
access time (atime)∶当『该档案的内容被取用』时,就会更新这个读取时间 (access)。 举例来说,我们使用 cat 去读取 ~/.bashrc ,就会更新 atime 了。
在预设的情况下, ls 显示出来的是该档案的 mtime ,如果显示其他时间
ls -l --time=atime /etc/man.config
touch指令的功能:
1,建立一个空的档案;
2,将某个档案日期修订为目前 (mtime 与 atime)
例题二∶你的系统有个一般身份使用者 dmtsai,他的群组为 users,他的家目录在 /home/dmtsai,你想将你的 ~/.bashrc 复制给他(假设你是 root),可以怎么作?
答∶
cp ~/.bashrc ~dmtsai/bashrc
chown dmtsai:users ~dmtsai/bashrc
例题三∶我想在 /tmp 底下建立一个目录,这个目录名称为 chap2_2_ex1 ,并且,这个目录拥有者为 dmtsai,群组为 users ,此外,任何人都可以进入该目录浏览档案,不过除了 dmtsai 之外,其他人都不能修改该目录下的档案。
答∶
因为除了 dmtsai 之外,其他人不能修改该目录下的档案,此外, dmtsai 可以修改,所以整个目录的权限应该是 drwxr-xr-x 才对!因此
mkdir /tmp/chap2_2_ex1
chown -R dmtsai:users /tmp/chap2_2_ex1
chmod -R 755 /tmp/chap2_2_ex1
当你建立一个新的档案或目录时,他的预设属性会是什么吗? umask 就是指定 『目前使用者在建立档案或目录时候的属性预设值』, 那么如何得知或设定 umask 呢?umask 指定的是『该预设值需要减掉的权限!』因为 r、w、x 分别是 4、2、1 分
得知unmask,直接输入unmask命令即可,如得到数字0022。
建立档案时∶(-rw-rw-rw-) ˉ (-----w--w-) ==> -rw-r--r--
建立目录时∶(drwxrwxrwx) ˉ (d----w--w-) ==> drwxr-xr-x
设置unmask,直接在unmask后
若使用者建立为『档案』则预设『没有可执行 ( x ) 项目』,亦即只有 rw 这两个项目,也就是最大为 666 分,预设属性如下∶
-rw-rw-rw-
若使用者建立为『目录』,则由于 x 与是否可以进入此目录有关,因此预设为所有权限均开放,亦即为 777 分,预设属性如下∶
drwxrwxrwx
例题四∶假设您的 umask 为 003 ,请问该 umask 情况下,建立的档案与目录权限为?
答∶
umask 为 003 ,所以拿掉的属性为 --------wx,因此∶
档案∶ (-rw-rw-rw-) - (--------wx) = -rw-rw-r--
目录∶ (drwxrwxrwx) - (--------wx) = drwxrwxr--
root 的 umask 会拿掉比较多的属性,root 的 umask 预设是 022 , 这是基于安全的考量
至于一般身份使用者,通常他们的 umask 为 002 ,亦即保留同群组的写入权力!
文件隐藏属性:
chattr (设定档案隐藏属性)
发表评论
-
Linux的ASCII码文本编辑器
2011-06-27 14:55 3309Linux下的纯文本文件编 ... -
Linux下的压缩命令
2011-06-27 10:44 991文件压缩 Linux系统常见 ... -
linux的文件系统
2011-06-27 10:22 951文件系统 磁盘的物理 ... -
Linux的文件及目录操作命令
2011-06-21 15:12 1056目录操作命令: cd(Change Directory)∶变换 ... -
ubuntu默认root密码 及linux文件和目录管理
2011-06-20 09:57 5370ubuntu默认root密码 安装完Ubuntu后忽然意识到 ...
相关推荐
Linux 文件属性的重要性体现在以下几个方面: * 文件权限可以控制用户对文件的访问权限,提高系统的安全性。 * 文件权限可以控制群组对文件的访问权限,方便多用户共享文件。 * 文件权限可以控制其他非本群组的...
在Linux操作系统中,文件和目录的权限管理是非常重要的一个方面。通过适当的权限设置,可以确保系统的安全性和稳定性,防止未授权访问导致的数据泄露或破坏。本文将详细介绍Linux文件目录的权限和属性,并通过实际...
### Linux 文件和目录的属性详解 #### 1. Linux 文件属性概说 在 Linux 操作系统中,每一个文件和目录都具有丰富的属性信息。这些属性不仅帮助用户了解文件的基本信息,还提供了对文件进行管理所需的控制机制。主要...
在Linux操作系统中,文件权限和目录配置是管理系统的基石,它们决定了用户对文件和目录的操作权限。本章主要探讨了4个关键知识点:文件属性、文件与目录操作、文件操作命令以及文本查看命令。 首先,文件属性是...
### Linux的档案属性与目录配置 #### 使用者与群组 **群组概念** 在Linux环境下,除了档案拥有者(owner)的概念之外,还有一个重要的概念...通过合理的权限设置和目录配置,可以确保系统的稳定运行和数据的安全性。
2. **熟悉Linux下的目录和文件命令**:学习并实践Linux系统中常用的文件和目录操作命令,包括但不限于`cd`(切换目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`pwd`(显示当前工作目录)、`find`(查找文件...
在实验中,我们将学习如何使用常用的操作命令来管理文件和目录,包括创建、删除、复制、移动和链接文件等。 二、实验步骤 1. 浏览文件系统 在实验中,我们首先需要了解 Linux 文件系统的目录结构。我们可以使用 ...
本篇文章将深入探讨Linux文件和目录的属性,以及相关的管理命令。 首先,让我们了解文件的基本属性。每一个文件或目录都有以下几个关键属性: 1. **节点(inode)**:在Linux中,文件的元信息(如大小、权限、属主...
Linux文件系统和命令是其操作系统的基础,掌握它们对于Linux系统管理员和开发者来说至关重要。通过以上知识点的介绍,可以看出Linux系统无论是在其架构设计,还是在实际使用过程中,都强调了简洁、高效和灵活性,这...
- **权限(Permissions)**:Linux文件有三种权限,分别是读(r)、写(w)和执行(x),分别对应数字4、2和1。用户类别分为所有者(Owner)、用户组(Group)和其他用户(Other)。例如,`chmod`命令用于改变文件...
例如,可以使用`rename()`方法重命名文件,`mv()`方法移动文件,`readlink()`获取符号链接的目标,`chattr()`改变文件属性等。 ```java sftp.rename(旧文件路径, 新文件路径); sftp.mv(源文件路径, 目标文件路径); ...
Linux文件属性管理涉及对文件的存取权限、所有者、属组、存取时间和文件长度等属性的设置和获取。在inode中,文件的控制信息被详细记录,包括文件在磁盘上的存储位置、存取权限、所有者标识、组标识和文件的存取时间...
本篇将详细阐述Linux文件属性及其重要性。 首先,我们要理解Linux文件信息的基本组成。当我们查看一个文件时,最常用的命令是`ll`,它会显示文件或目录的详细信息。这些信息主要包括以下几个方面: 1. **类型...
这些属性定义了不同用户或用户组对文件和目录的访问权限,确保了多用户环境中的数据安全。下面我们将深入探讨这些属性及其管理工具。 首先,Linux中的文件权限分为三类用户:文件所有者(owner)、同组用户(group...
此外,权限和所有权也是Linux文件系统中的重要概念,通过`ls -l`命令可以查看文件和目录的权限信息。例如,`rwxr-xr-x`表示文件所有者的读写执行权限,同组用户的读执行权限,以及其他用户的读执行权限。 总的来说...
理解并熟练掌握这些基本的Linux文件和目录管理命令,是成为Linux系统管理员或开发者的关键技能。通过这些命令,你可以高效地组织、保护和操纵系统中的数据。在实际操作中,务必小心,特别是涉及`rm -rf`这样的强效...
在 Linux 中,文件和目录都有各自的权限设置,这些权限决定了用户对它们的操作权限。权限可以分为三类: - **所有者权限 (User)**:文件的所有者的权限。 - **组权限 (Group)**:文件所属组的成员的权限。 - **其他...
* 可读(r):表示可以列出目录本身和目录下面的文件和子目录的属性,仅查看属性(ls)。 * 可写(w):表示可以往目录中添加删除文件和目录。 * 可执行(x):表示可以读取该目录下面的文件内容或者改写文件内容...