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.rpm
rpm -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:正在执行的命令或进程名)