Shell 及小技巧
文章平均质量分 64
unbutun
这个作者很懒,什么都没留下…
展开
-
bash 使用vim编辑模式
set -o vi按ESC之后就可以使用vim的快捷键了,编辑完按ESC退出.---------------------------------------------------------------------------.| ||转载 2012-04-21 08:20:39 · 1066 阅读 · 0 评论 -
SHELL脚本的基础知识5——显示数据
一、输入和输出1、标准文件描述符<br />每个进程中最多可以有9个打开文件的描述符:0——stdin,1——stdout,2——stderr。<br />(1)STDIN<br /> 对于终端,stdin就是键盘。<br /> 使用输入重定向符号(<)时,就将使用重定向引用的文件替换标准的输入文件描述符。<br />(2)STDOUT<br /> 对于终端,stdout就是显示器。<br /> 使用输出重定向符号(>)时,就将使用重定向引用的文件替换标准的输出文件描述符。<转载 2011-04-21 20:22:00 · 685 阅读 · 0 评论 -
SHELL脚本的基础知识——处理用户输入
<br />当脚本需要与运行脚本的人员进行交互。<br />bash shell提供了命令行参数(添加在命令后面的数据值)、命令行选项(修改命令行为的单字符值)和直接读取键盘输入。<br /> 1、命令行参数<br />向shell脚本传递数据的最基本方式是使用命令行参数。(1)读取参数<br /> 读取输入的参数的变量为位置参数,位置参数通过标准数字表示,<br /> 其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数。<br /> shell脚本自动将命令转载 2011-04-21 20:22:00 · 1159 阅读 · 0 评论 -
SHELL脚本的基础知识2——使用结构化命令
<br />结构化命令:允许脚本根据变量值的条件或者其他命令的结果跳过一些命令或者循环执行这些命令1、使用if_then语句<br />if command<br />then<br /> commands<br />fi<br />先运行if后面的命令,如果命令的退出状态是0(成功执行命令),就将执行then后面,fi前面的所有命令。否则就跳到fi后面继续执行。2、if-then-else语句<br />if command<br />then<br /> commands<br />els转载 2011-04-21 20:20:00 · 276 阅读 · 0 评论 -
shell脚本的基础知识1:基本脚本的编译
1、使用多条命令<br /> 多个命令一起运行,只需要输入到同一行中,中间用分号隔开。<br /> ex: data ; who2、创建脚本文件<br /> (1)以#!/bin/bash为第一行<br /> (2)#加注释。<br /> (3)每行以回车结束<br /> (4)chmod +x 对脚本文件赋执行权<br /> (5)带路径进行调用3、显示消息<br /> 在shell脚本中需要显示额外信息的任何位置都可以添加echo语句4、使用变量<br />(1)环境变量转载 2011-04-21 20:19:00 · 423 阅读 · 0 评论 -
grep搜索子目录中包含某字符串的特定文件
<br />比如,我想搜源码目录src下,包含“niuc”的所有ec文件<br />find ./src -name '*.ec' -exec grep -i niuc {} /; -print<br /> <br /> <br />在特定文件中grep某关键字,除了使用find 命令加exec选项之外,其实还有更简单的方法:<br />grep -R --include="*.cpp" key dir<br />上述命令的含义:<br />在dir目录下递归查找所有.cpp文件中的关键字key<br />转载 2011-04-15 20:41:00 · 28274 阅读 · 0 评论 -
set -- 设置 shell 选项
<br />set 是 shell 内置命令之一,它可以用来设置 shell 的相关选项以及环境变量等。当运行不带任何参数的 set 命令时,会列出所有的变量。<br /><br />下面是 set 命令的一些选项:<br /><br />-n :只读取脚本,但不实际执行。<br />这个选项常用于在脚本的调试阶段发现脚本中的语法错误,像 make 一个 Makefile 文件时,经常也会用到此选项。比如 make -n ,又如 sh -n example.sh ,这里实际上都是调用了 set 这个选项。如转载 2011-05-31 20:59:00 · 528 阅读 · 0 评论 -
批量改名
<br />find . -name "*-git.so" | sed -e 's//(.*/)-git.so/mv & /1/g' | bash转载 2011-05-27 20:10:00 · 269 阅读 · 0 评论 -
awk 用法小结 - - - by ruson 2006.4 NTU
<br />awk 用法小结 - - - by ruson 2006.4 NTU <br /> <br />1. awk 非常适合于结构化的文本文件(行、列数据)复杂处理。相对于 sed 而言,它可进<br />行复杂的编程处理,并且可以产生复杂的报表输出。 <br />2. awk 通常有三个版本,旧 awk、nawk(新) 、gawk。Solaris 下建议用 nawk,因为旧 awk<br />有很多功能不支持,例如数学运算幂 ^ ,函数getline,system等。 <br />3. 基本语法:转载 2011-05-26 20:25:00 · 7088 阅读 · 0 评论 -
awk文本处理总结(入门,中级,高级)
<br />awk处理文本总结 - Alex.Wang 2008-2-19 15:55<br />作为技术支持工程师,我们最最经常的工作就是要处理文本文件,不管是什么数据库最后都可以导成文本,我们就可以对他进行处理了,这样即使你不是对所有数据库操作都很熟悉,也可以对他的数据进行处理了。<br />我们必须的工具有两个:一个是shell,一个是awk。awk对于处理文本文件是最最适合的,掌握了awk我们就可以很方便的处理文本文件;再借助一些shell命令,我们可以很方便得到自己想要的结果转载 2011-05-13 20:45:00 · 333 阅读 · 0 评论 -
学习 Linux,101: 使用正则表达式搜索文本文件
<br />本文深入介绍基础的 Linux 进程管理技术。您将学习如何:创建简单的正则表达式使用正则表达式搜索文件和文件系统使用正则表达式和 sed<br />本文帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试的 103 主题下的 103.7 考核目标。该考核目标的权值为 2。<br />先决条件<br />为了从本文获得最大的收益,您应该具备基础的 Linux 知识,并且具有一个能够正常运行的 Lin转载 2011-05-10 23:27:00 · 389 阅读 · 0 评论 -
全面分析Linux正则表达式(六)
<br />通过前面几篇文章的介绍我们对Linux正则表达式应该有了一个相对较全面的认识,对于Linux正则表达式具体应该怎么用,现在让我们接触一个学习正则表达式时方便测试使用的工具,并介绍一些正则表达式的编写思路。<br />一个学习正则表达式的便捷工具<br />学习正则表达式最好的方法当然是实践,不过支持正则表达式的工具虽多,但如果仅仅用来做练习却不是很方便。<br />这里我向一家推荐一款专门的正则表达式编写测试工具,PHPEdit公司的Regular Expression Editor工具。这是一转载 2011-05-10 23:16:00 · 377 阅读 · 0 评论 -
SHELL脚本的基础知识3——更多结构化命令
<br />for,while,until1、for命令<br />for var in list<br />do<br /> commands<br />done <br />在参数list中提供一系列用于迭代的值。(1)读取列表中的值<br />var取本次循环中的list中的值。而且出了循环后,变量var还保留最后一次循环的值,可以继续使用。(2)读取列表中的复杂值<br />问题1:<br />当列表值当中有单引号,就会试图用它们来定义一个单独的数据值<br />有两种方法解决这个问题:<转载 2011-04-21 20:21:00 · 445 阅读 · 0 评论 -
I/O重定向 详解及例子!
<br />不好意思,今天发现高阶例子的解释中有个错误,同时也修改了一下全文。(2004-4-18)<br /><br /> 首先,感谢网中人、r2007、lightspeed等诸位前辈的无私指导!以下的一些结论可能有错,还请各位前辈多多指点,我会及时更正!<br /><br />1、基本概念<br /> a、I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9;<br /> b、常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错转载 2011-04-28 23:06:00 · 281 阅读 · 0 评论 -
判断变量是全数字
test_num.sh #!/bin/sh file_size=128input_num="$(echo "$1" | sed -n "/^[0-9]/+$/p")" if [ -n "$input_num" ];then echo "Input is the number!" file_size="$1" ec转载 2011-06-26 11:46:00 · 197 阅读 · 0 评论 -
强烈推荐–将GUI配色转化为终端配色的VIM插件–gui2term.py
前几天,依云兄在我博客上推荐了一款插件gui2term.py,用了之后立马叫好,苦于一直没有时间,所以今天特意推荐一下。这款插件实现了将gvim的配色转化成终端配色的解决方案。下载链接相信不少朋友和我一样,需要在windows和终端下同时工作,而工具都是vim,所以,保持配色的相同就显得非常重要啦!我们拿著名的desert配色来测试一下:1.把desert.vim改成 test转载 2012-04-29 13:15:54 · 1102 阅读 · 0 评论 -
裁掉不需要的c代码工具
unifdef 命令 用途 从文件中除去 ifdef 行。 语法unifdef [ -t ] [ -l ] [ -c ] [ -DSymbol ] [ -USymbol ] [ -idSymbol ] [ -iuSymbol ] [ File ] 描述 unifdef 命令用于除去文件中的转载 2011-12-08 19:43:48 · 636 阅读 · 0 评论 -
linux 下查看文件的编码格式及修改编码
首先我们如何知道文件的编码格式呢,在 vim 里 命令 :set fileencoding 可以查看,同时 :set fileencoding=utf-8 可以设置文件的编码格式,保存后就可以了。 涉及到1.vim 中的显示和转换 :set fileencoding转载 2011-08-28 21:21:37 · 696 阅读 · 0 评论 -
《sort命令的k选项大讨论》-linux命令五分钟系列之二十七
正文开始]有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思。今天,我们就来搞定它—-k选项!1 准备素材$ cat facebook.txtgoogle 110 5000baidu 100 5000转载 2011-09-03 07:28:01 · 269 阅读 · 0 评论 -
学几个bash快捷键
用快捷键,有两个好处:1 成就感!2 效率!停下手里活,学点一举两得的小技能,保证五分钟搞定!“棕色粗体”表示“我推荐的”!Ctrl-A 相当于HOME键,用于将光标定位到本行最前面Ctrl-E 相当于End键,即将光标移动到本行末尾Ctrl-B转载 2011-09-03 07:37:13 · 349 阅读 · 0 评论 -
linux shell 快捷键
方向 <-前 后 ->删除ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dlctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dhctrl + k 删除光标后面所有字符相当于VIM里d shift+$ctrl + u 删除光标前面所有字符相当于VIM转载 2011-07-18 22:21:28 · 312 阅读 · 0 评论 -
Bash_scripting_Tutorial
http://linuxconfig.org/Bash_scripting_Tutorial转载 2011-07-13 21:51:25 · 254 阅读 · 0 评论 -
set -- $line 怎么理解
man bash: you will find below-- If no arguments follow this option, then the positional parameters are unset. Otherwise, the positi转载 2011-07-13 21:03:16 · 528 阅读 · 0 评论 -
shell中set命令详解
使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.当BASH转载 2011-07-13 20:54:59 · 1314 阅读 · 0 评论 -
Bash Brace Expansion Tutorial: 6 Examples of Expanding Expressions within Braces
One of the operation of the shell when it analyzes the input is Shell expansion. Bash provides different types of expansion. In this article转载 2011-07-09 08:38:12 · 280 阅读 · 0 评论 -
UNIX和LINUX系统的SHELL正则表达式语法
<br />一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 <br /><br /> / <br /><br /> 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'/n' 匹配一个换行符。序列 '//' 匹配 "/" 而 "/(" 则匹配 "("。 <br /><br /转载 2011-05-10 23:18:00 · 256 阅读 · 0 评论 -
全面分析Linux正则表达式(五)
<br />在前面几篇文章中,我们介绍了Linux正则表达式的子模式,逆向引用和量词,在这篇文章里,我们将重点介绍正则表达式中的断言(Assertions)。 Linux正则表达式断言可能开始理解起来有些困难,我们应该加以重点分析。<br />断言(Assertions)<br />断言(Assertions)是在目标字符串的当前匹配位置进行的一种测试但这种测试并不占用目标字符串,也即不会移动模式在目标字符串中的当前匹配位置。<br />读起来似乎有点拗口,我们还是举几个简单的例子。<br />两个最常见的转载 2011-05-10 23:13:00 · 299 阅读 · 0 评论 -
全面分析Linux正则表达式(一)
<br />正则表达式现在应用十分的广泛,出现在UNIX/Linux相关的各种领域和多种编程语言里。Linux系统管理员应该熟悉这些表达式。从常见的shell命令到大名鼎鼎的Perl语言再到当前非常流行的PHP,它都扮演着一个重要的角色。甚至windows的命令行控制台也支持正则表达式。<br />可以说,它是学好Linux/UNIX必需掌握的一个知识点,否则你连Linux的启动脚本都读不懂。偏偏它又的确有点晦涩难懂,而且相关的资料又大部分是英文,更为它的学习增加了几多困难。即使有些中文的翻译资料,不同的译转载 2011-05-10 23:06:00 · 704 阅读 · 0 评论 -
全面分析Linux正则表达式(三)
<br />Linux正则表达式的模式修正符与元字符在前面两篇我们已经介绍了,因为网上现有的正则表达式资料都对这部分都有详细的介绍和众多的例子,如果觉得对前一部分缺乏了解可以参看这些资料。本文希望可以尽可能多涉及一些较高级的正则表达式特性。 <br />在本文里,我们主要介绍Linux正则表达式的子模式(subpatterns),逆向引用(Back references)和量词(quantifiers),其中重点介绍对这些概念的一些扩展应用,例如子模式中的非捕获子模式,量词匹配时的greedy与ungree转载 2011-05-10 23:11:00 · 518 阅读 · 0 评论 -
一起 top 详解
知道用这个top命令了,但其中的很多信息代表什么含义却不太清楚,希望高手指正补充:lol下面是一个top命令的显示信息,我解释一下。------------------------------------------------------------------------------------------------------------------------------转载 2009-12-10 17:02:00 · 239 阅读 · 0 评论 -
把生成多目录下文件生成到同一patch中,并不是比较目录
很简单,对第一个文件生成patch,剩下的追加到那个patch文件中即可。[root@localhost patch]# diff a/b/a c/b/a -Nur > patch[root@localhost patch]# diff a/b/b c/b/b -Nur >> patch原创 2009-12-09 09:40:00 · 266 阅读 · 0 评论 -
kernel source里的indent脚本,可以直接拿过来用
inux kernel有一个脚本Lindent,可以帮助你将自己的代码做一个好的代码风格格式化。 如:/usr/src/linux-headers-2.6.22-14/scripts/Lindent 它使用了indent命令来对code做优化。 indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs 参数说明: -转载 2009-12-09 09:51:00 · 354 阅读 · 0 评论 -
initrd不能mount的问题解决
将initrd解压之后,使用如下命令挂载initrd, mount -o loop initrd-2.6.16.37-0.9-smp /mnt/loop 却发现不能挂载,命令行显示了如下错误信息: mount: you must specify the filesystem type 在网上查了半天发现人家都说用这个命令,为啥偶却不行呢?指定文件系统类型也不管用.转载 2009-12-04 10:05:00 · 344 阅读 · 0 评论 -
screen命令使用介绍
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。screen命令介绍 1. $:screen 创建一个screen2. $:screen -ls 显示所有转载 2009-11-20 17:21:00 · 220 阅读 · 0 评论 -
NIS+NFS+autofs实现NIS账号的登录
1:环境在NIS中,由于账户的在服务器端,而且它的主目录,因为在添加账号的时候只在服务器上有,而在客户端没有该账户的目录,每次登陆的时候,会导致找不到主目录。这里就需要结合NFS和AutoFS技术来实现登录自动找到账户前面的NIS和NFS的解释就不做过多的详解192.168.76.131 Master.com192.168.76.132 Slave.com192.168.81.35转载 2009-11-17 15:09:00 · 486 阅读 · 0 评论 -
Shell 中的特殊字符
作者: zccst Shell 除了作为命令解释程序以外,还是一种高级程序设计语言。利用 Shell 程序设计语言可以编写出功能很强、但代码简单的程序。 建立 Shell 过程的步骤同建立普通文本文件相同,利用编辑器(如 vi 或 gedit )进行程序录入和编辑加工。 执行 Shell 过程的方式主要有以下 3 种。 ( 1 )输入定向到 Shell转载 2009-11-18 14:21:00 · 307 阅读 · 0 评论 -
Unix Shell Scripting之'扫盲篇'
俗话说:"工欲善其事,必先利其器"。在Unix/Linux上做开发,这里的器也同样包括Unix Shell Script,遗憾亚,虽然自己在Unix上开发已经快2年了,但是对Unix Shell Script可以说是Script盲一个,很多稍微复杂些的Script自己根本都看不懂。其实这也是自己栽下的苦果,因为以前我一直歧视Script language,认为那不是真正程序员该精通转载 2010-01-12 20:15:00 · 535 阅读 · 0 评论 -
doxygen
使用 Doxygen 制作 C 程序文档LiYanrui posted @ 大约 1 年前 in 程序设计 with tags doxygen c , 5379 阅读 Doxygen 文档的模块化 目前,网上所能搜到 Doxygen 资料,大都是介绍 C++ 程序文档生成的,对于 C 程序的文档生成鲜有记述。由于我们的项目主要是采用 C 语言实现,这两天在学习使用 Doxyge转载 2010-01-13 21:01:00 · 1974 阅读 · 0 评论 -
shell 小技巧汇总
shell里输入回车引用:最初由 KanKer 发表我这里echo不行。[abc@abc abc]$ echo "/n"/n[abc@abc abc]$ printf "/n"呵呵,用printf可以:) bash:echo -e "/n"如何在Linux 让Telnet root用户可以登入 telnet 不是很安全,默认的情况之下不允许转载 2009-11-10 19:46:00 · 537 阅读 · 0 评论 -
crontab 的格式备忘
经常用,但是经常忘记,基本的格式能记得,但是详细的或者复杂点的格式总会忘记或者拿不准,不知道是不是年纪大了记忆力下降,干脆整理出来今后方便查看。基本格式 :* * * * * command分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星转载 2009-12-22 11:12:00 · 673 阅读 · 0 评论