shell脚本基本IF条件判断和判断条件总结

2015-4-30 杜世伟 Linux

1、基本语法:
if [ command ]; then
符合该条件执行的语句
fi
2、扩展语法:
if [ command ];then
符合该条件执行的语句
elif [ command ];then
符合该条件执行的语句
else
符合该条件执行的语句
fi

3、语法说明:
bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。
当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。
返回状态:最后一个命令的退出状态,或者当没有条件是真的话为0。

阅读全文>>

标签: linux shell

评论(0) 浏览(15288)

linux find 统计目录下信息

2015-4-17 杜世伟 Linux

linux find 目录统计下信息

linux 环境下通过find命令对目录下信息进行统计

1.统计/data/www-data目录下,php文件数量:
find /data/www-data/ -name "*.php" |wc -l
2.统计demo目录下所有php文件代码行数:
find /data/www-data/ -name "*.php" |xargs cat|wc -l 或 wc -l `find ./ -name "*.php"`|tail -n1
3.统计/data/www-data/目录下所有php文件代码行数,过滤了空行:

find /data/www-data/ -name "*.php" |xargs cat|grep -v ^$|wc -l

转载标明来源!

阅读全文>>

标签: linux find

评论(0) 浏览(10014)

lua 中的assert 与loadstring 问题

2015-4-13 杜世伟 Lua

loadstring 通过加载一个符合lua语言规范的字符串 返回一个lua function,

例如:

local str = "print 'dushiwei.cn'"
local str = loadstring(str)
assert(str)()

local str = "print 'dushiwei.cn'"
local str = loadstring(str)
等价于 local script = function()
            print 'dushiwei.cn'
        end

阅读全文>>

标签: lua loadstring assert

评论(0) 浏览(5086)

Lua编译与运行

2015-4-12 杜世伟 Lua

   Lua是解释性语言,但Lua会首先把代码预编译成中间码然后再执行。不要以为需要编译就不是解释型语言,Lua的编译器是语言运行时的一部分,所以,执行编译产生中间码速度会更快。

  dofile/dostring和loadfile/loadstring的区别:

  (1)do*会编译并执行;load*只编译代码生成中间码并且返回编译后的chunk作为一个函数,但不执行代码。

  (2)load*较为灵活,发生错误时load*会返回nil和错误信息(可以打印出来)。

  (3)如果要运行一个文件多次,load*只需要编译一次,但可以多次运行,do*每次都需要编译。

  (4)dostring(str)等价于loadstring(str)()

阅读全文>>

标签: lua loadstring dofile dostring loadfile

评论(0) 浏览(4789)

Python os,sys,shutil模块介绍

2015-3-6 杜世伟 Python

Python os,sys,shutil模块介绍
# os 模块
os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\'
os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix'
os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径
os.getenv() 获取一个环境变量,如果没有返回none
os.putenv(key, value) 设置一个环境变量值
os.listdir(path) 返回指定目录下的所有文件和目录名
os.remove(path) 函数用来删除一个文件
os.system(command) 函数用来运行shell命令
os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用 '\r\n',Linux使用 '\n' 而Mac使用 '\r'

阅读全文>>

标签: python os sys shutil

评论(0) 浏览(4990)

linux pecl 安装

2015-2-5 杜世伟 Php

PECL 是通过 » PEAR 打包系统来的 PHP 扩展库仓库,本章内容示范了怎样取得并安装 PECL 扩展。

接下来我们在服务上安装pecl命令:
首先查看php所在的目录:
#which php
# /usr/bin/php

# cd /usr/bin/php

#download

# curl -o go-pear.php http://pear.php.net/go-pear  
# curl -o go-pear.php http://pear.php.net/go-pear.phar # 如果你的php版本高于php5.3, 执行这条  

#install:
php go-pear.php # 回车, 会提示选择安装的东西, 直接回车, 安装全部, 若后面有要选择y/n的, 输入y回车  

如果看到下面的一段话就是安装成功:
Run it without parameters to see the available actions, try 'pear list'  
to see what packages are installed, or 'pear help' for help.  
  
For more information about PEAR, see:  
  
  http://pear.php.net/faq.php  
  http://pear.php.net/manual/  
  
Thanks for using go-pear!  

现在就可以使用PHP的扩展库pecl 安装一些PHP 常用扩展了

阅读全文>>

标签: PHP linux pecl

评论(0) 浏览(15055)

(转)从 Redis 迁移到 SSDB

2015-2-2 杜世伟 ssdb

工具

tools 目录中的 redis-import.php PHP 脚本可以用来将 Redis 服务器上的数据, 拷贝到 SSDB 服务器上.

用法:

php redis-import.php redis_host redis_port redis_db ssdb_host ssdb_port

参数:

  • redis_host: Redis 运行所在的 IP 或者主机名
  • redis_port: Redis 监听的端口
  • redis_db: Redis 的 DB 编号
  • ssdb_host: SSDB 运行所在的 IP 或者主机名
  • ssdb_port: SSDB 监听的端口

阅读全文>>

标签: redis ssdb

评论(0) 浏览(5204)

linux pssh 安装和使用方法

2015-1-18 杜世伟 Linux

pssh命令是一个python编写可以在多台服务器上执行命令的轻量运维工具,同时支持拷贝文件,是同类工具中很出色的,
类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。

#pssh 安装
1)yum方法
yum install pssh
2)编译安装

wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c2

4b36b623413b38be8e4a/pssh-2.3.1.tar.gz

tar xzvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py install



#创建将要连接的服务器列表,如果连接的服务器的端口号是22后面的端口号可以不填写(默认端口号:22)
cat > hosts.txt <<EOF
root@192.168.111.132:22
root@192.168.111.134:22
root@192.168.111.135:22
EOF

使用下命令之前,要确保当前服务器和将要连接的服务器列表已添加SSH信任,

阅读全文>>

标签: linux pssh prsync pslurp pnuke

评论(0) 浏览(7724)

Cocos2d-x 使用内置命令加密Lua文件

2015-1-17 杜世伟 cocos2d-x

Cocos2d-x3.2中的cocos-console 去 批量 加密lua脚本-变成luac文件

阅读全文>>

标签: cocos2dx cocos2d-x luacompile

评论(0) 浏览(4450)

error: too many open files

2015-1-17 杜世伟 Linux

linux 默认值 open files 和 max user processes 为 1024

#ulimit -n

1024

#ulimit –u

1024

问题描述: 说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files 。因此,需要将其改大。

阅读全文>>

标签: linux ulimit

评论(0) 浏览(8020)

Powered by emlog 沪ICP备2023034538号-1