Linux常用命令(软件包安装、定时任务和服务监控)

Linux常用命令(博客地图):https://blog.csdn.net/sysukehan/article/details/105804511

 

1、Linux界的两大主流安装软件方式:RPM与DPKG

dpkg:这个机制最早是由Debian Linux社区所开发出来的,通过dpkg的机制,Debian提供的软件就能够简单安装起来,同时还能提供安装后的软件信息。只要是派生于Debian的其他LInux distribution大多使用dpkg这个机制来管理软件,包括B2D,Ubuntu等。

RPM:这个机制最早是由Red Hat这家公司开发出来的,后来实在很好用,因此很多distributions就使用这个机制来作为软件安装的管理方式,包括Fedora,CentOS,SuSE等知名的开发商都是用它。

distribution代表

软件管理机制

使用命令

在线升级机制(命令)

Red Hat/Fedora

RPM

rpm,rpmbuild

YUM(yum)

Debian/Ubuntu

DPKG

dpkg

APT(apt-get)

以CentOS为例,使用的软件管理机制为RPM机制,而用来在线升级的方式则为yum。

 

2、RPM

RPM的优点

1)RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰;

2)RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装;

3)RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件;

4)RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证;


安装RPM软件包

rpm -ivh package_name

参数:

-i:install的意思;

-v:查看更详细的安装信息画面;

-h:以安装信息栏显示安装进度;

安装多个rpm包:rpm -ivh a.rpm b.rpm

安装当前目录下所有rpm包:rpm -ivh *.rpm

安装网络上的指定rpm包:rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/git-1.8.3.1-20.el7.x86_64.rpm

 

升级与更新RPM软件包

升级:rpm -Uvh package_name,如果后面接的软件没有安装过,则系统直接安装;如果安装过,则系统自动更新至新版。

更新:rpm -Fvh package_name,如果后面接的软件没有安装过,则软件不会被安装;如果安装过,则系统自动更新至新版。

 

查询RPM软件包

rpm -qa

rpm -q[licdR]

rpm -qf 存在于系统上面的某个文件名

rpm -qp[licdR]

参数:

查询已安装软件的信息:

-q:仅查询,后面接的软件名称是否有安装;

-qa:列出所有的已经安装在本机Linux系统上面的所有软件名称;

-qi:列出该软件的详细信息(information),包含开发商、版本与说明等;

-ql:列出该软件所有的文件与目录所在完整文件名(list);

-qc:列出该软件的所有设置文件(找出/etc/下面的文件名而已);

-qd: 列出该软件的所有帮助文件(找出与man有关的文件而已);

-qR:列出与该软件有关的依赖软件所含的文件(Required的意思);

-qf:由后面接的文件名称找出该文件属于哪一个已安装的软件;

查询某个RPM文件内含有的信息:

-qp[licdR]:注意-qp后面接的所有参数与上面的说明一致,但用途仅在于找出某个RPM文件内的信息,而非已安装的软件信息。

Linux常用命令(软件包安装、定时任务和服务监控)_第1张图片

 

卸载RPM软件包

rpm -e package_name

如果该package被其他package依赖,会有报错。

如果RPM文件经常安装/删除/升级,某些操作可能会导致RPM数据库/var/lib/rpm/内的文件损坏,可以使用—rebuilddb这个参数来重建数据库:

rpm –rebuilddb

 

3、查看定时任务:crontab

crontab [-u username] [-l|-e|-r]

参数:

-u:只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;

-e:编辑crontab的工作内容;

-l:查询crontab的工作内容;

-r:删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑;


编辑定时任务界面:

Linux常用命令(软件包安装、定时任务和服务监控)_第2张图片
 

代表意义

分钟

小时

日期

月份

命令

数字范围

0~59

0~23

1~31

1~12

0~7

command

 

特殊字符

代表意义

*(星号)

代表任何时刻都接受的意思。

如0 12 * * * ls -al /表示每天12点执行ls -al /

,(逗号)

代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command

时间参数还是有五列,不过第二列是3,6,代表3与6都适用。

-(减号)

代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command

/n(斜线)

n代表数字,每隔n单位间隔的意思,例如每5分钟执行一次,则写成:

*/5 * * * * command,也可以写成0-59/5 * * * * command

 

Linux常用命令(软件包安装、定时任务和服务监控)_第3张图片
限制使用crontab的用户账号:

/etc/cron.allow:将可以使用crontab的账号写入其中,若不在这个文件内的用户则不可使用crontab。

/etc/cron.deny:将不可以使用crontab的账号写入其中,若未记录到这个文件当中的用户,就可以使用crontab。

/etc/cron.allow优先级高于/etc/cron.deny,建议只使用一个文件做限制,一个账号一行。


4、管理系统服务默认开机启动与否:chkconfig

chkconfig –list [服务名称]

chkconfig [–level [0123456]] [服务名称] [on|off]

参数:

--list:仅将目前的各项服务状态栏显示出来。

--level:设置某个服务在该level下启动(on)或关闭(off)。

Linux常用命令(软件包安装、定时任务和服务监控)_第4张图片
启动/关闭ssh服务开机自启动:

Linux常用命令(软件包安装、定时任务和服务监控)_第5张图片
设置自己的系统服务:chkconfig [--add|--del] [服务名称]

参数:
--add:增加一个服务名称给chkconfig来管理,该服务名称必须在/etc/init.d/内。

--del:删除一个给chkconfig管理的服务。

添加服务时,服务启动文件要放到/etc/init.d目录下;删除服务时,/etc/init.d目录下对应的服务启动文件要删除。

 

5、systemctl命令

systemctl命令是系统服务管理器指令,它实际上将service和chkconfig这两个命令组合到了一起。

任务

旧指令

新指令

使某服务自动启动

chkconfig --level 3 httpd on

systemctl enable httpd.service

使某服务不自动启动

chkconfig --level 3 httpd off

systemctl disable httpd.service

检查服务状态

service httpd status

systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)

显示所有已启动的服务

chkconfig --list

systemctl list-units --type=service

启动某服务

service httpd start

systemctl start httpd.service

停止某服务

service httpd stop

systemctl stop httpd.service

重启某服务

service httpd restart

systemctl restart httpd.service


参考资料

1、《鸟哥的Linux私房菜基础学习篇(第三版)》

2、https://man.linuxde.net/systemctl

 

 

你可能感兴趣的:(Linux)