shell编程(一)

           《Linux系统命令及Shell脚本实践指南》

作者的运维项目:
虚拟化平台以及自动化运维

作者的运维习惯:
在日常繁忙的工作基础上,记录一些知识要点,并坚持整理成册

现在的运维:
“降低成本,提升用户体验”为目标
(1) “降低成本”
即要求运维技能的提升
保证系统稳定、高可用、可拓展性强
(2)“提升用户体验”
一是稳定,不能频繁宕机
二是要快,天下武功,唯快不破;
三是界面友好,不能半天找不到操作按

Linux中的关键技术目录:
系统讲解了Linux系统结构、
主流服务器搭建及故障排除、
用户权限管理、
磁盘存储管理、
文件系统管理、
内存管理、
进程管理、
Shell编程
实用性极强的脚本案例

相关IT主题:
Linux系统管理、高性能计算、高可用集群、云计算

截取章节-例行任务处理

    (1)如果任务是周期性的执行              其命令为cron
    (2)如果只是在某一个特定的时间执行一次    其命令为at

任务示例:

<at命令说明>:

使用命令ctrl +D表示输入结束
atq命令 用于查看当前使用at命令的任务调度列表
atrm命令 删除已经进入任务队列的任务

[root@aliyun ~]# at now + 30 minutes
at> cat /etc/passwd now
at>
job 3 at Sun Sep 27 10:50:00 2020

[root@aliyun ~]# atq
3 Sun Sep 27 10:50:00 2020 a root
任务编号 执行时间

<cron 命令说明>

启用cron命令:
[root@aliyun ~]# systemctl start crond

crontab管理计划任务:
设置自己的计划任务,并使用-e参数来编辑任务
crontab -e

crontab的基本格式:
分钟 小时 日期 月份 星期几

  •         *                  *                  *                  *           command  
    

1~59 0~23 1~31 1~12 0~6
在这里插入图片描述

用户相关命令总结

在这里插入图片描述

shell

摘要说明:
Bash shell 有两种工作模式:
①互动模式 ②脚本模式
模式说明:
①互动模式: 指的是由系统管理人员直接通过键盘执行命令
②脚本模式: 将所要执行的命令写在该文件中,由Bash Shell读取并执行。

学习Shell最重要的原因—将一切工作都自动化处理
详细解释:
一定情况下:为此必须加入更多的判断功能;
重复执行的任务:使用循环

如何更好的学习shell:
要想学精却需要经过大量阅读、使用、出错并从错误中总结的过程,这样才能不断提高对其的掌控能力

确定系统中可用的shell版本:
[root@aliyun shell]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/ksh
/bin/rksh

变量

CDPATH

当目录名较长时可以使用CDPATH 变量
作用: 使用CDPATH变量,可以迅速地进入该目录
说明: 当执行cd network-scripts时,先会在当前目录进行判断,如果没有则会使用CDPATH中的。

【示例: /etc/sysconfig/network-scripts】
[root@aliyun ~]# CDPATH="/etc/sysconfig/"
[root@aliyun ~]# cd network-scripts
/etc/sysconfig/network-scripts
[root@aliyun network-scripts]# cd
[root@aliyun ~]# pwd
/root

常用变量说明:

EUID

说明:记录当前用户的UID

FUNCNAME

说明:在用户函数体内部,记录当前函数体的函数名

HISTCMD

说明:记录下一条命令在history命令中的编号

HISTFILE

说明: 记录history命令记录文件的位置

HISTFILESIZE

说明:记录History命令记录的命令的行数

HOSTNAME

说明:记录当前的主机名

HOSTTYPE

说明:展示主机的架构,是I386还是i686 还是x86_64

MACHTYPE

说明: 主机类型的GNU标识,这种标识有统一的结构

统一的结构: “主机架构-公司-系统-gnu”

LANG

说明:设置当前系统的语言环境

PWD

说明:记录当前目录

OLDPWD

说明:记录之前的目录

PATH

说明: 代表命令的搜索路径

(1)内建命令
由bash 自身提供的命令,而不是文件系统中的某个可执行文件。
“内建” 人类具备语言能力就是内建的能力
为了更精细的调试运行shell,可以借助第三方工具bashdb。

(2)判断是否是内建命令: type
#cd命令是否内建命令
[root@aliyun shell]# type cd
cd is a shell builtin

#ifconfig命令不是内建命令,而是一个外部文件
[root@aliyun shell]# type ifconfig
ifconfig is /usr/sbin/ifconfig

(3)##执行程序"." 号
.号用于执行某个脚本,甚至脚本没有可执行权限也可以执行
[root@aliyun shell]# ./HelloWorld.sh
-bash: ./HelloWorld.sh: Permission denied
[root@aliyun shell]# . ./HelloWorld.sh
Hello World

##执行程序"source"
source也可读取并在当前环境中执行脚本,同时还可返回脚本中最后一个命令的返回状态。
如果没有返回值则返回0,代表执行成功;
如果未找到指定脚本,则返回false;

eval 参数

将所跟的参数作为shell的输入,并执行产生的命令:eval

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值