shell 一些常用的指令 (五)
七 、 键盘高级操作技巧
1 . 命令行编辑
1 . 移动光标:
- ctrl + a :移动光标到行首。
- Ctrl-e 移动光标到行尾。
- Ctrl-f 光标前移一个字符;和右箭头作用一样。
- Ctrl-b 光标后移一个字符;和左箭头作用一样。
- Alt-f 光标前移一个字。
- Alt-b 光标后移一个字。
- Ctrl-l 清空屏幕,移动光标到左上角。clear 命令完成同样的工作
2 . 修改文本
- Ctrl-d 删除光标位置的字符。
- Ctrl-t 光标位置的字符和光标前面的字符互换位置。
- Alt-t 光标位置的字和其前面的字互换位置。
- Alt-l 把从光标位置到字尾的字符转换成小写字母。
- Alt-u 把从光标位置到字尾的字符转换成大写字母。
3 . 剪切和粘贴文本
- Ctrl-k 剪切从光标位置到行尾的文本。
- Ctrl-u 剪切从光标位置到行首的文本。
- Alt-d 剪切从光标位置到词尾的文本。
- Alt-Backspace 剪切从光标位置到词头的文本。如果光标在一个单词的开头,剪切前一个单词。
Ctrl-y 把剪切环中的文本粘贴到光标位置。
2 . 自动补全
shell 能帮助你的另一种方式是通过一种叫做自动补全的机制。当你敲入一个命令时, 按下 tab 键,自动补全就会发生。
如果没有补全,只是嘟嘟响。因为”D”不止匹配目录中的一个条目。为了自动补全执行成功, 你给它的”线索”不能模棱两可。则我们就继续输入要匹配的条目。
3 . 搜索历史命令
history | less
在默认情况下,bash 会存储你所输入的最后 500 个命令。在随后的章节里,我们会知道 怎样调整这个数值。比方说我们想在自己曾经用过的命令中,找出和/usr/bin这一目录相关的。那么我们就可以这样做:
history | grep /usr/bin
数字 “136” 是这个命令在历史列表中的行号。我们可以使用另一种叫做 历史命令展开的方式,来调用“136”所代表的这一行命令:
!136
4 . 启动递增搜索
首先输入 Ctrl-r:
提示符改变,显示我们正在执行反向递增搜索。搜索过程是”反向的”,因为我们按照从”现在”到过去 某个时间段的顺序来搜寻。下一步,我们开始输入要查找的文本。在这个例子里是 “/usr/bin”:
(reverse-i-search)`/usr/bin': ls -l /usr/bin > ls-output.txt
即刻,搜索返回我们需要的结果。我们可以按下 Enter 键来执行这个命令,或者我们可以按下Ctrl-j复制 这个命令到我们当前的命令行,来进一步编辑它。好了现在我们复制它,输入 Ctrl-j:
[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt
5 . 历史命令展开
通过使用 “!” 字符,shell 为历史列表中的命令,提供了一个特殊的展开类型。我们已经知道一个感叹号 ,其后再加上一个数字,可以把来自历史列表中的命令插入到命令行中。这里还有一些其它的展开特性:
- !! 重复最后一次执行的命令。可能按下上箭头按键和 enter 键更容易些。
- !number 重复历史列表中第 number 行的命令。
- !string 重复最近历史列表中,以这个字符串开头的命令。
- !?string 重复最近历史列表中,包含这个字符串的命令。
注意:应该小心谨慎地使用 “!string” 和 “!?string” 格式,除非你完全确信历史列表条目的内容。
八 、 权限
1 . 读取、写入和执行
2 . chmod - 更改文件模式
参考链接: http://billie66.github.io/TLCL/book/chap10.html
九 、进程
ps – 报告当前进程快照
top – 显示任务
jobs – 列出活跃的任务
bg – 把一个任务放到后台执行
fg – 把一个任务放到前台执行
kill – 给一个进程发送信号
killall – 杀死指定名字的进程
shutdown – 关机或重启系统
1 . 查看进程
ps
查看所有的进程
ps x
输出结果中,新添加了一栏,标题为 STAT 。STAT 是 “state” 的简写,它揭示了进程当前状态。
另一个流行的选项组合是 “aux”(不带开头的”-“字符)。这会给我们更多信息:
ps aux
2 . 用 top 命令动态查看进程
top
top 程序以进程活动顺序显示连续更新的系统进程列表。(默认情况下,每三秒钟更新一次),”top”这个名字 来源于 top 程序是用来查看系统中“顶端”进程的。top 显示结果由两部分组成: 最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。
3 . 中断一个进程
ctrl+ c
4 . 把一个进程放置到后台(执行)
为了启动一个程序并让它立即在后台 运行,我们在程序命令之后,加上”&”字符:
xlogo &
shell 的任务控制功能给出了一种列出从我们终端中启动了的任务的方法。执行 jobs 命令,我们可以看到这个输出列表:
jobs
5 . 进程返回到前台
一个在后台运行的进程对一切来自键盘的输入都免疫,也不能用 Ctrl-c 来中断它。 为了让一个进程返回前端,这样使用 fg 命令:
fg %1
fg 命令之后,跟随着一个百分号和任务序号(叫做 jobspec)就可以了。如果我们只有一个后台任务,那么 jobspec 是可有可无的。输入 Ctrl-c 来终止 xlogo 程序。
6 . 停止一个进程
有时候,我们想要停止一个进程,而不是终止它。我们这么做通常是为了允许前台进程被移动到后台。 输入 Ctrl-z,可以停止一个前台进程。让我们试一下。在命令提示符下,执行 xlogo 命令, 然后输入 Ctrl-z:
xlogo
使用 fg 命令,可以恢复程序到前台运行,或者用 bg 命令把程序移到后台。
7 . kill杀死进程
kill 命令被用来“杀死”程序。这样我们就可以终止需要杀死的程序。这里有一个例子:
xlog &
[1] 28401
kill 28401
[1]+ Terminated xlogo
首先,我们在后台启动 xlogo 程序。shell 打印出这个后台进程的 jobspec 和 PID。下一步,我们使用 kill 命令,并且指定我们想要终止的进程 PID。也可以用 jobspec(例如,“%1”)来代替 PID。
shell 环境
在这一章,我们将用到以下命令:
printenv - 打印部分或所有的环境变量
set - 设置 shell 选项
export — 导出环境变量,让随后执行的程序知道。
alias - 创建命令别名
1 . 检查环境变量
我们可以用 bash 的内建命令 set,或者是 printenv 程序来查看环境变量,
我们看到一个叫做 USER 的变量,这个变量值是 “me”。printenv 命令也能够列出特定变量的数值:
printenv | less
printenv USER
当使用没有带选项和参数的 set 命令时,shell 变量,环境变量,和定义的 shell 函数 都会被显示。不同于 printenv 命令,set 命令的输出很友好地按照首字母顺序排列:
set | less
别名无法通过使用 set 或 printenv 来查看。 用不带参数的 alias 来查看别名:
alias
例子,新建别名,使用别名,查看别名