shell 一些常用的指令 (五)

本文介绍了Shell环境下的实用命令操作技巧,包括命令行编辑、自动补全、历史命令搜索及进程管理等。还讲解了如何利用shell进行权限设置、查看系统进程状态以及任务控制等内容。

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

例子,新建别名,使用别名,查看别名

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lancnn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值