Linux入门之文件权限和目录配置

来源:互联网 发布:owncloud支持windows 编辑:程序博客网 时间:2024/06/04 18:21

Done is better than perfect.

文件权限说明

owner:文件所有者
group:用户组,同组成员可以查看使用组内共享的文件
others:其他人,是相对没有联系的用户
root:是一个特殊的用户,默认具有最大的权利。

ls -al中显示的内容如下:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

  • 10个字符确定不同用户能对文件干什么

  • 第一个字符代表文件(-)、目录(d),链接(l)

  • 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

  • 第一组rwx:文件所有者的权限是读、写和执行

  • 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

  • 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7

修改文件权限

chgrp:修改用户所属的用户组
chown:修改文件所有者
chmod:改变文件权限

文件种类

  • 普通文件
  • 二进制文件
  • 数据格式文件
  • 目录
  • 链接文件
  • 套接字
  • 管道PIPE

Linux目录配置

FHS(Filesystem Hierarchy Standard)标准。参考连接
这里写图片描述

常用命令

//显示硬盘、分区、CPU、内存信息$df -lh                        显示所有硬盘的使用状况$du -sh *                      显示当前目录下各个目录和文件的大小$mount                         显示所有的硬盘分区挂载$mount partition path          挂在partition到路径path$umount partition              卸载partition$sudo fdisk -l                 显示所有的分区$sudo fdisk device             为device(比如/dev/sdc)创建分区表。 进入后选择n, p, w$sudo mkfs -t ext3 partition   格式化分区patition(比如/dev/sdc1)                               修改 /etc/fstab,以自动挂载分区。增加行:                              /dev/sdc1  path(mount point) ext3 defaults 0 0$arch                          显示架构$cat /proc/cpuinfo             显示CPU信息$cat /proc/meminfo             显示内存信息$free                          显示内存使用状况//进程$top               显示进程信息,并实时更新$ps                显示当前shell下的进程$ps -lu username   显示用户username的进程$ps -ajx           以比较完整的格式显示所有的进程$kill PID          杀死PID进程 (PID为Process ID)//网络$ifconfig      显示网络接口以及相应的IP地址。ifconfig可用于设置网络接口$ifup eth0     运行eth0接口$ifdown eth0   关闭eth0接口$iwconfig      显示无线网络接口$route         显示路由表。route还可以用于修改路由表$netstat       显示当前的网络连接状态$ping IP       发送ping包到地址IP$traceroute IP 探测前往地址IP的路由路径$dhclient      向DHCP主机发送DHCP请求,以获得IP地址以及其他设置信息。$host domain   DNS查询,寻找域名domain对应的IP$host IP       反向DNS查询$wget url      使用wget下载url指向的资源$wget -m url   镜像下载

文件内容查阅

cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号
tailf 类似于tail -f

umask 有什么用处与优点

umask 可以拿掉一些属性,因此,适当的定义umask 有助于系统的安全,因为他可以用来建立预设的目录或档案的权限。
当一个使用者的umask 分别为033 与044 他所建立的档案与目录的权限为何?
在umask 为033 时,则预设是拿掉group 与other 的w(2)x(1)权限,因此权限就成为『档案-rw-r–r– ,目录drwxr–r– 』而当umask 044 时,则拿掉r 的属性,因此就成为『档案-rw–w–w-,目录drwx-wx-wx』

命令与文件查询

相关链接

  1. which:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;
  2. type:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。type命令其实不能算查找命令;
  3. whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s);
  4. locate:相当于find -name,可快速查找文件;
  5. find:最常用和最强大的查找命令,可以用它找到任何想找的文件。
一、which:查找系统命令位置which命令在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。which命令的格式如下:1   which [-a] commandwhich命令的参数如下:     -a:将所有由PATH目录中可以找到的命令均列出来,而不是只列出第一个被找到的命令。例子:[root@www ~] # which ifconfig/sbin/ifconfig二、whereis:程序名搜索whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。whereis命令的格式如下: 1   whereis [-bmsu] 文件或目录名whereis命令的参数如下:     -b 只查找二进制格式的文件     -m 只查找在说明文件manual路径下的文件     -s 只招source源文件     -u 查找不在上述三个选项当中的其他特殊文件例子:     [root@www ~] # whereis ifconfigifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz[root@www ~] # whereis -m ifconfigifconfig: /usr/share/man/man8/ifconfig.8.gz三、locate:利用数据库查找文件locate命令的格式如下: 1   locate [-ir] keywordlocate命令的参数如下:    -i:忽略大小写差异;    -r:后面可接正则表达式的实现方式。例如: [root@www ~] # locate passwd/etc/passwd/etc/passwd-/etc/news/passwd.nntp/etc/pam.d/passwd四、find:查找任何文件find命令的格式如下: 1   find [PATH] [option] [action]4.1 find参数:基于文件名的搜索与文件名有关的参数如下:   -name filename:查找文件名为filename的文件。filename可使用正则表达式表示。例子: 1   [root@www ~] # find / -name passwd查找文件名为passwd的文件。4.2 find参数:基于文件大小的搜索与文件大小有关的参数如下:     -size SIZE:查找文件大小刚好等于SIZE的文件;     -size -SIZE:查找文件大小大于SIZE的文件;     -size +SIZE:查找文件大小小于SIZE的文件。其中,SIZE的单位有:     c —— byte,字节;     w —— 字(2字节);     b —— bit,块(512字节);     k —— 千字节;     M —— 兆字节;     G —— 吉字节。[root@www ~] # find . -type f -size +10k搜索大于10KB的文件[root@www ~] # find . -type f -size 10k搜索等于10KB的文件4.3 find参数:基于文件类型的搜索与文件类型有关的参数如下:     -type TYPE:查找文件的类型为TYPE的文件。TYPE的参数列表有:     f :普通文件;     l :符号连接;     d :目录;     c :字符设备;     b :块设备;     s :套接字;     p :FIFO。例子: 1   [root@www ~] # find /var -type s查找/var目录下所有类型为socket的文件。4.4 find参数:基于目录深度的搜索与目录深度有关的参数如下:    -maxdepth n:n为数字,表示向下最大深度限制为n;    -mindepth n:n为数字,搜索出深度距离当前目录至少n个子目录的所有文件。向下最大深度限制为3[root@www ~] # find . -mindepth 2 -type f搜索出深度距离当前目录至少2个子目录的所有文件4.5 find参数:基于时间进行搜索与时间有关的参数共有 -atime、-ctime、-mtime。下面以 -mtime 说明:     -mtime n: n为数字,列出在n天之前的“一天之内”被更改过的文件名;     -mtime +n:列出在n天之前(不含第n天本身)被更改过的文件名;     -mtime -n:列出在n天之内(不含第n天本身)被更改过的文件名;     -newer file:file为一个存在的文件,列出比file还要新的文件名。例子: [root@www ~] # find /etc -mtime 0查找从现在开始到24小时前,/etc目录下所有改动过内容的文件都会被列出来。[root@www ~] # find /ect -newer /etc/passwd查找/etc目录下,所有比/etc/passwd文件更新的文件。4.6 find参数:基于用户或用户组名进行搜索与用户或用户组名有关的参数如下:     -uid n:n为数字,表示用户的UID     -gid n:n为数字,表示用户的GID     -user name:name为用户账号名称;     -group name:name为用户组名;     -nouser:寻找文件的所有者不存在于/etc/passwd的文件;     -nogroup:寻找文件的所有用户组不存在于/etc/group的文件。例子: 1   [root@www ~] # find /home -user root查找root用户在/home目录下的所有文件。4.7 find参数:基于文件权限进行搜索与文件权限有关的参数如下:     -perm mode:查找文件权限刚好等于mode的文件;     -perm +mode:查找文件权限“包含任一mode的权限”的文件;     -perm -mode:查找文件权限“必须要全部包括mode的权限”的文件。例子: 1   [root@www ~] # find / -perm +7000查找必须含有---s--s--t的所有三个权限的文件。4.8 find命令的其它一些技巧4.8.1 查找所有长度为零的文件: 1   find . -empty4.8.2 查找在n分钟内被修改的文件: 1   find . -cmin -60查找一个小时内文件状态改变的文件(也就是60分钟内)。4.8.3 仅仅查找非隐藏的文件(不显示隐藏文件): 1   find . \( ! -regex ".*/\..*" \)显示当前目录及其子目录下的文件,并且只列出非隐藏文件。五、type:显示指定命令的类型type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。type命令格式如下: 1   type [option] [commond]type命令的参数有:     -t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”;     -p:如果给出的指令为外部指令,则显示其绝对路径;     -a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。命令的类型可能有如下几种:     alias: 别名;     keyword: 关键字,Shell保留字;     function: 函数,Shell函数;     builtin: 内建命令,Shell内建命令;     file: 文件,磁盘文件,外部命令;     unfound: 没有找到。例子: [root@www ~] # type cdcd is a shell builtin[root@www ~] # type date date is /bin/date[root@www ~] # type mysqlmysql is /usr/bin/mysql[root@www ~] # type nginx-bash: type: nginx: not found[root@www ~] # type ifif is a shell keyword

ls显示出的time应该是mtime。touch后,文件的三个时间应该都会改变,可以试一试。问题描述文件的 ctime、mtime、atime 之间有什么区别? 配置信息解决方法文件的 Access time,atime 是在读取文件或者执行文件时更改的。文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。