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 命令,因为它会永久删除文件夹及其内容。确保在执行删除操作之前确认我们的删除操作。

相关文章
|
14天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
103 6
|
15天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
57 3
|
15天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
47 2
|
11天前
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
52 7
|
10天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
40 3
|
15天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
52 3
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
86 1
|
29天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
53 2
6种方法打造出色的Shell脚本
|
15天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
43 1
|
20天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
40 2