linux系统中的信号捕捉、系统启动流程及实现免密登录

本文详细介绍了Linux系统中的信号捕捉,如trap命令,以及进程管理工具如ps、kill,强调了进程和线程的区别。文章还探讨了Linux系统启动流程,包括CentOS 6的启动流程和grub工作原理。此外,讲解了如何实现SSH免密登录,涉及公私钥原理和使用。同时,还涵盖了awk的工作原理、命令和选项,以及数组和函数的使用。最后,讨论了Linux中进程的状态,如创建、就绪、执行和阻塞,并总结了内核设计的宏内核与微内核特点。
摘要由CSDN通过智能技术生成

Linux常用命令及基础工具总结

脚本高级命令trap, install, mktemp, expect

信号捕捉trap

trap 命令可以捕捉信号,修改信号原来的功能,实现自定义功能
在这里插入图片描述

install

install 功能相当于cp,chmod,chown,chgrp ,mkdir 等相关工具的集合
install -d 122相当于创建了122的文件夹
相关选项
-m MODE,默认755
-o OWNER
-g GROUP
-d DIRNAME 目录
在这里插入图片描述

mktemp

mktemp 命令用于创建并显示临时文件,可避免冲突
实现文件回收站
DIR=mktemp -d /tmp/trash-$(date +%F_%H-%M-%S)XXXXXX
mv $* $DIR
echo $* is move to $DIR
在这里插入图片描述

expect

expect 是由Don Libes基于 Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式操作的场景,借助 expect 处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率(相当于机器人,可以观察进程,如果需要交互,则可自动完成交互)非交互把服务器3.10的文件传给3.133
#!/usr/bin/expect
spawn scp /root/aa.txt 192.168.3.133:/data
expect {
“yes/no” { send “yes\n” }
“password” { send “202212\n” }
}
expect eof
在这里插入图片描述
在这里插入图片描述

进程管理工具: ps, pstree, uptime,kill

进程树 pstree

pstree 可以用来显示进程的父子关系,以树形结构显示
-p 显示PID
-T 不显示线程thread,默认显示线程
-u 显示用户切换
-H pid 高亮显示指定进程及其前辈进程
在这里插入图片描述

进程信息 ps

ps 即 process state,可以进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关
信息均保存在/proc/PID目录下的各文件中
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 --forest
k|–sort 属性 对属性排序,属性前加 - 表示倒序
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
L 显示支持的属性列表
#查看进程的父子关系
在这里插入图片描述

负载查询 uptime

/proc/uptime 包括两个值,单位 s系统启动时长空闲进程的总时长(按总的CPU核数计算)
uptime 和 w 显示以下内容
当前时间
系统已启动的时间
当前上线人数
系统平均负载(1、5、15分钟的平均负载,一般不会超过1,超过5时建议警报)
系统平均负载: 指在特定时间间隔内运行队列中的平均进程数,通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题
在这里插入图片描述

信号发送 kill

内部命令,可用来向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以
SIG开头(可省略),不区分大小写
在这里插入图片描述

  1. SIGHUP 无须关闭进程而让其重读配置文件
  2. SIGINT 中止正在运行的进程;相当于Ctrl+c
  3. SIGQUIT 相当于ctrl+\
  4. SIGKILL 强制杀死正在运行的进程,可能会导致数据丢失,慎用!
  5. SIGTERM 终止正在运行的进程,默认信号
  6. SIGCONT 继续运行
  7. SIGSTOP 后台休眠

总结索引数组和关联数组,字符串处理,高级变量使用及示例

索引数组

数组:存储多个元素的连续的内存空间,相当于多个变量的集合
数组名和索引
索引的编号从0开始,属于数值索引
索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash 4.0版本之后开始支持
bash的数组支持稀疏格式(索引不连续)

数组赋值

students=(wang li zhou)
在这里插入图片描述

引用数组

echo ${students[2]}
在这里插入图片描述

关联数组

注意:关联数组必须先声明再调用
数组声明 declare -A fruit
在这里插入图片描述

字符串处理

基于模式取子串
在这里插入图片描述

高级变量使用及示例

高级变量用法-有类型变量

Shell变量一般是无类型的,但是bash Shell提供了declare和typeset两个命令用于指定变量的类型,两个命令是等价的
语法: declare [+/-][rxi][变量名称=设置值] 或 declare -f
选项:
-r 声明或显示只读变量
-i 将变量定义为整型数
-a 将变量定义为数组
-A 将变量定义为关联数组
-f 显示已定义的所有函数名及其内容
-F 仅显示已定义的所有函数名
-x 声明或显示环境变量和函数,相当于export
-l 声明变量为小写字母 declare -l var=UPPER
-u 声明变量为大写字母 declare -u var=lower
-n make NAME a reference to the variable named by its value

变量间接引用

eval命令

eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量,该命令对变量进行两次扫描
在这里插入图片描述

间接变量引用

如果第一个变量的值是第二个变量的名字,从第一个变量引用第二个变量的值就称为间接变量引用
variable1的值是variable2,而variable2又是变量名,variable2的值为value,间接变量引用是指通过
variable1获得变量值value的行为
在这里插入图片描述

求10个随机数的最大值与最小值

Linux declare 命令:declare 为 shell 指令,在第一种语法中可用来声明变量并设置变量的属性([rix]即为变量的属性),在第二种语法中可用来显示 shell 函数。若不加上任何参数,则会显示全部的 shell 变量与函数(与执行 set 指令的效果相同)。
语法: declare [+/-][rxi][变量名称=设置值] 或 declare -f
参数说明:
+/-  "-“可用来指定变量的属性,”+"则是取消变量所设的属性。
-f  仅显示函数。
r  将变量设置为只读。
x  指定的变量会成为环境变量,可供shell以外的程序来使用。
i  [设置值]可以是数值,字符串或运算式。
R A N D O M 变量存储着

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值