Linux-2018-spring-4-10

来自SUDA-HLT
跳到导航 跳到搜索

一、回顾上节课的内容

  • 查看帮助文档
  man、info、help
  • 文本相关命令
  less、more、cat、head、tail、cp、mv、mkdir、vim编辑器

二、命令的类型和执行过程

  • 命令的类型
 1、外部命令:mv和less是外部命令(linux系统下可以找到这个命令对应的可执行文件就是外部命令,大部分放在bin目录下且大部分命令是外部命令);
 2、别名类型的命令:ls is aliased to'ls --color=none';
 3、内嵌命令:命令的可执行命令在shell 里面;shell的类型有bash和dash等。 
    
  • 命令
 type:类型--- $type ls mv cd less查看命令的类型
 alias:取别名--- $alias lm='ls -a'
 $man bash(GNU Bourne-Again Shell促进软件共享)
 $man dash --command interpreter(shell)
 $ps afx 查看进程的情况
 $echo $PATH查看路径


  • 命令的执行过程

mv x.c xx.c

   step1--解析字符串
   step2--分析命令的类型并执行
        1、内嵌命令-函数;
        2、外部命令-找到可执行文件-执行(a、系统调用的方法执行;b、开启一个新的进程,load到RAM中,参数设置,切换进程;bash输入/执行外部命令通过创建一个子进程来完成)            
        3、别名命令:找到原命令执行


  • shell 怎么知道一个命令是外部命令,如何找到
  shell可根据PATH找命令;也可以直接自己告诉它路径

三、vi和vim 的使用

  • vi的三个模式
  1、命令模式
  2、插入模式
  3、底层命令
  • 三个模式之间转换
  1、命令--->插入模式(i/I光标在行首/a/A光标在行尾/o光标在下一行/O上面再插入一行,光标在下一行)
  插入模式--->命令模式下(ESC键,u撤销,x删除一个字符,r替换,yy复制一行,p粘贴,dd删除一行,3dd删除三行:set nu 显示行号;^光标到行首,$光标到行尾,G光标到最后一行,:5直接跑到第五行,3G跑到第三行)
  命令--->视图模式(v)  按字符选择
  命令--->视图行模式(V) 按行选择 
  命令--->按列选择(ctrl+v)
  命令--->底行模式(/搜索 n正向找,N反着找; ?反向搜索;正则表达式查找/o[uv]---找到所有含有ou或者ov的字符;“:!date”可查看时间;“:r!date”将命令执行的结果保存在当前文本中;“:n1,n2s/word1/word2/g   n1和n2为数字,在第n1行和n2行之间寻找word字符串,并将该字符串替换为word2  :1,$s/word1/word2/g    从第一行到最后一行查找字符串word1字符串,并将字符串word1替换为word2 :1,$s/word1/word2/gc   从第一行到最后一行查找字符串word1,并将字符串word1替换为word2,在替换之前提示用户确认是否替换(confirm)”替换)
  vi wenjianming---进入命令模式---输入“i/insert”---进入插入模式----按“ESC”---进入命令模式---“:wq”---保存退出
  
  • 打开多个文件
  命令模式“:sp”利用“ctrl +w+w”进行切换

中枢,中轴