- 浏览: 1656338 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1600分屏启动Vim 使用大写 ... -
bash的几种for循环
2012-04-26 11:13 18561、罗列式 for VARIABLE in 1 2 3 ... -
【zz】几个简单选项让你的Readline(Bash)更好用
2011-10-10 23:08 2426Reddit上的一位仁兄贴出了他的readline手册学习成果 ... -
pipe in -exec
2011-09-27 22:35 1430一个简单的例子: 将一堆的.txt文件,合并成一个文件,让每个 ... -
[zz]Unix调试的瑞士军刀:lsof
2011-08-31 10:33 1505原文见:http://heikezhi.com/2011/06 ... -
[zz]关于xargs,你可能不知道的
2011-08-29 23:05 2480如果你曾经花了许多时间在Unix命令行上,那么或许你已经见过x ... -
使用scala.sys.process包和系统交互
2011-07-19 00:00 6498在Java中我们可以使用Runtime.getRuntime( ... -
virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法
2011-06-23 22:17 14475在笔记本安装Ubuntu11.04增强功能失败 引用 fuli ... -
awk getline
2011-06-02 23:58 5842awk getline开始一直用做按行读取文件。 getlin ... -
[zz]服务器性能评估
2011-04-29 14:17 4028工作这么久了,主 ... -
[zz]Top命令VIRT,RES,SHR,DATA的含义
2011-04-10 15:50 4130VIRT:virtual memory usage ... -
[zz]一些shell命令
2011-04-10 15:35 15111.显示消耗内存/CPU最多的10个进程 ps aux | ... -
Open VPN免密码配置
2011-03-03 22:55 3589公司VPN的帐号密码使用的是个超长的随机数,每次输入很麻烦,如 ... -
Linux下使用RTX腾讯通
2011-03-03 22:46 10790在公司为了使用RTX,专门安装了一个XP的虚拟机,但是这个也不 ... -
[zz]linux 常用命令总结:
2010-12-11 21:30 1694linux 常用命令总结: 一。 通用命令: 1. dat ... -
Ubuntu10.10解决Empathy无法链接MSN的问题
2010-10-21 16:36 37551.在Empathy中删除无法登录的MSN账户,并关闭Empa ... -
[zz]Vim的分屏功能
2010-10-21 13:09 1702分屏启动Vim 使用大写 ... -
Ubuntu10.10 64bit使用Eclipse插件subclipse问题
2010-10-20 20:32 1968升级到ubuntu10.10什么坑都碰到了,郁闷啊。发现sub ... -
scim输入法,Eclipse代码提示之后失去焦点的问题
2010-10-20 13:36 3092突然发现Eclipse,每次代码提示之后无法打字,感觉是文本域 ... -
Linux下使用谷歌输入法
2010-10-18 23:01 3142Linux的中文输入法一直太烂,scim终于出来对google ...
相关推荐
Bash是GNU项目的一部分,是自由软件基金会(Free Software Foundation)维护的一个 Unix shell。Bash是Unix shell的免费实现,兼容 Unix shell的所有功能,并且添加了一些新的功能。 2. Shell是什么? Shell是一个...
在Linux和Unix系统中,Bash(Bourne-Again SHell)是一种广泛使用的命令行解释器,也是系统的默认shell。它提供了用户与操作系统交互的界面,并允许编写脚本执行一系列命令。本教程将深入讲解如何实现一个简单的Bash...
bash 官方手册是 GNU 项目的一部分,由 Chet Ramey 和 Brian Fox 编写,提供了 Bash shell 的详细参考手册。该手册涵盖了 Bash shell 的所有方面,包括基本语法、shell 操作、变量、命令、函数、流程控制、文件描述...
bash 是一种广泛使用的 shellcript 语言,主要应用于 Linux 操作系统中。下面是 bash 的一些重要知识点: 一、什么是 shell shell 是 Linux 系统中,用户和内核之间的交互程序。它翻译用户输入的命令,并将其...
在IT行业中,文本编辑器是开发者和系统管理员的得力工具,它们提供了高效编写和管理代码的功能。...这对于那些频繁使用Bash进行系统管理和自动化任务的IT专业人士来说,无疑是一个非常有价值的工具。
Bash 4.4是其一个重要版本,带来了多项改进和新功能。在旧版本中,特别是低版本的Bash,存在一个名为“Shellshock”的安全漏洞,这个漏洞允许攻击者通过精心构造的环境变量来执行任意代码,对系统安全构成威胁。因此...
在AIX 6.1中,bash-4.2-1.aix6.1.ppc是一个重要的更新,因为Bash的版本升级通常会带来性能提升、新特性和安全性改进。PPC代表PowerPC,这是IBM AIX操作系统支持的一种处理器架构。安装这个包意味着你可以享受到Bash ...
“bash v203- bash的windows本地实现” 指的是一个在Windows操作系统上运行的Bash shell版本2.03,它不再依赖于像CygWin这样的模拟Unix环境。这意味着用户可以在Windows系统下直接使用Bash命令行工具,体验与Linux或...
为了解决这个问题,"Python-BashInfinity"应运而生,它是一个现代的Bash样板/框架/标准库,旨在提供更高效、可维护的Bash脚本解决方案。 **1. Bash Infinity的核心理念** Bash Infinity的出现是为了弥补Bash脚本在...
Bash 参考手册是学习和掌握 Bash 的必备资料,为用户提供了一个详尽的指南,涵盖了 Bash 的各种特性和用法。 二、什么是 Bash? Bash 是一个命令语言解释器,同时也是一种脚本编程语言,它允许用户与操作系统进行...
GitBash是一款在Windows操作系统上运行的命令行工具,它为用户提供了类Unix shell环境,以便于使用Git进行版本控制。GitBash包含了Git的所有功能,并且还包含了其他Unix工具,如bash shell、grep、sed、awk等,使得...
它利用Bourne-Again SHell (Bash) —— Linux默认的Shell,来编写一系列可执行的命令,形成一个可执行文件。Shell脚本能够帮助用户简化重复性的任务,提高工作效率。 **壳变量** Shell变量是Bash编程中的关键概念...
**Bash高级编程详解** Bash(Bourne-Again SHell)是Unix/Linux系统中最常用的命令行解释器,也是脚本编程的强大工具...因此,无论你是初学者还是经验丰富的开发者,深入学习Bash都是一个值得投入的时间和精力的投资。
Bash shell脚本可以用于执行一系列命令、进行文件操作、处理文本数据,甚至是实现复杂的逻辑流程控制。 **Bash 程序基础** 1. **Hello World 程序** 初步接触Bash,我们会从经典的Hello World程序开始。创建一个...
高级Bash Shell手册是一本深入讲解Bash特性和用法的权威指南,对于想要提升Bash编程技能的用户来说,这是一份极具价值的资源。 **1. Bash基本概念** Bash不仅用于接收和执行用户在终端输入的命令,还支持脚本编写,...
**Bash**(Bourne Again SHell)作为一款强大的Unix/Linux环境下的命令解释器,被广泛应用于各种操作系统中,尤其是Linux发行版的核心组成部分之一。对于初学者而言,《Linux BASH中文手册》提供了一个详尽的学习...
/bin/bash` 是一个称为“shebang”的行,告诉系统使用哪个解释器来执行脚本。`echo` 命令则用来打印后面的字符串。 ### 实例二:变量与运算 Bash支持变量存储和基本运算。例如,我们可以定义一个变量并进行加法...
作者 Mendel Cooper 和译者杨春敏、黄毅通过这本书,想要提供一个系统化的学习 Bash Script 的方法,让读者能够快速掌握 Shell 编程的技巧和知识。 标题解释 "我觉得最好的Bash Script",这本书的标题表明了作者对...
由于这里提供了一个名为`up4bash5`的压缩包,我们可以假设它已经包含了源码和升级脚本。解压这个文件: ```bash tar -xvf up4bash5 ``` 4. **编译和安装**:进入解压后的目录,并配置、编译和安装`Bash 5.0`: ...
《Bash超酷脚本实例》是一本专为Linux、Mac OS X以及Unix系统爱好者准备的bash编程指南。这本书以其独特的实例吸引着读者,即便是英文版,也因其实用性和趣味性而深受bash编程爱好者的喜爱。通过阅读这本书,你可以...