Linux基础学习(3)

📅 2026/7/10 7:15:45
Linux基础学习(3)
第七章 shell命令解释器1.核心定义Shell 是 Linux/Unix 系统的命令行解释器也是用户与操作系统内核Kernel之间的桥梁 **。它接收用户输入的命令翻译并交给系统内核执行再把执行结果返回给用户。2.核心作用命令翻译把人类输入的字符命令转成内核能识别的指令。交互接口提供命令行操作界面终端人机交互。脚本执行解析并运行 Shell 脚本.sh 批处理文件实现自动化操作。3.常见 Shell 解释器类型bash绝大多数 Linux 默认 Shell功能最强、最常用sh早期经典 Shellbash 的精简兼容版4.简单关系梳理用户 → Shell解释器 → 系统内核 → 硬件用户不直接操作内核所有命令都由 Shell 中转解析。5.补充特点Shell 本身不是操作系统内核只是应用层解释程序属于系统外壳程序。6.分类内置命令 (shell内置)shell为了完成自我管理和基本的管理不同的shell内置不同的命令但是大部分都差不多外置命令在文件系统的某个目录下有个与命令名称相同的文件7.tpye命令作用:查看命令是内置命令、外置命名、alias命令格式:type -参数 命令名type -a 列出当前命令可以如何执行type -t 仅列出命令按照哪种方式执行8.执行原理系统为了让用户在命令行快速方便地执行命令将可执行文件的路径存储在环境变量PATH中使得shell知道命令的可执行文件位置PATH环境变量当用户每次执行外部命令的时候都会去该变量所记录的路径下搜索和命令同名的二进制文件如果有则执行该二进制文件如果没有则提示命令找不到。增加系统变量路径:进入文本编辑器,添加新的,用冒号隔开使用source启用路径9.Linux中的特殊符号10. 命令别称作用: 命令的快捷方式对于需要经常执行且要很长时间输入的长命令很有用。格式: alias 别名原命令 - 参数查看别名:11. 命令历史作用: history命令可以查阅命令历史记录格式: history -参数参数:number显示最近number条命令历史-c清空当前历史命令设置history记录命令数量:[rootserver ~]# vim /etc/profile改变HISTORY你想要的数量之后reboot第八章账户和组的管理一.账户和工作组的分类1.用户的分类:( 1 ) 超级账户账户名为root它具有一切权限只有进行系统维护或其他必要情形下才用超级用户登录以避免系统出现安全问题,id为0( 2 ) 系统账户是Linux系统正常工作所必需的账户主要为了满足相应的系统进程对文件属主的要求而建立的如bin、daemon、adm、sshd等注意系统账户不能登录( 3 ) 普通用户是为了让使用者能够使用Linux系统资源而建立的大多数用户属于此类2.工作组的分类:基本组(私有组)新建立账户时若没有指定账户所属的工作组会建立和账户名相同的组扩展组(公有组)可以容纳多个用户组中的账户都具有组所拥有的权利3.用户与工作组的配置文件账户名、密码、工作组信息和工作组密码存储在以下配置文件中工作组密码文件几乎不会去查看与编辑4.添加新用户格式; useradd – 参数 用户参数:示例:每一个字符对应的内容意义用户名对应的密码,但是存在/etc/shadow中用户id,即uid用户组id,即gid用户注释用户家目录Shell如果未创建家目录,则自动分配目录用户名:hhx加密密码段最后一次修改密码的日期密码最小有效时间密码最大有效期密码过期前提醒天数密码过期宽限天数账号过期天数保留字段:预留备用5.修改用户信息格式:usermod -参数 用户名参数基本与useradd相同-l 新账户名更改账户的名称,必须在该用户未登录的情况下才能使用-L锁定(暂停)用户账户,使其不能登录使用-U解锁用户账户示例:创建新用户并改变用户名将该用户的家目录路径改为 /home/hhx16.账号设置密码格式:passwd -参数 用户名或者进入文本编辑器直接编辑参数:示例:设置hhx,hhx1的密码并禁止hhx1登录重要事项:密码不能为空密码不要写成回文可以使用以下命令设置密码只有 root 用户才能指定用户名7.删除账号格式:userdel 账户名参数:-r在删除该账户的同时一并删除该账户对应的家目录8.账户切换格式:su 用户su和su - 命令区别区别加载的配置文件不一样su切换方式加载的文件~/.bashrc/etc/bashrcsu -切换方式加载的文件/etc/bashrc/etc/profile~/.bashrc~/.bash_profile注意su - 相当于重新建立环境若全局变量需要继续使用则不能使用su - 命令简单来说如果你是root现在切换为别的普通用户,你的环境变量还是原来root的环境变量,进入的还是root的家目录,ls等命令会无效从root用户切换到任何用户不需要密码验证而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。9.工作组的创建格式:group -参数 工作组名称参数:-g GID指定新工作组的GID默认值是已有的最大的GID加1-r 建立一个系统组账号与-g不同时使用时,则分配一个1999的GID10.修改工作组格式:groupmod -参数 工作组名参数:-g GID——为用户组指定新的组标识号-n 新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值示例:11. 添加/删除组成员格式: gpasswd -参数 账户 工作组名参数:-r : 删除组密码-a : 把用户加入组-d : 把用户从组中删除。-M : 可同时添加多个用户-A : 给组指派管理员。只有root用户可以执行该命令12.users命令作用: 查看当前登录系统的用户12.last命令作用: 列出目前与过去登入系统的用户相关信息该命令默认会去读取/var/log/wtmp文件并把该文件记录的登入系统的用户名单全部显示出来14.lastlog命令作用: 查看每个账号的最近登录时间该命令会读取/var/log/lastlog文件15.who命令作用: 显示目前登录到系统的用户会从/var/run/utmp文件来获取信息第九章Linux文件系统权限使用ll 令查看1.基本概念:Linux 是一个多用户操作系统文件权限机制用于控制不同用户对文件和目录的访问。每个文件和目录都有三类权限主体所有者Owner文件的创建者通常是文件的主人。所属组Group文件所属的用户组组内成员共享该文件的组权限。其他人Others既不是所有者也不属于文件所在组的其他所有用户。通过上述可得:为普通文件所以者可以读写,同组和其他只可以看硬连接数为1,若为目录则硬链接数为文件数文件的所属者,所属组为root大小为0bit,时间如图最后为文件名注意:root不受读写的约束,执行受到约束2.每类主体都可以独立设置三种基本权限r,w,x.他们可以用数字表示r:4 w:2 x:1分别为读写与执行如上图文件为6443.修改权限chmod格式:chmodchange mode命令用于修改文件或目录的权限。支持两种使用方式符号模式和数字模式。chmod [ugoa][-][rwx] 文件名参数:u所有者userg所属组groupo其他人othersa所有人all即 ugo增加权限-移除权限设置为精确权限4.chown命令作用: 修改文件 / 目录的所有者和所属组是 Linux权限管理核心命令。格式: chown -参数 所有者所属组 文件名或目录名# 参数-R递归设置5.特殊权限概述:在Linux系统中用户对文件或目录的访问权限除了r、w、x三种一般权限外还有SET UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限用于对文件或目录进行更加灵活方便的访问控制。SUID 权限的含义是为了让一般用户在执行某些程序的时候 在程序的运行期间 暂时获得该程序文件所属者的权限。SUIDSet User ID当可执行文件设置 SUID 后任何用户执行该文件时都将以文件所有者的身份运行而非执行者自身。表示为所有者执行位上的 s 替代 x如 rws------。chmod us /usr/bin/passwd数字表示4 权限数字如 4755。SGIDSet Group ID作用于可执行文件时用户执行该文件将以文件所属组的身份运行。作用于目录时在该目录下创建的新文件将自动继承目录的所属组而非创建者的主组。表示为组执行位上的 s。chmod gs /shared/project/chmod 2755 /shared/project/Sticky Bit粘滞位仅对目录有效。设置粘滞位的目录中用户只能删除自己拥有的文件而不能删除其他用户的文件。常用于 /tmp 目录。表示为其他人执行位上的 t若原无执行权限则为 T。chmod t /tmpchmod 1777 /shared/tmp/6.设定权限ACL 访问控制列表传统的 rwx 权限模型只能为所有者、所属组和其他人三类主体设置权限无法针对特定用户或特定组单独授权。ACLAccess Control List访问控制列表提供了更细粒度的权限控制可以为文件或目录指定任意用户、任意组的独立权限。格式setfacl -参数 文件名参数-m设定 ACL 权限给用户设定 ACL 权限setfacl -m u:用户名:权限 指定文件名给用户组设定 ACL 权限setfacl -m g:组名:权限 指定文件名-x删除指定的 ACL 权限-b删除所有的 ACL 权限-d设定默认 ACL 权限。只对目录生效指目录中新建立的文件拥有此默认权限-k删除默认 ACL 权限-R递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效ACL 的前提条件使用 ACL 需要文件系统支持并开启 acl 挂载选项。大多数现代 Linux 发行版ext4、xfs默认已启用。示例删除acl权限删除指定用户的 ACL 权限setfacl -x u:用户名 文件名删除指定用户组的 ACL 权限setfacl -x g:组名 文件名删除文件的所有 ACL 权限setfacl -b 文件名.默认权限掩码 - umaskumask 用于设置新建文件或目录的默认权限。它是权限的“屏蔽码”即从最大默认权限中减去 umask 值得到最终权限。通常是文件最大权限 666rw-rw-rw-目录最大权限 777rwxrwxrwx。默认 umask 多为 022计算新文件权限666 - 022 644rw-r--r--目录权限777 - 022 755rwxr-xr-x。查看当前 umaskumask临时修改umask 027永久修改可写入 ~/.bashrc 或 /etc/profile。