linux的开机启动
介绍RHEL开机的启动过程:
BIOS—>MBR->Kernel->init
1、电脑打开电源,进入BIOS(检测一些硬件设备)
2、检测完后进入MBR也就是Boot loader(MBR位于硬盘的第一个扇区,大小512字节)
3、载入系统kernel,在kernel里面主要是载入电脑设备的驱动程序。
4、最后启动的是init程序,init进程号为1,是所有进程的祖先。
----------------------------------------------
init会根据运行级别来进行运行以下的程序
/etc/rc.d/rc.sysinit
/etc/rc.d/rc和/etc/rc?.d/ ?表示运行级别
/etc/rc.d/rc.local
----------------------------------------------
从载入Boot loader开始,载入kernel,载入init这些程序都是由GRUB这个多重开机程序负责。
/boot/grub/grub.conf
default=0
默认操作系统选项,指预设第一组title的系统开机,如果由多个title,表示是多重启动,如果预设要使用第二组系统开机,就将此值设为1
timeout=5
指的是进入grub界面后,会有5秒钟的时间让使用者选择要启动的系统
splashimage=(hd0,0)/grub/splash.xpm.gz
开机时使用的背景图片,(hd0,0)意思(硬盘的编号,分区编号)
hiddenmenu
隐藏开机菜单
title Red Hat Enterprise Linux (2.6.32-220.el6.x86_64)
在grub开机菜单中所显示的开机的系统名称
root (hd0,0)
指定下面的档案位于那个目录,通常指/boot目录
kernel/vmlinuz-2.6.32-220.el6.x86_64 roroot=UUID=2c061161-3e10-4208-863c-b615a563c2b2 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD quietrhgb crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM
设定kernel镜像文件的存放位置
rhgbfind / -namevmlinuz-2.6.32-220.el6.x86_64
ro 表示只读。
root 是设定/在根目录的位置
rhgb:图形界面开机
quiet:在开机的过程中不显示错误的信息
initrd/initramfs-2.6.32-220.el6.x86_64.img
将指定的文件载入到内存中,这些文件里都存放一些驱动程序。
-------------------------------------------------------------------
init 程序读取/etc/inittab这个配置文件来决定系统要做那些操作
系统运行级别 从0到6共7个级别
# Default runlevel. The runlevels used by RHS are:
0 - halt (Do NOT set initdefault tothis)
1 - Single user mode
2 - Multiuser, without NFS (The sameas 3, if you do not have networking)
3 - Full multiuser mode
4 - unused
5 - X11
6 - reboot (Do NOT set initdefault tothis)
0、关机,注意:不要把系统的默认级别设置为0,否则系统不能正常启动。
1、单用户模式。用于root用户对系统进行维护。
2、多用户模式。再该模式下不能使用NFS(网络功能)
3、完全多用户模式。主机作为服务器时候使用该模式(文本模式)
4、保留
5、图形登录的多用户模式,
6、重启.不能将系统设定为6号级别,否则不能正常启动
id:5:initdefault:
2、init 会执行的初始作业系统程序
i::sysinit:/etc/rc.d/rc.sysinit 设定执行这个程序来初始化系统
3、init会根据运行级别 来执行对应目录里面的程序,如果运行级别选择5,则会把5的参数传给/etc/rc.d/rc这个程序执行,在/etc/rc.d可以看到rc0.d到rc6.d7个目录所对应的目录,来决定要启动那些服务。
4、设定组合键,按着三个组合键3秒后重启系统
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
5、定义UPS不断电系统,当电源发生故障时,要执行的那些程序
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System ShuttingDown"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; ShutdownCancelled"
6、产生6个虚拟终端
# Run gettys in standard runlevels
45 1:2345:respawn:/sbin/mingettytty1
46 2:2345:respawn:/sbin/mingettytty2
47 3:2345:respawn:/sbin/mingettytty3
48 4:2345:respawn:/sbin/mingettytty4
49 5:2345:respawn:/sbin/mingettytty5
50 6:2345:respawn:/sbin/mingettytty6
7、如果启动运行级别5,初始化工作就会启动X11(图形界面)
如何字符界面切换到图形界面startx
----------------------------------------
利用当用户模式进行密码破解
前提是:grub不加密
当系统系统的时候出现grub引导界面,按字母e,进入grub的编辑状态,按键盘的方向键选择相应的引导项,按e进入命令行编辑,在出现的命令行后添加“空格single或者1”按回车返回编辑状态,再按字母b就可以单用户模式启动,进入系统后,可通过passwd修改用户密码,达到破解密码的目的。
简单e->e-> 1->b->passwd
---------------------------------------------------
grub加密
vim /boot/grub/grub.conf
加一行:passwd=123456
10 default=0
11 timeout=0
12splashimage=(hd0,0)/grub/splash.xpm.gz
13 hiddenmenu
password=123456 添加的位置
也可以对密码进行加密
password --md5 $1$HR9Yl0$0.SEO/UXRAOR26ZQE2nRp.
密文的产生:
grub-md5-crypt
Password:
Retype password:
$1$HR9Yl0$0.SEO/UXRAOR26ZQE2nRp.
grub-md5-crypt >> grob.conf
------------------------------------------------------
进程管理
定义:
程序放在硬盘上是静态的,如果复制到内存并CPU上运行就是一个进程
一个运行的系统上有许多进程,每一个进程分配一个进程号PID
init 是所有进程的祖先,任何一个进程都是由它或者它的的子进程衍生出来的。它的进程号为1.
进程状态:
R:表示运行/可运行状态
S:可中断的睡眠状态
D:不可中断的睡眠状态
T:暂停或者跟踪状态
Z:尚未完全退出状态(僵尸进程)
X:退出状态,进程即将销毁
N:低优先级
<:高优先级
+:位于后台进程
s:包含子进程
L:有些页被锁在内存中
l:多线程
w:没有足够的内存可以分配
----------------------------------------
查看进程:
pstree:表示以树形的结构显示进程
-p: 显示进程号
例:pstree | less
q:表示退出
top:
进程号|进程用户|优先级|占用内存大小(虚拟内存)|实际内存大小|共享内存|状态占用的CPU | 占用内存|CPU时间|执行命令
h:帮助信息
P:按CPU排序
M:按内存排序
shift + > 或者shift + < 进行翻页查看
q:退出
ps: 查看进程
-a:显示控制台进程
-u:显示带用户名的控制台进程
-l:显示详细信息
-x:显示所有进程
ps -ef | ps -aux 显示所有进程
vmstat:查看系统进程、CPU、内存、IO信息
iostat:查看磁盘IO信息(需要安装sysstat*包)
sar:查看系统信息
sar -u 3 5 表示查看cpu信息,3秒采集一次,共采集5次
sar -r 3 5 表示查看内存信息,3秒采集一次,共采集5次
sar -d 3 5 表示查看磁盘信息,3秒采集一次,共采集5次
------------------------------------------
/proc:
内存虚拟目录,主要显示系统内核运行一些状态。
cat /proc/cpuiinfo
cat /proc/meminfo
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
ping的开关,设为1表示关闭
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
0表示开启
vim /etc/sysctl.conf
-----------------------------------------
优先级:
top可以看到进程优先级,范围:-20~+19:从高到底
修改优先级
renice -10 1 必须跟它的进程号
-----------------------------------------
前台后台
vim & 放在后台执行
jobs 查看后台进程
fg %1 把第一个任务拿到前台
Ctrl+z 暂停并丢入后台运行
bg %1 让在后台运行起来
kill %1 杀掉后台进程
----------------------------------------
kill
杀死进程
kill -l 查看发送进程的所有信号
kill -9: 直接杀死
kill -9 9638
kill -19: 暂停进程
kill -18: 继续进行
killall sshd: 杀掉所有sshd进程
skill -9 pts/2 表示杀掉所有2号控制台的进程
-----------------------------------------------
文本处理:
cut:显示文件中的某一列
-d:指定分割符
-c:取字符
-f:取字段
例:cut -d: -f1 /etc/passwd :只显示用户名
cut -d: -f1 /etc/passwd > a.txt :取出用户名保存
cut -d: -f1,7 /etc/passwd :只取用户名和shell
cut -c 1-12 /etc/passwd :取字符
---------------------------------------------------
grep:显示文件中匹配关键字的行
例:
grep root /etc/passwd 含有root行显示出来
grep -v root a 不含有root行显示出来
grep -i root a 不区分大小写
grep -w root a 搜索完全匹配的行
grep -n root a 行号显示出来
grep -n -A3 root /etc/passwd 显示匹配行下3行
grep -n -B3 root /etc/passwd 显示匹配行上3行
grep -n -A3 -B3 root /etc/passwd 显示匹配行的上下3行
grep -c root /etc/passwd 统计符合的列数
grep -r root /etc/ 在/etc/目录里所有文件中查找还root的行
-------------------------------------------------------
wc:统计文件中有多少行,单词,字符
-l 统计行
-w 统计单词
-c 统计字符
例:
# wc /etc/passwd 全部显示出来
#wc -l /etc/passwd 显示多少行
#wc -w /etc/passwd 显示多少单词
#wc -c /etc/passwd 显示多少字符
-----------------------------------------------------------
sort 排序
-n:数字排序
-t:指定字段的分割符
-k:按第几个字段排序
-r:降序排列
例:
sort /etc/passwd :表示从第一个字符开始的ascii码由小到大排序
sort -n -t: -k3 /etc/passwd 从小到大排序
sort -nr -t: -k3 /etc/passwd 从大到小排序
sort -f /etc/passwd 忽略大小写(系统设定不区分)
sort -u /etc/passwd 去除重复行显示
--------------------------------------------------------
uniq:去除文件中相邻的重复行
-c:若有连续重复的行,统计出现的次数(之前最好拍好序)
-u:去掉有连续重复的行(连续重复的行不显示)
-d:只显示有连续重复的行
-i:忽略大小写并去除文件中相邻的重复行,但显示不重复的行
例:
uniq -c a
uniq -u a
uniq -d a
uniq -i a
------------------------------------------------------------
tr 字符替换
格式:tr 原子符 新字符
例:head -n 5/etc/passwd | tr 'a-z' 'A-Z' 把前五行以大写的方式显示出来。
例:对uplooking加密
通过tr进行简单的字符加密
# echo uplooking | tr'abcdefghijklmnopqrstuvwxyz' 'defghijklmnopqrstuvwxyzabc'
xsorrnlqj
# echo xsorrnlqj | tr'defghijklmnopqrstuvwxyzabc' 'abcdefghijklmnopqrstuvwxyz'
uplooking
--------------------------------------------------------
练习:统计/etc/passwd 有几种shell?
cut -d: -f7 /etc/passwd 取出所有的shell字段
cut -d: -f7 /etc/passwd |uniq 去除重复的行
cut -d: -f7 /etc/passwd |sort|uniq 排序后去除重复的行
cut -d: -f7 /etc/passwd | sort | uniq| wc -l 统计出有多少行。
--------------------------------------------------------------------
linux启动、进程、文本处理
最新推荐文章于 2024-06-30 09:40:26 发布