Category Archives: 脚本语言

Linux Bash 测试和比较函数

本文系转载, 最近写了一些小而实用的脚本,经常用到测试和比较函数,所以转载一下,原始出处是ibm的网站 Bash shell 在当今的许多 Linux® 和 UNIX® 系统上都可使用,是 Linux 上常见的默认 shell。Bash 包含强大的编程功能,其中包括丰富的可测试文件类型和属性的函数,以及在多数编程语言中可以使用的算术和字符串比较函数。理解不同的测试并认识到 shell 还能把一些操作符解释成 shell 元字符,是成为高级 shell 用户的重要一步。这篇文章摘自 developerWorks 教程 LPI 102 考试准备,主题 109: Shell、脚本、编程和编译,介绍了如何理解和使用 Bash shell 的测试和比较操作。 这个技巧解释了 shell 测试和比较函数,演示了如何向 shell 添加编程功能。您可能已经看到过使用 && 和 || 操作符的简单 shell 逻辑,它允许您根据前一条命令的退出状态(正确退出或伴随错误退出)而执行后一条命令。在这个技巧中,将看到如何把这些基本的技术扩展成更复杂的 … Continue reading

Posted in 脚本语言 | Tagged | Leave a comment

Crontab还可以这样写

crontab类似于windows下面的计划任务,是用来定时执行程序的,我也一直习惯于把一些需要经常关心的脚本放入crontab中去执行,并监控起来,比如磁盘空间是否快满了,机器是否reboot过等等,crontab的用法很简单,有几个常用的命令,如下: crontab -l 显示当前crontab中的任务 crontab -e 编辑当前crontab中的任务 crontab file,重新导入新的任务 我一般的做法就是首先把当前的任务导出到一个文件中,然后vi修改之后,在导入,比如: crontab -l > myfile #edit my file here, add my own task crontab myfile 注意,这里crontab的操作都需要是root用户来执行。 多谢Ningoo地提醒,这里不一定是root用户去执行 crontab文件的格式大概是: 30 * * * * xxxx.script 其中每个星号的意义如下: minute (0-59), hour (0-23), day of … Continue reading

Posted in 脚本语言 | Tagged | 3 Comments

使用命令行高效地进行文本编辑

最近比较多接触脚本语言,什么shell,perl,expect什么的,比较关注这方面,最近会转载几篇相关的文章,其实利用vi编辑器也是一件比较有成就感的事情,纯属个人观点。就因为这,跟咸鱼这家伙争执了几次,他是UltraEdit的狂热爱好者,我恰好相反,虽然不排斥UE,但是却非常喜欢vim这样的在线编辑器。 今天先转载一篇命令行高效编辑的文章: 简单研究一下可节省时间和精力的一些基本命令行文本编辑程序。文本编辑操作通常在文本编辑器应用程序中交互式地进行。然而,有些任务可以直接从 UNIX® 命令行方便快捷地完成。此外,还可以在脚本中使用这些单命令行程序来自动化各种编辑过程。 引言 大多数 UNIX® 开发人员都选择 Emacs、vi 或这两个文本编辑应用程序的众多变种、分支和克隆之一。操作员通常在所选的文本编辑器中打开文件,并交互式地对文件指定和应用更改。

Posted in 脚本语言 | Tagged | 2 Comments

Solaris管理员常用命令

Solaris管理员常用命令,很多Solaris的命令跟Linux还是不太一样的,记录再次,仅供参考。 SysAdmin Commands Debugging truss executable /* Trace doing of given command ( useful debugging ) */ truss -f -p /* Using multiple windows, this can be used to trace setuid/setgid programs */ Arp, ethernet trouble shooting arp -a . … Continue reading

Posted in 脚本语言 | Tagged | Leave a comment

利用truss在Solaris下定位问题

在Solaris下面,如果需要跟踪系统的调用,以便查找和定位问题,truss是一个非常有用的命令,下面就对这个命令做详细介绍。 truss 命令 用途 跟踪进程的系统调用、动态装入的用户级函数调用、接收的信号和造成的机器故障。 语法 truss [ -f] [ -c] [ -a] [ -l ] [ -d ] [ -D ] [ -e] [ -i] [ { -t | -x} [!] Syscall […] ] [ -s [!] Signal […] … Continue reading

Posted in 脚本语言 | Tagged | Leave a comment

如何活学活用sed和awk

sed和awk都是功能非常强大的流编辑器,如果能活学活用,常常可以节省很多时间,收到事半功倍的效果。 这里引用的两篇文章都不长,而且例子非常丰富,希望能对你有所帮助。 先说说awk: Awk is an powerful command language that allows the user to manipulate files containing columns of data and strings. Awk is extremely useful, both for general operation of Unix commands, and for data reduction (e.g. IRAF). You … Continue reading

Posted in 脚本语言 | Tagged | Leave a comment

利用sed批量替换一批文件

在需要对一个文件进行替换的时候,利用sed这个工具非常有用,比如 sed ‘s/abc/efg/g’ file 今天遇到一目录的文件需要批量进行替换,这样就比较麻烦了。以前还没有这样做过。man了一下sed的帮助,又从网上查找了一下,发现了一个比较好的解决方案,用参数-in-place。 在Linux平台上,利用如下命令即可达成: sed -in-place -e ‘s/abc/cba/g’ * 不过好像Solaris平台不支持-in-place这个参数,只能用一个小小的程序实现了。 for f in `ls *.html` do cat $f | sed s#/style.css#/blog/styles_zh-cn.css#g > tmp.txt mv -f tmp.txt $f done 本文参考了车东的一片帖子

Posted in 脚本语言 | Tagged | 2 Comments

利用批处理文件修改DNS

我有的时候会把公司做不完的事情带回家,在家通过网络写点脚本,做点事情。 家里的网络用的是深圳聚友网络,当初贪图便宜,没想到便宜没好货,网速距慢,而且三天两头修改配置。 麻烦就麻烦在这配置上,每次在家上网,都需要首先修改DNS为一个固定的DNS服务器。然后登录帐号密码方可上网。但是在公司,就没有这么繁琐,直接接上网线即可,所以需要把DNS取消掉,改为自动从DHCP服务器获取。 修改DNS虽说不是很麻烦,不过有的时候总记不得。所以干脆写了一个批处理脚本。Windows提供了一个netsh,可以在命令行下进行IP地址或者DNS的设置。下面对此作简单介绍,然后show一下我的简单的批处理脚本。

Posted in 脚本语言 | Tagged | 1 Comment