RPM管理
RPM(RedHat Package Manager)是一种用于互联网下载包的打包及安装工具,类似于Windows中的setup
它会生成具有.rpm扩展名的文件,它包含在某些Linux分发版中,如OpenLinux、TurboLinux、S.u.S.E等等
这一文件格式名称虽然打了RedHat的标志,但其原始设计理念是开放式的,目前可以算是公认的行业标准了
下面是RPM的一些常用命令
rpm -qa:查询已安装的所有rpm软件包rpm -q mysql:查询是否已安装mysql软件包rpm -qi mysql:查询mysql软件包的信息rpm -ql mysql:查询mysql软件包中的文件rpm -qf 文件全路径名:查询文件所属的软件包rpm -qp 包文件名:查询包的信息对这个软件包的介绍rpm -U RPM包全路径名称:升级软件包,比如rpm -U cvs-1.11.2-10.i386.rpmrpm -i RPM包全路径名称:安装软件包到当前系统(i=install安装)rpm -ivh RPM包全路径名称:安装过程中显示提示信息(v=verbose提示,h=hash进度条)rpm -e RPM包的名称:卸载RPM包,比如rpm -e jdk即可卸载JDK
说明:如果其它软件包依赖于所要卸载的软件包,那么卸载时就会产生错误信息
比如rpm -e foo会提示removing these packages would break dependencies:foo is needed by bar-1.0-1
这时我们可以使用--nodeps命令行选项,来让RPM忽略这个错误,并继续卸载,但显然这并不是一个好主意
任务调度
即系统在某个时间执行的特定的命令或程序,系统中的/etc/crontab文件指的就是任务调度文件
通过crontab -l命令可以列出当前的任务调度,crontab -r可以终止任务,而设置任务的具体用法如下
- 通过命令
crontab -e进入insert模式,然后输入05 * * * * date >> /opt/tomcat8.0.21/logs/mydate - 保存并退出:
:x,若看到控制台提示crontab: installing new crontab则表示定时调度任务分配完毕,等着执行就行了
上面说的是单任务
要是多任务,要么crontab -e时直接换行写第二个任务
要么先把任务写到一个shell脚本里面,步骤如下
vim mytask.sh- 输入两行任务:
date >> /home/mydate22以及cp ../../backup/mpp.zip ./backup chmod 744 mytask.sh(默认的mytask.sh是没有x权限的,所以这里为该文件设定可执行的权限)crontab -e- 进入insert模式后,输入
0 2 * * * /opt/tomcat8.0.21/logs/mytask.sh命令即可
运行级别
可以使用runlevel命令查询系统的运行级别
而决定着系统的默认运行级别的配置为:/etc/inittab文件中的id:5:initdefault:里面的数字
常见的运行级别有以下几个
- 0:关机
- 1:单用户
- 2:多用户状态没有网络服务
- 3:多用户状态有网络服务(常用于公司服务器)
- 4:系统未使用保留给用户
- 5:图形界面(若系统设置为5号级别,则每次开机都会进入图形界面)
- 6:系统重启
若不慎将运行级别设为6,这里以RedHat为例,描述一下解决办法
当Linux重启进入GRUB引导界面时,即出现系统选择界面读秒时,按下键盘上的e键
然后选中第二行(即kernel /vmlinuz-2.4.20-8 ro root=LABEL=/),再按下键盘的e键
再输入1,此时显示的应为grub edit> kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 1
输入1之后,回车,会返回GRUB引导界面,再按下b键,此时会重新启动并直接进入单用户模式
切记:输入的1,与其前面的LABEL=/之间有一个空格
这里1代表单用户级别,若输入其它级别的数字,是没有意义的,Linux仍会不断重启
因为Linux在启动时,会读取/etc/inittab文件,并按照该文件指定的级别启动Linux
而只有单用户级别,在启动时才不会读取/etc/inittab文件
然后在单用户模式中修改/etc/inittab文件文件,而且该模式下还可以修改用户密码
这有点像是Linux的漏洞,别人辛辛苦苦的工作结果,我们却可以在该模式下改掉它
启动过程
- BIOS自检(无论哪个操作系统都会执行该步骤)
- 启动
GRUB/LILO - 运行Linux内核并检测硬件
- 运行系统的第一个进程
init init进程读取系统引导配置文件/ect/inittab中的信息进行初始化/etc/rc.d/rc.sysinit:系统初始化脚本(这是一个很强大的文件,涉及到Linux内核,如果能读懂这个文件,将会很牛逼)/ect/rc.d/rcX.d/[KS]* - 根据运行级别X配置服务:终止以’K’开头的服务,启动以’S’开头的服务/etc/rc.d/rc.local:执行本地特殊配置- 其它特殊服务
进程和线程
进程就是正在执行的程序,每一个进程都会被分配一个ID号
线程属于轻量级的进程,进程有独立的地址空间,线程则没有,Linux中叫fork,Windows中叫Thread
并且线程不能独立存在,它是由进程创建的
以下是几个进程查看的命令
kill -9 PID:强制干掉指定PID的进程ps -a:显示当前终端的所有进程信息ps -u:以用户的格式显示进程信息ps -x:显示后台进程运行的参数(PID:进程识别号,TTY:终端机号,TIME:此进程所耗CPU的时间,COMMAND:正在执行的命令或进程名)