跟kernel相关的命令和几个内核参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟kernel相关的命令和几个内核参数相关的知识,希望对你有一定的参考价值。

ldd命令:ldd命令用于打印程序或者库文件所依赖的共享库列表

    ldd  programname

使用实例:

[[email protected] ~]# ldd /bin/bash
	linux-vdso.so.1 =>  (0x00007fff38ddc000)
	libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000030d0400000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00000030c8400000)
	libc.so.6 => /lib64/libc.so.6 (0x00000030c8800000)
	/lib64/ld-linux-x86-64.so.2 (0x00000030c8000000)

lsmod命令:lsmod命令用于显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块
使用实例:

[[email protected] ~]# lsmod | grep mptspi
mptspi                 16411  3 
mptscsih               36638  1 mptspi
mptbase                93615  2 mptspi,mptscsih
scsi_transport_spi     25447  1 mptspi
第1列:表示模块的名称;
第2列:表示模块的大小;
第3列:表示依赖模块的个数;
第4列:表示依赖模块的内容。

modprobe命令:modprobe命令用于智能地向内核中加载模块或者从内核中移除模块

使用实例:

动态卸载模块:modprobe  -r  module_name

[[email protected] ~]# modprobe -r ipv6
FATAL: Module ipv6 is in use.

模块的动态装载:modprobe  module_name

[[email protected] ~]# modprobe  ipv6



mkinitrd命令:ramdisk文件的管理

为当前使用中的内核重新制作ramdisk文件:

# mkinitrd [OPTION...] [<initrd-image>] <kernel-version>

--with=<module>:除了默认的模块之外需要装载至initramfs中的模块;

--preload=<module>:initramfs所提供的模块需要预先装载的模块;

示例: ~]# mkinitrd  /boot/initramfs-$(uname -r).img   $(uname -r)

使用实例:

[[email protected] ~]# cd /boot/

[[email protected] boot]# ls

config-2.6.32-573.el6.x86_64  initramfs-2.6.32-573.el6.x86_64.img    symvers-2.6.32-573.el6.x86_64.gz

efi                           initrd-2.6.32-573.el6.x86_64kdump.img  System.map-2.6.32-573.el6.x86_64

grub                          lost+found                             vmlinuz-2.6.32-573.el6.x86_64

[[email protected] boot]# mv initramfs-2.6.32-573.el6.x86_64.img initramfs-2.6.32-573.el6.x86_64.img.bak

[[email protected] boot]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

[[email protected] boot]# ll
total 66967
-rw-r--r--. 1 root root   107134 Jul  2  2015 config-2.6.32-573.el6.x86_64
drwxr-xr-x. 3 root root     1024 Sep 30 22:29 efi
drwxr-xr-x. 2 root root     1024 Nov  1 01:59 grub
-rw-------. 1 root root 28028282 Nov  1 02:41 initramfs-2.6.32-573.el6.x86_64.img
-rw-------. 1 root root 27940603 Sep 30 22:32 initramfs-2.6.32-573.el6.x86_64.img.bak
-rw-------. 1 root root  5456789 Sep 30 22:43 initrd-2.6.32-573.el6.x86_64kdump.img
drwx------. 2 root root    12288 Sep 30 22:14 lost+found
-rw-r--r--. 1 root root   205998 Jul  2  2015 symvers-2.6.32-573.el6.x86_64.gz
-rw-r--r--. 1 root root  2585052 Jul  2  2015 System.map-2.6.32-573.el6.x86_64
-rwxr-xr-x. 1 root root  4222192 Jul  2  2015 vmlinuz-2.6.32-573.el6.x86_64


内核信息输出的伪文件系统:

/proc:内核状态和统计信息的输出接口;同时,还提供一个配置接口,/proc/sys;

参数:

     只读:信息输出;例如/proc/#/*

     可写:可接受用户指定一个“新值”来实现对内核某功能或特性的配置;/proc/sys/

/proc/sys: 

net/ipv4/ip_forward  相当于  net.ipv4.ip_forward

(1) sysctl命令

专用于查看或设定/proc/sys目录下参数的值; 

sysctl [options]  [variable[=value]]

查看:

     # sysctl  -a

     # sysctl  variable

修改其值:

    # sysctl  -w  variable=value

(2) 文件系统命令(cat, echo)

查看:

    # cat  /proc/sys/PATH/TO/SOME_KERNEL_FILE

设定:

    # echo  "VALUE"  > /proc/sys/PATH/TO/SOME_KERNEL_FILE

注意:上述两种方式的设定仅当前运行内核有效;

(3) 配置文件:/etc/sysctl.conf,  /etc/sysctl.d/*.conf 

立即生效的方式:sysctl  -p  [/PATH/TO/CONFIG_FILE]

内核参数:

     net.ipv4.ip_forward:核心转发;

     kernel.hostname:主机名;

     net.ipv4.icmp_echo_ignore_all:忽略所有ping操作;


本文出自 “汪立明” 博客,谢绝转载!

以上是关于跟kernel相关的命令和几个内核参数的主要内容,如果未能解决你的问题,请参考以下文章

kernel信息及其相关命令

LINUX下ORACLE相关的内核参数详解

Linux Kernel是啥

kernel中socket buffer相关参数

几年前的c语言跟现在有啥不同吗?

嵌入式 uboot引导kernel,kernel引导fs