shell脚本

【shell教程02】Shell 变量、shell字符串、shell数组、shell注释

血红的双手。 提交于 2019-11-29 04:44:29
一、Shell 变量 1、定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意, 变量名和等号之间不能有空格 ,这可能和你熟悉的所有编程语言都不一样。同时,变量名的 命名 须遵循如下 规则 : 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 有效的 Shell 变量名示例如下: RUNOOB LD_LIBRARY_PATH _var var2 无效的变量命名: ?var=123 user*name=runoob 除了显式地直接赋值,还可以用语句给变量赋值,如: for file in `ls /etc` 或 for file in $(ls /etc) 以上语句将 /etc 下目录的文件名循环出来。 2、使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可,如: your_name="qinjx" echo $your_name echo ${your_name} 变量名外面的花括号是可选的,加不加都行 ,加花括号是为了帮助解释器识别变量的边界 ,比如下面这种情况: for skill in Ada Coffe Action Java; do echo "I am

shell脚本实战——批次量创建/删除账号

北城余情 提交于 2019-11-29 04:42:52
前言:该脚本即可批量创建用户,又可批量删除用户,具体针对哪个用户进行操作,是在一个文本文件中进行定义的。并且使用此脚本创建的用户,首次登陆必须修改密码。 [root@localhost ~]# vim create_user.sh usergroup="" #if your account need secondary group,add here pwmech="openssl" #"openssl" or "account" is needed. homeperm="no" # if "yes" then I will modify home dir permission to 711 usepw="123456" #this is all user init password # 1.check the accountadd.txt file action="${1}" #"create" is useradd and "delete" is userdel if [ ! -f accountadd.txt ]; then echo "There is no accountadd.txt file,stop here" exit 1 fi [ "${usergroup}" != "" ] && groupadd -r ${usergroup} rm -f outputpw

shell编程

早过忘川 提交于 2019-11-29 03:51:25
shell编程 shell编程能做什么 1)安装操作系统(手动安全ISO) 自动化安装(kickstart cobbler)shell脚本 2)初始化操作系统 优化(SSH优化、关闭SElinux、优化防火墙、NTP时间同步、更改默认YUM、源字符集、安装常用的软件 lrzsz net-tools tree.. wget、隐藏版本信息、加大文件描述符、内核优化...)初始化写入脚本 自动化执行 3) 安装服务(Nginx PHP MySQL MariaDB NFS sersync REDIS keepalived docker....zabbix)使用shell脚本自动选择安装 4) 启动----停止(centos6.x: /etc/init.d/server start;centos7.x:systemctl start server) 系统默认的启动方式 shell脚本 5) 监控 zabbix、cacti、nagios、ELK、公司研发的监控平台;监控的值(shell脚本统计) 6) 日志统计 三剑客 日志切割(脚本+定时任务) 初识Shell 什么是shell pwd ls 都是通过bash解释的、Shell是一个命令解释器,作用是解释执行用户输入的命令及程序 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互

Nginx与Lua

故事扮演 提交于 2019-11-29 03:36:45
今天安装lua试试,这个从开始装的,发现一篇文字,字数虽少,但是却讲的很清楚。如下: 最先将Nginx,Lua组合到一起的是 OpenResty ,它有一个 ngx_lua 模块,将Lua嵌入到了Nginx里面;随后 Tengine 也包含了ngx_lua模块。至于二者的区别:OpenResty是Nginx的Bundle;而Tengine则是Nginx的Fork。值得一提的是,OpenResty和Tengine均是国人自己创建的项目,前者主要由 春哥 和 晓哲 开发,后者主要由淘宝打理。 至于OpenResty和Tengine孰优孰劣,留给大家自己判断,如下资料可供参考: ngx_openresty: an Nginx ecosystem glued by Lua 淘宝网Nginx应用、定制与开发实战 推荐看看春哥在 Tech-Club 上关于『 由Lua粘合的Nginx生态环境 』的演讲实录,有料! 安装 需要最新版的 Nginx , LuaJIT , ngx_devel_kit , ngx_lua 等安装文件。 安装Lua或者LuaJIT都是可以的,但是出于效率的考虑,推荐安装LuaJIT。 shell> wget http://luajit.org/download/LuaJIT-<VERSION>.tar.gz shell> tar zxvf LuaJIT-<VERSION

shell脚本的条件测试与比较

喜欢而已 提交于 2019-11-29 03:26:24
博文大纲: 一、shell脚本的条件测试 二、文件测试表达式 三、字符串测试表达式 四、整数二元比较操作符 五、逻辑操作符 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结果执行不同的操作,有时也会与if等条件语句相结合,来完成测试判断,以减少程序运行的错误。 执行条件测试表达式后通常会返回“真”或“假”,就像执行命令后的返回值为0表示真,非0表示假一样。 一、shell脚本的条件测试 在bash编程里,条件测试常用的语法形式如下: 语法1:test <测试表达式>:这是利用test命令进行条件测试表达的方法,test命令和“<测试表达式>”之间至少有一个空格。 语法2: [ <测试表达式> ]:这是通过[ ](单中括号)进行条件测试表达式的方法,和test命令的用法相同,这是比较推荐的一种方法。[ ]的边界和内容之间至少有一个空格。 语法3:[[ <测试表达式> ]]:这是通过[[ ]](双中括号)进行条件测试表达式的方法,是比test和[ ]更新的语法。[[ ]]的边界和内容之间至少有一个空格。 语法4:(( <测试表达式>)):这是通过(( ))(双小括号)进行条件测试表达式的方法,一般用于if语句里。(())(双小括号)两端不需要有空格。 语法1中的test命令和语法2中的[ ]是一样的。语法3中的[[]]是扩展test命令,语法4中的(()

Linux下设置和查看环境变量

廉价感情. 提交于 2019-11-29 03:21:48
转自 Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr :系统级的目录,可以理解为 C:/Windows/ , /usr/lib 理解为 C:/Windows/System32 。 /usr/bin: 几乎所有的系统可执行文件都会安装在这里 /usr/local/bin: 则是可以存放一些系统用户自己特定的可执行文件,不用担心会被系统升级之类的行为覆盖,破坏,这个目录不是必须的 /usr/local : 用户级的程序目录,可以理解为 C:/Progrem Files/ 。 用户自己编译的软件默认会安装到这个目录下。 /opt :用户级的程序目录 ,可以理解为 D:/Software , opt有可选的意思, 这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf 掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。 源码放哪里? /usr/src :系统级的源码目录。 /usr/local/src :用户级的源码目录。 -----------------翻译------------------- /opt Here’s where optional stuff is put. Trying out the

shell脚本基础知识梳理<三>:条件测试与比较、流程控制 if

家住魔仙堡 提交于 2019-11-29 03:18:57
一、条件测试与比较 1、test 测试表达式 常用 test -f file && echo true||echo false 2、[ 测试表达式 ] 特别常用 [ -f file ]&& echo true||echo false 3、[[ 测试表达式 ]] 二、流程控制 1、流控制语句 if 实例1 #!/bin/bash #获取uid=0(root)中的0; id= id | awk -F '[=(]' '{print $2}' echo "your user id is:$id" if [ $id -eq 0 ] then echo "root" else echo "not root" fi 实例2:判断登录的用户 #!/bin/bash #$#是添加到shell 参数个数 if [ $# -eq 1 ] #或 [[ $#==1 ]] 或 (($#==1)) then if who|grep $1 >/dev/null then echo $1 is active. else echo $1 is not active. fi else echo "Usage: $0 <username>" exit 1 fi ~ 执行后的结果 [root@localhost shell]# sh if-if.sh root root is active. [root@localhost

shell scripts之算数运算详解

佐手、 提交于 2019-11-29 02:43:14
算数运算符如下: 运算操作符与运算命令: 1、双小括号“( ( ) )”数值运算命令 双小括号“ ( ( ) ) ”的作用是进行数值运算与数值比较,它的效率最高,用法灵活,是经常被采用的运算操作符,其操作方法如下: 执行echo$((a++))和echo$((a--))命令输出整个表达式时,输出的值即为a的值,表达式执行完毕后,会对a进行++、--的运算,而执行echo$((++a))和echo$((--a))命令输出整个表达式时,会先对a进行++、--的运算,然后再输出表达式的值,即为a运算后的值。 注意:有关++、--运算的记忆方法: 变量a在运算符之前,输出表达式的值为a,然后a自增或自减;变量a在运算符之后,输出表达式会先自增或自减,表达式的值就是自增或自减后a的值。 “(())”表达式在命令行执行时不需要加$符号,直接使用((6%2))形式即可,但是如果需要输出,就要加$符,例如:echo$((6%2))。 “(())”里的所有字符之间没有空格、有一个或多个空格都不会影响结果。 使用举例: [root@localhost ~]# echo $(( 6+2 )) #加法 8 [root@localhost ~]# echo $(( 6-2 )) #减法 4 [root@localhost ~]# echo $(( 6*2 )) #乘法 12 [root@localhost

shell scripts之算数运算详解

。_饼干妹妹 提交于 2019-11-29 02:42:47
算数运算符如下: 运算操作符与运算命令: 1、双小括号“( ( ) )”数值运算命令 双小括号“ ( ( ) ) ”的作用是进行数值运算与数值比较,它的效率最高,用法灵活,是经常被采用的运算操作符,其操作方法如下: 执行echo$((a++))和echo$((a--))命令输出整个表达式时,输出的值即为a的值,表达式执行完毕后,会对a进行++、--的运算,而执行echo$((++a))和echo$((--a))命令输出整个表达式时,会先对a进行++、--的运算,然后再输出表达式的值,即为a运算后的值。 注意:有关++、--运算的记忆方法: 变量a在运算符之前,输出表达式的值为a,然后a自增或自减;变量a在运算符之后,输出表达式会先自增或自减,表达式的值就是自增或自减后a的值。 “(())”表达式在命令行执行时不需要加$符号,直接使用((6%2))形式即可,但是如果需要输出,就要加$符,例如:echo$((6%2))。 “(())”里的所有字符之间没有空格、有一个或多个空格都不会影响结果。 使用举例: [root@localhost ~]# echo $(( 6+2 )) #加法 8 [root@localhost ~]# echo $(( 6-2 )) #减法 4 [root@localhost ~]# echo $(( 6*2 )) #乘法 12 [root@localhost

shell脚本基础知识梳理<一>

三世轮回 提交于 2019-11-29 02:39:01
一、shell 脚本格式 #!/bin/bash 第一行是指定那个程序来编译执行脚本 注释是一“#”开头, 二、脚本执行 source、sh、bash、./执行脚本的区别 1、“. ”点命令,就是个点符号(从Bourne Shell而来)是source的另一名称 2、source 命令(从 C Shell 而来)执行bash shell的内置命令 3、bash /bin/bash命令功能要比sh强大 4、sh /bin/sh命令 5、export可新增,修改或删除环境变量,供后续执行的程序使用。同时,重要的一点是,export的效力仅及于该次登陆操作。注销或者重新开一个窗口,export命令给出的环境变量都不存在了。 export PATH=/bin/bash:$PATH 6、(点 source bash sh ./执行的文件名)他们之间的区别 6.1:点和source 执行方式是等价;即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。 6.2:bash sh (可以无执行权限)二者的执行文件不同 ./ (必须有执行权限)三者执行方式是等价的;此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。 6.3: 验证结果: [root@localhost ~]#name=dangxu /