热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

掌握LinuxShell核心概念与基础技能

掌握LinuxShell核心概念与基础技能,本文详细介绍了文件系统和安全管理中的`chmod`命令。`chmod`命令支持两种模式:符号模式和绝对模式。符号模式使用`ugo`表示用户类别,`rwx`表示权限类型;而绝对模式则通过八进制数值来精确设置不同用户的权限。此外,文章还探讨了其他重要的Shell命令和技巧,帮助读者全面理解和应用Linux环境下的文件管理和安全控制。

一、文件系统和安全

chmod命令

chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限;另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限。

  • 符号模式

chmod命令的格式为 chmod [who] operator [permission] filename

其中[who]的取值可以为

1 u:文件属主的权限
2 g:用户所在组的权限
3 o:其他用户权限
4 a:所有用户权限
5 如果省略[who]参数,会同时为u和g设置权限,即同时为属主和用户所在组设置权限

operator取值为

1 +:增加权限
2 -:取消权限
3 =:设定权限

permission

1 r:读
2 w:写
3 x:执行
4 另外还有s,t,l,u,g,o不常用

命令举例,

1 chmod +x temp //为属主和所用所在组增加执行权限
2 chmod a-w temp //收回所有用户的写权限(当然属主自己执行的话已然会有w权限)

绝对模式

绝对模式下,chmod命令的格式为 chmod [mode] file

[mode]是一个八进制数,八进制数与用户对应关系如下,

 1 0 4 0 0 文件属主可读
 2 0 2 0 0 文件属主可写
 3 0 1 0 0 文件属主可执行
 4 
 5 0 0 4 0 属组用户可读
 6 0 0 2 0 属组用户可写
 7 0 0 1 0 属组用户可执行
 8 
 9 0 0 0 4 其他用户可读
10 0 0 0 2 其他用户可写
11 0 0 0 1 其他用户可执行

将相同类型用户所拥有的权值相加就是这类用户最终的权限,

例如

令属主可读写并能执行,则权值为4+2+1=7

属组可读不可写可执行,则权值为4+0+1=5

其他用户可读不可写不可执行,则权值为4+0+0=4

最终我们设置权限的命令就是 chmod 754 filename

用下面方式表达更直观,

1 文件属主:r w x:4 + 2 + 1
2 属组用户:r w x:4 + 2 + 1
3 其他用户:r w x:4 + 2 + 1

硬连接和软连接

文件节点

在linux底层,并不是按照文件名来唯一标识一个文件,而是通过文件节点(inode)来标识的。

硬连接

Hard Link就是建立多个不同文件名,但是文件节点相同的文件(即在底层属于同一个地址空间),用命令 ln f1 f2

软连接

也叫符号链接(Symbolic link)就是建立元文件的一个文本文件,保存着原文件的位置信息,访问软连接文件也等同于访问原文件,类似windows的快捷方式。

软连接与硬连接的区别在于删除文件,如果删除一个文件,对它的硬连接文件不会有影响(相当于硬连接文件取代了原文件),但是其软连接文件不再是有效文件。

下面举例说明,

随便新建一个文件  echo agfgfgfdg3fsfsdf > f1

新建硬连接    ln f1 f2

新建软连接    ln -s f1 f3

如果修改f3    echo 23423423 >> f3

会发现f1和f2都被修改了

1 cat f3
2 agfgfgfdg3fsfsdf
3 23423423
1 cat f2
2 cat f3
3 agfgfgfdg3fsfsdf
4 23423423
1 cat f1
2 agfgfgfdg3fsfsdf
3 23423423

如果删除f1, 会发现其硬连接f2已然可访问,但是软连接f3已经无效了,

1 cat f3
2 cat: f3: No such file or directory

Linux Shell基础知识


推荐阅读
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 【Linux进阶指南】第一阶段第三课:体验与部署Ubuntu系统
    在正式踏上Linux学习之旅之前,本课程将引导你深入体验和部署Ubuntu系统。通过详细的操作步骤和实践演练,你将掌握Ubuntu的基本安装、配置及常用命令,为后续的进阶学习打下坚实的基础。此外,课程还将介绍如何解决常见问题和优化系统性能,帮助你更加高效地使用Ubuntu。 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • MongoVUE基础操作指南:轻松上手数据库管理
    本文介绍了MongoVUE的基础操作,旨在帮助用户轻松掌握数据库管理技巧。MongoVUE是一款功能强大的MongoDB客户端工具,虽然需要注册,但其用户友好的界面和丰富的功能使其成为许多开发者的首选。文中详细解释了安装步骤、基本配置以及常见操作方法,并对一些常见的问题进行了修正和补充,确保用户能够快速上手并高效使用MongoVUE进行数据库管理。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 通过 NuGet 获取最新版本的 Rafy 框架及其详细文档
    为了帮助开发者更便捷地使用Rafy领域实体框架,我们已将最新版的Rafy框架程序集上传至nuget.org,并同步发布了最新版本的Rafy SDK至Visual Studio。此外,我们还提供了详尽的文档和示例,以确保开发者能够快速上手并充分利用该框架的强大功能。 ... [详细]
  • 在使用Block时,正确的声明方法和确保线程安全是至关重要的。为了保证Block在堆中分配,应使用`copy`修饰符进行声明,因为栈中的Block与栈的生命周期绑定,容易导致内存问题。此外,还需注意Block捕获外部变量的行为,以避免潜在的循环引用和数据不一致问题。建议深入研究相关文档,以掌握更多高级技巧和最佳实践。 ... [详细]
  • 为了评估精心优化的模型与策略在实际环境中的表现,Google对其实验框架进行了全面升级,旨在实现更高效、更精准和更快速的在线测试。新的框架支持更多的实验场景,提供更好的数据洞察,并显著缩短了实验周期,从而加速产品迭代和优化过程。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 本文提供了在 Windows 环境下编译 Google Test 框架的详细步骤。首先,从 GitHub 下载最新版本的 Google Test 源代码。由于最新版本未包含 MSVC 配置文件,需要使用 CMake 工具进行配置。具体操作包括下载并安装 CMake,然后通过修改 CMake 文件来生成适用于 MSVC 的项目文件。此外,还需要进入 Google Mock 目录,确保所有依赖项正确配置。本文将详细介绍每个步骤,帮助开发者顺利完成编译过程。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • 如何在Android设备上通过应用程序创建浏览器书签 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
author-avatar
书友67299131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有