欢迎光临
我们一直在努力

【Linux 基础教程(三)】文件属性与权限管理、目录操作及 vi/vim 编辑器

Linux文件基本属性

显示文件属性

ls命令

Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法:

参数: -a 显示所有文件及目录 (. 开头的隐藏文件也会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

文件与目录操作

Linux可以支持长达256个字符的文件名称,且文件名是区分大小写 的,“abc” 与 "ABC"所代表的是不同文件。

Linux文件类型

在这里插入图片描述

Linux文件类型

  • 普通文件(-):存放数据,程序等信息的文件,一般为文本文件和二进制文件。

  • 目录文件(d):文件系统中一个目录所包含的目录文件,包括文件名和子目录名。

  • 链接文件(l):可以在不同的文件系统之间建立链接关系来实现对文件的访问。

  • 设备文件©:把IO设备映射为一个设备文件。

  • 管道文件§:主要用于在进程间传递数据。

  • 文件权限

    所谓的文件权限,是指对文件访问权限,包括对文件的读、写、删除、执行操作。Linux是一个多用户操作系统,它运行多个用户同时登陆和工作,因此Linux将一个文件或者目录与一个用户和组联系起来。

    Linux系统中,文件有三种访问权限:

  • 读(r)- 允许读取文件

  • 写(w)- 允许写、修改和删除某个文件

  • 执行(x)- 允许执行某个文件

  • 例如,我们以 root 的身份登陆 Linux,并执行如下指令:

    解析:文件设定不同用户的读、写和执行权限,仅涉及到 9 位字符

    Linux权限字与权限操作

  • chgrp: 改变文件所属群组;

  • chown:改变文件所有人;

  • chmod:改变文件的属性;

  • 改变所属群组chgrp

    改变一个文件的群组很简单,直接用chgrp命令,这个命令是change group的缩写。

    语法:

    参数选项 -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目 录下的所有文件的属组都会更改。

    改变文件属性chmod

    Linux文件属性有两种设置方法,一种是数字,一种是符号。

    Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

    文字设定法

    基本上就九个权限分别是:

    • user:用户

    • group:组

    • others:其他

    那么我们就可以使用 u, g, o 来代表三种身份的权限。

    此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

    语法:

    操作对象who可是下述字母中的任一个或者它们的组合:

    • u 表示“用户(user)”,即文件或目录的所有者。

    • g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

    • o 表示“其他(others)用户”。

    • a 表示“所有(all)用户”。它是系统默认值。

    操作符号可以是:

    • +添加某个权限。

    • – 取消某个权限。

    • = 赋予给定权限并取消其他所有权限(如果有的话)。

    • 设置mode所表示的权限可用下述字母的任意组合:

    • r 可读。

    • w 可写。

    • x 可执行。

    • X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

    • s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

    • t 保存程序的文本到交换设备上。

    • u 与文件属主拥有一样的权限。

    • g 与和文件属主同组的用户拥有一样的权限。

    • o 与其他用户拥有一样的权限。

    • -c : 若该档案权限确实已经更改,才显示其更改动作

    • -f : 若该档案权限无法被更改也不要显示错误讯息

    • -v : 显示权限变更的详细资料

    • -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

    • –help : 显示辅助说明

    • –version : 显示版本

    数字设定法

    我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

    例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

    先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

    • r:4

    • w:2

    • x:1

    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: – rwx r– r-x 分数则是:

    • owner = rwx = 4+2+1 = 7

    • group = rwx = 4+0+0 = 4

    • others= — = 4+0+1 = 5

    所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:

    选项:

    • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

    • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

    示例1:如果我们需要将文件权限设置为 – rwx r-x r– 。

    示例2将 .bashrc 这个文件所有的权限都设定启用。

    改变文件拥有者chown

    更改文件属主,也可以同时更改文件属组

    语法:

    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名

    示例:

    进入 /root 目录(~)将install.log的拥有者改为bin这个账号:
    [root@gzkhj ~] cd ~

    [root@gzkhj ~]# chown bin install.log
    [root@gzkhj ~]# ls -l
    -rw-r–r– 1 bin users 68495 Jun 25 08:53 install.log

    将install.log的拥有者与群组改回为root:
    [root@gzkhj ~]# chown root:root install.log

    [root@gzkhj ~]# ls -l
    -rw-r–r– 1 root root 68495 Jun 25 08:53 install.log

    Linux路径

    路径,顾名思议,是指从树形目录中的某个目录层次到某个文件的一条道路。 Linux系统中是从" / "开始的。

    注意事项: 引入路径的概念的最终目的就是找到需要的目录或者文件。路 径是由目录或者文件名构成。

    绝对路径

    绝对路径是指从“根”开始的路径。例如/usr/local,/etc/hosts,如果一个路径是从“/”开始它一定是绝对路径。

    注意: 绝对路径必须以 “/” 开头,它表示根目录。

    相对路径

    相对路径是以 “ . ” 或者 " … "开始的。. 表示用户操作所处的位置… 表示上级目录。

    注意:

    • 相对路径不能以 “ / ” 开头。

    • 每个目录中都有 “ …” 目录文件。

    在路径一些特殊符号的说明

    • . : 当前用户所在目录

    • … :表示上一级目录

    • ~ : 表示当前用户自己家目录

    • ~ USER:表示用户名为USER的家目录。这里的USER是在/etc/passwd中存在的用户。

    Linux处理文件目录的常用命令

    在这里插入图片描述

    pwd (显示目前所在的目录)

    pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

    选项与参数: -P :显示出确实的路径,而非使用连结 (link) 路径

    pwd示例:

    注意: pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

    mkdir (创建新目录)

    如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。

    语法:

    选项与参数: -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

    mkdir示例

    rmdir (删除空的目录)

    语法:

    选项与参数: -p :从该目录起,一次删除多级空目录 删除 runoob 目录

    rmdir示例:

    cp (复制文件或目录)

    cp 即拷贝文件和目录。copy的意思。

    语法:

    选项与参数:

    • -r:递归持续复制,用於目录的复制行为

    cp示例:

    rm (删除文件或者目录)

    语法:

    选项与参数:

    • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

    • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

    rm示例:

    mv (移动文件与目录,或修改名称)

    语法:

    选项与参数:

    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

    • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

    mv示例:

    [root@gzkhj ~]# cd /tmp

    [root@gzkhj tmp]# cp ~/.bashrc bashrc

    [root@gzkhj tmp]# mkdir mvtest

    [root@gzkhj tmp]# mv bashrc mvtest

    Linux文件编辑工具vi/vim

    vi/vim 的使用

    vi或vim是Linux最常用的文本编辑器工具,vi或vim没有图形界面编辑器那样单机鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远是图形界面的编辑器所不能比的。

    基本上 vi/vim 共分为三种模式 :

  • 命令模式(Command mode)

  • 输入模式(Insert mode)

  • 底线命令模式(Last line mode)

  • 命令模式

    用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    在这里插入图片描述

    输入模式

    在命令模式下按下i、o、a就进入了输入模式。

    在输入模式中,可以使用以下按键:

    • 字符按键以及Shift组合,输入字符

    • ENTER,回车键,换行

    • **BACK SPACE,**退格键,删除光标前一个字符

    • **DEL,**删除键,删除光标后一个字符

    • **方向键,**在文本中移动光标

    • **HOME/END,**移动光标到行首/行尾

    • **Page Up/Page Down,**上/下翻页

    • **Insert,**切换光标为输入/替换模式,光标将变成竖线/下划线

    • **ESC,**退出输入模式,切换到命令模式

    底线命令模式

    主要保存或者退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转所编写文档的特定行数。

    在这里插入图片描述

    shift+zz 保存退出

    vi/vim 使用实例

    编辑模式

    在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的!

    要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。

    在这里插入图片描述

    常用语法

    进入编辑模式

    • i 当前光标前

    • a 当前光标后

    • o 当前光标行的下一行

    退出编辑模式

    按『Esc』键

    指令模式

    在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

    常用语法

    基本语法

    • : 选项

      w 保存

      q 退出

      ! 感叹号强制执行

    • / 查找,/被查找词,n是查找下一个,shift+n是往上查找

    • ? 查找,?被查找词,n是查找上一个,shift+n是往下查找

    示例:

    命令操作

    在这里插入图片描述

    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 【Linux 基础教程(三)】文件属性与权限管理、目录操作及 vi/vim 编辑器
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址