【linux命令讲解大全】085.Linux命令解析:mkinitrd与pstree

2024-03-02 13:33:52 浏览数 (1)

mkinitrd

mkinitrd命令用于建立要载入ramdisk的映像文件,供Linux开机时使用。

补充说明

mkinitrd命令用于重新封包核心,例如当你修改一个设备的驱动并需要将其添加到核心级别时,就需要重新封包核心,将新的配置编译到核心内部。

语法
代码语言:javascript复制
mkinitrd [选项] [参数]
选项
  • -f:若指定的映像文件名称与现有文件重复,则覆盖现有文件;
  • -v:执行时显示详细信息;
  • --omit-scsi-modules:不载入SCSI模块;
  • --preload=<模块名称>:指定要载入的模块;
  • --with=<模块名称>:指定要载入的模块;
  • --version:显示版本信息。
参数
  • 映像文件:指定要创建的映像文件;
  • 内核版本:指定内核版本。
实例
代码语言:javascript复制
[root@localhost tmp]# mkinitrd -v -f myinitrd.img $(uname -r)
Creating initramfs
WARNING: using /tmp for temporary files
Looking for deps of module ide-disk
Looking for deps of module ext3  jbd
Looking for deps of module jbd
Using modules:  ./kernel/fs/jbd/jbd.ko ./kernel/fs/ext3/ext3.ko
/sbin/nash -> /tmp/initrd.Vz3928/bin/nash
/sbin/insmod.static -> /tmp/initrd.Vz3928/bin/insmod
/sbin/udev.static -> /tmp/initrd.Vz3928/sbin/udev
/etc/udev/udev.conf -> /tmp/initrd.Vz3928/etc/udev/udev.conf
copy from /lib/modules/2.6.9-5.EL/./kernel/fs/jbd/jbd.ko(elf32-i386) to /tmp/initrd.Vz3928/lib/jbd.ko(elf32-i386)
copy from /lib/modules/2.6.9-5.EL/./kernel/fs/ext3/ext3.ko(elf32-i386) to /tmp/initrd.Vz3928/lib/ext3.ko(elf32-i386)
Loading module jbd
Loading module ext3

[root@localhost tmp]# file myinitrd.img
myinitrd.img: gzip compressed data, from Unix, max compression

[root@localhost tmp]# mv myinitrd.img  myinitrd.img.gz
[root@localhost tmp]# gzip -d myinitrd.img.gz
[root@localhost tmp]# file myinitrd.img
myinitrd.img: ASCII cpio archive (SVR4 with no CRC)

pstree

pstree命令以树状图的方式展现进程之间的派生关系,可以更直观地显示进程之间的关系。

补充说明

pstree命令以树状图的方式显示进程之间的派生关系,显示效果比较直观。

语法
代码语言:javascript复制
pstree [选项]
选项
  • -a:显示每个程序的完整指令,包含路径、参数或常驻服务的标识;
  • -c:不使用精简标识法;
  • -G:使用VT100终端机的列绘图字符;
  • -h:列出树状图时,特别标明当前执行的程序;
  • -H<程序识别码>:和指定"-h"参数类似,但特别标明指定的程序;
  • -l:采用长列格式显示树状图;
  • -n:用程序识别码排序,默认以程序名称排序;
  • -p:显示程序识别码;
  • -u:显示用户名称;
  • -U:使用UTF-8列绘图字符;
  • -V:显示版本信息。
实例

显示当前所有进程的进程号和进程ID:

代码语言:javascript复制
pstree -p

显示所有进程的详细信息,压缩显示相同进程名:

代码语言:javascript复制
pstree -a

获取SSH会话的PID:

代码语言:javascript复制
pstree -p | grep ssh

# |-sshd(1221)- -sshd(2768)---bash(2770)- -grep(2810)
# |            `-sshd(2807)---sshd(2808)

从上方输出结果中,可以看到sshd进程及其派生关系的树状图。sshd的主进程是sshd(1221),另外两个分支分别是sshd(2768)和sshd(2807)。

0 人点赞