当前位置:   article > 正文

Linux初启征程指南:攻克常见系统指令与权限初理解

Linux初启征程指南:攻克常见系统指令与权限初理解

有时候觉得,电脑就像一个高贵冷艳的妹纸。

400,是她冷冰冰地说:“我听不懂你在说什么”;

401,是她无情地转身:“我不认识你,别说那些奇怪的话”;

403,是她残酷的拒绝:“我听懂你的话,也认出你的脸,可我不爱你”;

404,是她紧闭心门:“我这儿没有你想要的东西”;

503,是“呵呵我去洗澡”。

前言:

Linux是一个基于UNIX的开源操作系统,其核心(Kernel)是由Linus Torvalds在1991年首次发布的。它的设计初衷是为个人计算机提供一个免费的、开源的操作系统,但由于其强大的性能和安全性,如今被广泛应用于服务器、超级计算机、嵌入式系统等多个领域。

因此对于我们这群程序员来说,学好Linux也自然是不可避免的事情。(糟糕,头发不保了!!!)下面就斗胆让作者我来给大家介绍一下Linux系统的常用指令啦。

注意,以下指令的演示都是通过Xshell,CentOS 7.6 64bit版本进行。

常用指令: 

1、ls指令

对于目录来说,ls的作用是列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

具体的使用方法是:ls + 【选项】+【目录或者文件】

 当没有指定目录或者文件时,ls默认列出当前路径下的所有文件与目录

如图,当我们没有添加额外选项,没有指定目录与文件,就会罗列当前路径的目录与文件信息,倘若指定了112目录,就会罗列112目录下的文件与目录。

选项是看情况选择是否添加,这会对ls指令添加修改部分效果,例如ls -l,就可以详细的罗列出文件的信息。 由于ls -l指令真的太常用了,所以后面衍生除了简化形式:ll,我们只需要输入ll,就可以做到与ls -l相同的效果。

2、pwd指令

在Linux系统上,我们经常会分辨不清楚自己到了哪个目录,这个时候,就需要pwd来帮助我们了。

我们只需要输出pwd指令,系统就会打印出我们当前所在的路径信息。

3、cd指令

在Windows上我们想要进入一个文件夹,只需要鼠标点击就行了,但是在Linux上却没有鼠标来给你点击,这时候就需要用到cd指令了,语法:cd +【目录名字】,就可以让我们直接进入这个目录。

可以看见,在使用cd之后,我们的路径已经更改到了112里面。

4、touch与mkdir指令

touch指令通常用来创建一个新的文件,在有些时候,也能通过touch来可更改文档或目录的日期时间,包括存取时间和更改时间。使用方法为:touch +【选项】...  文件...

 mkdir通常是用来创建一个目录,在选项中使用-p时甚至可以递归建立多个目录。

例如:mkdir –p test/test1,当此目录不存在test时,会主动创建一个test目录,随后在test里面再次创建一个test1目录。

5、rmdir与rm指令

rmdir是一个与mkdir相对应的命令,可以删除一个空目录(为该命令发出者所拥有)。而rm可以同时删除一个文件或者目录,具体用法是:rm +【-f-i-r-v】+【文件或者目录名】

6、cp与mv指令

创建与删除已经学到了,那么复制剪切自然也不能落下。而cp指令就是我们在linux实现复制的关键。语法为:cp +【选项】 +【源文件或目录 目标文件或目录】 

cp命令如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
mv 命令是 move 的缩写,可以用来移动文件或者将文件改名( move (rename) files ),是 Linux 系统下常用的命令,经常用来备份文件或者目录。
具体用法是: mv + 【选项】 +【源文件或目录】+【 目标文件或目录】
注意:
1. mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
将text.c拷贝到test目录内:

 

我们首先先将test中的text.c删除:

随后返回上级目录并将text.c移动到test里: 

7、cat指令

cat指令可跟猫没有任何关系,他的作用是查看目标文件的内容:

用法:cat+【选项】+【目标文件】

8、more指令

more的作用与cat类似,用法也差不多,所以在这里就不多赘述。

9、less指令

先前介绍了两个输出文件内容的指令,但实际上less才应该是linux正统的输出工具,他的功能极其强大。less 的用法比起 more 更加的有弹性。

 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!

除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

用法:less+【选项】+【文件】

 10、head与tail指令

head  用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。 
用法为: head+【选项...】+【文件...】
而tail 命令从指定点开始将文件写到标准输出,用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件 ,tail -f filename会把 filename 里最尾部的内容显示在屏幕上 , 并且不但刷新 , 使你看到最新的文件内容 .
用法为 tail + 【必要选项】+【可选选项】+【文件】    

11、find指令

find在日常使用中非常重要,用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。

Linux下的find1命令提供了相当多的查找条件,功能十分强大。由于find的功能强大性,所以自然它的选项也就十分多,但绝大部分选项都值得我们去学习记忆。

    即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间(这里是指30G字节以上的文件系统)。    

用法为:find +【文件】+【选项】

12、grep命令

grep命令主要用于在文本文件或命令输出中搜索特定的字符串或正则表达式,并显示匹配的行。

用法为:grep +【选项】+【搜索字符串】+【文件名】

13、zip与unzip指令

zip目的是将目录或文件压缩成zip格式,而unzip就是将压缩文件解压。

用法:zip +【压缩后的文件名.zip】+【目标文件与目标文件夹】

 

14、tar指令

tai指令是用于创建、解压缩和管理归档文件的工具。

用法:tar +【选项】 +【归档文件名】+【文件或目录】

Linux系统中的权限初识: 

Linux 下有两种用户:超级用户( root )、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$
于是我们可以使用su +用户名字的方法切换用户,但是对于root用户来说,可以直接切换,但普通用户切换为root就需要输入对应的root密码。
在Linux下,文件访问者一共有三种:
1、文件的拥有者
2、文件拥有者所在的小组(group)
3、其他成员
对于一个文件来说,我们可以用ll来查看他的详细信息:

我们可以看见,在每个目录或者文件前面十格要么是-,要么是字母,这十格位置的字母究竟有什么含义呢?

事实上,第一个字母表示文件的类型,比如,d就表示目录,-就表示为普通文件。

另外九个分为三组,三三为一组,分别表示为:拥有者权限,拥有者所属组权限,陌生人权限。

文件权限使用三个字母来表示:rwx。每个字母对应不同的权限:

  • r (read) - 读取权限:允许查看文件内容或列出目录内容。
  • w (write) - 写入权限:允许修改文件内容或在目录中创建、删除、重命名文件。
  • x (execute) - 执行权限:允许将文件作为程序执行或进入目录。

对于文件来说,r权限代表能不能看见内容,w代表能不能改写,x是个别可执行程序你是否拥有执行他的权限。

  • r (读取)

    • 作用:允许用户查看文件的内容。
    • 示例:如果一个文本文件具有读取权限,用户可以使用 catlessmore 等命令查看其内容。
  • w (写入)

    • 作用:允许用户修改文件的内容。
    • 示例:如果一个文件具有写入权限,用户可以编辑文件、追加内容或删除内容。例如,使用 nanovi 编辑器来修改文件内容。
  • x (执行)

    • 作用:允许用户将文件作为程序执行。
    • 示例:如果一个文件具有执行权限,并且是一个脚本或可执行文件,用户可以通过命令行运行它,例如 ./script.sh./program

而对于目录就不同了:

  • r (读取)

    • 作用:允许用户列出目录中的文件和子目录。
    • 示例:如果一个目录具有读取权限,用户可以使用 ls 命令查看目录中的文件和子目录。
  • w (写入)

    • 作用:允许用户在目录中创建、删除和重命名文件和子目录。
    • 示例:如果一个目录具有写入权限,用户可以使用 touch 创建新文件,使用 rm 删除文件,或使用 mv 重命名文件。
  • x (执行)

    • 作用:允许用户进入目录并访问其中的文件和子目录(即改变工作目录到这个目录)。
    • 示例:如果一个目录具有执行权限,用户可以使用 cd 命令进入该目录,并访问目录中的文件(假设还有适当的读取权限),并且在该目录中用各种指令。

 我们通常可以用八进制来代表rwx三种权限,r为4,w为2,r为1:

在Linux中,我们有多种方法更改一个文件的对应访问者的对应权限。:

chmod:

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
(说明:只有文件的拥有者和root才可以改变文件的权限)

例如,我们可以使用chmod g+w +【对应文件】来修改group的权限。 

 或者,也可以实用之前说到的八进制数字代表相应的权限。

假设你想为某个文件或目录设置以下权限:

  • 用户(User)拥有 rwx 权限(7)。
  • 组(Group)拥有 rx 权限(5)。
  • 其他用户(Others)拥有 r-- 权限(4)。

这些权限的八进制表示法是 754

chown

功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名

chgrp

功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组

 掩码:

在Linux系统中,掩码umask)用于设置默认的文件和目录权限。当用户创建新的文件或目录时,系统会根据当前的掩码值来决定这些文件或目录的默认权限。

掩码的工作原理

假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask,例如普通用户掩码为0002,创建文件的最终权限就为775,为了方便记忆,我们可以理解为777减去掩码的数。

我们可以用umask查看掩码或者修改掩码。

粘滞位:

由上文目录的权限可知,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

这好像不太科学啊, 我创建的一个文件, 凭什么被你删掉?

为此,就诞生了粘滞位;

粘滞位(Sticky Bit)是Linux文件系统中的一种特殊权限位,通常用于目录,主要目的是控制用户对该目录下文件的删除权限。

粘滞位的作用

粘滞位通常用于公共目录(如 /tmp),其作用是:即使用户对目录有写权限,用户也只能删除或重命名自己拥有的文件,不能删除或重命名其他用户的文件。

粘滞位的使用场景

  • 公共目录:在诸如 /tmp 这样的公共目录中,多个用户可以创建文件。粘滞位确保用户只能删除或修改自己的文件,避免误操作或恶意删除其他用户的文件。

设置粘滞位

粘滞位可以通过 chmod 命令设置,方式有两种:符号方式和八进制方式。

1、chmod +t   +【目标文件】

2、chmod 1755 +【目标文件】(1就代表加了粘滞位)

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

总结:

在Linux系统中,掌握常用指令和文件权限管理是每个程序员不可或缺的技能。这些指令不仅帮助我们在没有图形界面的环境中灵活操作文件和目录,还确保了系统的安全性与稳定性。

通过lspwdcd等基础指令,我们可以快速浏览目录内容、确认当前位置以及切换工作目录;利用touchmkdirrmdirrm等指令,轻松实现文件和目录的创建与删除操作;借助cpmv,我们能完成文件和目录的复制与移动,而catmoreless则提供了多样化的文件内容查看方式。

在权限管理方面,chmodchownchgrp等命令为我们提供了灵活的方式来调整文件和目录的访问权限,确保系统内的资源被合理使用。同时,理解和应用粘滞位(Sticky Bit)与掩码(umask)有助于我们更精细地控制目录和文件的访问和操作行为。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/952812
推荐阅读
相关标签
  

闽ICP备14008679号