当前位置: 首页 > news >正文

Linux基础知识(三)

第一部分

1. 什么是文件系统权限?它是如何工作的?如何查看文件的权限?
2. 解释‘-rw-r--r--’这个字符串。
3. 使用什么命令可以更改文件和目录的权限?写出分别使用符号法和数值法将权限从 754 修改为
775 的命令。
4. 如何修改文件的所有者和所属组?
5. suid、sgid、sticky 这三个特殊权限对文件和目录有什么影响?
6. umask 在文件权限管理中有什么作用?解释 umask 0022 命令的作用。

1.权限控制用户/组对文件的读(r)、写(w)、执行(x)访问,包含三组权限:所有者(owner)、所属组(group)、其他用户(others)。 

查看命令:

  ls -l 文件名      # 查看详细权限(如 -rw-r--r--)

  stat 文件名       # 显示权限数字格式(如 0644)

2.

文件类型(-为普通文件,d为目录)

rw-       所有者权限:可读、可写、不可执行

r--       所属组权限:仅可读

r--       其他用户权限:仅可读

对应数字权限:644(所有者=6,组=4,其他=4)

3.

• 符号法(基于当前权限修改):

  chmod g+w,o+x 文件名  # 给组添加写权限,其他用户添加执行权限

• 数值法(直接设置绝对权限):

  chmod 775 文件名      # 7(rwx) for所有者, 7(rwx) for组, 5(r-x) for其他

4.

chown 新所有者:新所属组 文件名  # 同时修改所有者和组

chown 新所有者 文件名          # 仅修改所有者

chgrp 新组名 文件名            # 仅修改所属组

示例:

sudo chown root:adm /var/log/syslog  # 需root权限

5.

权限 符号 文件影响 目录影响

SUID s 执行时继承所有者权限(如/usr/bin/passwd) 无意义

SGID s 执行时继承组权限 目录内新建文件继承父目录组

Sticky t 无意义 仅文件所有者可删除文件(如/tmp)

设置方法:

chmod u+s 文件    # 设置SUID

chmod g+s 目录    # 设置SGID

chmod +t 目录     # 设置Sticky

umask作用

6.

• 作用:控制新建文件的默认权限(反向掩码)。 

• 计算规则: 

  • 文件权限 = 666 - umask 

  • 目录权限 = 777 - umask 

• 示例:

  umask 0022       # 默认值

  touch 新文件      # 权限=644 (666-022)

  mkdir 新目录      # 权限=755 (777-022)

第二部分

1. 如何理解 systemd 进程?
2. ps 和 top 有什么区别?
3. 解释 ps aux 和 ps -ef 这两个命令和参数的作用。
4. 进程状态有哪些?
5. 怎么理解作业 (Job) 和作业控制?
6. 说明 kill 命令中使用 9 和 15 信号量的区别。

1.

作为Linux系统的初始化系统(PID=1),是首个用户态进程,负责:

• 管理系统服务(替代SysVinit) 

• 提供并行启动、依赖管理、日志收集(journald) 

• 通过systemctl命令控制(如start/stop/enable服务) 

关键特性:

• 使用.service单元文件定义服务 

• 支持系统状态快照(systemctl snapshot) 

• 通过cgroups跟踪和管理进程树 

2.

命令 特点 适用场景

ps 静态快照(执行时刻的进程状态) 精确获取特定进程信息(如PID、CMD)

top 动态实时监控(默认3秒刷新) 系统资源占用分析(CPU/MEM排序)

示例:

ps -eo pid,cmd,%cpu --sort=-%cpu | head  # 静态获取CPU占用Top5进程

top -b -n 1 > process_report.txt         # 生成一次性资源报告

ps aux 与 ps -ef 解析

命令 参数意义 输出差异

ps aux a=所有用户进程,u=详细格式,x=包括无终端进程 显示USER、%CPU、%MEM等资源指标

ps -ef -e=所有进程,-f=完整格式 显示UID、PPID(父进程ID)、CSTIME等

典型输出: 

ps aux 示例

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.5 169728 13004 ?        Ss   Jul24   0:15 /usr/lib/systemd/system

ps -ef 示例

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 Jul24 ?        00:00:15 /usr/lib/systemd/systemd

4.

进程状态(STAT字段)

状态码 含义 触发条件

R (Running) 运行中/可运行 正在CPU执行或就绪队列等待

S (Sleeping) 可中断休眠 等待事件(如I/O完成)

D (Uninterruptible) 不可中断休眠 内核态阻塞(常见于磁盘I/O)

Z (Zombie) 僵尸进程(已终止但未回收) 父进程未调用wait()

T (Stopped) 暂停状态(可由信号控制) 收到SIGSTOP/SIGTSTP信号

查看方法:

ps -eo pid,stat,cmd | grep -E 'D|Z'  # 筛选危险状态进程

5.

概念区分:

• 作业:Shell中启动的进程组(如管道命令ls | wc -l是一个作业) 

• 控制方法:

  sleep 60 &       # 后台运行([1] 为作业ID)

  jobs             # 查看当前作业列表

  fg %1            # 将作业1调至前台

  Ctrl+Z           # 暂停当前前台作业(变为Stopped状态)

  bg %1            # 让暂停的作业在后台继续运行

应用场景:

长时间任务(如编译)后台运行,避免阻塞终端 

6.

kill -9 与 kill -15 区别

信号 名称 行为 使用建议

SIGTERM (15) 终止信号 允许进程清理资源后退出(默认信号) 优先使用,确保数据安全保存

SIGKILL (9) 强制终止 立即终止进程(内核直接回收资源) 进程无响应时的最后手段

操作示例:

kill -15 1234              # 优雅终止PID为1234的进程

kill -9 1234               # 强制杀死(可能导致数据损坏)

pkill -9 -f "pattern"      # 按进程名模式强制终止

第三部分

1. 守护进程(Daemon)是什么?列举一些常见的守护进程。
2. 怎么理解 systemd.unit?列举一些常用的单元类型。
3. restart 和 reload 有什么区别?
4. systemctl enable 命令会在当前会话中启动服务吗?
5. systemctl mask 和 systemctl disable 有哪些不同?

1.

在后台持续运行的系统进程,不依赖于终端,通常以d结尾命名,负责提供系统级服务。

常见守护进程示例:

守护进程名称 功能描述

sshd 提供SSH远程连接服务

crond 定时任务调度

rsyslogd 系统日志收集

httpd/nginx Web服务器

dbus-daemon 进程间通信总线

技术特点:

• 父进程通常为systemd(PID=1) 

• 通过&或fork()实现后台运行 

• 日志记录到/var/log/或journalctl

2.

systemd.unit解析

核心概念:

systemd的配置单元文件,定义服务/设备/挂载点等资源的管理规则,存储在/usr/lib/systemd/system/和/etc/systemd/system/。

常用单元类型:

单元类型 文件后缀 作用

Service单元 .service 管理后台服务(如nginx.service)

Target单元 .target 系统运行目标(类似SysVinit运行级)

Mount单元 .mount 文件系统挂载点定义

Timer单元 .timer 替代cron的定时任务

Socket单元 .socket 按需激活服务的IPC套接字

查看所有单元:

systemctl list-unit-files --type=service

3.

操作 命令示例 行为差异 适用场景

restart systemctl restart nginx 先停止再启动服务(进程ID变化) 配置重大变更后

reload systemctl reload nginx 重新加载配置(进程不重启,保持连接) 动态更新配置(如日志轮替)

信号机制:

• restart发送SIGTERM→SIGKILL→新建进程 

• reload发送SIGHUP(如nginx -s reload)

4.

不会立即启动服务,仅配置为下次系统启动时自动激活。

深层原理:

• 实际操作为创建符号链接:

  ln -s /usr/lib/systemd/system/foo.service /etc/systemd/system/multi-user.target.wants/

• 需要立即运行需额外执行:

  systemctl start foo.service

5.

操作 命令示例 效果差异 恢复方式

disable systemctl disable foo 移除开机自启,但允许手动启动 enable即可恢复

mask systemctl mask foo 禁止所有启动(包括手动),创建空文件链接 需先unmask再enable

关键文件差异: 

disable示例(移除链接)

rm /etc/systemd/system/multi-user.target.wants/foo.service

mask示例(创建空链接)

ln -s /dev/null /etc/systemd/system/foo.service


文章转载自:

http://URyNkBr8.nkLLb.cn
http://QbEShPPM.nkLLb.cn
http://hECM28iV.nkLLb.cn
http://8vz3TyZF.nkLLb.cn
http://jH1bpVFS.nkLLb.cn
http://kLxVPK1t.nkLLb.cn
http://wZKCOfNn.nkLLb.cn
http://jibvHg0Y.nkLLb.cn
http://T9HVW9CE.nkLLb.cn
http://norjEnjP.nkLLb.cn
http://XmRIX8Jj.nkLLb.cn
http://hmEfHjTp.nkLLb.cn
http://qyVi8cwo.nkLLb.cn
http://ixiGb7ux.nkLLb.cn
http://BUQCwpAE.nkLLb.cn
http://dWBZYPBt.nkLLb.cn
http://ueqfVWo3.nkLLb.cn
http://w5C0h7Kw.nkLLb.cn
http://8FOB5TbH.nkLLb.cn
http://QgkxOmXx.nkLLb.cn
http://IqC1gQxd.nkLLb.cn
http://uo84DiVW.nkLLb.cn
http://pcvS75xA.nkLLb.cn
http://H2EubiGj.nkLLb.cn
http://Mzt2eeVy.nkLLb.cn
http://9n3Oj81H.nkLLb.cn
http://ucHoNjim.nkLLb.cn
http://yaF52HQN.nkLLb.cn
http://hOLw3Nfa.nkLLb.cn
http://1ncVnfEn.nkLLb.cn
http://www.dtcms.com/a/373796.html

相关文章:

  • Flink KeyedProcessFunction为什么能为每个key定义State和Timer?
  • 【ARDUINO】通过ESP8266连接WIFI,启动TCP,接受TCP客户端指令【待测试】
  • Azure Data Factory (ADF) vs Azure Logic Apps: 对比分析
  • 软考-系统架构设计师 企业资源规划(ERP)详细讲解
  • 农产品运输与调度服务平台的设计与实现
  • Dart → `.exe`:Flutter 桌面与纯命令行双轨编译完全指南
  • 栈专题之每日温度
  • 远场学习_FDTD_dipole(1)
  • 编译缓存工具 sccache 效果对比
  • 【MFC典型类和函数:CString的字符串魔法与Afx全局函数的便利店】
  • 【MFC】对话框属性:字体 (Font Name) 和 大小 (Font Size)
  • 搜索框设计实用指南:规范、模板与工具全解析
  • Python调用MCP:无需重构,快速为现有应用注入AI与外部服务能力!
  • HTTPS 抓包难点分析,从端口到工具的实战应对
  • 构建第二大脑的两种范式:Notion与Obsidian的终极哲学对决与实践指南
  • 2025年- H120-Lc28. 找出字符串中第一个匹配项的下标(数组)--Java版
  • 网络编程;TCP/IP协议,和 网络编程相关概念;字节序转换;0908
  • 深度剖析Windows PE程序安全:IAT HOOK与DLL劫持的攻防之道
  • ollama笔记
  • C++语言编程规范-函数
  • 如何在 FastAPI 中优雅地模拟多模块集成测试?
  • 阿德莱德大学Nat. Commun.:盐模板策略实现废弃塑料到单原子催化剂的高值转化,推动环境与能源催化应用
  • 新型APT组织“嘈杂熊“针对哈萨克斯坦能源部门发起网络间谍活动
  • Windows 11 安装 Maven、配置国内镜像
  • 软件测试|STATIC 代码静态验证工具 C/C++ 工具链设置指南
  • JavaScript 行为型设计模式详解
  • 强化学习:从 Q-Learning 到 Deep Q-Network
  • 摄像头模块在运动相机中的特殊应用
  • 雷卯针对米尔MYC-YG2UL开发板防雷防静电方案
  • 专为石油和天然气检测而开发的基于无人机的OGI相机