【Linux】--基本指令(下)--shell--权限理解
搜索命令 find
在Linux下,查找某一个文件可以使用find来执行
当我们执行find命令后就可以查找到该文件所在的路径,其中-name选项是按照文件名查找文件
find命令的查找也会在磁盘
文章目录 搜索命令 find 在Linux下,查找某一个文件可以使用find来执行 当我们执行find命令后就可以查找到该文件所在的路径,其中-name选项是按照文件名查找文件 find命令的查找也会在磁盘中进行查找,不过效率会比较低下 which which命令是用来查找命令所处的路径 whereis 在特定的路径下,查找指定的文件名对应的指令或文档 alias 对指令其别名,也就是说可以通过该命令对某个指令的功能取另一个名字 这里我对 ls 取了一个别名 bieming,然后我就可以使用该别名取完成ls对应的功能了 对文本内容进行操作 grep 在文件中搜索字符串,将其对应的行打印出来 可以看到,我这里利用grep指令搜索含有字符‘9999’的行就显示出来了;同理也可以搜索‘999’的内容。 当然,grep也有自己的选项,例如 -i:忽略大小写的不同-n:输出行号-v:反向选择,也就是输出没有该字符串的行 wc wc:可以统计文本的行数 sort 对文本内容按行进行排序 可以看到,文本里面的内容按行进行了排序 uniq 对文本里的内容按行进行去重 可以看到,文本里的相邻的行会进行去重 解压/压缩指令 zip 压缩文件.zip目录或文件 使用zip指令一定要特别注意,如果压缩的是一个非空的目录,必须要加上 -r 选项才可以将目录里的所有内容全部压缩。否则就只会压缩一个空的目录 语法:zip 压缩文件.zip 目标目录或文件 可以看到,此时就生成了一个1234.zip的压缩文件 unzip zip是压缩指令,unzip就是解压缩指令 那么这时会有一个问题,在windows中我们可以选择将文件压缩到指定目录,那么Linux下也同样可以,只需要给unzip指令添加一个 -d 选项即可 可以看到,一开始我的code目录下是没有内容的,当我用unzip指令解压文件指定到code目录后,code目录中就会有我们解压后的文件或目录了 tar 压缩文件可以有很多种,不同的压缩文件对应不同的后缀名。在Linux中,特有一个 .tgz 的压缩文件。就需要用到 tar指令去操作。 tar 这个指令不仅可以压缩文件,也可以解压文件,同时还可以不解压文件直接查看压缩文件的内容,使用tar指令必须配合其选项去进行使用 -c:建立一个压缩文件-x:解压一个压缩文件-t:查看压缩文件的内容-z:具有zip的数学-f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数-C:解压到指定目录 通过选项 czf 就可以很好的创建出一个压缩文件。tar和zip不同,tar压缩目录不需要加 -r 选项 同理通过 xzf 就可以很好的解压出压缩文件 解压到指定文件的选项一定记住大写的C uname uname -r:可以获取电脑和操作系统的相关信息 uname -a:获取所有的信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 shell命令行解释器 对于操作系统而言,每一个操作系统都会有自己的一个核心,Linux严格来说是一个操作系统,那对于我们用户而言直接去访问操作系统是不被允许的,操作系统的内核大多都是利用接口实现,如果直接访问成本代价会很大 所以就引入了一个技术:命令行解释器 命令行解释器的作用:将我们使用者的命令翻译给核心去处理,也就是好比我们写代码编译器需要先把源码转换成机器语言才能够去执行。然后再把执行后的结果反馈给用户,这样还可以很好的保护操作系统,去除用户的非法指令。 对于windows而言,我们也不是直接访问它的内核,而是通过图形接口去完成我们的操作 shell对于Linux来说,也是如此,主要是对我们的指令进行解析,传给Linux内核,反馈结果再通过内核运行出结果,通过shell解析给用户 权限 什么是权限 简单去理解,权限就是:某件事是否被某个人去做。例如张三校长可以进去校长室,张三为什么可以进去校长室呢?并不是因为他叫张三,而是因为他是校长所以才能进去校长室。因此权限就可以理解为,某个角色是否被允许去做某件事。 Linux中分为三个角色:拥有者(owner);所属组(grouper);其他人(other)。 对于文件的权限而言,就是每个角色加上其对应的可进行的操作(文件属性)。 Linux对于文件的权限属性有几种: r:可读w:可写x:可执行 如上图:红色圈起来的就是文件的权限属性,蓝色圈起来的是文件的拥有者,绿色圈起来的是文件的所属组 对于红色圈起来的每个文件的第一个字母表示的是文件的类型,在Linux中,系统不对文件的后缀名进行要求,也就是说Linux分辨文件类型不是根据后缀名分辨,而是根据上图第一个字母进行分辨的,但是要注意仅仅是Linux系统不对文件的后缀名有要求,在Linux中下载的软件有些是会有要求的,例如gcc。常见的文件类型如下: -:普通文件d:目录文件l:链接文件p:管道文件 那么除去第一个字母,后面的9个代表了什么呢? 后面的9个字符,每三个为一组,分别对应三个角色,如上图,拥有者的权限为:可读可写可执行,所属组:可读可执行不可写,其他人:可读可执行不可写 如何操作文件 既然我们知道了如何去看文件的属性,那么我们能不能去增删文件的属性呢 首先如果我们想要去设置属性就需要用到chmod指令,适用语法:chmod 角色±操作 目标文件 其中对于角色:u代表拥有者,g代表所属组,o代表其他人 可以看到,使用指令对拥有者增加可执行权限之后,其文件属性就会发生了变化 同理删除属性也是一样的操作,那么既然可以设置文件的属性,能不能也设置文件的所属角色呢? 在Linux中也是可以的,只需要用到chown/chgrp指令,前者是用来设置文件拥有者,后者是用设置文件所属组 可以看到,文件一开始的拥有者是root,通过指令操作后变成了hjb。设置所属组也是一样的道理 上面提到了设置文件的属性可以使用角色±操作来设置,在Linux中我们也可以使用八进制来设置。例如: 上图的属性,我们可以用1代表有,0代表无,对应下来就是 110100011 然后我们转换为八进制就是 643 那么现在我来设置一下看是否能设置成上图的样子 可以看到,文件的属性成功被修改了。 有一个问题:文件在被创建的时候,一定就是默认的权限吗 可以看到Linux 文件基本属性,普通文件被创建之后权限为644(八进制);目录文件被创建后权限为755(八进制)。那么为什么会这样呢? 事实上Linux中,普通文件的起始权限为666,目录文件的起始权限为777,但是为什么会变成了644和775呢,这是因为在Linux中系统会默认配置好一个umask(权限掩码),而我们创建出来的文件的最终权限 = 起始权限 & (~umask) 可以看到目前系统的umask为022(前面的0可以看作是八进制),因此 666 & (~umask) = 644 所以我创建出来的普通文件权限为644(目录文件同理可得)。那么umask可不可以修改呢,答案是可以的,执行命令:umask 数值即可 为什么要有权限呢 权限可以便于我们系统进行管理,而且可以安全的管理。如果每个人都可以不受限制访问系统中的任何文件,那么在企业中就会造成不可估量的损失。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |