一.service和systemctl的区别
Linux服务管理的两种方式:service 和 systemctl
service命令其实是去/etc/init.d目录下,去执行相关程序,init.d目录包含许多系统各种服务的启动和停止脚本。当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的run level确定不同的启动级别。
这种方法有两个缺点:
- 一是启动时间长。init 进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
- 二是启动脚本复杂。init 进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长
Systemd 就是为了解决上面问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。根据 Linux 惯例,字母 d 是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。使用了 Systemd,就不需要再用 init 了。Systemd 取代了 initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。
[root@xieshan system]# pwd
/usr/lib/systemd/system
systemctl可以管理/usr/lib/systemd/system这个目录下所有以.service结尾的服务,例如Network.service,nginx.service
本质上systemctl还是执行一个可执行文件来管理那个服务,只是这样比较方便,通过systemctl来管理,不需要我们去找到那个文件再执行
[root@xieshan system]# cat NetworkManager.service
ExecStart=/usr/sbin/NetworkManager --no-daemon #例如systemctl start NetworkManager就是到/usr/sbin/NetworkManager去执行那个文件
systemctl也就是创建一个链接,链接到的位置是/etc/systemd/system/multi-user.target.wants
[root@xieshan ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@xieshan ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@xieshan ~]# cd /etc/systemd/system/multi-user.target.wants
[root@xieshan multi-user.target.wants]# ls
auditd.service kdump.service rhel-configure.service tuned.service
chronyd.service mariadb.service rpcbind.service vmtoolsd.service
crond.service nfs-client.target rsyslog.service
ipmi.service postfix.service sshd.service
irqbalance.service remote-fs.target sysstat.service
systemctl disable firewalld 设置firewalld服务开机不启动 --》下一次开机的问题
systemctl enable firewalld 设置firewalld服务开机启动
systemctl start firewalld 立马启动firewalld的服务 --》本次
systemctl stop firewalld 立马关闭firewalld的服务
service sshd start ---> systemctl start sshd
旧式启动服务的方式 新式启动服务的方式
systemctl list-unit-files 查看当前哪些服务开机自启,哪些服务开机不自启,哪些服务是其他服务的依赖部分
二.修改PATH环境变量的方法
1.临时修改的方法
export PATH=变量路径:$PATH或者直接PATH=变量路径:$PATH
2.永久修改
修改 /root/.bashrc文件中的PATH变量
3.永久修改
修改/etc/profile文件,添加PATH=/sc:$PATH,在第一行添加就行。对所有的用户都生效,都知道你的程序安装的路径了文章来源:https://www.toymoban.com/news/detail-453878.html
三.编写一个脚本,实现通过一条命令可以同时实现查看IP地址、网关、DNS服务器,并且设置为在哪里输入这个命令都可以直接使用
[root@xieshan shell-test]# pwd
/lianxi/shell-test
[root@xieshan shell-test]# cat ip.sh
#!/bin/bash
#获得IP地址
ip=`ip add|awk -F' ' 'NR==9 {print $2}'`
#获得网关
route=`ip route|awk 'NR==1 {print $3}'`
#获得DNS服务器
dns=`cat /etc/resolv.conf|awk 'NR==3 {print $2}'`
echo "IP地址为:"$ip,"GATEWAY为:"$route,"DNS服务器为:"$dns
[root@xieshan shell-test]# bash ip.sh
IP地址为:192.168.2.43/24,GATEWAY为:192.168.2.1,DNS服务器为:114.114.114.114
以上这个简单功能就已经实现了,但是只能在/lianxi/shell-test这个指定位置实现,其他位置不能实现。接下来我们添加别名和修改PATH变量,达到在系统中的任意位置输入ipa这个命令便可得得到以上效果文章来源地址https://www.toymoban.com/news/detail-453878.html
[root@xieshan shell-test]# vim /root/.bashrc
[root@xieshan shell-test]# cat /root/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ipa=`bash /lianxi/shell-test/ip.sh` #给刚刚的脚本设置一个别名,输入ipa可以得到同等效果
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
PATH=/lianxi/shell-test/:/usr/local/sclilin99/sbin:/lianxi: #修改path变量,增加自己脚本所在的路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@xieshan shell-test]# ipa
IP地址为:192.168.2.43/24,GATEWAY为:192.168.2.1,DNS服务器为:114.114.114.114
[root@xieshan shell-test]# cd ~
[root@xieshan ~]# ipa #现在在任意位置都可以实现以上功能了
IP地址为:192.168.2.43/24,GATEWAY为:192.168.2.1,DNS服务器为:114.114.114.114
到了这里,关于service和systemctl的区别/修改PATH的方法/一条命令查看IP地址和网关以及DNS服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!