<转+精简> linux 变量和返回值

1.什么是变量?

这个就不用废话了,shell中的变量跟其他高级语言中的变量概念是一样的。

2.shell中变量的类型?

shell中的变量类型有:本地变量、环境变量、位置变量、标准变量、特殊变量。

2.1.本地变量在shell脚本的生存周期中使用的变量(也就是登录一个shell到退出,这个shell为生存周期)设置一个本地变量格式为:变量名=变量,显示一个变量:echo ${变量名}也可以不要大括号,显示本地所有变量:set就可以,本地变量还可以设置为只读的:readonly 变量名,这时的变量就具有只读属性,如果在shell下运行命令readonly,就会显示当前环境下所有的只读变量。

2.2.环境变量用于所有的用户进程(也就shell下所有的子进程),这个就有点像windows中的环境变量了(系统–>高级–>环境变量),环境变量一般保存在$HOME/.bash_profile和/etc/profile中,前者是只适用于当前用户,后者适用于所有用户设置一个环境变量用export,比喻我们这里设置一个环境变量:export pagename=”ghostwwl”这样就设置了一个叫做pagename的环境变量,我们可以通过env这个命令来查看,还有就是可以直接通过运行export来查看。

2.3.位置变量也就相当于程序中的参数(也就相当于C中的argv),在shell中位置变量一般允许$0-$9一共10个,超过10个的,嘿嘿就必须使用其他方式了。很显然这里$0就是脚本的名字了,从$1开始就是后面的参数了。说白了也就是那个argv了。

参考文献:http://club.topsage.com/thread-195915-1-1.html

shell特殊字符的含义

符号
含义

$
shell变量名的开始,如$var

$-
使用set及执行时传递给shell的标志位

$!
最有一个子进程的PID

$#
传递给shell script的参数个数

$*
传递给shell script的参数

$@
所有参数,个别的用双引号括起来

$?
上一个命令的返回代码

$0
当前shell的名字

$n
(n:1-)位置参数

$$
进程标示号(Process Identifier Number,PID)

|
管道,讲标准输出转到下一个命令的标准输入

&
后台执行一个进程

>file
输出重定向

输入重定向

>>file
输出重定向,追加(append)

`command`
命令切换,如filename=`basename /usr/local/bin/tcsh`

原文地址 http://www.51testing.com/?uid-266868-action-viewspace-itemid-231885

diff指令返回值问题

今天偶然间写脚本用到diff命令,发现它的执行结果返回值和之前我的认识不太一样。

diff testa testb

当testa和testb,完全一样时,返回值是0

当testa和testb,有不同时,返回值是1

这让我很奇怪,因为之前都认为0是运行正常,非0是异常,后台上网找了下,得到如下描述

对于diff指令:0 表示没有不同,1 表示找到不同处,2 表示出错

看来返回时非零并不一定是运行不正常。

参考文献:http://baike.baidu.com/view/1374858.htm

关于nosql产品:高性能?

nosql产品的官方的说明都是说高性能. 因为这是一个很好的卖点.对此我们应该有一个清楚的认识.
我们衡量的高性能,应该是高访问压力下的高性能.
如果我们使用cache(memcached),我们不用担心读的压力, 一些nosql产品和传统数据库产品都有cache热数据的功能,只是实现效率和[......]

继续阅读

sps2007迁移2010的关键点


1、停了原来的数据库,拷贝mdf和log文件到新的机器

2、在新的数据库里面附加拷过来的数据库,如果出错,尝试升级sql server express r2 sp1

3、加载数据库需要用命令行

 

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>...

收藏到:Del.icio.us

关于nosql产品: 选择nosql产品的一些建议

关于nosql产品: 选择nosql产品,我说下我的一些看法,希望和大家达成共识.
1. 应该随着大流走.
我们先看一些业内公司的使用,比如facebook,twitter,仍然是绝大部分的应用使用mysql+memcached. facebook内的mysql主要用来存储key-valu[......]

继续阅读

删除大量文件 Argument list too long 解决办法

通常我们删除很多文件使用通配符匹配时,执行rm指令会报错,提示 Argument list too long

例如:
rm test*.log
如果文件数目过多,会提示Argument list too long

可以使用
find 路径 -name "日志名称匹配" |xargs rm

例如:
find /your/log/path -name "test*.log" |xargs rm

这样来解决

<转>Linux命令:find与exec的用法

find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。

看例子:

find ./ -name "*.txt" -exec ls -l "{}" /;

查找当前目录的.txt文件并以列表形式列出来

find ./ -name "*.txt" -exec mv "{}" "{}d" /;

批量修改当前目录下.txt文件的后缀名改为.txtd

解释:

-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

{} 花括号代表前面find查找出来的文件名。

例子:

find ./ -name "*.tmp" -exec rm -rf "{}" /;

删除所有的临时文件

原文地址:http://blog.csdn.net/liuyong0818/article/details/5935920

博客大巴,你能再卡一点吗?

怎么说我也是付费vip用户,慢的一塌糊涂
收藏到:Del.icio.us

终于,落井下石游戏投毒成功,兴奋啊


收藏到:Del.icio.us

[初级教程]用SecureCRT+Xming轻松远程实现linux的X DISPLAY

测试环境:RHEL 6.1,SecureCRT 5.2.1,Xming 6.9.0.31

-----------------------------------------------
引用:http://www.zw1840.com/blog/zw1840/2008/10/putty-xming-linux-gui.html

在家里的PC上用VMWare做了一个Oracle Enterprise Linux虚拟机做数据库,虚拟机OEL没启用图形界面,因此需要在PC上装一个X Window Server才能使用GUI。

看Wiki系统地了解了一下X Window System。X Window System(常被简称为X11或X),是一套基于X display protocol的windowing system,X GUI环境的功能包括窗口的绘制、移动,以及与鼠标、键盘等输入设备的交互。X 协议当前版本为MIT在1987年9月制定的11版----这就是X11的来历,最新版则是2008年9月发布的X11R7.4。

X采用C/S模型:一个X server 和多个应用程序(client)通信。server接收client的请求绘制窗口,并将来自鼠标、键盘等设备的输入传递给client。

初学X的用户经常被描述如何远程使用Linux GUI环境的文档搞糊涂:Linux主机上的应用程序被称为client,而用户终端计算机被称为server,看上去好像说反了。实际上,X是从程序结构而非用户或硬件环境的角度来描述的,在用户终端上工作的X server为应用程序提供服务,所以被看作server,而Linux主机上的应用程序接受服务,所以被看作client。

X server和client可以位于同一计算机上,例如在Linux主机上使用KDE等桌面环境就是这种模式。X server也可以通过同构网络、异构网络或Internet与client通信。

X server与client之间的通信是不加密的,这个问题可以通过SSH解决。SSH是Secure Shell的简称,SSH可以看作是通信被加密压缩版的telnet。我需要用到SSH的forwarding功能,当X server与client所在计算机都支持SSH协议时,X server与client之间不安全的TCP/IP连接可以转送到(forwarding)二者之间建立的SSH连接上。

说了一堆概念,现在可以挽起袖子干活了。Linux主机(A, IP: 192.168.1.201)和Windows客户机(B, IP: 192.168.1.101)都已经装好了,我要做的就是在 B 上安装一个X server,一个SSH客户端,在A上启用SSH的X11 forwarding。
-----------------------------------------------
1. 安装配置B上的X server

X server我选择的是Xming,这是一个免费的windows平台上的X server,很好用。
主程序Xming X server, Xming-6-9-0-31-setup.exe

安装完成后,运行 XLaunch 配置和启动Xming X server,前面基本都是直接“下一步”,

Display 代表一套 I/O 设备,包括显示、鼠标、键盘;Display Number 就是这套 I/O 设备的代号;同时 Display Number 还决定了 Xming X server 的 TCP 端口,端口号为 6000 + Display Number。Linux 主机上的应用程序通过此端口建立与 Xming X server 的连接。

有一个地方需要注意:最好是勾选“No Access Control”:

否则Linux可能会提示“refused by server”:

Xlib: connection to "192.168.10.8:0" refused by server
Xlib: No protocol specified

Error: Can't open display: 192.168.10.8:0

2.接着在Putty或SecureCRT中启用“Enable X11 forwarding”即可

putty

SecureCRT

現在在工作站執行 GUI 程式,就會出現在你的 Windows 桌面上啦!试试xeyes或xev,是不是很好玩?!