
shell与Unix工具
文章平均质量分 55
yk__peng
用心生活。。。
展开
-
Linux Sed使用
作者:Jims of 肥肥世家jims.yang@gmail.com>Copyright © 2004,2005, 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。发布时间:2004年09月20日最近更新:2005年12月22日,增加小技巧章节。Table o转载 2013-09-22 11:34:05 · 917 阅读 · 0 评论 -
Shell脚本结构流程控制
1. 分支与判定if分支if then fiif then else fiif then elif then else ficase分支case语句case test-string inpattern1) operation1;;pattern2) operation2;;pattern3) operation3;;pattern转载 2014-03-03 09:31:18 · 1217 阅读 · 0 评论 -
shell中&&和||的使用方法
shell中&&和||的使用方法&&运算符: command1 && command2 &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。 语法格式如下: command1 && command2 [&& command3转载 2014-03-03 10:21:14 · 104820 阅读 · 3 评论 -
shell中的特殊符号
在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `comm转载 2014-03-03 10:31:07 · 1052 阅读 · 0 评论 -
linux终端颜色字体
在调试程序时,有时候要输出大量数据,如果让printf/fprintf改变输出数据的颜色,那观察数据就方便多了。终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, 用八进制表示的 033)。printf("\033[字背景颜色;字体颜转载 2015-02-11 21:41:34 · 830 阅读 · 0 评论 -
xargs将stdin转换为命令行参数
我们可以用管道将一个命令的stdout(标准输出)重定向到另一个命令的stdin(标准输入)。例如:$cat foo.txt | grep “test” 但是,有些命令只能以命令行参数的形式接受收据,而无法通过stdin接受数据流。在这种情况下,我们没法用管道来提供那些只有通过命令行参数才能提供的数据。 只有另辟蹊径。xargs是一个很有用的命令,它擅长将标准原创 2015-08-11 16:36:09 · 1645 阅读 · 0 评论 -
理解make中的export
/home/student/Makefile:a = $(shell pwd)export aall:@echo $(a)@make -C tt/home/student/tt/Makefile:b = $(shell pwd)all:@echo $(a)@echo $(b)在/home/student下make 。结果原创 2013-10-30 20:21:54 · 2324 阅读 · 0 评论 -
find命令常用
find是UNIX/Linux命令行工具箱中最棒的工具之一。这个命令对编写shell脚本很有帮助。find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。1. 根据文件名或正则表达式匹配搜索选项-name的参数指定了文件名所必须匹配的字符串。我们可以将通配符最为参数使用。*.txt能够匹配所有的.txt结尾的文件名。选项-print在终端中打印符原创 2015-08-11 15:18:43 · 4804 阅读 · 0 评论 -
sed,非交互式流编辑器
语法: sed [ -n ] 'command' [ file ... ] sed [ -n ] -e ‘command’ ... [ file ... ] sed [ -n ] -f script-file ... [ file ... ]sed命令 命令 功能 a\原创 2013-11-13 20:54:15 · 1042 阅读 · 0 评论 -
理解make的解析行为
第一阶段:make读入所有的makefile,以及makefile中所包含的其他makefilemake分析并获取变量名,变量值,隐式规则和显示规则构建所有目标的关系树,以及他们的先决条件第二阶段:接着就是执行命令了(基于第一阶段的关系树,确定需要重新构建的目标)理解make处理makefile的两个阶段对于熟练地编写makefile非常重要。makef原创 2013-10-30 21:02:19 · 1089 阅读 · 0 评论 -
unix进程系统调用的追踪
当你执行未知程序时,就表示你所做的这件事对系统可能造成危险。计算机病毒与蠕虫经常是以此方式散布。如果程序时脚本,你便能进入一窥究竟。但如果它是像黑盒子一般的二进制影像文件,你就无从得知它的行行为了。这类程序通常会让用户觉得不安,我们多半不会以root的身份执行它。这时,有一个能追踪系统调用的日志就很有用了,它可以帮助你找出安装程序究竟做了些什么。就算你太晚知道而不乏恢复已删除的或已原创 2016-05-25 21:28:55 · 706 阅读 · 0 评论 -
自学Linux命令的四种方法
如果你想成为Linux高手,那么掌握一些Linux命令是必不可少的。下面是自学Linux命令的四种方法。每日提示学习Linux命令的一种渐进式方法是:在每次打开终端时,让它显示“每日提示”。这会向你介绍一些有用的命令及其高级使用技巧。在.bashrc中(/home/.bashrc)增加如下一行:转载 2014-02-25 10:22:52 · 828 阅读 · 0 评论 -
shell额外的重定向运算符
使用set -C搭配POSIX Shell提供了防止文件意外截断的选项:执行set -C命令可打开Shell所谓的禁止覆盖(noclobber),当它在打开状态下时,单纯的>重定向遇到目标文件已存在时,就会失败。 >|运算符则可令noclobber选项失效。行内输入(inline input)的shell的here document用法.(Here Docu原创 2013-11-21 11:03:13 · 1173 阅读 · 0 评论 -
用grep过滤空行
利用两点:正则表达式^$可以用来匹配空的字符串或行。grep的-v选项可以用来显示所有不匹配于模式的行。例如。C源代码在记过处理后,变成了#include文件和#define宏时,这种用法就很有用了,因为这样一来就可以了解C编辑器实际上看到的是什么(这是一种初级的调试方法,但有时就是要这么做)。扩展文件里的头时常包含的空白或空行通常会比原始代码更多,$cc -E foo.c原创 2013-11-12 19:31:23 · 17766 阅读 · 0 评论 -
set env export区别
set,env和export这三个命令的区别set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成用户变量的shell变量 每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同转载 2013-09-24 10:52:36 · 1318 阅读 · 0 评论 -
重要的shell命令
现今UNIX系统都随附相当多的命令。很多有特殊用途,也有很多是日常处理使用的。日常使用没必要用到那么多命令。尽可能的找出有用的命令,也就是UNIX的用户程序设计人员首先应了解的那些,做个简单介绍。bash GNU 计划的Bourne-Again Shellksh Korn Shell—原创 2013-11-14 11:19:22 · 1226 阅读 · 0 评论 -
tr命令
1. tr 命令的功能tr命名是简化了的sed命令。其主要的功能包括:a. 用一个字符来替换另外一个字符。b. 删除字符串中的指定子串。c. 合并字符串中重复串。2. 常见的命令格式:tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] -c 用字符串1中字符集的补集替换此字符集,转载 2013-11-10 21:06:18 · 854 阅读 · 0 评论 -
对shell命令执行简单的跟踪
程序是人写的,难免会出错。一个好的方法是将跟踪功能(execution tracing)打开。这会使得shell显示每个被执行的命令,并在前面加上“+ ”: 一个加号后面跟着一个空格。(你可以通过给Shell变量PS4赋一个新值以改变打印方式)例如:(调用shell时,使用-x参数)$sh -x 脚本 打开执行跟踪功能原创 2013-11-11 12:12:42 · 3055 阅读 · 0 评论 -
PATH变量
将个人的bin目录附加到PATH:$PATH=$PATH:$HOME/bin要让修改永久生效,在.profile文件中把你的bin目录加入$PATH,而每次登入时Shell都将读取.profile文件$PATH里的空项目(empty component)表示当前目录(current directory)。空项目位于路径值中间时,可以用两个连续的冒号来表示。如果将冒号直接原创 2013-11-11 09:49:53 · 999 阅读 · 0 评论 -
shell变量基础
在shell的世界里,变量可以是(而且通常是)空值,也就是不含任何字符。这是合理的,也是常见的,好用的特性。shell变量名称是一个字母或下划线,后面可以接任意长度的字母,数字或下划线。变量名称的字符长度并无限制。shell变量可以保存字符串,所保存的字符数同样没限制。Bourne Shell是少数几个早期的UNIX程序里,遵循不限制设计原则的程序之一。变量赋值的方原创 2013-11-11 12:29:59 · 891 阅读 · 0 评论 -
shell基础
不需要参数的选项可以合并,例如:ls -lt main.c比ls -l -t main.c更方便(后面当然也可以,只是得多谢录入)长选项的使用越来越普遍,特别是标准的GNU版本长选项的开头是一个破折号还是两个,视程序而定。分号(;)可用来分隔同一行里的多条命令。Shell会一次执行这些命令。如果你使用的是&符号而不是分号,则shell将在后台执行其前面的命令,原创 2013-11-11 12:50:08 · 848 阅读 · 0 评论 -
grep,查找文本
grep可以在两种正则表达式中选择一种,或是执行简单的字符匹配。传统上,有三种程序,可以用来查找整个文本文件:grep 最早的文本匹配程序。使用POSIX定义的基本正则表达式(Basic Regular Expression,BRE)egrep 扩展式grep(Extended grep)。使用扩展的正则表达式(Extended Regula原创 2013-11-11 16:28:01 · 1101 阅读 · 0 评论 -
如何访问Shell脚本的参数
所谓的位置参数指的也就是shell脚本的命令行参数。在shell的世界里,它们同时也可以是函数的参数。各参数都由整数来命名。基于历史原因,当它超过9时,就应该用大括号把数字框起来。echo first arg is $1echo tenth arg is ${10}此外通过特殊变量,还可以取得参数的总数,以及一次取得所有参数。$# 提供传递到s原创 2013-11-12 10:08:12 · 795 阅读 · 0 评论 -
特殊文件:/dev/null与/dev/tty
UNIX提供了两个对编程特别有用的特殊文件。第一个是/dev/null,就是大家所熟知的位桶(bit bucket)。传送到此文件的数据都会被系统丢掉。也就是说,当程序将数据写到此文件时,会认为它已成功完成写入数据操作,但实际上什么事都没做。如果你需要的是命令的退出状态,而非它的输出,此功能会很有用。相对的,读取/dev/null则会立即返回文件结束符(end-of-file)。另一个原创 2013-11-11 21:16:20 · 1005 阅读 · 0 评论 -
shell终端中断前台进程
有4组键盘符可用以中断前台进程(foreground processes)。这些字符都可通过stty命令选项而设置,通常为Ctrl-C(intr:杀除)、Ctrl-Y(dsusp:暂时搁置,直到输入更新为止)、Ctrl-Z(susp:暂时搁置),与Ctrl-\(quit:以核心转储core dump方式杀除)原创 2016-05-25 21:07:50 · 1169 阅读 · 0 评论