文件的权限:读r、写w、执行x
用户的分类:文件属主、同组用户、其他用户
文件的信息:位置、类型、长度、拥有者/访问者、i节点、修改时间、权限说明
文件的类型:目录d、符号链接(快捷方式)l、套接字文件s、块设备文件b、字符设备文件c、命名管道文件p、普通文件-
目录的权限:r表示可以列出其中的文件,w可以在其中创建删除文件,x可以搜索或者进入该目录
suid/guid:这种权限的脚本或程序,在其他用户执行时,临时拥有了更高的权限,执行完毕之后回复到用户执行前的权限。
默认文件目录
|
可分享的(shareable) |
不可分享的(unshareable) |
不变的(static) |
/usr (软件放置处) |
/etc (配置文件) |
|
/opt (第三方协力软件) |
/boot (开机与核心档) |
可变动的(variable) |
/var/mail (使用者邮件信箱) |
/var/run (程序相关) |
|
/var/spool/news (新闻组) |
/var/lock (程序相关) |
重要根目录
- /etc:配置文件
- /bin:重要执行档
- /dev:所需要的装置文件
- /lib:执行档所需的函式库与核心所需的模块
- /sbin:重要的系统执行文件
目录 |
应放置文件内容 |
/bin |
放置所用用户常用命令,cat, chmod, chown, date, mv, mkdir, cp, bash等。 |
/boot |
开机配置,常用vmlinuz,grub方式还会存在/boot/grub/目录。 |
/dev |
硬件文件,有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等 |
/etc |
系统主要配置,账号密码文件、 各种服务启动。 |
/home |
用户目录,里边包含所有用户 |
/lib |
开机时会用到的库文件,以及/bin或/sbin中指令关联的库文件。 其中/lib/modules/目录放置核心相关的驱动程序。 |
/media |
包括软盘、光盘、DVD。常见有:/media/floppy, /media/cdrom等等。 |
/mnt |
暂时用的设备,可插拔设备。 |
/opt |
第三方软件目录。不过还是习惯放置在/usr/local目录下。 |
/root |
系统管理员(root)的家目录。 |
/sbin |
Linux系统配置命令。 服务命令,在/usr/sbin/。用户命令/usr/local/sbin/。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。 |
/srv |
service的缩写,网络服务数据目录。 网页在/srv/www/里面。 |
/tmp |
暂存文件 |
/usr目录(Unix Software Resource)
目录 |
应放置文件内容 |
/usr/X11R6/ |
为X Window System重要数据所放置的目录 |
/usr/bin/ |
绝大部分用户可用的指令,/bin是与开机相关。 |
/usr/include/ |
c/c++等程序语言的档头(header)与包含档(include)放置处。 |
/usr/lib/ |
函数库、目标文件(object file),执行文件或脚本(script)。 |
/usr/local/ |
系统管理员安装的软件,有bin, etc, include, lib...的次目录。 |
/usr/sbin/ |
非系统配置命令,某些网络服务器软件的服务指令。 |
/usr/share/ |
放置共享文件的地方, 几乎都是文本文件
|
/usr/src/ |
原始文档 |
/var目录
目录 |
应放置文件内容 |
/var/cache/ |
应用程序本身运作过程中会产生的一些缓存; |
/var/lib/ |
程序数据文件放置的目录,MySQL的数据库放置到/var/lib/mysql/ |
/var/lock/ |
锁文件,只允许 |
/var/log/ |
|
/var/mail/ |
也在/var/spool/mail/目录中,互为链接文件。 |
/var/run/ |
某些程序或者是服务启动后, PID的目录。 |
/var/spool/ |
这个目录通常放置一些队列数据。 |
chmod
改变权限位的命令。
chmod [who] operator [permission] filename
who的含义是:
u 文件属主权限。
g 同组用户权限。
o 其他用户权限。
a 所有用户(文件属主、同组用户及其他用户 )。
operator的含义:
+ 增加权限。
- 取消权限。
= 设定权限。
permission的含义:
r 读权限。
w 写权限。
x 执行权限。
绝对模式的命令:chmod [mode] file
mode是三个八进制数字,每个数字分别表示用户、同组、其他用户的权限。1/2/4分别表示读、写、运行,相加变得到权限的组合。
chown/chgrp
改变文件的所有权
查看自己的权限
group:查看自己的组
id:查看自己的组
group user:查看user的组
who:查看自己
umask
设定创建文件的默认权限。命令方式同chmod,但是设定的mask值,所以设定什么,则创建的文件默认没有什么权限。
默认权限:umask或者umask –S
改变默认权限:umask 002
创建目录: mkdir /tmp/chapter7_1
修改属性: chown -R dmtsai:users /tmp/chapter7_1
修改权限: chmod -R 755 /tmp/chapter7_1
软连接
相当于文件的引用,命令为
ln [-s] source_path target_path
find
命令的一般形式为:
find pathname -options [-print -exec -ok]
让我们来看看该命令的参数:
pathname find命令所查找的目录路径。例如用 .来表示当前目录,用 /来表示系统根目录。
-print find命令将匹配的文件输出到标准输出。
-exec find 命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为 'command' {} ;,注意{ }和之间的空格。
-ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,
在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
选项或表达式
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了-depth选项,那么 -prund选项将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件。
-nogroup 查找无有效所属组的文件,即该文件所属的组在不存在。
-nouser 查找无有效属主的文件,即该文件的属主不存在。
-newer file1 ! file2 查找更改时间比文件1新但比文件2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 在查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
使用exec或ok来执行shell命令
查找更改时间在5日前的文件,并删除之
find logs -type f -mtime +5 -exec rm {} ;
xargs
find后的-exec选项执行的命令,会在find结束之后执行,但是有时候匹配的多的话,命令太长,会出现溢出错误。
xargs与find一起使用,每次获取一部分文件而不是全部,获取多少可以通过参数确定。
查找可执行权限的文件,并收回执行权限。
find /apps/audit -perm -7 -print | xargs chmod o-w
文件名的占位符
文件名的占位符可以在进行文件查找的命令中,实现模糊查询的功能,比如find、ls等命令。
- *,表示0到多个任意字符,使用时可以为*、*.log、time*.log、temp.*等。
- ?,表示1个字符。
- [...],表示方括号中的任意一个字符,也可以使用-符号,表示属于一组序列中的任意一个字符.
- [!...],表示非方括号中的任一字符。
压缩打包
*.Z compress 程序压缩的文件; *.gz gzip 程序压缩的文件; *.bz2 bzip2 程序压缩的文件; *.tar tar 程序打包的数据,并没有压缩过; *.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩 *.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩 |
详细命令
[root@www ~]# tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩
[root@www ~]# tar [-j|-z] [tv] [-f 创建的档名] <==察看档名
[root@www ~]# tar [-j|-z] [xv] [-f 创建的档名] [-C 目录] <==解压缩
选项与参数:
-c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
-t :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-p :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
-P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
打包目录
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
查看压缩包文件
tar -ztvf /tmp/etc.tar.gz
解压缩到当前文件夹
tar -zxvf /tmp/etc.tar.gz