Linux基础知识汇总(3)...持续更新中

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
内核管理: {
     内核的功能 {
         进程: Task_Struct (任务结构定义)  Scheduler (任务调度)
         内存: 分配 回收 碎片整理
         I /O : 中断及处理(读写)
         文件系统: 管理文件系统内容与内存交互
         驱动程序: 硬件运行交互
     }
     内核设计流派 {
         单内核: 单一体系结构  linux 采用模块化设计(动态装卸)
         微内核: 内核子系统  win
         fork(): init 负责管理用户空间的进程   /sbin/init
     }
     linux启动初始化 {
         1. post阶段 固化在ROM中
         2. BIOS自检启动 (boot sequence)
         3. MBR(bootloader) 装机时写入第一个盘符
         4. MBR引导内核启动 initrd,initramfs
         5. init进程启动 (upstat)
             pre    /etc/init/rcS .conf
                   /etc/rc .d /rc .sysinit
             post   /etc/inittab   ==  /etc/init/rc .conf
         # System initialization is started by /etc/init/rcS.conf
         #
         # Individual runlevels are started by /etc/init/rc.conf
         #
         # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
         #
         # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
         # with configuration in /etc/sysconfig/init.
         系统初始化脚本 /etc/rc .d /rc .sysinit
             设置主机名
             打印文本欢迎信息
             激活SELinux和udev
             激活swap
             挂载 /etc/fstab 定义的本地文件系统
             检测根文件系统并对其以读写方式重新挂载
             设置系统时钟
             装载键盘映射
             根据 /etc/sysctl .conf设置内核参数
             激活RAID和LVM设备
             清理操作  
     }
     MBR,GPT {
         引导加载程序  (早期  LILO)
         GRUB 分为3个阶段   1st,1.5st,2st stage
             1st 为了引导2st
             1.5st 识别文件系统
             2st 位于boot分区中,grub引导
         grub 可选择启动的系统  可交互  可密码保护
         grub conf   /boot/grub/grub .conf
             default: 是否默认启动
             timeout: 默认启动延时
             splashimage:  /path  启动图片
             hiddenmenu: 隐藏菜单
             password: 密码保护
                 title  ""   可自定义启动标题
                     root(hd0,0)
                     kernel  /path  ro root= /path/to/device  quiet  内核boot目录
                         init= /path   路径    selinux=0
                     initrd  /cpio 归档文件
         grub损坏维护
             grub配置损坏
                 启动阶段 -e 编辑
                 kernel  /path  ro root= /path/to/device  quiet init= /bin/bash
                 进入 bash 模式修正grub.conf文件
             grub彻底损坏
                 进入救援模式
                 chroot  /mnt/sysimage
                 grub- install  --root-directory=/  /dev/sda
                 exit
     }
     内核模块 {
         单内核,支持模块动态加载与装卸   /lib/moduals/ 版本 /kernel/
         查看信息
             lspci 查看pci信息
             lsblk 查看所有磁盘信息
             lsmod 加载的驱动信息
             lscpu cpu信息
             lsusb 所有usb信息
             modinfo [模块名称] (查询模块所有信息) 关注 depends  license  filename
             modprobe [-r 模块名称]  卸载模块(自动探索)
             modprobe [模块名称]   装载模块(自动探索)
             rmmod [-f 模块名称]   强制卸载模块
             insmod [path]  装载模块指定路径
     }
     编译源码 {
         rpmsrc:
             1. 创建mockbuild用户
             2. 安装src.rpm包
             3. rpmbuild  ->  source
             4. rpmbuild -bb rpmbuild /specs/nginx .spec
         内核编译: (初次编译选择默认配置)
             1.  cp  /boot/config-2 .6.32-431.el6.x86_64  /usr/src/linux/ .config
             2.  make  menuconfig(调整编译选项   * 编译到内核中  M 模块形式存在)
             3.  make  -j 4  多线程编译  或   make  bzImage  仅编译内核
             4. 为新磁盘安装MBR
             make  clean  删除编译生成文件.o,不删除配置文件
             make  mrproper  完全删除
             make  disclean  重置代码树
             编译部分目录
                 make  /path/to/dir
             编译部分模块
                 make  -M  /path/to/modual
             编译单一模块
                 make  /path/to/modual/ *.ko -o  /path/to/output
             交叉编译
                 make  ARCH=arm
         screen 的使用
             screen   新建一个命令窗口
             Ctrl+A , D  隐藏新建窗口
             screen  [- ls ]   查看所有的窗口
             screen  [-r 编号]  恢复窗口
         内核调优:  /proc/sys    kernel  net vm fs  都是伪文件系统
             所有    echo  "value"  >  /path/to/file
             sysctl [-a] 所有内核参数
             sysctl [-w 参数名称] = value
             配置文件    /etc/sysctl .conf
         设备文件:  udev 基于系统自动探查
             tmpfs   /dev/shm   tmpfs   defaults        0 0
             mknod  -m 660  /dev/testdev  b 100 0   手动创建设备文件
     }
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sed 初步: {
     sed  是一个行编辑器,每次读取一行到内存中来进行处理并输出
     sed  [options]  'script'  file
         -n 静默模式
         -r 拓展的正则表达式
         -f 加载文件脚本
         -e 可连续执行script
         -i 可直接读写文件
         COMAND d 删除 p 打印(默认) i /a  \text 匹配的前后添加内容
             r  /path/to/file  插入文件内容 w  /path/to/file  保存到
             = 匹配内容的行号
             <a>s/<b>/<c>/[g /i ]  查找替换模式
                 a: 可定界
                 b: 查找内容
                 c: 替换内容  \1 引用替换
                 g: 全局模式
                 i: 忽略大小写
         例:
             sed  '/^\/\//d'  /etc/named .conf  删除named.conf中所有的以 // 开头的行
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
awk 初步: {
     awk  是一个报告生成器,可以将选中内容的每行每列进行格式化
     awk  [options]  'script'  file
     awk  [options]  '/pattern/{action}'  file
         -f 脚本文件
         -F 分割符
         定界模式: 默认全部文件
             /part1/ , /part2/
             /pattern/
             表达式  > >= < <= == != ~
         BEGIN /END :
             执行前/后操作
         awk  -F:  '{print $1}'  /etc/passwd
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Linux系统的安装: (自动化){
     安装方式可分为三种
         1. 光盘MBR bootloader
         2. 网络设备 基于PXE或者Cobbler
         3. 可移动设备
     1. 光盘制作过程
         a) 以当前最微系统的安装过程为蓝本  cp  ~ /anaconda-ks .cfg ~ /ks .cfg
         b) 修正 ks 参数 , 以及安装需要的所有工具
         详细参见 Red_Hat_Enterprise_Linux-5-Installation_Guide-en-US.pdf
             # Kickstart file automatically generated by anaconda.
             #version=DEVEL
             text
             install
             cdrom
             lang en_US.UTF-8
             keyboard us
             network --onboot  yes  --device eth0 --bootproto dhcp --noipv6
             rootpw  --iscrypted $6$pcYzFDFOq /kCTHmk $r /4JaQm8qav2X1OfAh5S/uTH .V0JIxFZoef5FhU10Ox53TBsH1IXeelSc5xIM /0gfWYD7OWDdGjttFOlBvy400
             firewall --service= ssh
             authconfig --enableshadow --passalgo=sha512
             selinux --enforcing
             timezone --utc America /New_York
             bootloader --location=mbr --driveorder=sda --append= "crashkernel=auto rhgb quiet"
             zerombr
             clearpart --all
             volgroup VolGroup --pesize=4096 pv.008002
             logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
             logvol swap --name=lv_swap --vgname=VolGroup --grow --size=992 --maxsize=992
             part  /boot  --fstype=ext4 --size=500
             part pv.008002 --grow --size=1
             repo --name= "CentOS"   --baseurl=cdrom:sr0 --cost=100
             %packages --nobase
             @core
             %end
         c) 制作光盘
             #!/bin/bash
             #
             [ -e  "/root/myiso/packages"  ] ||  mkdir  -p  /root/myiso/packages
             [ -e  "/root/myiso/linuxiso"  ] ||  mkdir  -p  /root/myiso/linuxiso
             cd  /root/myiso/packages
             #yum list | grep "^[^[:space:]].*@" | awk '{print "172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/Packages/"$1".rpm"}' | xargs wget -q
             cat  /root/install .log |  grep  "^Installing"  |  awk  '{print "172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/Packages/"$2".rpm"}'  |  xargs  wget
             cd  /root/myiso/linuxiso
             echo  "mirror"  | lftp  "http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/isolinux"
             cp  /root/iso .cfg  /root/myiso/
             sed  -i  "s/\(^[[:space:]]\{2\}append.*img$\)/\\1 ks=cdrom:\/iso.cfg/"  /root/myiso/linuxiso/isolinux .cfg
             cd  /root/myiso
             mkisofs  -R -J -T - v  --no-emul-boot --boot-load-size 4 --boot-info-table -V  "CentOS 6.5 x86_64 boot"  -b linuxiso /isolinux .bin -c linuxiso /boot . cat  -o  /root/centos6 .4.iso  ~ /myiso
     2. 网络设备 PXE
         基于DHCP 与 TFTP + Web服务器
         a) 建立 dhcp 引导网络中的设备   etc /dhcp/dhcpd .conf
             subnet 172.16.43.0 netmark 255.255.255.0 {
                 range 172.16.43.1 172.16.43.50;
             }
         b) 在动态为客户端分配IP后  指向 nextserver为 tftp isolinux所在路径
             /var/lib/tftpboot/ 下的pxelinux.0
             subnet 172.16.43.0 netmark 255.255.255.0 {
                 range 172.16.43.1 172.16.43.50;
                 next-server 10.0.0.100
                 filename  "pxelinux.0"
             }
         c) 安装启动 xinetd tftp-server tftp 并chkconfig服务
         d) 安装httpd 将安装树绑定到httpd的目录下   
             先挂载在绑定   mount  --bind  /media  /var/www/html/centos6
         e) 安装syslinux
         f) 拷贝如下文件
             //  boot.msg  init文件初始化文件系统  dhcp引导安装文件  引导配置文件  背景图       vesamenu.c32    内核
             //  boot.msg  initrd.img            pxelinux.0    pxelinux.cfg  splash.jpg  vesamenu.c32  vmlinuz
             # cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/
             # cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}  /var/lib/tftpboot/
             # cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
             # mkdir /var/lib/tftpboot/pxelinux.cfg
             # cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default
         g) 网络引导 pxelinux.cfg中加入 
             ks=http: //HTTP_SERVER_IP/ks .cfg
     日志??
}





     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1376168 ,如需转载请自行联系原作者



相关文章
|
网络协议 Linux 网络安全
Linux基础知识
配置Raid5(1) 添加5块8G硬盘,以root账户登录,将上述5块硬盘都只划分一个主分区, 打印分区情况。图1:首先打开虚拟机,恢复快照 图2:如图所示,已恢复快照图3:关机虚拟机,然后选择编辑此虚拟机图4:在虚拟机设置窗口,选择添加选项图5:在添加硬件向导窗口,选择硬盘选项,然后单击下一步继续图6:在添加硬件向导窗口,选择SCSI选项,然后单击下一步继续图7:在添加硬件向导窗口,选择创建新虚拟磁盘选项,然后单击下一步继续图8:在添加硬件向导窗口,设置磁盘大小为8G,然后单击下一步继续图9:根据图4、5、6、7、8的步骤再添加4块磁盘图10:开启虚拟机,以将raid5格式化为ext4文件系
Linux基础知识
|
消息中间件 存储 网络协议
对不起,学会这些 Linux 知识后,我有点飘(一)
UNIX 是一个交互式系统,用于同时处理多进程和多用户同时在线。
对不起,学会这些 Linux 知识后,我有点飘(一)
|
Linux
linux基础知识
适用于Linux基础小白
319 0
|
Linux Ubuntu Unix
Linux初级知识
Linux内核创始人 : 芬兰人李纳斯.托瓦兹Linux是一套免费使用、自由传播的类unix操作系统特点是多用户、多任务、支持多线程和多CPU的系统Linux的发行版:比较知名的有Ubuntu、Redhat、Centos、FedoraLinux应用领域:通常服务器使用LAMP(Linux+Apa...
1276 0
|
IDE Linux 开发工具