“初识Linux:任务调度”的版本间差异

来自Wikioe
跳到导航 跳到搜索
第181行: 第181行:
|}
|}
* 范围不正确时,任务不执行
* 范围不正确时,任务不执行
== vi编辑器 ==
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。<br/>
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。<br/>
二者分别定位于文本编辑器和程序开发工具。
# “vi Hello”:使用vi打开Hello文件
# 按下“i”:进入插入模式
# 按下“esc”:进入命令模式
# 输入“''':wq'''”:保存并退出
#: “''':q!'''”:推出不保存
=== 工作模式 ===
[[File:Linux编辑器vi-vim工作模式.png|600px]]
=== 键盘图 ===
[[File:Linux编辑器vi-vim键盘图.gif|1200px]]


== 命令 ==
== 命令 ==

2020年10月15日 (四) 15:42的版本


网络

服务

已安装服务的启停操作:

# 查看xxx服务状态
service xxx status
# 启动xxx服务
service xxx start
# 停止xxx服务
service xxx stop
# 重启xxx服务
service xxx restart
  • “service xxx start”等效于
    1. /etc/init.d/xxx start
    2. /etc/rd.d/init.d/xxx start
    3. systemctl start xxx.service

service 与 systemctl

service

service命令其实是去/etc/init.d目录下,去执行相关程序。长期以来 Linux 的启动一直采用init进程,这种方法有两个缺点:

  1. 启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
  2. 启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

systemctl

systemctl是 Systemd 的主命令,用于管理系统。
Systemd 是 Linux 系统工具,用来启动守护进程(Systemd 中的 d,即守护进程 daemon),能够快速并发地启动进程。
Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。(参见阮一峰《Systemd 入门教程:命令篇》

  • 使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。
  • systemctl 兼容了 service、chkconfig命令,如:
    # 管理服务的启动、重启、停止、重载、查看
    service foo start		systemctl start foo.service			启动服务
    service foo restart		systemctl restart foo.service		重启服务
    service foo stop		systemctl stop foo.service			停止服务
    service foo reload		systemctl reload foo.service		重新加载配置文件(不终止服务)
    service foo status		systemctl status foo.service		查看服务状态
    
    # 设置服务开机启动、不启动、查看各级别下服务启动状态
    chkconfig foo on		systemctl enable foo.service		开机自动启动
    chkconfig foo off		systemctl disable foo.service		开机不自动启动
    chkconfig foo			systemctl is-enabled foo.service	查看特定服务是否为开机自动启动
    chkconfig --list		systemctl list-unit-files --type=service	查看各个级别下服务的启动与禁用情况
    

防火墙

Linux中有两种防火墙软件,ConterOS7.0以上使用的是firewall,ConterOS7.0以下使用的是iptables:

firewall

操作 命令
开启防火墙: systemctl start firewalld
关闭防火墙: systemctl stop firewalld
查看防火墙状态: systemctl status firewalld
设置开机启动: systemctl enable firewalld
禁用开机启动: systemctl disable firewalld
重启防火墙: firewall-cmd --reload
开放端口(修改后需要重启防火墙方可生效): firewall-cmd --zone=public --add-port=8080/tcp --permanent
查看开放的端口: firewall-cmd --list-ports
关闭端口: firewall-cmd --zone=public --remove-port=8080/tcp --permanent

iptables

安装

CenterOS7.0以上版本并没有预装Iptables,需要自行装。

  • 安装前先关闭firewall防火墙
操作 命令
安装iptables yum install iptables
安装iptables-services yum install iptables-services
使用
操作 命令
开启防火墙: systemctl start iptables.service

Iptables开启.png

关闭防火墙: systemctl stop iptables.service
查看防火墙状态: systemctl status iptables.service
设置开机启动: systemctl enable iptables.service
禁用开机启动: systemctl disable iptables.service
查看filter表的几条链规则(INPUT链可以看出开放了哪些端口): iptables -L -n

Iptables查看filter表的链规.png

查看NAT表的链规则: iptables -t nat -L -n

Iptables查看NAT表的链规则.png

清除防火墙所有规则:
  • iptables -F
  • iptables -X
  • iptables -Z
给INPUT链添加规则(开放8080端口): iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

Iptables给INPUT链添加规则.png

查找规则所在行号: iptables -L INPUT --line-numbers -n

Iptables查找规则所在行号.png

根据行号删除过滤规则(关闭8080端口): iptables -D INPUT 1

Iptables根据行号删除过滤规则.png

进程

任务调度

任务调度:系统在某个特定时间,执行特定的命令或程序。

添加任务

  1. “crontab -e”:添加任务
  2. “0 2 * * * date >> /home/mydate”:在crontab中添加该命令,每天临晨两点把时间写到/home/mydate中
    • “0 2 * * *”为时间规则

调度多个任务

方法一:直接使用 crontab -e 添加任务
方法二:

  1. 把所有的任务写入一个可执行文件中(.sh文件,shell代码),并为文件设置可执行权限
  2. 再将可执行文件路径使用 corntab -e 添加到任务调度,如“* * * * * /root/mytask.sh”

终止任务

  1. crontab -l:列出当前所有调度任务
  2. crontab -r:终止调度任务

时间规则

时间规则“* * * * *”,分别表示:

“* * * * *”
说明 范围
分钟 每小时的第几分钟 0-59
小时 每天的第几小时 0-23
日期 每月的第几天 1-31
月份 每年的第几月 1-12
星期 每周的星期几 0-6
  • 范围不正确时,任务不执行

命令

  • “tab”键:双击命令提示,单机补全(当前目录下有的)文件名称。
命令 说明
start X 进入图形界面
shutdown -h now 立即关机
  1. poweroff 关机(poweroff -f 强制关机)
shutdown -r now 立即重启
logout 注销
man 命令 显示命令的用法
history 显示命令历史记录
  1. history 5:显示最近使用的5个历史命令

执行历史命令:

  1. !5:执行历史编号为5的命令
  2. !ls:执行最后一次以ls开头的命令
env 显示当前系统的环境变量