免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: levopat
打印 上一主题 下一主题

大家跟我学SHELL (与本教程有关的疑问可在此提问)  关闭 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-12-18 11:34 |只看该作者

这样的功能bash shell script是否能实现

ssh root@192.168.1.8,然后等到标准输出上出现 “Password:” 将口令输入,从而实现自动登录。
我尝试用here文档和trap来解决,但似乎不行。

论坛徽章:
0
42 [报告]
发表于 2006-12-18 12:55 |只看该作者
请看waker的置顶貼

论坛徽章:
0
43 [报告]
发表于 2006-12-18 14:37 |只看该作者
原帖由 ganx 于 2006-12-18 11:34 发表
ssh root@192.168.1.8,然后等到标准输出上出现 “Password:” 将口令输入,从而实现自动登录。
我尝试用here文档和trap来解决,但似乎不行。




需要使用 ssh-keygen



ssh-keygen -t dsa

scp id_dsa root@192.168.0.8:/root/.ssh/

[ 本帖最后由 levopat 于 2006-12-18 15:11 编辑 ]

论坛徽章:
0
44 [报告]
发表于 2006-12-18 15:45 |只看该作者
看到版主这么辛苦,我也补充一些
grep  的一些常用选项的含义
-c  只是输出一些匹配行的计数
-i  不区别大小写
-l 输出包含匹配的字符文件名
-n 显示匹配的行号
-v 显示不包含匹配的文本所有行
-s 不显示不存在或无匹配文本的错误信息

论坛徽章:
0
45 [报告]
发表于 2006-12-18 16:17 |只看该作者
支持!
学习

论坛徽章:
0
46 [报告]
发表于 2006-12-19 09:32 |只看该作者
原帖由 pqxpqx 于 2006-12-18 15:45 发表
看到版主这么辛苦,我也补充一些
grep  的一些常用选项的含义
-c  只是输出一些匹配行的计数
-i  不区别大小写
-l 输出包含匹配的字符文件名
-n 显示匹配的行号
-v 显示不包含匹配的文本所有行
-s 不显示不 ...



多谢,我把他补充到前面的课程中去。

论坛徽章:
0
47 [报告]
发表于 2006-12-19 15:08 |只看该作者
十二、全屏幕编辑器(vi)


vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode):

command方式:
 任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“jia”的声音;

insert方式:
 任何输入的数据都置于编辑寄存器。在command方式下输入(I,a,A等),可进入insert方式,insert方式下按ESC,可跳回command方式。

escape方式:
以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。


进入vi(在系统提示符下面输入以下指令):

  1. vi           进入vi而不读入任何文件
  2. vi filename      进入vi并读入指定名称的文件(新、旧文件均可)。
复制代码



存储及退出vi

  1. :w filename      存入指定文件,但未退出vi(若未指定文件名则为当前工作的文件名)。
  2. :wq                        存文件,并且退出vi.
  3. :q          不作任何修改并退出vi。
  4. :q!          放弃任何修改并退出vi。
  5. :!command       暂时退出vi并执行shell指令,执行完毕后再回到vi。
  6. :sh          暂时退出vi到系统下,结束时按Ctrl + d则回到vi。
复制代码


加数据指令

  1. i           在关标位置开始插入字符,结束时候按ESC键。
  2. I           在光标所在行的最前面开始加字,结束时按ESC键。
  3. a           在光标位置后开始加字,结束时按ESC键。
  4. A           在光标所在行的最后面开始加字,结束时按ESC键。
  5. o           在光标下加一空白行并开始加字,结束时按ESC键。
  6. O           在光标上加一空白行并开始加字,结束时按ESC键。
  7. !command       执行shell指令,并把结果加在光标所在行的下一行。
复制代码


删除指令

  1. nx          删除由光标位置起始的n个字符(含光标位置,按一个x表示删除光标所在的字符)
  2. nX           删除由光标位置起始的n个字符(不含光标位置)。
  3. ndw          删除光标位置其实的n个字符组(word)。
  4. d0           将行的开始到光标位置的字符全部删除。
  5. d$ 或D         将光标位置起始到行尾的字符全部删除。
  6. ndd          将光标位置起始的n行(整行)删除(dd表示删除光标所在行)。
  7. :start,endd      删除文件的第start到end行。
复制代码


关标移动

  1. 0           移到一行的开始
  2. $           移到一行的最后
  3. [           移到文件开始位置
  4. ]           移到文件结束位置
  5. nh          往左移n位
  6. nl或者spacebar     往右移n位
  7. nk          向上移n行
  8. n+          向上移n行,光标在该行的起始
  9. ni           向下移n行
  10. n-          向下移n行,光标在该行的起始
  11. H           移到屏幕的左上角
  12. M           移到屏幕的中间行开头
  13. L           移到屏幕的最后一行
  14. G           移到文件的最后一行
  15. nG或者:n       移到文件的第n行
  16. nw          右移n个字组,标点符号属于字组
  17. nW          右移n个字组,标点符号不属于字组
  18. nb          左移n个字组,标点符号属于字组
  19. nB          左移n个字组,标点符号不属于字组

  20. Ctrl + u       屏幕上卷半个菜单
  21. Ctrl + d        屏幕下卷半个菜单
  22. Ctrl + b        屏幕上卷一个菜单
  23. Ctrl + F        屏幕下卷一个菜单
复制代码


修改指令

  1. r           修改光标文件的字符
  2. R           从光标位置开始修改,结束时按ESC键
  3. new          更改n组字符,结束时按ESC键
  4. ncc          从光标所在位置开始更改n行,结束时按ESC键
复制代码


重排各行长度

  1. i           并按Enter将该行由光标所在处断开,并进入insert方式
  2. J           把下一行的数据连接到本行之后
复制代码


寻找指令

  1. /text         从光标位置往下找字串text
  2. ?text         从光标位置往上找字串text
  3. n           继续找下一个字串(在输入上面的寻找指令之后使用)
复制代码


寻找并且取代指令

  1. :getxt1/s/ /text2/options   将各行的text1替换为text2
  2.                option=g表示文件中所有的text1均被取代,若未输入任何option,则只有各行中的第一个出现的text1被取代
  3.                option=go 在屏幕显示各取代的行
  4.                option=gc 在每个字串取代之前要求确认 
  5. Start,endgtext1/s/ / text2/options  同上,只寻找并取代第start~end行。
  6. 或:Start,ends/text1/text2/options
复制代码


复制及移动文件

  1. :first,last co dest      将first 到last行的数据复制到目标行(dest)下面
  2. :Start,end m dest      将start 到 end行的数据移动到目标行(dest)下。   
  3. :r filename          将指定文件的内容读入光标所在行下。
  4. nY               将光标所在位置开始的n行数据暂存
  5. p               复制暂存数据在光标的下一行
  6. P               复制暂存数据在光标的上一行
复制代码


其他命令

  1. .               重复前一指令
  2. u               取消前一指令
  3. Ctrl + l           刷新屏幕显示
  4. :set number          显示文件的行号,但不会存文件
  5. :set nonumber         解除行号显示
  6. :set ai            设置每行起始位置(以光标当前位置为起始)
  7. :set noai           取消行起始位置设定
  8. :f 或<Ctrl> + g        告诉用户有关现行编辑文件的数据。
复制代码

[ 本帖最后由 levopat 于 2006-12-19 16:21 编辑 ]

论坛徽章:
0
48 [报告]
发表于 2006-12-19 22:46 |只看该作者
grep 技巧: 输入匹配行的上下文(即输出匹配行的上一行及下一行)

  1. $  grep -B1 -A1 "tty" /etc/passwd
  2. bin:*:3:7:Binaries Commands and Source:/:/sbin/nologin
  3. tty:*:4:65533:Tty Sandbox:/:/sbin/nologin
  4. kmem:*:5:65533:KMem Sandbox:/:/sbin/nologin
复制代码

论坛徽章:
0
49 [报告]
发表于 2006-12-20 16:47 |只看该作者

好文

顶,继续努力

论坛徽章:
0
50 [报告]
发表于 2006-12-21 10:35 |只看该作者
原帖由 soaact 于 2006-12-20 19:18 发表
请问怎么用GREP匹配连续三个相同的字母?
比如:
XXX

谢谢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



  1. # grep "\(.\)\1\1" test.txt

  2. abcfdsfdsfddddd54354499999
  3. aaa
  4. 7777

  5. iii
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP