职业规划网站,网页设计模板之家,qq推广工具,app下载页面html模板Linux 文件
基本属性 Linux 系统是一种典型的多用户系统#xff0c;为了保护系统的安全性#xff0c;不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件#xff08;包括目录文件#xff09;的权限做了不同的规定。 可以使用命令#xff1a;ll 或 ls –…Linux 文件
基本属性 Linux 系统是一种典型的多用户系统为了保护系统的安全性不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件包括目录文件的权限做了不同的规定。 可以使用命令ll 或 ls –l 来显示一个文件的属性以及文件所属的用户和组如图所示 详细解析命令ls -l 中显示的内容 使用命令ll 或 ls –l 时会显示一个文件的属性以及文件所属的用户和组等信息对这些信息详细解析如下所示 drwxr-xr-x. 3 root root 101 9月 8 01:52 abrt 如图所示从左至右的 10 个字符中第 1 个字符确定文件类型接下来的字符中以三个为一组均为 rwx 的三个参数的组合。 第 1 个字符确定文件类型类型有如下几种
d 表示目录- 表示文件l 表示为链接文档(link file)b 表示为装置文件里面的可供储存的接口设备(可随机存取装置)c 表示为装置文件里面的串行端口设备例如键盘、鼠标(一次性读取装置)。 第 2-4 位确定属主该文件的所有者拥有该文件的权限。其中 r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 需要注意的是这三个权限的位置不会改变如果没有权限就会显示为减号 - 。 第 5-7 位确定属组所有者的同组用户拥有该文件的权限。 第 8-10 位确定其他用户拥有该文件的权限。 第 10 个字符之后的字符的意义可参考上面那张图这里不再赘述。
文件的属主和属组 在Linux系统中文件都有一个特定的所有者也就是对该文件具有所有权的用户。同时用户是按组分类的一个用户属于一个或多个组。文件所有者以外的用户又可以分为 文件所属组的同组用户 和 其他用户。因此Linux系统按 文件所有者、文件所有者同组用户 和 其他用户 来规定了不同的文件访问权限。 drwxr-xr-x. 3 root root 101 9月 8 01:52 abrt 在上面的实例中abrt 文件是一个目录文件属主和属组都为 root属主有可读、可写、可执行的权限与属主同组的其他用户有可读和可执行的权限其他用户也有可读和可执行的权限。 但对于 root 用户而言一般情况下文件的权限对其不起作用。
更改文件属性 Linux 中通常使用以下两个命令来修改文件或目录的所属用户与权限
chown (change owner) 修改所属用户与组。chmod (change mode) 修改用户的权限。
chgrpchange group 用于变更文件或目录的所属群组。语法 chgrp [ * ] [--help] [--version] 属组名 文件或目录 chgrp [ * ] [--help] [--reference参考文件或目录] [--version] 文件或目录 [ * ] 参数说明 -c 或 --changes效果类似-v参数但仅回报更改的部分。-f 或 --quiet 或 --silent 不显示错误信息。-h 或 --no-dereference 只对符号连接的文件作修改而不改动其他任何相关文件。-R 或 --recursive 递归处理将指定目录下的所有文件及子目录一并处理。-v 或 --verbose 显示指令执行过程。 [ --help ] 参数说明 --help在线帮助。 [--version] 参数说明--version显示版本信息。 [--reference参考文件或目录] 参数说明把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。 实例1改变/etc/chen目录下文件hello.cpp的群组属性 实例2根据指定文件改变文件的群组属性: chownchange owner 设置文件所有者和文件关联组的命令。语法 chown [ * ] [--help] [--version] 属主名 文件名 chown [ * ] [--help] [--version] 属主名:属组名 文件名 [ * ] 参数说明 -c : 显示更改的部分的信息-f : 忽略错误信息-h :修复符号链接-v : 显示详细的处理信息-R : 处理指定目录以及其子目录下的所有文件 [ --help ] 参数说明 --help : 显示辅助说明 [ --version ] 参数说明 --version : 显示版本 例如进入 /etc/chen目录将hello.cpp的拥有者和群组改为chen这个账号 chmodchange mode 更改Linux 文件的 9 个基本属性分别是 owner(属主)/group(属组)/others(其他) 三种身份各自的 read(读)/write(写)/execute(执行) 权限。属性有两种设置方法一种是数字一种是符号。
数字类型改变文件权限 文件的权限字符为 -rwxrwxrwx 这九个权限是三个三个一组的因此可以使用数字来代表各个权限各权限的分数为r(4)、w(2)、x(1)将各组的权限(r/w/x)分数累加起来。例如当权限为 -rwxrwx--- 那么分数则是
owner rwx 421 7group rwx 421 7others --- 000 0 所以使用数字更改文件权限时该文件的权限数字xyz就是 770此时指令 chmod 的语法为 chmod [ * ] [--help] [--version] xyz 文件或目录 xyz : 数字类型的权限属性比如770。 [ * ] 参数说明 -c : 若该文件权限确实已经更改才显示其更改动作-f : 若该文件权限无法被更改也不要显示错误讯息-v : 显示权限变更的详细资料-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) [--help] 参数说明--help : 显示辅助说明 [--version] 参数说明--version : 显示版本 例如 将目录/etc/chen下的文件hello.cpp的所有的权限都设定为启用那么权限的分数就成为 [421][421][421]777
符号类型改变文件权限 使用 u, g, o 分别代表三种身份user用户、group组、others其他的权限此外 a 代表 all即全部的身份。 读、写、执行的权限可以写成 r, w, x也可使用(增加权限)、-(取消权限)、(唯一设定权限)将权限去掉而不改变其他已存在的权限。如下图所示 例如 目录/etc/chen下的文件hello.cpp权限设置为 -rwxr-xr-- 可以使用命令chmod urwx,grx,or hello.cpp 来设定: 例如 使用-(除去)将全部人的可执行权限去掉而不改变其他已存在的权限 Linux 目录管理 Linux 的目录结构为树状结构最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中通过解除挂载可以移除它们。
绝对路径与相对路径 绝对路径路径的写法由根目录 / 写起例如 /etc/chen 这个目录。 相对路径路径的写法不是由 / 写起例如由 /usr/share/doc 要到 /usr/share/man 底下时可以写成 cd ../man 这就是相对路径的写法。 处理目录的常用命令 几个常见的处理目录的命令
lslist files: 列出目录及文件名cdchange directory切换目录pwdprint work directory显示目前的目录mkdirmake directory创建一个新的目录rmdirremove directory删除一个空的目录cpcopy file: 复制文件或目录rmremove: 删除文件或目录mvmove file: 移动文件与目录或修改文件与目录的名称 注可以使用man [命令] 帮助查看各个命令的使用文档如 man cp。
ls 列出目录。语法 ls [选项] 目录名称 ls [--color{never,auto,always}] 目录名称 ls [--full-time] 目录名称 [ 选项 ] 参数说明 -a 全部的文件连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)-d 仅列出目录本身而不是列出目录内的文件数据(常用)-l 长数据串列出包含文件的属性与权限等等数据(常用)-r 逆序排列。-t 按时间信息排序。-u 使用最近访问时间代替最近修改时间为依据来排序使用 “ -t ”选项时或列出使用“ -l ”选项时。 [ --color{never,auto,always} ] 参数说明指定是否使用颜色区别文件类别。 [ --full-time ] 参数说明列出完整的时间而不是使用标准的缩写。 例如将目录/etc下的所有文件列出来(含属性与隐藏档) cd 变换工作目录的命令。语法 cd [相对路径/绝对路径] 例如使用绝对路径切换到/etc/chen/documents目录 使用相对路径切换到 documents 目录
pwd pwd 是 Print Working Directory 的缩写显示目前所在目录。语法 pwd [-P] [ -P ] 参数说明显示出确实的路径而非使用链接 (link) 路径。 例如 命令pwd 显示出当前实际的工作目录而非链接档本身的目录名 而且/var/mail是一个链接档链接到 /var/spool/mail 。因此使用命令pwd -P 后会不以链接档的数据显示而是显示正确的完整路径 mkdir mkdir 是 make directory 的缩写创建新的目录。语法 mkdir [选项] 目录名称 [ 选项 ] 参数说明 -m 配置文件的权限-p 将所需要的目录(包含上一级目录)递归创建起来 例如 目录/etc/chen 底下创建数个新目录 加入选项 -p 创建多层目录 创建权限为 r-xr-xr-x 的目录。需要使用选项 -m 。如果没有加上 -m 来强制配置属性系统会使用默认属性。 rmdir 删除空的目录。语法 rmdir [选项] 目录名称 [ 选项 ] 参数说明 -p 从该目录起一次删除多级空目录 例如 删除目录/etc/chen/tmp 底下的空目录 test 以及非空目录test1。 cp 拷贝文件和目录。语法: cp [ 选项 ] 来源档(source) 目标档(destination) cp [ 选项 ] source1 source2 source3 .... directory [ 选项 ] 参数说明 -a复制时,尽可能保持文件的结构和属性.(但不保持目录结构)等同于 -dpR。(常用) -d若来源档为链接档的属性(link file)则复制链接档属性而非文件本身 -f为强制(force)的意思若目标文件已经存在且无法开启则移除后再尝试一次 -i若目标档(destination)已经存在时在覆盖时会先询问动作的进行(常用) -l进行硬式链接(hard link)的链接档创建而非复制文件本身 -p连同文件的属性一起复制过去而非使用默认属性(备份常用) -r递归持续复制用于目录的复制行为(常用) -s复制成为符号链接档 (symbolic link)亦即『捷径』文件 -u如果存在的目标档有相同的,或者更新的修改时间,不复制目录(文件). 例如 将 /etc/chen 目录下的 test.c 复制到 /home/chen 下并命名为 hello.c rm 移除文件或目录。语法 rm [ 选项 ] 文件或目录 [ 选项 ] 参数说明 -f 就是 force 的意思忽略不存在的文件不会出现警告信息-i 互动模式在删除前会询问使用者是否动作-r 递归删除最常用在目录的删除中慎用 例如 将/home/chen 下的 hello.c删除掉加上 -i 选项会显示询问 mv 移动文件与目录或修改名称。语法源文件 mv [ 选项 ] 源文件(source) 目标文件(destination) mv [ 选项 ] source1 source2 source3 .... 目录(directory) [ 选项 ] 参数说明 -f force 强制的意思如果目标文件已经存在不会询问而直接覆盖-i 若目标文件 (destination) 已经存在时就会询问是否覆盖-u 若目标文件已经存在且 source 比较新才会升级 (update) 例如 将 /home/chen 目录下的 tmp 移动到 /etc/chen 下 将 /etc/chen 目录下的 hello.cpp 移动到 /home/chen 下并更名为 test.cpp Linux 内容查看 使用以下命令查看文件的内容
cat由第一行开始显示文件内容tac从最后一行开始显示nl显示的同时输出行号more一页一页的显示文件内容less与 more 类似且可以往前翻页head只看头部几行tail只看尾部几行 可以使用命令man [命令] 来查看各个命令的使用文档如 man cp。
cat 由第一行开始显示文件内容。语法 cat [ 选项 ] [ 文件 ] [ 选项 ] 参数说明 -A 相当于 -vET 的整合选项show-all可列出一些特殊字符而不是空白而已-b 列出行号仅针对非空白行做行号显示空白行不标行号-E 将结尾的断行字节 $ 显示出来-n 列印出行号连同空白行也会有行号与 -b 的选项不同-T 将 [tab] 符号以 ^I 显示出来-v 除了 LFD 和 TAB 之外所有控制符用 ^ 和 M- 记方式显示。 例如 查看 /etc/profile 这个文件的内容 tac tac与cat命令作用结果刚好相反文件内容从最后一行开始显示。如查看 /etc/profile 这个文件的内容 nl 显示行号。语法 nl [ 选项 ] [ 文件 ] [ 选项 ] 参数说明 -b 指定行号指定的方式主要有两种 -b a 表示不论是否为空行也同样列出行号(类似 cat -n) -b t 如果有空行空的那一行不要列出行号(默认值)-n 列出行号表示的方法主要有三种 -n ln 行号在荧幕的最左方显示 -n rn 行号在自己栏位的最右方显示且不加 0 -n rz 行号在自己栏位的最右方显示且加 0 -w 行号栏位的占用的位数。 例如 用 nl 列出 /etc/profile 的内容 more 一页一页翻动。例如查看 /etc/profile 这个文件的内容 底部会显示--More--(**%) 字样more 仍在运行过程中表示等待你的命令此时有几个按键可以按的
空白键 (space)代表向下翻一页Enter 代表向下翻『一行』/字串 代表在这个显示的内容当中向下搜寻『字串』这个关键字:f 立刻显示出档名以及目前显示的行数q 代表立刻离开 more 不再显示该文件内容。b 或 [ctrl]-b 代表往回翻页不过这动作只对文件有用对管线无用。
less 一页一页翻动以下实例输出/etc/chen/test.c 文件的内容
[chenlocalhost chen]$ less /etc/chen/test.c less运行时可以输入的命令有
空白键 向下翻动一页[pagedown]向下翻动一页[pageup] 向上翻动一页/字串 向下搜寻『字串』的功能?字串 向上搜寻『字串』的功能n 重复前一个搜寻 (与 / 或 ? 有关)N 反向的重复前一个搜寻 (与 / 或 ? 有关)q 离开 less 这个程序
head 取出文件前面几行。语法 head [-n number] 文件 [-n number] 参数说明 -n 后面接数字代表显示几行的意思。默认的情况中显示前面 10 行 例如输出4行/etc/chen/test.c 文件的内容 tail 取出文件后面几行。语法 tail [-n number] 文件 [-n number] 参数说明 -n 后面接数字代表显示几行的意思-f 表示持续侦测后面所接的档名要等到按下[ctrl]-c才会结束tail的侦测 例如输出文件/etc/chen/test.c 后面4行的内容 Linux 链接 Linux 链接分两种一种被称为硬链接Hard Link另一种被称为符号链接Symbolic Link。默认情况下ln 命令产生硬链接。
硬连接 硬连接指通过索引节点来进行连接。在 Linux 的文件系统中保存在磁盘分区中的文件不管是什么类型都给它分配一个编号称为索引节点号(Inode Index)。在 Linux 中多个文件名指向同一索引节点是存在的。 比如A 是 B 的硬链接A 和 B 都是文件名则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同即一个 inode 节点对应两个不同的文件名两个文件名指向同一个文件A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。 硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件以防止“误删”的功能。其原因如上所述因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接只有当最后一个连接被删除后文件的数据块及目录的连接才会被释放。也就是说文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接 另外一种连接称之为符号连接Symbolic Link也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中文件实际上是一个文本文件其中包含有另一文件的位置信息。 比如A 是 B 的软链接A 和 B 都是文件名A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同A 和 B 指向的是两个不同的 inode继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名可以根据这个找到 B 的目录项。A 和 B 之间是“主从”关系如果 B 被删除了A 仍然存在因为两个是不同的文件但指向的是一个无效的链接。
实例 从上面的结果中可以看出硬连接文件 f2 与原文件 file1 的 inode 节点相同均为 3291628然而符号连接文件的 inode 节点不同。 注-i参数显示文件的inode节点信息。 上面的测试可以看出当删除原始文件 file1 后硬连接 file2 不受影响但是符号连接 file3 文件无效。