Shell命令操作Linux文件系统

简介:   Linux文件系统是计算机操作系统中的一个关键组成部分,它用于管理和组织计算机上的数据和信息。先到根目录,然后打印当前目录下文件:

文件夹介绍


  Linux文件系统是计算机操作系统中的一个关键组成部分,它用于管理和组织计算机上的数据和信息。先到根目录,然后打印当前目录下文件:


cd / ; ls


image.png


 有一些比较常用的文件夹介绍如下:


 /bin——包含常见Linux 用户命令,比如 ls、sort、date和l chmod。


 /home——包含分配给每个带有登录账号的普通用户的目录(root用户是一个例外,使用/root作为主目录)。


 /lib——包含/bin和/sbin目录中的应用程序启动系统所需的共享库。


 /mnt——在该目录被标准的/media目录取代之前,/mnt目录是许多设备常见的挂载点。一些可启动的Linux系统仍使用该目录来挂载硬盘分区和远程文件系统。此外很多人也在使用该目录来临时挂载那些不需要永久挂载的本地或者远程文件系统。


 /root—表示root用户的主目录。出于安全原因,该主目录没有位于/home目录之下。/sbin——包含管理命令和守护进程。


 /tmp——包含应用程序使用的临时文件。


 /usr——包含用户文档、游戏、图形文件(X11)、库(lib)以及其他不需要在启动过程中使用的命令和文件。/usr目录中的文件在安装完毕后就不可更改(从理论上讲,/usr可以以只读的方式挂载)。


文件夹常规命令


  1. cd (Change Directory): cd命令用于改变当前工作目录。通过提供目标目录的路径作为参数,可以切换到其他目录。


image.png


  2. pwd (Print Working Directory): pwd命令用于显示当前工作目录的完整路径。执行pwd后,会显示当前所在的目录路径。


image.png


  3. ls (List): ls命令用于列出当前目录中的文件和子目录。默认情况下,它会列出当前目录的内容。可以使用不同的选项来控制列出的详细信息和排序方式。


image.png


 4. mkdir (Make Directory): mkdir命令用于创建新的目录。可以指定要创建的目录的名称作为参数。


 5. chmod (Change Mode): chmod命令用于更改文件或目录的权限。它允许控制哪些用户可以执行文件、读取文件或写入文件。chmod命令通常与权限模式(如755或644)一起使用,以确定权限设置。


虽然我们平时一个人的Linux平台用不到权限控制,但是一旦涉及多人场景、公司场景,权限控制就很必要了,chmod命令要认真学习。具体见下一节


文件夹权限控制⭐


  首先在任意目录下输入:


ll


image.png


 输出如图,一共有7列:


· 文件类型和权限列(File Type and Permissions): 显示文件的类型和访问权限。通常包括像 -rw-r--r-- 或 drwxr-xr-x 这样的字符,其中第一个字符表示文件类型,后面的九个字符分为三组,每组三个字符代表文件的访问权限。例如,-rw-r--r-- 表示一个普通文件,它的权限设置是允许所有者读写,但只允许其他用户只读。


 · 硬链接数列(Hard Links): 这一列表示与该文件或目录关联的硬链接数量。硬链接是指多个文件名指向相同的数据块的情况。通常,普通文件的硬链接数为1,目录的硬链接数至少为2(因为每个目录至少有两个链接:一个指向自身,一个指向上级目录)。


 · 所有者列(Owner): 显示文件或目录的所有者的用户名。


 · 所属组列(Group): 显示文件或目录所属的用户组的名称。


 · 文件大小列(File Size): 显示文件或目录的大小,通常以字节为单位。对于目录,大小通常是目录中所有文件和子目录的总和。


 · 修改时间或创建时间列(Modification Time or Creation Time): 显示文件或目录的最后修改时间。


 · 文件名或目录名列(File Name or Directory Name): 这一列显示了文件或目录的名称。


文件类型和权限

 文件类型:


 1. 普通文件(Regular File): 普通文件包含文本、二进制数据或程序代码等信息。在文件类型表示中,以 - 开头。例如,-rw-r--r-- 表示一个普通文件。


 2. 目录(Directory): 目录是用于组织和存储文件和其他目录的特殊文件类型。在文件类型表示中,以 d 开头。例如,drwxr-xr-x 表示一个目录。


 3. 符号链接(Symbolic Link): 符号链接是指向其他文件或目录的引用。它们是一种特殊类型的文件,用于创建文件和目录之间的链接。在文件类型表示中,以 l 开头。例如,lrwxrwxrwx 表示一个符号链接。


 4. 设备文件(Device File): 设备文件用于与计算机硬件设备通信。有字符设备文件和块设备文件两种类型。字符设备文件用于处理字符流数据,块设备文件用于处理数据块。在文件类型表示中,字符设备文件以 c 开头,块设备文件 b 开头。


 5. 管道文件(Named Pipe): 管道文件用于进程间通信,允许一个进程将数据传输给另一个进程。在文件类型表示中,以 p 开头。


  6. 套接字文件(Socket): 套接字文件用于网络通信,允许进程通过网络连接进行通信。在文件类型表示中,以 s 开头。


  权限:


  文件和目录的权限决定了哪些用户可以执行以下操作:


  • 读取(Read): 允许用户查看文件的内容或目录的列表。


  • 写入(Write): 允许用户修改文件的内容或目录的结构。


  • 执行(Execute): 对于文件,允许用户执行其中包含的程序;对于目录,允许用户访问其中的内容。


  权限表示为一组三个字符,分别表示文件所有者的权限、所属用户组的权限和其他用户的权限。每个权限可以用以下字符表示:


  • r(Read): 表示读取权限。


  • w(Write): 表示写入权限。


  • x(Execute): 表示执行权限。


 例如,-rw-r--r-- 表示文件的权限设置为允许所有者读写,但只允许其他用户只读。


 使用 chmod 命令可以更改文件和目录的权限设置,以控制对它们的访问和操作。权限设置是Linux和Unix系统中的安全重要组成部分,它确保只有经过授权的用户能够访问和修改文件和目录。


修改文件权限


  要修改文件或目录的权限,需要使用 chmod 命令。 chmod 命令允许添加或删除文件的读取(read)、写入(write)和执行(execute)权限,以及设置文件的所有者、所属用户组和其他用户的权限。


  1. 基本 chmod 语法:


chmod [选项] 权限设置 文件或目录


  2. 权限设置格式:


使用数字表示权限:例如,chmod 755 myfile.txt 表示将文件 “myfile.txt” 的权限设置为所有者可读写执行,所属用户组和其他用户只有读和执行权限。


使用符号表示权限:例如,chmod u+r myfile.txt 表示为文件 “myfile.txt” 添加所有者的读取权限。


设置权限有2种方式。第一种,r=4、w=2、x=1,那么7指的就是rwx,4指的是r–,3指的是-wx。第二种,通过u、g、o、a四种权限标识符结合+、-、=三种权限操作符,进行增加、删除、修改权限。


  3. 常见选项:


  • -R:递归地修改目录及其内容的权限。


  • -v:显示每个文件权限修改的详细信息。


  4. 权限标识符:


  • u:文件所有者。


  • g:所属用户组。


  • o:其他用户。


  • a:所有用户(等同于 ugo)。


  5. 权限操作符:


  • +:添加权限。


  • -:删除权限。


  • =:设置权限。


  下面举个例子展示 chmod 命令的用法,首先go.sh的权限是drwxr-xr-x


image.png


  • 删除其他用户的执行权限:


chmod o-x go.sh


image.png


  • 添加写权限给用户组:


chmod g+w go.sh


image.png


  • 使用数字模式将文件 “go.sh” 设置为可执行权限:


chmod 755 go.sh


image.png


移动、复制、删除文件夹


  移动文件夹(重命名文件夹): 使用 mv 命令来移动文件夹或重命名。如果提供新的目标路径,会移动文件夹到新位置。如果把新的名称作为目标路径,会重命名文件夹。例如,要把文件夹 “myfolder” 移动到新位置或重命名为 “newfolder”,可以执行命令:


mv myfolder newfolder


  复制文件夹: 使用 cp 命令复制文件夹及其内容。要复制文件夹 “myfolder” 到新位置 “backup”,可以执行命令:


cp -r myfolder backup


  -r 选项表示递归地复制文件夹及其内容。如果想保留原始文件夹不变并复制其内容到新位置,可以省略 -r 选项。


  删除文件夹: 使用 rm 命令删除文件夹及其内容。要删除文件夹 “myfolder”,可以执行命令:


rm -r myfolder


  -r 选项表示递归删除文件夹及其内容。要小心使用 rm 命令,因为它会永久删除文件夹及其内容。确保在执行删除操作之前确认我们的删除操作。

相关文章
|
4天前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
54 25
|
1天前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
28 18
|
16天前
|
Linux 定位技术
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
94 24
|
8天前
|
Linux
Linux命令的基本格式解析
总的来说,Linux命令的基本格式就像一个食谱,它可以指导你如何使用你的计算机。通过学习和实践,你可以成为一个真正的“计算机厨师”,创造出各种“美味”的命令。
52 15
|
19天前
|
安全 Shell Linux
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
71 2
Linux系统之su命令的基本使用
|
21天前
|
监控 数据可视化 Java
调试技巧 - 用Linux命令排查Java问题
总的来说,使用Linux命令来排查Java问题,需要一定的实践经验和理论知识。然而,只要我们愿意花时间深入了解这些工具,我们就能够熟练地使用它们来分析和解决问题。此外,这些工具只是帮助我们定位问题,真正解决问题需要我们对Java和JVM有深入的理解,并能够读懂和分析代码。
62 13
|
19天前
|
存储 Unix Shell
Shell 输出命令完全指南:echo 与 printf 的深度剖析
本文深入解析了 Shell 编程中 `echo` 和 `printf` 两个核心输出命令的用法与区别。`echo` 简单易用,适合基础输出;`printf` 功能强大,支持复杂格式化。文章从语法、转义序列、高级技巧到实际应用场景(如日志记录、进度显示)逐一讲解,并对比两者的性能与适用场景,帮助开发者根据需求灵活选择。最后通过进阶技巧和常见问题解答,进一步提升对两者的掌握程度。
53 1
|
11月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
148 0
|
11月前
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
160 0
|
11月前
|
运维 Shell Linux
Linux 之大数据定制篇-Shell 编程
Linux 之大数据定制篇-Shell 编程
250 0
下一篇
oss创建bucket