首页 > 代码库 > 跟kernel相关的命令和几个内核参数
跟kernel相关的命令和几个内核参数
ldd命令:ldd命令用于打印程序或者库文件所依赖的共享库列表
ldd programname
使用实例:
[root@wlm ~]# 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命令后会列出所有已载入系统的模块
使用实例:
[root@wlm ~]# 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
[root@wlm ~]# modprobe -r ipv6 FATAL: Module ipv6 is in use.
模块的动态装载:modprobe module_name
[root@wlm ~]# 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)
使用实例:
[root@wlm ~]# cd /boot/
[root@wlm 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
[root@wlm boot]# mv initramfs-2.6.32-573.el6.x86_64.img initramfs-2.6.32-573.el6.x86_64.img.bak
[root@wlm boot]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
[root@wlm 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相关的命令和几个内核参数