“Linux-2020-spring-3-25”的版本间的差异
跳到导航
跳到搜索
| 第16行: | 第16行: | ||
== 命令的类型和执行过程 == | == 命令的类型和执行过程 == | ||
| − | + | 命令的三种类型 | |
| − | + | 外部命令:命令由kernel和shell外部程序实现,可以找到这个命令对应的可执行文件,bin目录下的命令均为外部命令 | |
| − | + | mv more bash | |
| − | + | 内部(内嵌)命令:命令由shell(或kernel?)实现,对应shell(或kernel)的一部分代码 | |
| − | + | cd type alias help | |
| − | + | 别名:ls is aliased to'ls --color=none' | |
| − | + | ||
| − | + | shell有很多种 | |
| − | + | bash是最常用的一种shell(GNU Bourne-Again Shell) | |
| − | + | 其他的:sh csh ksh dash | |
| + | |||
| + | type命令:查看命令类型 | ||
| + | $ type ls mv cd less | ||
| + | |||
$ps afx 查看进程的情况 | $ps afx 查看进程的情况 | ||
$echo $PATH查看路径 | $echo $PATH查看路径 | ||
| + | alias:取别名 | ||
| + | $ alias lm='ls -a' | ||
| − | + | 内部命令的执行过程 | |
| − | + | 相当于调用一个函数 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | 外部命令的执行过程 | ||
| + | $ mv x.c xx.c (例如) | ||
| + | 找到mv对应的可执行文件 | ||
| + | 把可执行文件的代码Load到内存中 | ||
| + | 设置命令行参数 | ||
| + | 开启子进程,执行mv命令对应的代码(切换进程) | ||
| + | 执行结束后回到shell | ||
| + | 举一个例子 | ||
| + | $ cat (不输入参数,这时cat进程就会和用户交互,等待用户输入内容) | ||
| + | 在另一个文字终端中输入 | ||
| + | $ ps afx,查看进程树的快照(snapshot),会看到 | ||
| + | \_ bash | ||
| + | | \_ cat | ||
| + | 其含义就是cat进程是bash进程的子进程 | ||
*shell 怎么知道一个命令是外部命令,如何找到 | *shell 怎么知道一个命令是外部命令,如何找到 | ||
2020年3月18日 (三) 05:07的版本
回顾上节课的内容
文件查看命令
less、more、cat、head、tail
文件操作命令
cp、mv、mkdir rm
查看帮助文档
man、info、help info类似在浏览网页,可以在不同网页上跳转,我不熟悉
文本编辑
vim,另一个是emacs(更难一点,用的人少一些)
命令的类型和执行过程
命令的三种类型
外部命令:命令由kernel和shell外部程序实现,可以找到这个命令对应的可执行文件,bin目录下的命令均为外部命令
mv more bash
内部(内嵌)命令:命令由shell(或kernel?)实现,对应shell(或kernel)的一部分代码
cd type alias help
别名:ls is aliased to'ls --color=none'
shell有很多种
bash是最常用的一种shell(GNU Bourne-Again Shell) 其他的:sh csh ksh dash
type命令:查看命令类型
$ type ls mv cd less $ps afx 查看进程的情况 $echo $PATH查看路径
alias:取别名
$ alias lm='ls -a'
内部命令的执行过程
相当于调用一个函数
外部命令的执行过程
$ mv x.c xx.c (例如)
找到mv对应的可执行文件
把可执行文件的代码Load到内存中
设置命令行参数
开启子进程,执行mv命令对应的代码(切换进程)
执行结束后回到shell
举一个例子
$ cat (不输入参数,这时cat进程就会和用户交互,等待用户输入内容)
在另一个文字终端中输入
$ ps afx,查看进程树的快照(snapshot),会看到
\_ bash
| \_ cat
其含义就是cat进程是bash进程的子进程
- 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”进行切换
中枢,中轴