标题:
Shell 功能、配置和插件(2)
[打印本页]
作者:
yuyang911220
时间:
2016-9-19 11:17
标题:
Shell 功能、配置和插件(2)
命令别名命令别名是一个比较有用的东西,特别适应用于
简化命令输入
。比如,你要更新cocoapods时,在shell输入以下命令行
pod update --verbose --no-repo-update但每次都输入这么长的命令行,多么麻烦啊。所以,这时使用命令别名来简化命令行的输入:
alias pod_update='pod update --verbose --no-repo-update'下次你只需要输入pod_update就可以更新cocoapod
你可以使用alias命令来
显示所有命令别名
list all alias .png
任务控制(job control)使用shell登陆系统后,想要一边复制文件、一边查找文件、一边进行编译代码、一边下载软件,当然可以通过开启多个shell来完成,但如果想只在一个shell来完成以上多个任务时,此时可以使用shell的一个特性
任务控制
。
在学会如何使用命令来控制任务之前,先了解两个概念:
前台(foreground)
和
后台(background)
。
前台
就是出现提示符让用户操作的环境,而
后台
就是不能与用户交互的环境,你无法使用 ctrl-c 终止它,可使用 bg/fg 呼叫该任务。
下面介绍一些命令如何控制任务:
1. 将任务放在后台运行:命令行 + &
job control 1.png
注意一下上面打印信息,[1]表示job number(任务编号),7089表示PID(进程号)。在后台执行的命令,如果有stdout和stderr,数据依旧输出到屏幕上,可以通过数据重定向传输到文件中,就不会影响前台的工作。
job control 2.png
2. 将任务丢到后台暂停:ctrl-z在shell中执行find / -print命令,然后按下ctrl-z将任务丢到后台暂停:
job control 3.png
由上面打印可知,任务find / -print暂停执行,并将任务放在后台,返回一个job number[2]
3. 查看后台所有任务状态:jobs -l输入jobs -l 查看后台所有的任务状态:
job control 4.png
仔细查看打印信息,有没有留意到在PID 7417和7431之前有-和+两个符号,-表示最近第二个被放到后台的任务号码,+表示最近被放到后台的任务号码。
4. 将后台的任务拿到前台处理:fg %jobnumber输入fg会默认取出+的任务,然后迅速按下ctrl-z
job control 5.png
看上面打印的
PID
是7431,确实如此。再次输入jobs -l来查看后台所有任务的信息
job control 6.png
这次输入fg %1来讲后台的任务拿到前台处理。
5. 将后台的任务变成运行中:bg %jobnumber输入jobs -l查看任务状态:
job control 7.png
然后输入bg %2; jobs -l将后台任务变成运行,并查看任务状态,然后不断地输入打印信息,这时需要关闭终端才能
kill
这个shell进程的子进程。
6. 管理后台当中的任务:kill -signal %jobnumber有时,任务在后台运行或暂停,这时我想结束这个任务,怎样办呢?你可以使用kill命令将任务结束。
输入find / -print命令,并按下ctrl-z暂停任务:
job control 8.png
输入kill -9 %1;jobs -l结束任务并显示任务状态:
job control 9.png
shell scriptshell script是利用shell的功能所编写的一个
程序
,这个程序使用纯文本文件来保存一些shell的命令,并遵循shell的语法规则,搭配数据重定向、管道、和正则表达式等功能来组合各种工具,实现简单重复任务的自动化。
通配符除了完整的字符串之外,shell还支持许多的通配符来帮助用户查询和命令执行。我简答地列出常用的几个通配符:
符号含义*表示0到无穷多个任意字符?表示有一个任意字符[]表示有一个在中括号内的字符。例如[abc]表示有个字符,可能是abc其中一个[-]表示在编码顺序内的所有字符。例如[1-7]表示有个字符,范围1到7其中一个[^]表示反向选择。例如表示有一个字符,只要不是a,b,c的其他字符都可以
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0