Linux指令的学习-2 📅 2026/7/16 4:04:34 目录1.Linux基本指令-21.1 more指令1.2 less指令1.3 head与tail指令1.4 date指令1.6 find指令1.7 which/whereis/alias指令1.8 grep指令1.9 top指令1.10 tar指令1.10.1压缩/打包目录或者文件夹1.10.2查看压缩包内容1.10.3解压缩1.11 bc指令1.12 file指令2.shell命令以及运行原理3.Linux权限3.1Linux权限管理3.1.1.文件访问者分类3.1.2文件类型和访问权限3.2文件访问权限的相关设置方法3.2.1chmod3.2.2chown3.2.3chgrp3.2.4umask4.补充1.Linux基本指令-21.1 more指令语法more选项功能类似cat用于查看文件内容cnt0; while [ $cnt -le 1000 ]; do echo HELLO $cnt; let cnt; done temp.txt先用这段代码向文件内写入1000行内容输出20行的内容可以从指定行开始查看直到文件末尾1.2 less指令语法less选项文件功能相比较more的浏览更加随意并且less在查看前不会加载整个文件看多少加载多少例如我们使用-N指令查看文件然后使用一些交互例如搜索字符串400和字符串200就会定位到这两行并标注出来字符串其他的命令和交互可以自行尝试一下1.3 head与tail指令head和tail的选项常用的基本就是-n其他的选项感兴趣可以自行查一查head指令语法head选项文件功能用于显示文件的前n行不加选项默认会打印开头10行也可以指定输出前多少行一般head使用-n这个选项就够了tail指令语法tail选项文件功能用于查看文件末尾的内容常用于查看日志文件这是查看系统综合日志这是简单查看文件后n行的指令但是如果我们想指定查看某一段区间的文件就需要将head和tail结合起来例如想查看文件第191-200行那么就可以取出前200行然后再截取后10行这种指令叫做管道指令head -n1 文件名 | tail -n21.4 date指令语法date选项格式功能用于指定格式显示现在的时间例如显示我现在写博客的时间精确到秒时间戳从1970年1月1日0点到现在的秒数也可以将时间戳转换成可视化的时间可以自己规定格式输出注意时间戳是不计算时差的所有地区时间戳统一的不过因为转换成日期的时候会考虑时差所以东八区的中国是早上八点1.5 cal指令语法cal选项年份功能查看日历信息例如查看2026年的日历不加选项默认是一整年的日历显示现在是7月14日也有按照天数显示的可以知道7月14日是2026年的第195天1.6 find指令语法find路径选项功能在文件树中查找文件并作出处理find的操作比较复杂这里就介绍一种从根目录下全盘查找名字是test.c的文件并打印路径对其他选项感兴趣或者需要使用可以再查1.7 which/whereis/alias指令which功能搜索指定指令whereis指令查找程序的源二进制文件或者手册alias指令设置命令的别名可以对指令进行搜索以及设置指令的别名等等操作1.8 grep指令语法grep选项搜索的字符串文件功能在指定文件中搜索字符串并将搜索到的行打印出来这些是比较常用的选项例如我现在创建了一个新文件这是文件内容我们试着查找一下字符串比如查找ABCD忽略大小写再次查找然后加上行号以及只查看查找的字符串部分和查找包含目标字符串以外的所有行1.9 top指令语法top -d 刷新间隔 -n 刷新次数功能实时查看 Linux 系统进程、CPU、内存整体资源占用1.10 tar指令语法tar选项【...】语法有好几种下面用例子讲解功能打包/解包压缩/解包查看压缩包内部文件列表不解压1.10.1压缩/打包目录或者文件夹例如我现在的root路径下有两个目录我分别使用gzip和bzip2的形式压缩注意打包的文件名要带上路径比如我这里写的是/root也就是压缩到/root路径下然后后面的test.tar.gz/bz2是压缩包的名字如果不想看到执行过程可以不写-v如果只是打包就可以去掉z或者j对于打包压缩的目录如果是当前路径下就直接写目录名也可以通过绝对路径的方式指定打包压缩的目录因为tar不允许包内有绝对路径所以有一行警告将/去掉转为相对路径1.10.2查看压缩包内容比如我想查看一个压缩包内的文件列表就可以使用-t查看z和j取决于压缩包压缩时候的类型1.10.3解压缩既然有压缩那就有解压的过程比如将test.tar.gz解压缩到一个目录下这里我新建了一个zipdir目录用于存放注意这里我是先进入的zipdir然后进行解压缩也就是默认是在当前目录下进行解压如果想指定目录就加上-C就可以不用先进入一个目录直接解压缩到目标目录1.11 bc指令bc指令可以用于数学计算选项是-l如果加上l可以支持浮点数不加就是默认整型1.12 file指令语法file文件名或者目录名功能查看文件真实类型2.shell命令以及运行原理Linux是一个操作系统我们称之为“核心”但是一般用户不是直接使用核心而是通过shell这一层外壳程序间接与核心沟通shell的最简单定义是命令行解释器将使用者的命令翻译给核心以及将核心的处理结果翻译给使用者起到一个桥梁的作用我们平时使用电脑时操作windows系统时并不是直接操作内核而是通过图形界面来进行操作比如打开一个软件我们会双击快捷方式然后外壳程序将这个操作翻译给内核然后启动程序最后也是用图形化的界面反馈给我们页面跳出来了我们就知道软件打开了shell对于Linux就是这个作用对我们的命令进行解析将指令给Linux内核在内核运行出结果然后将反馈结果通过shell解析传递给用户3.Linux权限Linux下有两种用户超级用户root和普通用户超级用户可以在系统下做任何事情不受限制普通用户受到权限的限制只能做有限的事情超级用户的命令提示符是#普通用户是 $如下是一个完整的新建用户并切换的过程useradd用户名/passwd用户名进行新建用户并设置密码手残输错密码输了两次注意在系统中输入密码都是不显示的输完敲回车即可su - 用户名切换普通用户su默认直接切换root要输入root的密码因为Linux下一切皆是文件所以新建的用户我们也可以找到目录cd到root上一级目录然后cd进入home可以看到一个hehe目录我们进行userdel -r 用户名删除这个用户目录也就不存在所以刚才在进行su回到root时我们的路径显示了/home/hehe3.1Linux权限管理3.1.1.文件访问者分类所有者u-User所有者所在组的用户g-Group其他用户o-Others3.1.2文件类型和访问权限文件类型d文件夹-普通文件l软链接b块设备文件p管道文件c字符设备文件s套接口文件例如root路径下的这些文件目录以d开头普通文件以-开头基本权限读/rread对于文件来说具有读取文件内容的权限对目录来说具有浏览目录信息的权限写/wwrite对于文件来说具有修改文件内容的权限对目录来说具有删除移动目录内文件的权限执行/xexecute对于文件来说具有执行文件的权限对于目录来说具有进入目录的权限分为三块从左到右是ugo也就是三种用户分别具有的权限每一块占据三列也就是我红色框的这一块例如第一行rwxr-xr-xu具有rwx权限g具有rx权限o具有rx权限-表示没有该权限对于文件权限的表示有两种一种就是rwx这种字符形式也可以是八进制表达例如如果我具有rwx的权限先看作三位二进制有权限就是1那么rwx就是111转换成八进制就是7所以第一行的权限可以表达为7553.2文件访问权限的相关设置方法3.2.1chmod语法chmod修改权限文件名/目录名功能设置文件或目录的访问权限例如我现在新建一个chmodtest.txt文件可以看到权限是644然后我们试着操作一下权限例如给使用者u的权限加上x拥有可执行的权限后文件就变成绿色了表示有执行权限删掉同一组用户g的读权限给所有用户都设置为只读权限a代表all的意思aw表示所有用户权限等于w也就是只读也可以使用八进制的方式直接给每种用户设置权限3.2.2chown语法chown用户文件名/目录名功能修改文件或者目录的拥有者还记得刚才创建的hehe用户吗我们使用chown命令将文件拥有者改为了hehe可以看到u的位置本来是root现在变为了hehe如果需要递归修改目录的所有者需要加上-R例如我创建了一个多级目录我现在想对dir5以及内部所有的目录的所有者都修改成hehe就要使用-R选项3.2.3chgrp语法chgrp所属组文件名功能修改文件或目录的所属组可以看到该文件的所属组的位置修改成了hehe3.2.4umask功能用于查看或者修改文件掩码对于新建的文件和目录文件默认权限0666目录默认权限是0777第一位0是一个特殊权限位然后生成的实际权限是mask~umask就是默认权限和掩码的反码进行按位与运算最后得到文件和目录初始权限可以看到我当前的掩码是0022所以文件和目录初始权限是644和7554.补充关于权限的问题目录的可执行权限决定是否可以在该目录下执行命令如果目录没有可执行权限我们就无法进入这个目录也无法查看内部文件的具体信息如果有只读权限此时还能看到目录内部的文件名但是也只有文件的名字没有其他信息可以获取例如我现在切换到普通用户因为root用户不受权限限制例如我在hehe用户下创建了一个dir目录目录下有一个test.txt文件此时我移除该目录的x权限我就无法进入这个目录也只能查看目录下的文件名字这一层信息再详细解释一下这个过程ls命令依靠该目录的读权限获取到了文件的名字的信息但是它还想获取文件的具体信息比如权限那么因为没有可执行权限无法获取到所以最终表现为只能打印出文件的名字而如果我恢复可执行权限但是删除了只读权限那么我可以在该目录下执行命令但是无法查看里面的文件信息了比如我可以新建一个new.txt的文件但是此时我无法查看文件信息即使无法查看文件信息但是我自己知道我有一个new.txt的文件我仍然可以对它进行操作可以看到我在目录里对其权限进行了更改虽然我无法读取文件信息这里再详细解释一下ls的操作步骤ls会先读取目录下的文件名这一步依赖于r权限然后根据文件名查找具体信息这一步依赖于x权限所以说如果连r权限都没有我就无法使用ls获取到文件具体信息了