Linux学习笔记(十)
来源:互联网 发布:登陆千牛淘宝客服不亮 编辑:程序博客网 时间:2024/04/28 19:40
计划任务
Linux系统中有两种计划任务,一种是at单次执行计划任务,一种是循环执行的cron计划任务。
at计划任务
服务器重启
service atd restart
服务默认已经自动运行
at 指定计划任务
atq 查询计划任务
atrm 删除指定的计划任务
创建计划任务
at 时间
输入需要执行的指令,计划任务运行在后台,所以执行的命令如果默认输出到终端,则无法看到。
命令输入结束后,使用ctrl+d结束计划输入。最后会显示计划即将运行的具体时间。
atq列出所有即将执行的计划
第一列代表计划的编号
如果需要删除某项计划,使用atrm
atrm 计划编号
atrm 4
/etc/at.allow和at.deny用于指定系统中那些用户可以使用at计划任务。管理员一直可用。如果at.allow不存在则去读取at.deny
allow
为允许的用户列表,deny为禁止的用户列表
-------------------------------------
循环计划任务
crontab -e 编辑当前用户的循环计划
或是修改/etc/crontab修改系统计划任务。
编辑crontab计划时,编辑方式同vi编辑器
格式为
第一列——分钟(0-59)
第二列——小时(0-23)
第三列——日期(1-31)
第四列——月份(1-12)
第五列——星期(0-7)
第六列——执行的命令
每一行为一个计划,中间用空格分开
不需要指定的列,可以使用*代替
时间可以份段或列出(1,5,8,10)(0-4,8-12)
使用/表示间隔(0-59/2)
0 0 * * 6 shutdown -r now
每周六半夜12点 关机
30 15 1 * * tar zcf /tmp/etc.tar.gz /etc
每个月的1号,下午3点30份 执行系统配置备份
0 9-12,13-17 * * 1-5 wall “one hour”
工作日,每个小时进行提醒
crontab在etc中也同样存放用户对计划执行的控制文件
cron.allow和cron.deny,内容和使用方式同at.allow和at.deny
==================================
bash
脚本内容
第一行开头的#!表示此文件为脚本文件,紧跟的是指定用于执行此脚本的程序绝对路径。
#!/bin/bash
echo用于显示字符串到屏幕,输出信息给执行shell脚本的用户提示。
echo中引号的作用。
双引号表示显示文本字符串,可以使用环境变量。
单引号表示中间的文本内容原样输出,不进行替换
反引号表示中间的文本是终端命令,会执行命令获取结果
执行shell脚本的方式
一种为脚本文件增加x权限,使其可以直接执行
./myshell.sh
另种方式是调用shell命令去执行指定shell脚本
bash myshell.sh
----------------
系统环境变量的配置
/etc/profile用于设定每个用户的公共系统变量,并读取每个用户家目录中的.bashrc和.bash_profile文件,加载自定义变量。
定义变量
一般变量名为大写,通过=赋值
AAA="my name is root"
查看变量内容
echo $AAA
删除变量
unset AAA
在使用变量时,可以使用$AAA方式获得值,或者${AAA}获取。
两种方式区别在于$AAA容易产生混淆,最好使用${}方式取值
export命令使指定的变量可以在其他shell中读取。
shell程序中再运行shell程序,产生shell的嵌套。
声明的变量,不能直接在下层shell中获取
使用export命令可以将变量带到下层shell中。
但下层shell声明的变量以及修改不能带回上层
查看当前shell的变量使用set
查看export的环境变量使用env
练习:
写shell脚本
将env中的变量内容输出到文本~/myenv.txt
并在终端中进行提示"file export finished."
打印myenv.txt前10行
----------------------
第一行#!必须顶格
可以有tab进行缩进,一般用于if 、for 、函数等处
不在第一行使用的#,在每行开头#表示此行注释
------------------
特殊变量
$* 代表shell脚本执行时所提供的所有参数
$# 参数个数
$? 上一个退出的程序或脚本退出的状态 默认为0,错误为大于0
$$ 当前shell进程id
$! 后台执行的进程id
$0 脚本名称
$1 $2 $3 代表第一个参数,第二个参数。。。
$_ 最后一个指定的命令的选项
$(执行命令)或`执行命令`
转义字符\ 将紧跟在后面的特殊字符变成普通符号,将不具备特殊含义
使用$(())进行变量之间的数字晕眩
括号内直接使用变量名,不需要再加$
用于运算的变量的值必须为数字,如果值中有英文或符号,则运算前的转换会出现错误。
支持的运算包括+_*/
echo $((NUM1+NUM2))
==================
shell脚本中比较重要的
系统命令
脚本语法格式
文本处理(awk、sed)
Linux系统中有两种计划任务,一种是at单次执行计划任务,一种是循环执行的cron计划任务。
at计划任务
服务器重启
service atd restart
服务默认已经自动运行
at 指定计划任务
atq 查询计划任务
atrm 删除指定的计划任务
创建计划任务
at 时间
输入需要执行的指令,计划任务运行在后台,所以执行的命令如果默认输出到终端,则无法看到。
命令输入结束后,使用ctrl+d结束计划输入。最后会显示计划即将运行的具体时间。
atq列出所有即将执行的计划
第一列代表计划的编号
如果需要删除某项计划,使用atrm
atrm 计划编号
atrm 4
/etc/at.allow和at.deny用于指定系统中那些用户可以使用at计划任务。管理员一直可用。如果at.allow不存在则去读取at.deny
allow
为允许的用户列表,deny为禁止的用户列表
-------------------------------------
循环计划任务
crontab -e 编辑当前用户的循环计划
或是修改/etc/crontab修改系统计划任务。
编辑crontab计划时,编辑方式同vi编辑器
格式为
第一列——分钟(0-59)
第二列——小时(0-23)
第三列——日期(1-31)
第四列——月份(1-12)
第五列——星期(0-7)
第六列——执行的命令
每一行为一个计划,中间用空格分开
不需要指定的列,可以使用*代替
时间可以份段或列出(1,5,8,10)(0-4,8-12)
使用/表示间隔(0-59/2)
0 0 * * 6 shutdown -r now
每周六半夜12点 关机
30 15 1 * * tar zcf /tmp/etc.tar.gz /etc
每个月的1号,下午3点30份 执行系统配置备份
0 9-12,13-17 * * 1-5 wall “one hour”
工作日,每个小时进行提醒
crontab在etc中也同样存放用户对计划执行的控制文件
cron.allow和cron.deny,内容和使用方式同at.allow和at.deny
==================================
bash
脚本内容
第一行开头的#!表示此文件为脚本文件,紧跟的是指定用于执行此脚本的程序绝对路径。
#!/bin/bash
echo用于显示字符串到屏幕,输出信息给执行shell脚本的用户提示。
echo中引号的作用。
双引号表示显示文本字符串,可以使用环境变量。
单引号表示中间的文本内容原样输出,不进行替换
反引号表示中间的文本是终端命令,会执行命令获取结果
执行shell脚本的方式
一种为脚本文件增加x权限,使其可以直接执行
./myshell.sh
另种方式是调用shell命令去执行指定shell脚本
bash myshell.sh
----------------
系统环境变量的配置
/etc/profile用于设定每个用户的公共系统变量,并读取每个用户家目录中的.bashrc和.bash_profile文件,加载自定义变量。
定义变量
一般变量名为大写,通过=赋值
AAA="my name is root"
查看变量内容
echo $AAA
删除变量
unset AAA
在使用变量时,可以使用$AAA方式获得值,或者${AAA}获取。
两种方式区别在于$AAA容易产生混淆,最好使用${}方式取值
export命令使指定的变量可以在其他shell中读取。
shell程序中再运行shell程序,产生shell的嵌套。
声明的变量,不能直接在下层shell中获取
使用export命令可以将变量带到下层shell中。
但下层shell声明的变量以及修改不能带回上层
查看当前shell的变量使用set
查看export的环境变量使用env
练习:
写shell脚本
将env中的变量内容输出到文本~/myenv.txt
并在终端中进行提示"file export finished."
打印myenv.txt前10行
----------------------
第一行#!必须顶格
可以有tab进行缩进,一般用于if 、for 、函数等处
不在第一行使用的#,在每行开头#表示此行注释
------------------
特殊变量
$* 代表shell脚本执行时所提供的所有参数
$# 参数个数
$? 上一个退出的程序或脚本退出的状态 默认为0,错误为大于0
$$ 当前shell进程id
$! 后台执行的进程id
$0 脚本名称
$1 $2 $3 代表第一个参数,第二个参数。。。
$_ 最后一个指定的命令的选项
$(执行命令)或`执行命令`
转义字符\ 将紧跟在后面的特殊字符变成普通符号,将不具备特殊含义
使用$(())进行变量之间的数字晕眩
括号内直接使用变量名,不需要再加$
用于运算的变量的值必须为数字,如果值中有英文或符号,则运算前的转换会出现错误。
支持的运算包括+_*/
echo $((NUM1+NUM2))
==================
shell脚本中比较重要的
系统命令
脚本语法格式
文本处理(awk、sed)
- Linux学习笔记(十)
- Linux学习笔记(十)
- linux学习笔记(十)
- LINUX学习笔记(十)
- Linux 学习笔记 十
- Linux学习笔记(二十)
- Linux 学习笔记(十)系统日志
- Linux学习笔记(十)Shell Scripts
- Linux Shell学习笔记十
- linux学习笔记(十) linux下查找文件、字符串
- 学习笔记(十)
- 【Linux学习笔记】十、Linux软件安装
- linux下python学习笔记(十)模块2
- Linux内核学习笔记之进程创建(十)
- 【Shell】【学习笔记】Linux Shell脚本应用(十)
- Linux 学习笔记(十、搜索字符串命令)
- Linux学习笔记(二十、历史命令)
- Linux学习笔记(十)-服务器配置篇…
- 理解TCP中的三次握手
- IOS模式简介
- VIM IDE搭建(一)---ctags
- 理解IOS配置文件
- ActiveState Komodo IDE v7.1.2.73175 for Windows Incl Keygen-BEAN
- Linux学习笔记(十)
- 随笔3 - C#下的结构体(值类型)与类(引用类型)
- Java中,ResultSet 的用法
- ActiveState Perl Dev Kit Pro v9.2.0.296171 for Windows Incl Keygen-BEAN
- kernel oops之后....
- ActiveState Perl Dev Kit Pro v9.2.0.296171 for Windows x64 Incl Keygen-BEAN
- ADT在线安装连接不上的解决办法
- 使用jaxb 转换bo对象及XML文件流
- 获得项目程序运行路径方法