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

深入理解linux操作系统---第3讲 基本操作与基本管理

3.1 shell基本功能与基本概念

3.1.1 shell基本功能

Shell是Linux系统的核心交互工具,主要功能包括:

  • 程序启动与进程管理:通过命令行将程序名传递给内核执行,支持进程的后台运行与监控(如pskill命令)
  • 文件系统操作:提供cpmvrm等内置命令实现文件复制、移动、删除等操作
  • 输入输出控制:支持标准流重定向(>>><)与管道(|)实现数据流转

3.1.2 字符与保留字

Shell保留字是具备特殊语义的关键字符:

  • 流程控制类if/then/fifor/while/case等用于脚本逻辑控制
  • 命令分隔符;(顺序执行)、&&(逻辑与)、||(逻辑或)
  • 查看方式type命令可验证保留字身份,例如type if显示"if is a shell keyword"

3.1.3 文件命名及文件类型

Linux文件系统核心特征:

  • 命名规则:最大长度255字符,避免使用/*等特殊符号,.开头的文件为隐藏文件
  • 文件类型
    • 普通文件:文本文件(ASCII)、二进制文件(ELF格式)、数据文件(如CSV)
    • 目录文件:存储子目录和文件的元数据
    • 设备文件:字符设备(如终端/dev/tty)、块设备(如磁盘/dev/sda

3.1.4 目录结构与路径

Linux文件系统层级标准(FHS)核心目录:

  • /bin:基础命令二进制文件(lscat等)
  • /etc:系统配置文件(如网络配置/etc/sysconfig/network-scripts
  • /var:动态数据(日志文件/var/log、数据库文件等)
  • 特殊目录/proc(进程信息虚拟文件系统)、/sys(内核参数接口)

3.1.5 shell命令格式与命令行

命令语法规范:

  • 标准格式command [options] [arguments]
  • 选项类型
    • 短格式:-l(等价于--list
    • 长格式:--all(支持更直观的语义)
  • 参数传递read -n 1-n选项后接读取字符数参数

3.1.6 标准流与I/O重定向

输入输出控制技术:

  • 标准流:stdin(0)、stdout(1)、stderr(2)
  • 重定向操作
    • 输出覆盖:ls > filelist.txt
    • 错误追加:gcc test.c 2>> error.log
    • 输入重定向:sort < data.txt

3.1.7 管道与三通

数据流处理机制:

  • 管道符|ps -ef | grep java | wc -l统计Java进程数
  • 三通teels -l | tee dirlist.txt | grep .log同时输出到文件和筛选
  • xargs优化find . -name "*.txt" | xargs rm处理大量文件参数

3.1.8 变量与环境变量

变量管理要点:

  • 作用域
    • 局部变量:var=value(仅当前shell有效)
    • 全局变量:export VAR=value(子进程继承)
  • 查看工具
    • env:显示所有环境变量
    • printenv PATH:查看特定变量

3.1.9 引号机制与替换

语义解析规则:

  • 单引号:完全抑制变量扩展,echo '$PATH'输出字面量
  • 双引号:允许变量扩展,echo "Current path: $PATH"
  • 反引号:命令替换,current_dir=\pwd`等价于$(pwd)`

3.1.10 shell命令执行

执行流程详解:

  1. 词法解析:拆分命令为token序列
  2. 命令查找:优先检查内置命令,其次搜索PATH路径
  3. 进程创建fork()创建子进程,exec()加载程序

3.1.11 shell种类

主流Shell对比:

  • Bash:默认Shell,兼容sh并支持命令行编辑
  • Zsh:增强交互功能(自动补全、主题系统)
  • Fish:语法高亮、智能提示等现代化特性

3.2 Linux系统基本命令

3.2.1 目录操作

核心命令集:

  • 层次导航pushd/popd维护目录栈实现快速跳转
  • 路径处理realpath file.txt显示绝对路径
  • 目录分析tree -L 2显示二级目录树结构

3.2.2 文件操作

关键操作命令:

  • 批量处理find . -name "*.log" -exec rm {} \;
  • 链接管理ln -s target linkname创建符号链接
  • 安全删除rm -i交互式确认防止误删

3.2.3 文件属性

权限与属性管理:

  • 权限修改chmod 755 script.sh设置可执行权限
  • 属主变更chown user:group file修改所有者
  • 时间戳更新touch -t 202504131200 file指定修改时间

3.2.4 文本处理

编辑器与处理工具:

  • 流式编辑sed 's/foo/bar/g' input.txt全局替换
  • 列处理awk '{print $1,$3}' data.csv提取指定列
  • 差异比较diff -u old.c new.c生成补丁文件

3.3 Linux系统基本管理

3.3.1 环境变量管理

配置策略:

  • 临时设置export TZ='Asia/Shanghai'
  • 永久生效:写入\~/.bashrc/etc/profile
  • 安全实践:敏感信息通过环境变量传递而非硬编码

3.3.2 别名管理

高效命令配置:

  • 快捷指令alias ll='ls -alh'
  • 持久化存储:将别名定义写入\~/.bash_aliases

3.3.3 主机名管理

修改步骤:

  1. 临时修改hostnamectl set-hostname newhost
  2. 永久生效:修改/etc/hostname/etc/hosts

3.3.4 网络管理

基础配置工具:

  • 地址配置nmcli con mod eth0 ipv4.addresses 192.168.1.10/24
  • 连通性测试mtr -rw google.com显示实时路由质量

3.3.5 时间管理

时区与时钟设置:

  • 时区切换timedatectl set-timezone America/New_York
  • 时钟同步chronyc sources -v检查NTP源状态

3.3.6 软件包管理

包管理器对比:

  • APTapt-get install -y nginx(Debian系)
  • DNFdnf groupinstall 'Development Tools'(RHEL系)

3.3.7 进程管理

监控与信号处理:

  • 实时监控htop -d 10每10秒刷新进程列表
  • 信号发送kill -SIGHUP $(pidof nginx)重载配置

3.3.8 服务管理

Systemd核心操作:

  • 服务启停systemctl restart sshd
  • 开机控制systemctl enable docker

3.3.9 防火墙管理

工具选择:

  • iptables:传统包过滤规则
  • firewalld:动态管理区域与服务

3.3.10 SELinux管理

模式切换命令:

  • 查看状态sestatus
  • 临时禁用setenforce 0

3.4 练习题

3.4.1 思考题

(1)shell的基本功能有哪些?

(2)Linux系统中的主要目录有哪些?各有什么作用?

(3)工作目录及其父目录可分别用什么表示?

(4)在如图3-1所示的目录结构中,若处在usr1目录中的用户要访问include目录中的stdio.h,可以采用什么样的路径,对应的带有路径的文件名是什么?

(5)Linux系统中用于文件中的通配符有哪些?试举例说明它们的作用。

(6)常用的shell环境变量有哪些?怎么查询和设置环境变量?

(7)什么是输入/输出重定向?管道的功能是什么?试举例说明如何使用它们。

(8)shell中的引号有哪几种?各有什么作用?试举例说明之。

(9)什么是参数替换?什么是命令替换?试举例说明如何使用它们。

(10)shell的种类有哪些?

(11)什么是别名?如何定义和取消别名?

(12)什么是主机名?如何进行主机名规划,如何设置主机?

3.4.2 选择题

(1)下列设备属于块设备的是(    )。

A.键盘              B.终端              C.鼠标             D.硬盘

(2)cd命令可以改变用户的当前目录,当用户输入命令“cd”并按Enter键后,(    )。

A.当前目录改为根目录                             B.当前目录不变,屏幕显示当前目录

C.当前目录改为用户主目录                     D.当前目录改为上一级目录

(3)命令echo -en '\a'的输出为(    )。

A.响铃             B.\a                 C.'\a'                 D.a

(4)超级用户的用户主目录是(    )。

A./                   B./root             C./home             D./home/root

(5)一般情况下,普通用户zh3的家目录是(    )。

A./zh3             B./root/zh3             C./home/zh3              D./usr/zh3

(6)要删除目录/home/user1/subdir连同其下级目录和文件,不需要交互确认,正确的命令是(    )。

A.rm -rf /home/user1/subdir                      B.rm -df /home/user1/subdir

C.rmdir -pf /home/user1/subdir                 D.rmdir -P /home/user1/subdir

(7)在红帽系统中,查询已安装软件包tcsh内所含文件列表信息的命令是(    )。

A.rpm -qa tcsh                              B.rpm -ql tcsh

C.rpm -qp tcsh                             D.rpm -qf tcsh

(8)在Ubuntu系统中,查询已安装软件包tcsh内所含文件列表信息的命令是(    )。

A.dpkg -l tcsh             B.dpkg -L tcsh          C.dpkg -S tcsh             D.dpkg -s tcsh

(9)在红帽系统中,查询/usr/bin/shred文件归属某个已安装软件包的命令是(    )。

A.rpm -qa /usr/bin/shred                 B.rpm -ql /usr/bin/shred

C.rpm -qp /usr/bin/shred                 D.rpm -qf /usr/bin/shred

(10)在Ubuntu系统中,查询/usr/bin/shred文件归属某个已安装软件包的命令是(    )。

A.dpkg -l /usr/bin/shred                   B.dpkg -L /usr/bin/shred

C.dpkg -S /usr/bin/shred                 D.dpkg -s /usr/bin/shred

3.4.3 综合题

(1)什么是时区?中国的标准时区是什么?如何正确设置系统时区?

(2)试述在Linux系统中如何进行日期和时间管理。在图形界面下可以实现时间和日期管理吗?若能,如何做?

(3)在UNIX/Linux系统中有些操作是有副作用的,如cp、mv和rm等,应该如何避免?

(4)文件的属性和类型有哪些?如何确定某文件的类型?如何获得文件的属性?

(5)试简述Linux系统的信号通信机制。如何查询可用信号?如何实现信号通信?如何捕获信号?

3.4.4 答案

1.思考题

(1)shell的基本功能有哪些?

解:

shell功能有六:命令解释执行、文件名及各种替换、I/O重定向、通信管道建立、系统环境设置和shell编程。

(2)Linux系统中的主要目录有哪些?各有什么作用?

解:

/:系统的根目录。/dev:系统的设备目录。/etc:存放Linux系统和大部分应用软件的配置文件。/home:用户家目录所在的目录。/root:root用户的家目录。/lost+found:丢失文件的存放目录。/mnt:外部设备的挂装点,用于挂载设备文件。/boot:Linux的启动目录。系统内核文件,引导器Grub等存放在这里。/proc,/sys:伪文件系统目录。/usr:用户级目录。/tmp,/usr/tmp:临时目录。/sbin,/usr/sbin:系统级的命令与工具目录。/bin,/usr/bin:用户级的命令与工具目录。/usr/include:C语言,内核编译所需要的头文件存放目录。/lib,/usr/lib:库文件存放目录,其中有表态库和动态库。/lib64,/usr/lib64:64位库文件存放目录。/usr/src:Linux源代码目录,编译内核时使用。/var:通常用来存放一些经常变化的内容,比如各种网络服务的工作目录都在这里。/var/log:系统日志目录。/var/spool:存放邮件、新闻、打印队列任务等。/usr/share:存放共享使用的,比如各种共享或在线帮助等。

(3)工作目录及其父目录可分别用什么表示?

解:

一个目录文件内至少要有两个文件项:“.”-当前目录;“..”-上级目录。当前目录也叫工作目录。

(4)在如图3-1所示的目录结构中,若处在usr1目录中的用户要访问include目录中的stdio.h,可以采用什么样的路径,对应的带有路径的文件名是什么?

解:

相对路径:../../usr/include/stdio.h

绝对路径:/usr/include/stdio.h

从这个例子中,好像看到:相对路径与绝对路径复杂,其实并非如此。如果,要访问usr2目录中的file1,相对路径可表示为../usr2/file1,绝对路径表示为/home/usr2/file1。

(5)Linux系统中用于文件中的通配符有哪些?试举例说明它们的作用。

解:

这里所说的通配符主要是指shell用于文件名、路径匹配与搜索的通配符,与正则表达式中通配符不同。常用的通配符有“*”、“?”和括在方括号“[]”中的字符序列。

  • *:代表从它所在位置开始的任何字符串。默认情况下,“.”和路经名中的斜线“/”必须显式匹配。
  • ?:代表它所在位置上的任何单个字符。
  • [ ]:每次只匹配“[]”中字符的一个,若[]中的首字符是“!”或“^”,则表示非运算。[]中还可使用-表示范围。

(6)常用的shell环境变量有哪些?怎么查询和设置环境变量?

解:

常用的shell环境变量可参见3.1.8之“2.环境变量”。环境变量可用命令env、export或set来查询或设置环境变量的值。比如,可用不带有任何参数和选项执行env、export和set,来显示所有的环境变量。还可以使用管道命令查询指定环境变量(比如PATH)的及其值,方法是

$ env | grep PATH

$ set | grep PATH

$ export | grep PATH

$ echo grep $PATH

(7)什么是 I/O 重定向?管道的功能是什么?试举例说明如何使用它们。

解:

当执行一个命令时,shell通常会自动为其打开三个标准流(文件):标准输入流、标准输出流和标准错误流。

I/O重定向(也称作改道)是指通过文件的形式实现标准I/O流。通过I/O重定向可以实现:输入重定向;标准输出重定向;标准错误的重定向和标准输出和标准错误同时重定向。示例如下:

$ wc /etc/passwd # 统计文件/etc/passwd的行、词和字符信息。或

$ wc < /etc/passwd # 标准输入重定向

$ ls > /tmp/dir.out # 覆盖方式。将当前目录信息重定向到文件/tmp/dir.out

$ ls /usr >> /tmp/dir.out # 追加方式,将/usr信息重定向追加到/tmp/dir.out

$ ls -l /home/w-w-w 2> /tmp/err.out # 将标准错误重定向到文件/tmp/err.out

$ cat /home/w-w-w 2>> /tmp/err.out # 将标准错误追加到文件/tmp/err.out

$ cat /tmp/err.out # 查看文件/tmp/err.out内容

$ ls -l -d /  /home/w-w-w &> /tmp/err.out  # 将标准输出和标准错误同时重定向到/tmp/err.out

$ ls -l -d /boot /home/w-w-w &>> /tmp/err.out  # 将标准输出和标准错误同时追加到/tmp/err.out

$ cat /tmp/err.out # 查看文件/tmp/err.out内容

管道机制是在两个或多个进程之间建立一种连接,使得前一个命令的输出作为后一个命令的输入。管道机制常用于进程间的通信。示例如下:

$ ls -l /dev | wc -l # 统计设备目录/dev内有多少文件或子目录

$ cat /etc/passwd | grep "^root:" # 显示/etc/passwd行首root:的行

$ cat /etc/passwd | grep "root:" # 显示/etc/passwd内有包含root:的行

$ cat /etc/passwd | grep "root:"|wc -l # 统计/etc/passwd内有多少行包含root:

(8)shell中的引号有哪几种?各有什么作用?试举例说明之。

解:

在shell中有三种引号:单引号('),双引号(")和反单引号(`),前两者用于变量定义,后者用于命令替换。

①单引号

由单引号括起来的字符都作为普通字符。特殊字符用单引号括起来以后,也会失去原有意义。例如:

# string='$PATH' # 定义string变量,其值为'$PATH'

# echo $string # 显示变量的值:$PATH

②反单引号

反单引号的作用是命令替换。例如:

# x=`pwd` # 通过命令pwd替换定义变量x。pwd的功能是显示用户工作目录

# y=`whoami` # 通过命令whoami替换定义变量y。whoami的功能是显示用户名

# echo $x $y # 显示变量x和y的内容

③双引号

双引号的作用与单引号的功能基本一样,可用来定义变量,所不同的是在双引号内可进行变量替换和命令替换。示例如下:

$ myname=`whoami` # 通过命令替换定义变量myname

# #定义变量myself。注意使用了变量替换和命令替换

$ myself="I am a student, my uname is $myname and my work dir is `pwd`."

# #定义变量myself1。注意使用了继续行和转义字符

$ myself1="I am a student my uname is \"$myname\" and my work dir is \"`pwd`\""

$ echo $myself # 显示变量myself的值

$ echo $myself1 # 显示变量myself1的值

(9)什么是参数替换?什么是命令替换?试举例说明如何使用它们。

解:

参数替换主要是指命令行参数中的变量和命令等各种替换。设当前目录下有命令DispAllVar用于显示它自己的所有的命令行参数,变量x的值为“test parm”,则命令

# ./DispAllVar I am `whoami` the value of x is $x

的输出为:

I am root the value of x is test parm

甚至,还可以定义一个变量

D=DispAllVar

之后,程序的执行可简写为

# ./$D I am `whoami` the value of x is $x

在这里,程序名也可以是变量。

说明:程序DispAllVar可以由如下命令产生:

# echo 'echo $*' > DispAllVar; chmod +x DispAllVar

所谓命令替换,是指反单引号或$()内的内容将作为命令首先被执行,然后将命令的标准输出替换反单引号及其括号位置的信息。

$ x=`pwd` #通过命令pwd替换定义变量x。pwd的功能是显示用户的工作目录

$ y=`whoami` #通过命令whoami替换定义变量y。whoami的功能是显示用户名

$ MyVar=$(whoami) #通过命令whoami替换定义变量MyVar

# ./$D I am `whoami` the value of x is $x

(10)shell的种类有哪些?

解:

UNIX/Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh或bsh)、Bourne again shell(bash),C shell(csh)、tc shell(tcsh)、Korn shell(ksh)和Z shell(zsh)等

(11)什么是别名?如何定义和取消别名?

解:

别名可描述为是定义的用来替换命令名的字符串(的值)。可分别用alias和unalias定义和取消别名。示例如下:

$ alias li='ls -l -i '  #定义别名li,其功能为ls -l -i

$ alias l='ls -l  '  #定义别名l,其功能为ls -l

$ unalias li #取消别名li

$ unalias -a  #取消所有别名

(12)什么是主机名?如何进行主机名规划,如何设置主机?

解:

主机名就是计算机的名字(计算机名),网上就是根据主机名来识别主机。主机名有本地主机名和网络主机名之分。主机名本地主机名与网络主机名可以一致,也可以不一致。本地主机名可以自己设定,网络主机名必须统筹规划,一经定下,网络主机就不能随意改变,否则其它主机可能就找不到你了。比如河南需要学院的网络主机名具有如下形式:

门户网站:www.hncj.edu.cn  图书馆:lib.hncj.edu.cn   移动门户:app.hncj.edu.cn

修改或设置主机名可以使用命令hostname和hostnamectl。也可以直接修改/etc/hostname,然后重启系统。

比如,若将主机名设置为app.hncj.edu.cn,可分别使用命令:

# hostname app.hncj.edu.cn #临时设置:重启后丢失

# hostnamectl set-hostname app.hncj.edu.cn #永久设置:重启后仍有效

2.选择题

(1)D;(2)C;(3)A;(4)B;(5)C;(6)A;(7)B;(8)B;(9)D;(10)C

3.综合题

(1)什么是时区?中国的标准时区是什么?如何正确设置系统时区?

解:

时区(Time zone)实际上是一个地理的概念,与一个国家地区所处的经度有关。全球的时区划分包括24个时区规定英国(格林尼治天文台旧址)为中时区(零时区GMT 00:00中国位于东8区,中国标准时区为CST,在设置时区使用的是Asia/Shanghai。可以使用命令

# timedatectl list-timezones

查询所有的时区。

时区是日期和时间的基础,必须设置正确,否则系统时间与手表的时间就可能不一致。系统的时区控制文件为/etc/localtime,它是/usr/share/zoninfo/内某个文件的复制品或链接,在中国,这个文件是/usr/share/zoninfo/Asia/Shanghai。

因此,设置中国时区的正确方法之一是执行命令

# timedatectl set-timezone Asia/Shanghai # 将时区设为Asia/Shanghai

当然,也可使用以下命令设置时区

# ln -f -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

日期和时间的设置与显示受时区环境变量TZ的影响,在Linux下,格林威治标准时区是TZ=UTC(Universal time),中国的标准时区是TZ=CST(Chinese Standard Time)。

(2)试述在Linux系统中如何进行日期和时间管理。在图形界面下可以实现时间和日期管理吗?若能,如何做?

解:

Unix/Linux提供有date、hwclock、timedatectl等命令用于日期和时间的管理,除此之外,桌面或工作站系统还可在图形界面下对日期和时间进行管理。在第13章还要介绍通过NTP实现系统时间的自动校正。

关于时区的设置可参见(1)。

在Linux所在的硬件系统中,同时使用着系统时间和硬件两个时间,且两者可以不一致。

date主要用来管理系统时间;timedatectl也是用来控制系统时间的,且可以设置时区;hwclock可访问硬件时间,且可将系统时间同步到硬件时间或将硬件时间设为系统时间。时间和时区管理,还可在图形界面下进行。

系统的时区、日期和时间,必须设置正确,对于与时间相关的业务系统更是如此,系统时间不能随意改变。为了保持系统时间“经常”正确,可能使用NTP协议校正时间(参见第13章)。

在图形界面下可以实现时间和日期管理,方法是:

“Settings(设置中心)”→“Details(细节)”→“Date & Time(日期和时间)”

(3)在UNIX/Linux系统中有些操作是有副作用的,比方cp,mv和rm等,应该如何避免?

解:

可以采用删除或覆盖前提醒(-i或--interactive选项),或在删除或覆盖前备份(cp和mv的-b或--backup选项)的办法。为避免命令与选项输入错误或麻烦,可以使用别名。比如

alias cp='cp -i'

alias mv='mv -i'

alias rm='rm -i'

(4)文件的属性和类型有哪些?如何确定某文件的类型?如何获得文件的属性?

解:

可以通过命令stat获得文件的大部分属性(包括文件的类型),可以通过命令file确定文件的类型。当然,命令ls -li也可以得到文件的属性。

可以参考命令stat /usr/bin/wc的输出

  File: '/usr/bin/wc'

  Size: 48832      Blocks: 96         IO Block: 4096   regular file

Device: fd00h/64768d Inode: 1522        Links: 1

Access: (0755/-rwxr-xr-x) Uid: (    0/    root)  Gid: (    0/    root)

Context: system_u:object_r:bin_t:s0

Access: 2017-03-07 22:32:33.811018027 +0800

Modify: 2016-11-01 01:21:49.000000000 +0800

Change: 2017-03-04 11:57:02.192098765 +0800

它几乎包括了Linux文件的属性全部。其中的“File”:项为文件名;“Size”:为文件大小;“Blocks”:为文件所占512字节的块数;“IO Block:”为文件系统IO块大小;“regular file”表明这是一个普通文件(“block special file”:块设备文件;“character special file”:字符设备文件;“fifo”:命令管道设备文件;“directory”:目录文件);“Device”文件所在设备ID;“Inode”:I节点号;“Links”为硬链接数;“Access”为文件访问权限;“Uid”为用户标识;“Gid”为组标识;“Context”:为SELinux上下文;“Access”访问时间;“Modify”:修改时间;“Change”:属性修改时间。当然,也可参考ls -li的输出。

虽然stat和ls -li的输出中都包含了文件的类型,但file为确定文件的类型的专用工具。

(5)试简述Linux系统的信号通讯机制。如何查询可用信号?如何实现信号通讯?如何捕获信号?

解:

进程之间可以通过信号进行通信,以实现进程间的一定程序的控制,用于进程间信号通信的命令是kill和trap。

查询系统可用信号,可以使用命令kill -l,trap -l或fuser -l。

在Unix/Linux的众多信号中,有的是硬件产生的,有的是软件产生的,还有一些是人工可以制造的。这些人工可以制造的信号简称为人工信号,它们是SIGHUP、SIGINT、SIGQUIT、SIGKILL、SIGTERM、SIGUSR1和SIGUSR2等,或简写为HUP、INT、QUIT、KILL、TERM、USR1和USR2等。

若要实现进行间的信号通讯,可以先为使用trap为信号定义一个处理方法。对一个信号的处理方法有三:1是系统默认(一般是终止当前进程的执行);2是忽略;3是定义一个新动作。

定义对信号的处理办法,也叫捕获信号,捕获命令为trap。trap捕获信号的示例如下:

# trap 'echo -e "You pressed ^C!\n"' 2 # 捕获2,并指定处理方法

# trap -p 2 # 显示INT信号动作

## 按一下组合键^C(相当于收到2号信号INT),观察一下效果

# trap # 列当前信号动作

# trap '' 2 3 15 USR1 # 捕获并忽略它们。''为两个单引号,中间无内容

## 再按组合键^C,观察一下效果

命令

# ps | awk '/bash/{ print $1 }'

的输出为当前bash的PID,比如23456。可在本终端或其它终端(建议其它终端)上,使用

# kill -2 23456 # 向23456发信号2

# kill -USR1 23456 # 向23456发信号USR1

观察情况,此时,可能是没有反应(因为信号被忽略)。

在执行以下命令,恢复系统默认后

# trap 2 3 15 USR1 # 恢复信号2,3,15的之前动作

再向23456发送信号2或USR1,以观察具体反应。


总结

本文全面梳理了Linux系统操作与管理的核心知识体系,涵盖从基础Shell概念到系统服务管理的全流程。建议读者通过虚拟机或容器环境实践各章节命令,逐步构建完整的Linux系统管理能力。

相关文章:

  • GD32的中断、定时器与PWM综合使用
  • FEA 仿真助力高速连接器设计中的信号完整性
  • 碰一碰发视频源码搭建技术开发,私有化部署,定制化开发
  • 【OpenCV】【XTerminal】talk程序运用和linux进程之间通信程序编写,opencv图像库编程联系
  • 数智读书笔记系列028 《奇点更近》
  • 批量给文件夹编排序号,支持数字序号及时间日期序号编排文件夹
  • 数组对象[object],五种如何去重方法 js
  • 【从零实现高并发内存池】- 项目介绍、原理 及 内存池详解
  • 小八股-CDN
  • 100M/1000M 以太网静电浪涌防护方案
  • 机械革命 无界15X 自带的 有线网卡 YT6801 debian12下 的驱动方法
  • sd协议的大致通信过程
  • 图论之并查集——含例题
  • Agno 开源程序是一个轻量级库,用于构建具有内存、知识、工具和原生多模态支持的推理代理。使用 Agno 构建推理代理、多模态代理、代理团队和代理工作流。
  • 【编写Node接口;接口动态获取VUE文件并异步加载, 并渲染impoort插件使用】
  • tcp特点+TCP的状态转换图+time_wait详解
  • 负载均衡nginx中的FIN包传递
  • QDataStream 解析网络,或串口传来的数据
  • 计算机组成原理-存储器
  • c/c++ 使用libgeotiff读取全球高程数据ETOPO
  • wordpress防站/郑州网站建设用户
  • 长春高铁站/app开发自学
  • 木门行业做网站有什么好处/产品推广宣传方案
  • 精美企业网站/重庆百度seo整站优化
  • 个人作品集网站模板免费下载/武汉关键词seo
  • html5移动网站开发实例/怎么做好网络营销