随笔分类 -  Shell

scp的两种方式
摘要:如果host A 与 host B建立了信任连接(B有A的public key),那么从A向B传送文件,或者从B上传回文件都可以省略密码。但是前提是命令是在A上执行的。从A向B拷贝文件on host Ascp /tmp/file hostB:/home/users/tmp/file从B向A拷贝文件on host Ascp hostB:/home/users/tmp/file /tmp/file总结一下,如果B有A的public key,那么A与B通信皆可以省略密码,但是B与A通信仍需密码,因为A并没有B的public key. 阅读全文

posted @ 2012-04-04 19:00 perlman 阅读(588) 评论(0) 推荐(0) 编辑

在shell帮助文档中搜索内容
摘要:比如想查看ls的-l参数,可以先 man ls,然后再/-l即可。和vi中的搜索一样。 阅读全文

posted @ 2012-03-30 09:45 perlman 阅读(630) 评论(0) 推荐(0) 编辑

Sed one line
摘要:逆序输出文件内容,相当于Linux系统上的tac命令。但是SunOS上好像没有此命令。sed ‘1!G;h;$!d’ file分析:这里== 阅读全文

posted @ 2012-02-16 17:14 perlman 阅读(452) 评论(0) 推荐(0) 编辑

在SunOS上使用awk
摘要:Solaris 默认的awk是原汁原味的老awk没有rand.可以使用nawk代替nawk 'BEGIN{srand();k=rand();print k;}'或者使用/usr/xpg4/bin/awk 阅读全文

posted @ 2012-02-15 13:47 perlman 阅读(761) 评论(0) 推荐(0) 编辑

awk里面不要使用单引号
摘要:因为awk以单引号来界定命令,如下awk '/pattern/{action}' files...所以,在awk中就不要再使用''了,比如下面的代码是无法通过的。awk 'BEGIN { FS=':'; print "name, number, val1, val2, val3\n";}应该写成awk 'BEGIN { FS=":"; print "name, number, val1, val2, val3\n";} 阅读全文

posted @ 2012-02-15 10:17 perlman 阅读(1383) 评论(0) 推荐(0) 编辑

awk例子(一)
摘要:处理文件一个文件data.dat内容如下abcxyzaaarstaaaaaa要求对重复出现的项进行计数,处理后如下。abcxyzaaa_001rstaaa_002aaa_003awk代码如下awk '/^aaa/{printf("%s_%03d\n", $0, ++i);next}{printf("%s\n", $0)}' data.dat分析一下/^aaa/{printf("%s_%03d\n", $0, ++i);next}这部分用来打印重复的项,注意不要忘记next.{printf("%s\n" 阅读全文

posted @ 2012-02-14 17:01 perlman 阅读(485) 评论(0) 推荐(0) 编辑

shell中常用的特殊符号
摘要:http://blog.chinaunix.net/space.php?uid=14647215&do=blog&cuid=482234在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == != 输出/输入重导向> >> & 阅读全文

posted @ 2012-02-14 11:32 perlman 阅读(2131) 评论(0) 推荐(0) 编辑

查看当前使用的shell
摘要:来自 http://rickie622.blog.163.com/blog/static/212388112011213407503/ps |grep $$|awk '{print $4}' (实时)不带参数的ps命令显示和当前终端有关的进程状况$$变量存储当前进程的PIDps第四列是进程所使用的命令,如果是Shell,那么显示shell名,比如sh/ksh等awk '{print $4}'就是只显示第四列的值PS:用echo $SHELL可以查看系统默认的shell查看当前发行版可以使用的shell[jack@localhost ~]$ cat /etc/sh 阅读全文

posted @ 2012-02-14 11:26 perlman 阅读(72086) 评论(0) 推荐(2) 编辑

Source命令
摘要:source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。注:该命令通常用命令“.”来替代。如:source .bash_rc 与 . .bash_rc 是等效的。注意:source命令与shell scripts的区别是,source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。source命令(从 C Shell 而来)是b 阅读全文

posted @ 2012-02-13 15:52 perlman 阅读(22751) 评论(0) 推荐(5) 编辑

Shell语句可以直接写在命令行上
摘要:一般我们都是将Shell命令写在脚本里,其实可以直接写在terminal中执行,比如下面这个for循环。for i in `ls`; do echo "$i\n"; done== 阅读全文

posted @ 2012-02-13 11:16 perlman 阅读(4340) 评论(0) 推荐(0) 编辑

Shell让切换目录更方便
摘要:原文地址 http://www.cnblogs.com/zhengyuxin/articles/1933920.html让切换目录更方便: pushd,popd,dirs,cd -一,为何要使用这几个命令?可能大家会有疑问,为何要使用这几个命令,难道用cd不就可以切换目录了吗?没错,使用cd就可以切换到需要访问的目录,但是有时会是一个路径很长,层次很多的目录,进到此目录下后,这时我们不小心运行了 cd命令,理所当然,我们回到了自己的home目录,这时如果想回去怎么办?还有:因为工作的需要,我们需要不停在几个很深层的目录之间切换,不止一个,那么即使有tab键帮忙,我们也会因为一个cd命令花费很多 阅读全文

posted @ 2012-02-09 11:02 perlman 阅读(10831) 评论(1) 推荐(0) 编辑

常用文本处理方法
摘要:取指定行取第一行sed -n '1p' file-n表示禁止默认的输出,p表示print取前N行sed -n '1,np' file或者head -n 10 file取最后一行sed -n '$p' file$表示最后一行或者tail -1 file取最后N行tail -n file取指定行到最后一行比如一个perl脚本,取定义main函数开始的行一直到最后一行。/sub main/表示main函数所在的行,$表示最后一行。sed -n '/sub main/,$p' test.pl取第M至N行head -N file | tai 阅读全文

posted @ 2012-02-08 15:47 perlman 阅读(1113) 评论(0) 推荐(0) 编辑

Shell编程-变量
摘要:标量定义变量name=valuename是变量名,value是变量的值,比如name=zdd,注意,Shell定义变量的时候不需要加$,而使用变量的时候则需要加$,这点和perl是有区别的,perl定义变量的时候也需要$符号。定义变量的时候要注意以下几点。Shell中的变量只能由字母,数字和下划线组成,且不能以数字开头。如果变量值中含有空格,应该用引号(单引号双引号均可)括起,比如 "Hello world"或'Hello world'。等号左右都没有空格。使用变量访问一个变量的时候只要在其前面加一个$即可,比如echo $name,如果不加$,则显示变量的 阅读全文

posted @ 2012-02-08 14:56 perlman 阅读(15201) 评论(2) 推荐(1) 编辑

Shell调试篇
摘要:检查语法-n选项只做语法检查,而不执行脚本。sh -n script_name.sh启动调试sh -x script_name.sh进入调试模式后,Shell依次执行读入的语句,产生的输出中有的带加号,有的不带,如下。带加号表示该条语句是Shell执行的。不带加号表示该语句是Shell产生的输出。+ array=(1 2 3 4 5)+ for i in '${array[*]}'+ echo 11中断调试在调试过程中可以按Ctrl + Z中断调试,观察结果,然后再按fg键继续调试即可。调试代码块上面的-x选项是调试整个脚本的,如果脚本很大,会很不方便,还有一种方法是调试某一块 阅读全文

posted @ 2012-02-06 10:53 perlman 阅读(26743) 评论(0) 推荐(3) 编辑

find命令
摘要:查找当前目录下用户zdd创建的所有文件find . * -prune -user zdd. 表示当前目录* 表示所有文件-prune 表示只处理当前目录,不处理子目录。这种方法查找到的文件包含file和directory,如果只想显示file,不显示directory,可以使用-type参数。find . * -prune -user zdd -type f删除目录aaa下所有由用户xyz创建的文件方法一find ./aaa -user uuu -type f | xargs rm方法二find ./abc -user xyz -type f -exec rm {} \;方法三ls -l .. 阅读全文

posted @ 2012-02-02 12:38 perlman 阅读(716) 评论(0) 推荐(0) 编辑

Shell编程-awk
摘要:简介awk 是一种对立的编程语言,集成于所有UNIX/Linux中,这个名字是它创建者的名字首字母组成的 Alfred Aho,Peter Weinberger, and Brian Kernighan。awk的基本语法普通模式awk '/pattern/{action}' files其中patter是一个正则表达式,action又是一系列命令,对于满足匹配的文本执行一些动作,files表示待操作的文件,如果不指定,则输入是STDIN。如果不指定pattern,则对所有文件的每一行都执行action。表达式模式当在awk中使用比较操作符时,使用下面的语法模式,详见后面。awk 阅读全文

posted @ 2012-02-02 09:20 perlman 阅读(17054) 评论(0) 推荐(4) 编辑

Shell编程-Sed
摘要:sed - stream editorsed 是面向流的,为该命令提供的所有输入被其处理后都到达STDOUT,sed命令并不改变输入文件sed语法格式sed 'command list' filenames 其中command list是一系列命令清单 filenames表示要处理的文件,如果不指定文件,那么将从STDIN读入。command list的格式为/pattern/action正则表达式使用的基本元字符(Metacharacters). Match any single character except a newline* Match zero or more o 阅读全文

posted @ 2012-01-17 09:43 perlman 阅读(1616) 评论(0) 推荐(0) 编辑

Shell命令成功是一般返回0
摘要:下面一段代码my $cmd = "scp $source $dest";`$cmd` or die $!在执行这段代码的时候,经常会出现这样一个错误,形如illegal seek xxx,但是会发现其实文件已经正确的拷贝过去了。什么原因呢?因为`$cmd`的返回值并不能表示错误信息,也就是说这个命令成功的返回值是0,而$!中存储的是前面某个命令的错误代码。详情看这里http://www.megasolutions.net/perl/Illegal-seek-50808.aspx所以这种写法本身就不正确。 阅读全文

posted @ 2012-01-16 15:26 perlman 阅读(3845) 评论(0) 推荐(0) 编辑

shell常用命令集合
摘要:如不加特殊说明,以下命令所使用的文件默认为zdd.txt找出重复的文本行cat zdd.txt | uniq -d扩展一下,找出不重复的行cat zdd.txt | uniq -u=== 阅读全文

posted @ 2012-01-13 09:57 perlman 阅读(379) 评论(0) 推荐(0) 编辑

Shell编程 - 流控制
摘要:if语句1 写if语句时不要随意加空格,比如if [ 1<2 ],这是假,而if [ 1 < 2 ]就是真了,因为1和<之间有空格。注意[]与1,2之间的空格是合法的,总结一下就是,Shell中表达式中最好不要加空格,比如a=1, 1<2, 2=2等等,如果加上空格,往往会产生错误。2 使用test,格式:if test expressionif test 1<2then echo "no"else echo "yes"fi 输出yes使用[],格式:if [ expression ] (注意:[]与表达式之间有一个空格)i 阅读全文

posted @ 2012-01-11 14:43 perlman 阅读(485) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示