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)

原创粉丝点击