Linux常用命令(博客地图):https://blog.csdn.net/sysukehan/article/details/105804511
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。
1)RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰;
2)RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装;
3)RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件;
4)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 -Uvh package_name,如果后面接的软件没有安装过,则系统直接安装;如果安装过,则系统自动更新至新版。
更新:rpm -Fvh package_name,如果后面接的软件没有安装过,则软件不会被安装;如果安装过,则系统自动更新至新版。
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文件内的信息,而非已安装的软件信息。
rpm -e package_name
如果该package被其他package依赖,会有报错。
如果RPM文件经常安装/删除/升级,某些操作可能会导致RPM数据库/var/lib/rpm/内的文件损坏,可以使用—rebuilddb这个参数来重建数据库:
rpm –rebuilddb
crontab [-u username] [-l|-e|-r]
参数:
-u:只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;
-e:编辑crontab的工作内容;
-l:查询crontab的工作内容;
-r:删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑;
代表意义 |
分钟 |
小时 |
日期 |
月份 |
周 |
命令 |
数字范围 |
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 |
/etc/cron.allow:将可以使用crontab的账号写入其中,若不在这个文件内的用户则不可使用crontab。
/etc/cron.deny:将不可以使用crontab的账号写入其中,若未记录到这个文件当中的用户,就可以使用crontab。
/etc/cron.allow优先级高于/etc/cron.deny,建议只使用一个文件做限制,一个账号一行。
chkconfig –list [服务名称]
chkconfig [–level [0123456]] [服务名称] [on|off]
参数:
--list:仅将目前的各项服务状态栏显示出来。
--level:设置某个服务在该level下启动(on)或关闭(off)。
设置自己的系统服务:chkconfig [--add|--del] [服务名称]
参数:
--add:增加一个服务名称给chkconfig来管理,该服务名称必须在/etc/init.d/内。
--del:删除一个给chkconfig管理的服务。
添加服务时,服务启动文件要放到/etc/init.d目录下;删除服务时,/etc/init.d目录下对应的服务启动文件要删除。
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