shell脚本

linux上安装memcached步骤

给你一囗甜甜゛ 提交于 2020-01-18 08:27:28
libevent: http://libevent.org/ 服务器端:https://code.google.com/archive/p/memcached/downloads 客户端: http://pecl.php.net/package/memcache 和 http://pecl.php.net/package/memcached 二选一 http://chenzhou123520.iteye.com/blog/1933489 https://blog.linuxeye.com/345.html http://chenzhou123520.iteye.com/blog/1925209 http://www.cnblogs.com/scotoma/archive/2011/02/15/1955573.html 最近在公司服务器上安装memcached安了很多次,每次都得上网来查一下步骤,今天干脆写个详细点的步骤记录一下,留作备忘。 一、检查libevent 首先检查系统中是否安装了libevent Shell代码 rpm -qa|grep libevent 如果安装了则查看libevent的安装路径,后续安装时需要用到 Shell代码 rpm -ql libevent 如果没有安装,则先安装libevent 安装libevent: 1.首先下载libevent安装包

读《Shell 脚本实践》——inpath.sh

99封情书 提交于 2020-01-18 08:24:01
最近正在阅读 《Shell脚本实践》 一书,这一系列文章是对书中内容的学习与整理。 inpath.sh #! /bin/bash # inpath -- 验证指定程序是否有效,如果参数以绝对路径的形式给出则检查改路径是否存在且可执行,如果参数没有以 / 开头,则检查该命令是否位于$PATH记录的目录下且可执行 in_path() { cmd=$1 ourpath=$2 result=1 #记录当前字段分隔符,并修改为':' oldIFS=$IFS IFS=":" #遍历参数2指定的目录列表 for directory in $ourpath do if [ -x $directory/$cmd ] ; then #如果该命令存在且可执行,则in_path成功退出 result=0 fi done #恢复w字段分隔符为原始值 IFS=$oldIFS return $result } checkForCmdInPath() { var=$1 if [ "$var" != "" ] ; then #下面使用了字符串切分语法 if [ "${var:0:1}" = "/" ] ; then if [ ! -x $var ] ; then return 1 fi elif ! in_path $var "$PATH" ; then return 2 fi fi } #下面是测试代码

linux shell 错误 "[: =: unary operator expected" 解决办法

╄→尐↘猪︶ㄣ 提交于 2020-01-18 02:33:10
shell脚本报错:"[: =: unary operator expected"解决办法 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK" ]; then echo "OK" fi 在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因。把语句改成这样就不会出错了. if [[ $STATUS = "OK" ]]; then echo "OK" fi 究其原因,是因为如果变量STATUS值为空,那么就成了 [ = "OK"] ,显然 [ 和 "OK" 不相等并且缺少了 [ 符号,所以报了这样的错误。当然不总是出错,如果变量STATUS值不为空,程序就正常了,所以这样的错误还是很隐蔽的。 或者用下面的方法也能避免这种错 误:if [ "$STATUS"x == "OK"x ]; then echo "OK"fi。当然,x也可以是其他字符。顺便提一点,shell中有没有双引号在很多情况下是一致的。 来源: CSDN 作者: whatday 链接: https://blog.csdn.net/whatday/article/details/103897163

Shell写系统小工具

耗尽温柔 提交于 2020-01-17 23:03:20
#!/usr/bin/bash source /etc/init.d/functions help_menu(){ cat <<-EOF d、显示磁盘利用率 m、显示内存利用率 u、显示CPU负载情况 a、显示IP地址 b、显示磁盘分区 n、显示网络情况 h、显示命令帮助 EOF } cat <<-EOF d、显示磁盘利用率 m、显示内存利用率 u、显示CPU负载情况 a、显示IP地址 b、显示磁盘分区 n、显示网络情况 h、显示命令帮助 EOF while true do trap "" HUP INT TSTP read -p "请输入要查看的功能编号:[h显示帮助]" num case $num in d) clear df -Th #break ;; m) clear free -m #break ;; u) clear uptime #break ;; a) clear ifconfig #break ;; b) clear blkid #break ;; n) clear ping -c 1 www.baidu.com &> /dev/null if [ $? -eq 0 ];then action "网络环境" /bin/true else action "网络环境" /bin/false fi #break ;; h) clear help_menu #break

Shell脚本

我的梦境 提交于 2020-01-17 19:50:40
1.1.1创建与编写 Shell脚本通常都以.sh为后缀。第一行内容表示使用bash语法,更加规范。#后面跟一些时间日期版本。 查看 另一种方式 使用该方法需要脚本本身具有执行权限,所以给脚本加一个x 使用sh时,可以加-x查看这个脚本的执行过程。 1.1.2 date命令 date +%Y: 表示以四位数字格式打印年份。 date +%y:表示以两位数字格式打印年份。 date +%m: 表示月份。 date +%d: 表示日期。 date +%H:表示小时。 date +%M: 表示分钟。 date +%S: 表示秒。 date +%w: 表示星期。结果显示o则表示周日。 1.2Shell脚本中的变量 1.2.1 数学运算 示例 数学计算要用[ ]括起来,并在前面加$ 结果为 1.2.2 和用户交互 read命令用于和用户交互,他把用户输入的字符串作为变量值。结果为 加上-x查看整个执行过程 1.2.3 shell脚本预设变量 在脚本后面跟的参数就是预设变量 $1代表第一个参数$2代表第二个,给shell脚本的预设变量是没有限制的 1.3shell脚本中的逻辑判断 1.3.1 不带else 示例 (())时shell中特有的格式,只用一个或者不用都会报错。 结果: 1.3.2 带有else 示例 结果 1.3.3 带有elif 示例 结果 判断数值大小可以用(())外还可以用[

写shell,运行出错:syntax error near unexpected token `$’do\\r”

亡梦爱人 提交于 2020-01-17 16:49:11
cygwin下面写shell,运行出错:syntax error near unexpected token `$’do\r” /*--> */ /*--> */ 写shell,运行出错: syntax error near unexpected token `$’do\r” 【问题】 在cygwin下,用notepad++写了个简单的shell脚本,内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 #!/bin/bash #remove *.bak in subfolder files echo 'remove *.bak' sub_folders=`ls` echo 'sub_folders='$sub_folders for each_item in $sub_folders; do if [ -d $each_item ]; then echo $each_item else echo $each_item "is file ------" fi done exit 0 但是运行出错: 1 line 6: syntax error near unexpected token `$'do\r'' 【解决过程】 1.网上搜了下,参考:linux shell脚本报错: syntax error near unexpected token `

第三部分shell编程3(shell脚本2)

為{幸葍}努か 提交于 2020-01-17 08:48:08
7. if 判断一些特殊用法 if [ -z $a ] 这个表示当变量a的值为空时会怎么样 if grep -q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样 if [ ! -e file ]; then 表示文件不存在时会怎么样 if (($a<1)); then …等同于 if [ $a -lt 1 ]; then… [ ] 中不能使用<,>,==,!=,>=,<=这样的符号 if [ ! $a -gt 0 ];then... 代表不大于0 if [ -z $n1 ] 为空 if [ -n $n1 ] 不为空 if [ ! -z $n1 ] 8. shell中的case判断 格式: case 变量名 in value1) command ;; value2) command ;; *) commond ;; esac 求余!! vim case.sh !# /bin/bash n1=`echo $1 |sed 's/[0-9]//g'` if [ -z $n1 ]; then m=$[$1%2] case $m in 1) echo "the number is odd" ;; 0) echo "the number is even" ;; *) echo "is other" ;; esac else echo "the

bash shell 中该不该加空格

让人想犯罪 __ 提交于 2020-01-17 07:51:32
文章目录 与 c,c++,java,groovy 等语言不同,shell 中对空格的要求其实蛮有限制的,shell 脚本最初写的时候空格哪里该写,哪里不该写我经常弄错。之所以 shell 中空格这么多,是因为 bash shell 中 [ 本身是有作用的 不该加空格(运算符号) # 赋值语句,等号两边不可加空格 val = 1 以及其他的小阔双小阔等都可以不加空格 需要加空格(命令关键字)(记住) if 判断后需要加空格,因为 if 后应该要接上一个 test 的命令表达式,这个 [ 其实是 bash 中可以识别到的一个命令,也是一个命令关键字,作用和 test 同,既然作为命令关键字,所以后面需要加上空格, ] 用来与 [ 匹配,如下样例(``表示其中为命令表达式) # 算数表达式,表达式运算符两边要加空格 val = ` expr 1 + 1 ` # 条件表达式,表达式中需要加空格,if 右边加空格 if [ $a == $b ] 来源: CSDN 作者: abcnull 链接: https://blog.csdn.net/abcnull/article/details/103913667

两个有用的shell工具总结

六眼飞鱼酱① 提交于 2020-01-17 07:11:24
shell工具之一:sed sed基础 sed编辑器被称作流编辑器,与常见的交互式文本编辑器刚好相反。文本编辑器可以通过键盘来交互式地插入、删除、替换文本中的数据;而流编辑器是基于一组预先的规则来编辑数据流。 sed命令的格式如下: sed options script file 选项 说明 -e script 将script中指定的命令添加到运行的命令中 -f file 将file中指定的命令添加到运行的命令中 -n 不为每个命令生成输出,等待print命令来输出 说明: script用于指定作用在数据量上的单个命令。 如果需要使用多个命令,有 两种选择 :可以在命令行中使用-e选项指定,不同命令之间用分号隔开;或者使用-f选项在文件中指定。 默认情况下,sed编辑器将指定的命令应用到STDIN输入流上,而不作用于数据源本身,就是说sed不会修改文本文件中的原数据。 1 替换命令substitute s/pattern/replacement/flags flags 取值如下: 数字: 表示replacement将替换 每行中 第几次出现的pattern g : 表示replacement将替换所有出现的pattern p : 打印用replacement替换过的行(经常与-n选项搭配使用,-n禁止sed输出,而p会输出修改过的行

[shell编程]初识sed和gawk

我怕爱的太早我们不能终老 提交于 2020-01-17 07:01:53
一.sed编辑器 shell脚本最常见的用途就是处理文本文件,sed和gawk能够极大的简化需要进行的数据处理任务。 sed编辑器是流编辑器,跟普通交互式文本编辑器(如vim)不同。流编辑器在编辑器处理数据前基于预先提供的一组规则来编辑数据流。由于命令都是一行一行顺序处理,sed编辑器必须一次就完成对文本的修改,所以比交互式编辑器速度快很多。 使用sed命令的格式:$ sed optioons script file 1.替换标记 s命令帮助我们用斜线间制定的第二个文本字符串代替地一个文本字符串,举一个简单的例子: # echo This is a dog | sed 's/dog/big dog/' This is a big dog 在sed命令行上执行多个命令时,用-e选项: # echo This is a white dog | sed -e 's/white/black/; s/dog/cat/' This is a black cat 如果有大量sed命令,可以放入一个文件内,用-f选项制定文件,此时不需要用分号: $ cat script s/white/black s/dog/cat 2.使用地址 默认情况下,sed编辑器中使用的命令会作用与文本数据的所有行。如果只想将命令作用于特定某行或者某些行,需要用 行寻址 。 sed有两种行寻址:行的数字范围