Linux使用深入最后

上传人:jiups****uk12 文档编号:54112244 上传时间:2018-09-08 格式:PPT 页数:56 大小:367KB
返回 下载 相关 举报
Linux使用深入最后_第1页
第1页 / 共56页
Linux使用深入最后_第2页
第2页 / 共56页
Linux使用深入最后_第3页
第3页 / 共56页
Linux使用深入最后_第4页
第4页 / 共56页
Linux使用深入最后_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《Linux使用深入最后》由会员分享,可在线阅读,更多相关《Linux使用深入最后(56页珍藏版)》请在金锄头文库上搜索。

1、2018年9月8日星期六,Linux应用与开发,Linux系统使用深入,用户态修改内核运行参数 伪文件系统 /proc /proc/sys 可读写文件,可以通过修改文件内容达到修改内核运行参数的目的 /sys 部分文件可写,Linux系统使用深入,用户态修改内核运行参数 设定内核参数值 echo VALUE /proc/sys/XXXX 大部分内核参数接受0,1,2等值 echo 1 /proc/sys/vm/drop_caches hostname echo mynewlinux /proc/sys/kernel/hostname,Linux系统使用深入,用户态修改内核运行参数 设定内核参数

2、值 sysctl -w kernel.hostname=mynewnewlinux sysctl -w vm.drop_caches=1,Linux系统使用深入,用户态修改内核运行参数 前两种方法修改的参数是存储在内存中,可以立即生效,重启后失效 长久生效需要修改/etc/sysctl.conf,该方法无法立即生效 cat /proc/sys/net/ipv4/ip_forward nano /etc/sysctl.conf修改net.ipv4.ip_forward=1 cat /proc/sys/net/ipv4/ip_forward还是为0 sysctl -p 重读sysctl.conf配

3、置文件并生效,Linux系统使用深入,用户态修改内核运行参数 sysctl -a 显示所有内核参数 sysctl -a | wc -l,Linux系统使用深入,用户态修改内核加载模块 lsmod 查看加载的模块 modprobe MODNAME 加载模块 modprobe floopy lsmod | grep floppy modprobe -r MODNAME 卸载模块 modprobe -r floppy lsmod | grep floppy,Linux系统使用深入,用户态修改内核加载模块 modinfo MODNAME 查看模块信息 modinfo cdrom modinfo blu

4、etooth depends rfkill modinfo rfkill,Linux系统使用深入,用户态修改内核加载模块 insmod /MODEPATH 从指定路径加载模块 insmod /lib/modules/XXXX./floppy.ko rmmod MODENAME 卸载模块 rmmod floppy,Linux系统使用深入,用户态修改内核加载模块 depmod /MODEPATH 生成模块的依赖关系,Linux系统使用深入,内核模块编译时的选择项 不使用该模块 编译成内核模块 编译进内核,Linux系统使用深入,手动编译内核 mount -t iso9660 /dev/cdrom

5、/333/cdrom cd /etc/yum.repos.d/ ls nano rhel-source.repo. yum grouplist 查询是否安装Development tools相关开发环境,未安装通过yum groupinstall命令安装 wget https:/www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.63.tar.xz,Linux系统使用深入,手动编译内核 tar xf linux-2.6.32.63.tar.xz cd linux-2.6.32.63 ls fs . ls arch

6、 .,Linux系统使用深入,手动编译内核 fs中有很多模块,编译时根据自己的需要进行选择 通过make gconfig,make kconfig可以在图形界面下进行选择 通过make menuconfig可以在命令行下打开一个文本图形窗口选择,Linux系统使用深入,手动编译内核,Linux系统使用深入,手动编译内核 后边有箭头代表有子项 M代表编译成模块 *代表编译进内核,Linux系统使用深入,手动编译内核 配置选择完成后exit保存配置文件 用make命令进行编译,Linux系统使用深入,手动编译内核 系统现有内核的配置文件保存在/boot/config_XXX中 编译前也可以先复制这

7、个配置文件,用它做模板,cp /boot/config-XXXXX /333/8/linux-2.6.32.63/.config 再执行make menuconfig就可以基于目前系统的配置做修改 再执行make进行编译,Linux系统使用深入,手动编译内核 make modules_install make install 重启系统就能看到新内核的启动项,Linux系统使用深入,手动编译内核 编译内核时用远程登陆,如果登陆断开就会停止编译 yum install screen screen 可以创建多个屏幕会话 screen -ls 显示建立的屏幕列表 screen -r ID 切换到ID屏

8、幕 离开屏幕 Ctrl+a,d exit 退出当前屏幕,Linux系统使用深入,手动编译内核 编译异常中断,进行二次编译可以使用 make clean make mrproper 清理时配置文件会丢失,可以在清理前备份.config,Linux系统使用深入,手动安装操作系统 给虚拟机添加一块硬盘 fdisk -l,Linux系统使用深入,手动安装操作系统 给新硬盘创建第1个分区 fdisk /dev/sdb n 创建新分区 p 指定为主分区 1 指定第1个分区 1 指定从第1柱面开始 +500M 分配500M空间,Linux系统使用深入,手动安装操作系统 给新硬盘创建第2个分区 n 创建新分区

9、 p 指定为主分区 1 指定第1个分区 66 指定从第6柱面开始 +1000M 分配1000M空间 w 分区生效 partprobe /dev/sdb fdisk -l,Linux系统使用深入,手动安装操作系统 给新硬盘分区指定文件系统 mke2fs -j /dev/sdb1 mke2fs -j /dev/sdb2,Linux系统使用深入,手动安装操作系统 挂载分区到现有文件系统进行操作 mkdir /333/8/op/boot,sysroot -p mount /dev/sdb1 /333/8/op/boot/ mount /dev/sdb2 /333/8/op/sysroot/,Linux

10、系统使用深入,手动安装操作系统 安装grup grub-install -root-directory=/333/8/op /dev/sdb ls /333/8/op/boot,Linux系统使用深入,手动安装操作系统 拷贝内核 cp /boot/vmlinuz-2.6.32-358.e16.x86_64 /333/8/op/boot/,Linux系统使用深入,手动安装操作系统 创建initrd file /boot/initramfs-2.6.32-358.e16.x86_64.img 文件类型为gzip cp /boot/initramfs-2.6.32-358.e16.x86_64.im

11、g /333/8/ cd /333/8 mv initramfs-2.6.32-358.e16.x86_64.img initramfs-2.6.32-358.e16.x86_64.img.gz gzip -d initramfs-2.6.32-358.e16.x86_64.img.gz file initramfs-2.6.32-358.e16.x86_64.img 文件类型为cpio mkdir ramfstemp cd ramfstemp cpio -id /333/8/op/boot/initramfs.img,Linux系统使用深入,手动安装操作系统 创建initrd cp /boo

12、t/initramfs* /333/8/op/boot/ cp /boot/initrd-* /333/8/op/boot/,Linux系统使用深入,手动安装操作系统 创建grub配置文件 nano /333/8/op/boot/grub/grub.conf 也可以直接拷贝修改,去掉quiet 添加init=/bin/bash tune2fs -U 0ac3f9c1-f5222-4b7f-ace8-0410db34397d /dev/sdb2,Linux系统使用深入,手动安装操作系统 创建用户控件必要的程序和库 cd /333/8/op/sysroot mkdir lib64 bin sbin

13、 boot proc sys dev etc/rc.d home var/log usr/bin,sbin root tmp -pv cp /sbin/init sbin/ cp /bin/bash bin/ ldd /sbin/init cp * ldd /bin/bash cp *,Linux系统使用深入,手动安装操作系统 测试根目录能否正常 chroot /333/8/op/sysroot exit sync,Linux系统使用深入,手动安装操作系统 创建inittab cd /333/8/op/sysroot nano etc/inittab 创建sysinit nano etc/rc

14、.d/rc.sysinit chmod +x rc.sysinit,Linux系统使用深入,手动安装操作系统 新建虚拟机挂载硬盘,Linux系统使用深入,手动安装操作系统 复制二进制程序的时候需要拷贝库文件,如何实现自动拷贝? man bash,Linux系统使用深入,手动安装操作系统 $parameter#word FILE=a/b/c/d/e echo $FILE#*/ 从左往右找到第一个/并删除左边 echo $FILE#*/从左往右找到最后一个/并删除左边 $parameter%word FILE=a/b/c/d/e echo $FILE%/* 从右往左找到第一个/并删除右边 echo

15、 $FILE%/*从右往左找到最后一个/并删除右边,Linux系统使用深入,手动安装操作系统 脚本1 利用函数实现lib文件和bin文件的拷贝,Linux系统使用深入,Linux系统使用深入,手动安装操作系统 脚本2 在脚本1的基础上实现bin文件对应库的解析,并实现库文件的自动拷贝,Linux系统使用深入,Linux系统使用深入,手动安装操作系统 脚本3 在脚本3的基础上实现脚本可以循环运行,每次输入一个命令拷贝命令及对应的库文件到指定目录(程序通过which命令自动找到命令的目录),直到输入Q退出 read -p “PROMPT“ VARNAME,Linux系统使用深入,Linux系统使用

16、深入,Linux日志系统 syslog syslogd(rsyslogd) 记录非内核日志 klogd 记录内核日志 syslong-ng,Linux系统使用深入,Linux日志系统 查看init之前的日志信息 (klogd记录) demesg cat /var/log/dmesg,Linux系统使用深入,Linux日志系统 运行init之后的日志信息(syslogd) /var/log/messages 系统标准错误日志信息,非内核产生的引导信息,各服务程序产生的信息 信息量非常大,采用滚动存储的策略mesaages.#,按日期或者按大小 logrotate 日志滚动命令 /etc/cron.daily/logrotate 日志滚动脚本 more /etc/logrotate.conf 日志滚动配置,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号