1.Linux启动流程
1).linux启动过程
①.进入grub界面选择相应的启动内核
②.读取kernel内核文件-/boot/vmlinuz-*
③.读取init的镜像文件-/boot/initrd-*
④.init去读取/etc/inittab
⑤.读取启动级别(id:3:initdefault)
⑥.读取/etc/rc.d/rc.sysinit,完成时钟设置,主机名的设置,分区表的挂载(/etc/fatab)
⑦.读取/etc/rc.d/rc脚本,通过该脚本吸收3级别,然后启动/etc/rc.d/rc3.d下所有以S开头的服务,不启动该目录下以K开头的服务
⑧.进入登录界面(进入登录界面前会去访问/var/lock/subsys/local文件执行文件)
2).linux系统级别
0.关机
1.单用户模式(可以破解密码,重启时按a,再按a, 输入1)
2.不支持nfs(网络文件系统)(不用)
3.字符界面(进入3级别)
4.未被使用
5.图形界面(进入5级别)
6.重启
2.rpm软件包(redhat package management)
1).光盘挂载
①.将光盘放入光驱
②.检查光驱是否家电
③.挂载光盘到/media下(mount /dev/cdrom /media)
④.如何查看是否挂载成功 df-Th
⑤.让光盘开机自动挂载到/media下(vi etc/fstab
/dev/cdrom /media iso9660 defauits 0 0)(可以在开机启动local文件中加入挂载)
2).yum工具管理rpm包
①.关盘挂载(开机启动)
②.cd/etc/yum.repos.d/ (ls后 ContOS-Base.repo为网络源 CentOS-Media.repo为光盘源)
mv CentOS-Base.repo CentOS-Base.repo.bak
③.修改光盘源vi CentOS-Media.repo
[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///media
#光盘挂载的目的地
gpgcheck=0
#去官方更新签名关闭
enabled=1
④.yum -y install mysql-server* (yum安装rpm包)
⑤.yum -y remove mysql*(yum卸载rpm包)
⑥.yum list(查看yum包)
3.用户权限
1).查看文件属性 ls -l file(ll别名)
drwxr-x--- 2 root root 4096 Jan 20 19:39 mnt
#rwx root对mnt目录具有读,写和执行的权限
#r-x root组内其他用户对mnt目录具有读和执行权限
#--- other其他所有用户对mnt目录没有任何权限
2).权限
r:读(4)
w:写(2)
x:执行(1)
目录的rwx
r:查看目录里面的文件
w:在目录里面创建和删除文件
x:切换目录
文件的rwx
r:查看文件内容
w:在文件里写内容
x:执行该文件(不是普通文件,是程序或者脚本)
3).用户
所有者:user u
所属组:grep g
其他用户:other o
所有用户:u+g+o=all a
4).增加权限
chmod o+w file 对其他用户赋予写file的权限(基本不用,已经淘汰)
5).删除权限
chmod o-w file 对其他用户删除写file的权限(基本不用,已经淘汰)
6).设置权限
setfacl -m u:user:r mnt (将mnt的读权限赋给user用户)
7).查看权限
getfacl -m mnt
8).删除mnt的user1拥有的权限
setfacl -x u:user mnt(删除user对mnt的权限)
9).删除mnt上所设置的所有权限
setfacl -b mnt
10).sudo权限
1.设置visudo
%user1 localhost=/sbin/useradd,/usr/sbin/userdel
(给user1用户添加增加用户与删除用户的权限),使用sudo权限时,普通用户在命令前要加入sudo
4.软件安装与调试
1).安装软件(apache为例)
rpm包安装或者yum依赖下载 yum -y install httpd*
2).修改配置文件
vim /etc/hpptd/conf/httpd.conf
3).启动服务
service httpd restart
4).查看进程
pstree | grep httpd
5).查看端口
netstat -tunpl | httpd
6).关闭端口
service httpd stop
7).关闭进程
pkill httpd
4.服务进程
1).实时观察进程,内存,cpu情况(top)
①.load average:0.00, 0.00, 0.00(1分钟,5分钟,15分钟内cpu平均负载)
②.Cpu(s):0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st(除去99.7%id其他之和为cpu的使用率,99.7%id为cup空闲率)
③.Mem 255412k total(总共内存), 162852k used(使用内存), 92560K free(剩余内存), 41192k buffers
2).查看计算机一分钟平均负载,5分钟平均负载,十五分钟平均负载(uptime)
11:05:07 up 46 min(服务器工作时间), 1 user(在线用户), load average: 0.00, 0.01, 0.05(平均负载)
3).查看在线用户(who)
4).查看最近一段时间,谁操作过系统的重要指令,而且有时间ip(last)
(可以查看是否有其他人入侵过自己电脑)
5).查看内存(free (m|g))(m|g代表内存单位)
Mem: 1824(总共) 114(已用) 1469(剩余)
6).查看硬盘(fdisk -l)
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 41943039 20458496 8e Linux LVM
sda1是分给boot分了1G左右保证系统正常启动(将文件放到sda1目录下将相当于放到第一分区)
sda2是除boot以外的目录的分区,放在其他目录下就相当于放在第二分区.
7).查看系统挂载表(df)
电脑会将硬盘中一部分空间作为虚拟内存,大概是实际内存的1.5-2倍,当计算机使用某些软件时内存突然升高时保证电脑不会蓝屏,这时会使用虚拟内存。但这不是长久之计,最好是尽快给内存扩容。
5.任务计划
1).一次性任务计划(at)
①.添加
at 18:20(设置计划时间)
at>init 6(设置计划内容,在这设置的是重启)
at>ctrl+d(退出编辑)
②.查看
atq
③.删除
atrm 1(1代表计划号)
2).周期性任务计划(crontab)
①.添加
crontab -e
* * * * * 分时日月周
00 03 * * * 每天3点
30 23 * * * 每天23:30
*/5 * * * * 每隔5分钟
59 23 * * 1-5 周一到周五每天23:59
59 23 * * 1,3,5 周一,周三,周五的23:59
②.查看
crontab -l
③.删除
crontab -r(删除全部,删除单条使用-e删除单调)
crontab -i(提示是否删除)
6.shell脚本
#备份网站数据的shell脚本
#需求:每周一凌晨3点对网站进行备份,备份要求如下:(myshop15)
1).首先对网站进行压缩,压缩模式:myshop15-2016.1.21.tar.gz
2).把压缩文件移动到指定目录(/mnt)
3).写备份的任务计划
先写脚本
touch backup.sh
t=`date +%Y.%m.%d`
f=index-${t}.tar.gz
d="/var/www/html/index.html"
tar czf $f $d &>/dev/null
mv $f /mnt
然后制定周期任务计划
crontab -e
30 16 * * 1 /root/backup.sh
下载备份文件
可以将文件放到var/www/html/下,可以访问apach+文件名进行下载,也可以使用迅雷将地址输入到磁力链中进行下载。