- 浏览: 1642405 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (405)
- C/C++ (16)
- Linux (60)
- Algorithm (41)
- ACM (8)
- Ruby (39)
- Ruby on Rails (6)
- FP (2)
- Java SE (39)
- Java EE (6)
- Spring (11)
- Hibernate (1)
- Struts (1)
- Ajax (5)
- php (2)
- Data/Web Mining (20)
- Search Engine (19)
- NLP (2)
- Machine Learning (23)
- R (0)
- Database (10)
- Data Structure (6)
- Design Pattern (16)
- Hadoop (2)
- Browser (0)
- Firefox plugin/XPCOM (8)
- Eclise development (5)
- Architecture (1)
- Server (1)
- Cache (6)
- Code Generation (3)
- Open Source Tool (5)
- Develope Tools (5)
- 读书笔记 (7)
- 备忘 (4)
- 情感 (4)
- Others (20)
- python (0)
最新评论
-
532870393:
请问下,这本书是基于Hadoop1还是Hadoop2?
Hadoop in Action简单笔记(一) -
dongbiying:
不懂呀。。
十大常用数据结构 -
bing_it:
...
使用Spring MVC HandlerExceptionResolver处理异常 -
一别梦心:
按照上面的执行,文件确实是更新了,但是还是找不到kernel, ...
virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法 -
dsjt:
楼主spring 什么版本,我的3.1 ,xml中配置 < ...
使用Spring MVC HandlerExceptionResolver处理异常
1、变量的扩展操作:
${varname:-word}如果变量存在非空,返回其值,否则返回默认值word
filename=${1:-/dev/tty},如果位置参数为空,则返回/dev/tty
${varname:=word}如果变量存在非空,返回其值,否则赋值为word并返回其值
${varname:?message}如果变量存在非空,返回其值,否则打印varname:message,并
退出该命令或者脚本
${varname:+word}如果varname存在且非空,返回word,否则返回null,
可以用来测试变量是否存在$(count:+1}
2、模式匹配操作:
比如:path=/home/tolstoy/mem/long.file.name
${variable#pattern},如果pattern匹配变量开始,删除最短匹配,并返回剩余部分
${path#/*/}返回tolstoy/mem/long.file.name
${variable##pattern}如果pattern匹配变量开始,删除最长匹配,并返回剩余部分
${path##/*/返回long.file.name
${variable%pattern,如果pattern匹配变量结尾,删除最短匹配,并返回剩余部分
${path%.*}返回/home/tolstoy/mem/long.file
${variable%%pattern}如果pattern匹配变量结尾,删除最长匹配,并返回剩余部分
${pattern%%.*}返回/home/tolstoy/mem/long
返回字符串长度:
x=supercalifragilisticexpialidocious
echo ${#x}
3、特殊变量:
# 代表参数的个数
@ 命令行参数,"$@"扩展为原来单独的多个参数,要将原来的参数传递给另一个函数使用"$@"
* 命令行参数,"$*"扩展为一个参数
? 前一个命令的退出状态
$ shell进程的id
0 shell进程的名字
! 最后一个后台运行命令的进程id,可以使用它来保存该进程id,以便wait操作。
IFS 内部文本域的分割,通常为空格,tab或者换行
PS1 主命令行提示符,默认为$
PS2 行延续的提示符,默认为>
PS4 使用set -x提示符,默认为+
PWD 当前的工作目录
4、使用退出状态的if-else-fi
如果执行成功 exit状态为0,执行if,否则执行else
可以使用&
5、break,continue可以带数字参数表示退出层数
6、sed
1)执行多个替换
s后面可以指定分割:
比如:
可以通过指定|分割,把上面的命令变得更整洁:
2)使用&
我们想在单词的两边加上括号
可以使用多次
3)使用行数指定范围:
4)使用d删除
上面代码用来删除空行和注释
5)使用p达到grep的功能
6)使用 {}来group多个操作:
删除begin,end之间的空行和注释:
7)使用w来写入文件
比如把文件file中偶数找到,并放在even文件中:
sed参考http://www.grymoire.com/Unix/Sed.html
${varname:-word}如果变量存在非空,返回其值,否则返回默认值word
filename=${1:-/dev/tty},如果位置参数为空,则返回/dev/tty
${varname:=word}如果变量存在非空,返回其值,否则赋值为word并返回其值
${varname:?message}如果变量存在非空,返回其值,否则打印varname:message,并
退出该命令或者脚本
${varname:+word}如果varname存在且非空,返回word,否则返回null,
可以用来测试变量是否存在$(count:+1}
2、模式匹配操作:
比如:path=/home/tolstoy/mem/long.file.name
${variable#pattern},如果pattern匹配变量开始,删除最短匹配,并返回剩余部分
${path#/*/}返回tolstoy/mem/long.file.name
${variable##pattern}如果pattern匹配变量开始,删除最长匹配,并返回剩余部分
${path##/*/返回long.file.name
${variable%pattern,如果pattern匹配变量结尾,删除最短匹配,并返回剩余部分
${path%.*}返回/home/tolstoy/mem/long.file
${variable%%pattern}如果pattern匹配变量结尾,删除最长匹配,并返回剩余部分
${pattern%%.*}返回/home/tolstoy/mem/long
返回字符串长度:
x=supercalifragilisticexpialidocious
echo ${#x}
3、特殊变量:
# 代表参数的个数
@ 命令行参数,"$@"扩展为原来单独的多个参数,要将原来的参数传递给另一个函数使用"$@"
* 命令行参数,"$*"扩展为一个参数
? 前一个命令的退出状态
$ shell进程的id
0 shell进程的名字
! 最后一个后台运行命令的进程id,可以使用它来保存该进程id,以便wait操作。
IFS 内部文本域的分割,通常为空格,tab或者换行
PS1 主命令行提示符,默认为$
PS2 行延续的提示符,默认为>
PS4 使用set -x提示符,默认为+
PWD 当前的工作目录
4、使用退出状态的if-else-fi
if grep "abc" file > /dev/null then echo "find abc in file" else echo "not find abc in file" fi
如果执行成功 exit状态为0,执行if,否则执行else
可以使用&
grep "abc" file >/dev/null &{ echo "find abc in file" }
5、break,continue可以带数字参数表示退出层数
while condition1 Outer loop do ... while condition2 Inner loop do ... break 2 Break out of outer loop done done
6、sed
1)执行多个替换
sed 's;/home/tolstoy/;/home/lt/;'
s后面可以指定分割:
比如:
sed 's/\/usr\/local\/bin/\/common\/bin/' <old >new
可以通过指定|分割,把上面的命令变得更整洁:
sed 's|/usr/local/bin|/common/bin|' <old >new
2)使用&
我们想在单词的两边加上括号
echo "hello 123" | sed 's/[a-z]*/(&)/' <old >new
可以使用多次
echo "hello 123" | sed 's/[a-z]*/(&)(&)/' <old >new
3)使用行数指定范围:
sed '1,100 s/A/a/' sed '100,$ s/A/a/'
4)使用d删除
sed -e 's/#.*//' -e '/^$/ d'
上面代码用来删除空行和注释
5)使用p达到grep的功能
sed -n '/pattern/ p' #打印匹配行 sed -n '/pattern/ !p' </tmp/b #打印不匹配行
6)使用 {}来group多个操作:
删除begin,end之间的空行和注释:
sed -n ' /begin/,/end/ { s/#.*// s/[ ^I]*$// /^$/ d p } '
7)使用w来写入文件
比如把文件file中偶数找到,并放在even文件中:
sed -n 's/^[0-9]*[02468] /&/w even' <file
sed参考http://www.grymoire.com/Unix/Sed.html
发表评论
-
【zz】Vim的分屏
2012-04-26 11:13 1556分屏启动Vim 使用大写 ... -
bash的几种for循环
2012-04-26 11:13 18021、罗列式 for VARIABLE in 1 2 3 ... -
【zz】几个简单选项让你的Readline(Bash)更好用
2011-10-10 23:08 2387Reddit上的一位仁兄贴出了他的readline手册学习成果 ... -
pipe in -exec
2011-09-27 22:35 1401一个简单的例子: 将一堆的.txt文件,合并成一个文件,让每个 ... -
[zz]Unix调试的瑞士军刀:lsof
2011-08-31 10:33 1475原文见:http://heikezhi.com/2011/06 ... -
[zz]关于xargs,你可能不知道的
2011-08-29 23:05 2438如果你曾经花了许多时间在Unix命令行上,那么或许你已经见过x ... -
使用scala.sys.process包和系统交互
2011-07-19 00:00 6460在Java中我们可以使用Runtime.getRuntime( ... -
virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法
2011-06-23 22:17 14424在笔记本安装Ubuntu11.04增强功能失败 引用 fuli ... -
awk getline
2011-06-02 23:58 5785awk getline开始一直用做按行读取文件。 getlin ... -
[zz]服务器性能评估
2011-04-29 14:17 4004工作这么久了,主 ... -
[zz]Top命令VIRT,RES,SHR,DATA的含义
2011-04-10 15:50 4083VIRT:virtual memory usage ... -
[zz]一些shell命令
2011-04-10 15:35 14821.显示消耗内存/CPU最多的10个进程 ps aux | ... -
Open VPN免密码配置
2011-03-03 22:55 3589公司VPN的帐号密码使用的是个超长的随机数,每次输入很麻烦,如 ... -
Linux下使用RTX腾讯通
2011-03-03 22:46 10751在公司为了使用RTX,专门安装了一个XP的虚拟机,但是这个也不 ... -
[zz]linux 常用命令总结:
2010-12-11 21:30 1663linux 常用命令总结: 一。 通用命令: 1. dat ... -
Ubuntu10.10解决Empathy无法链接MSN的问题
2010-10-21 16:36 37261.在Empathy中删除无法登录的MSN账户,并关闭Empa ... -
[zz]Vim的分屏功能
2010-10-21 13:09 1662分屏启动Vim 使用大写 ... -
Ubuntu10.10 64bit使用Eclipse插件subclipse问题
2010-10-20 20:32 1943升级到ubuntu10.10什么坑都碰到了,郁闷啊。发现sub ... -
scim输入法,Eclipse代码提示之后失去焦点的问题
2010-10-20 13:36 3062突然发现Eclipse,每次代码提示之后无法打字,感觉是文本域 ... -
Linux下使用谷歌输入法
2010-10-18 23:01 3100Linux的中文输入法一直太烂,scim终于出来对google ...
相关推荐
Bash是GNU项目的一部分,是自由软件基金会(Free Software Foundation)维护的一个 Unix shell。Bash是Unix shell的免费实现,兼容 Unix shell的所有功能,并且添加了一些新的功能。 2. Shell是什么? Shell是一个...
bash 官方手册是 GNU 项目的一部分,由 Chet Ramey 和 Brian Fox 编写,提供了 Bash shell 的详细参考手册。该手册涵盖了 Bash shell 的所有方面,包括基本语法、shell 操作、变量、命令、函数、流程控制、文件描述...
实现一个简单的bash,希望给大家有所帮助。。
linux 服务器GNU Bash小于版本4.3有操作系统命令注入漏洞,需要对bash升级,下载解压 #tar zxvf bash-4.4.tar.gz #cd bash-4.4 #./configure (如果centos7编译失败,请先安装#yum install gcc) #make #make ...
BASH官方文档,BASH官方文档,BASH官方文档
bash 入门经典 不可不看哦 bash 入门经典 不可不看哦 bash 入门经典 不可不看哦
RHCERHCE bash RHCE bash RHCE bash RHCE bash RHCE bash RHCE bash RHCE bash bash
Bash Infinity是bash的一个现代的样板/框架/标准库
第一张:bash 基础。 第二章:命令行编辑。 第三章:定制用户环境。 第四章:基础 shell 编程。 第五章:流程控制。 第六章:命令行选项和有类型变量。 第七章:输入 / 输出和命令行处理。 第八章:进程处理。 第九...
官方的bash手册 讲述bash脚本语法规范 和linux相关配置 很好的资料
Bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令。Bash还能从文件中读取命令,这样的文件称为脚本。和其他Unix shell 一样,它支持文件名替换(通配符匹配)、管道、here文档、命令替换、...
bash-3.0-27.0.3.el4.i386.rpm bash-debuginfo-3.0-27.el4.4.i386.rpm 2、rhel 4.x 64位 bash-3.0-27.el4.x86_64.rpm bash-debuginfo-3.0-27.el4.4.x86_64.rpm 3、centos5.x_32 bash-3.2-33.el5.1.i386.rpm bash-3.2...
Bash使用
redhat bash漏洞补丁包含文件:bash-4.1.2-15.el6_5.2.i686.rpmbash-4.1.2-15.el6_5.2.x86_64.rpmbash-3.0-27.el4.i386.rpmbash-3.0-27.el4.x86_64.rpmbash-3.2-33.el5_11.4.i386.r... redhat bash漏洞补丁 包含文件...
bash.bash_logout888
bash-assert 一个轻量级的bash单元测试框架
git-bash.exe
一行bash命令集合的仓库
bash入门学习实例
鉴于目前绝大部分服务器因为没有注册的yum或者因不通外网等问题导致无法使用yum update -y bash 命令进行漏洞修复,如采用RPM包升级修复漏洞又存在各服务器系统有的是32位有的是64位或者bash的版本不一样导致需要...