runlevel命令查看运行级别:N 3,N代表上一个级别,3代表当前级别,N是None的意思,表示没有上一个运行级别
修改当前运行级别:init 5
系统默认运行级别:一开机就进入这个级别,配置文件在 /etc/inittab
/etc/rc.d/rc.local 文件:每次系统启动时会自动执行里面的内容,软链接 /etc/rc.local
grub配置文件:源文件 /boot/grub/grub.conf,软链接 /etc/grub.conf,/boot/grub/menu.lst
grub加密:grub-md5-crypt 命令用于生成密码
grub菜单加密,password --md5 生成的密码,必须写在grub配置文件timeout和splashimage字段之间
进入单用户模式:主要用于破解修改密码
开机时按任意键进入grub菜单,按e,选择内核那一行,按e编辑,添加“ 1”空格和一个数字1,1代表单用户模式,回车确认,再按b启动系统就能进入单用户模式
进入光盘救援模式:
BIOS设置光盘启动(+号改变启动顺序),chroot /mnt/sysimage 命令改变根目录,由光盘的模拟根目录切换为硬盘中真正的系统根目录
服务分类:
RPM包默认安装的服务:又分为独立的服务 和 基于xinetd的服务
源码包安装的服务
chkconfig --list [服务名]:列出RPM默认安装服务的自启动状态,查出来有0-6的表示是 独立的服务
独立服务管理:
启动管理:1、使用 /etc/init.d/ 目录中的启动脚本启动服务 ,/etc/init.d/httpd start 【推荐】
2、使用 service 命令启动独立的服务,service 独立服务名 start | stop | restart ,service httpd restart
自启动管理:1、chkconfig [--level 运行级别] [独立服务名] [on | off] ,chkconfig --level 2345 httpd on ,默认就是 --level 2345 ,chkconfig httpd on 也行
2、修改 /etc/rc.local 文件,添加标准启动命令,即可设置服务自启动 【推荐】
3、ntsysv [--level 运行级别] ,不加运行级别默认为3
基于xinetd的服务管理:
启动管理:修改 /etc/xinetd.d/基于xinetd的服务名称 文件,vi /etc/xinetd.d/telnet ,disable改为no,然后重启xinetd服务(同独立服务的启动方式)
自启动管理:1、chkconfig 服务名 on | off ,基于xinetd的服务,没有自己的运行级别,依靠xinetd服务的运行级别,不可指定 --level 选项
2、使用ntsysv命令
源码包安装的服务:
启动管理:安装目录启动,例如apache服务,/usr/local/apache2/bin/apachectl start | stop
自启动管理:修改 /etc/rc.d/rc.local 文件,添加标准启动命令,即可设置服务自启动
让源码包服务被服务管理命令识别:
service 命令其实就是在 /etc/init.d/ 目录中查找是否有服务的启动脚本
让源码包的apache服务能被service命令管理启动,只需把启动脚本链接到 /etc/init.d/ 目录下
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/
让源码包的apache服务能被chkconfig命令管理自启动
1、不仅需要使他能被service命令管理(同上)
2、还要修改服务的启动脚本,在脚本开头添加
# chkconfig:运行级别 启动顺序 关闭顺序
# description:说明,内容随意
3、然后使用命令 chkconfig --add 服务名 把服务加入到chkconfig命令的管理,--del 删除
让ntsysv命令可以管理源码包apache
同chkconfig的管理机制,能被chkconfig管理就能被ntsysv管理
ps查看系统中所有进程:是静态显示的
ps aux 命令:不可以加 - ,会报错,遵守的是BSD操作系统格式
ps -le 命令:使用Linux标准命令格式
top查看系统进程:动态显示的,可设置更新间隔
pstree查看进程树:-p显示进程的PID,-u显示进程的所属用户
kill命令:kill [信号] PID,常用1信号让进程重启,9信号强制终止进程 kill -9 2246
killall命令:killall [信号] [选项] 进程名,-i 交互式,-I(大写i)忽略进程名大小写
pkill命令:pkill [信号] [选项] 进程名,-t 终端号:按照终端号踢出用户
当前登录的终端,只能管理当前终端的工作,不能管理其他终端的工作。把命令放入后台,只能在当前登录终端执行,退出当前登录终端后,命令就会停止
把命令放入后台:
1、“命令 &”,这种方法放入后台的命令,在后台是执行状态。但是注意,放入后台执行的命令不能与前台有交互,否则放入后台只能暂停,不能执行。
2、ctrl+z 快捷键,这种方法放入后台的命令,在后台都是暂停状态
后台命令管理:
查看后台的工作:jobs,-l(小写L)显示工作的PID
将后台暂停的工作恢复到前台执行:fg %工作号 %可以省略
将后台暂停的工作恢复到后台执行:bg %工作号 %可以省略
后台命令脱离登录终端运行:
1、写入 /etc/rc.local 文件
2、定时任务
3、“nohup 命令 &”,举例 nohup tar -zcf etc.tar.gz /etc/
系统资源查看:
vmstat命令监控系统资源:vmstat 刷新延时 刷新次数
dmesg显示开机时内核检测信息
free命令查看内存使用状态
查看cpu信息:cpu主要信息保存在 /proc/cpuinfo
查看本机登录用户信息:
w 命令,第一行与top的第一行一样
who 命令,比w命令更加简洁
uptime命令:显示系统的启动时间和平均负载,就是top命令的第一行
查看系统与内核相关信息:uname [选项] ,-a 查看系统所有相关信息,-r 查看内核版本, -s 查看内核名称
判断当前系统的位数:”file 系统命令“,例如 file /bin/ls,可以判断位数
查询Linux系统的发行版本,用 ”lsb_release -a“ 命令查看
系统定时任务:定时任务和脚本中,都写绝对路径
at一次性定时任务:at命令执行需要atd服务的支持,atd是独立服务需要启动
系统默认没有 /etc/at.allow 白名单文件,只有 /etc/at.deny 黑名单文件,可以编辑这两个文件设置哪个用户允许使用at命令(对root不生效)。默认按 at.deny 文件进行访问控制,如果有 at.allow 文件,此文件优先级更高,则按照此文件进行访问控制,at.deny 不生效。如果两个文件都不存在,则只有root用户可以使用at命令。
at [选项] 时间,ctrl+d保存at任务
atq:查询当前服务器上的at工作
at -c 工作号:查询指定at任务的具体内容
atrm 工作号:删除指定的at任务
crontab循环定时任务:crontab命令执行需要crond服务的支持,crond是独立服务需要启动
1、crontab [选项]:-e 编辑定时任务,-l 查询定时任务,-r 删除当前用户所有的crontab任务,-u 用户名:修改或删除其他用户的crontab任务(只有root可用)
crontab命令也有 /etc/cron.allow 和 /etc/cron.deny ,原则与at相同
crontab -e 命令定义定时任务时,默认执行身份是当前用户
2、修改 /etc/crontab 配置文件来定义定时任务:可以指定定时任务的执行身份,此文件只有root才可以修改
3、把定时执行的脚本放到 /etc/cron.{hourly,daily,weekly,monthly} 目录中,/usr/bin/run-parts 命令会让目录中所有可执行文件依次执行(/etc/crontab中也可以用run-parts来执行某个目录中的所有脚本)
时间格式:
* * * * *,代表 一小时中的第几【分钟】 一天中的第几个【小时】 一个月中的第几【天】 一年中的第几个【月】 一周中的【星期】几
* 代表任何时间 , 逗号用于分隔不连续的时间 - 代表连续的时间范围 */n 代表每隔多久执行一次
星期几和第几天不要同时出现,他们都是以天为单位,若同时出现则是 或 的关系
anacron会使用一天,一周,一月作为检测周期,检测 /var/spool/anacron 目录中的cron.{daily,weekly,monthly} 文件用来判断是否有定时任务错过而没有执行
Centos5之后的版本中,anacron不再是单独的服务,而变成了系统命令,/etc/cron.{daily,weekly,monthly} 目录下的脚本,是被anacron调用的,详细调用过程参考 /etc/anacrontab 配置文件,注意不接管cron.hourly
日志文件:
/var/log/wtmp:二进制文件,用last命令查看,系统所有登录过的用户信息
/var/log/lastlog:二进制文件,用lastlog命令查看,所有用户最后一次登录时间
/var/log/btmp:二进制文件,用lastb命令查看,错误登录信息日志
/var/run/utmp:二进制文件,用w,who,users等命令查看,记录当前已登录用户的信息
/var/log/message:记录系统重要信息
/var/log/secure:记录验证和授权方面的信息
日志服务rsyslogd:
RPM方式安装的服务默认会把日志记录在 /var/log/ 下,源码安装的服务日志在源码包指定的目录中。但是这些日志不是由 rsyslogd 服务来记录和管理的,而是各个服务使用自己的日志管理文档来记录自身日志。
rsyslogd服务的配置文件在 /etc/rsyslog.conf :
格式:服务名称 连接符号 日志等级 日志记录位置
连接符号:“ . ”代表只要比后面等级高的日志都记录下来,“ .= ”代表只记录等于此日志等级的,“ .! ”代表记录不等于此日志等级的
日志等级:“ * ” 代表所有日志等级,none 代表该服务的所有日志都不记录
日志位置:可以写用户名,就会吧日志发送给某个用户,这个用户需要在线。“ * ”代表发送给所有用户
日志轮替:切割就是将一个大的日志文件拆分成多个小文件,例如每天,每周等进行保存。轮替就是周期性地处理日志文件,包括切割、重命名、压缩、删除等一系列操作。例如每周轮替alert.log日志,轮替时上周的日志文件改名为alert.log-20251129,创建新的日志文件alert.log,之后的新日志都保存到alert.log中,以此类推,rotate 2代表会保留两次轮替的旧日志文件
logrotate轮替配置文件:/etc/logrotate.conf
weekly:每周对日志文件进行一次轮替
rotate 2:保留2个日志文件
通过RPM方式安装的服务 日志默认就可以轮替
被rsyslog管理的服务日志,设置轮替加入logrotate后,要重启rsyslog服务。如果不是被rsyslog管理的服务日志,加入轮替后,则还需要重启这个服务。否则你会发现虽然新日志建立了,但是数据还是写入了旧的日志当中。
加入轮替方法:
1、直接在 /etc/logrotate.conf 中写入日志的轮替策略
2、在 /etc/logrotate.d/ 中新建该日志的轮替文件,在该文件中写入轮替策略
例如自己在rsyslog配置文件中创建的日志加入到轮替,logrotate配置文件内容这样写:
/var/log/alert.log {
weekly
rotate 5
create
shaderscripts
postrotate
/bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2> /dev/null) &> /dev/null
endscript
}