Linux是一个多任务操作系统。这意味着有许多程序同时运行。从用户的角度来看,这意味着你可以同时运行几个程序,而且 bash 肯定有工具,为你控制多个任务的执行。为了能够使用此功能,你需要学习以下命令:
<CTRL> + z
- 将当前运行的程序放在后台。@H_403_14@jobs
- 列出所有后台程序。@H_403_14@fg
- 把程序带到前台。fg
接受一个数字作为参数,它可以从jobs
中获取数,或者如果无参数调用,则将最后一个挂起的程序带到前台。@H_403_14@ctrl + c
- 一次性停止执行当前运行的程序。虽然我不会在这个练习中使用它,但我必须说,这可能是非常有用的。@H_403_14@
现在,你将学习如何使用 bash 内置的工具来控制程序的执行。
这样做
1: less -S .profile 2: <CTRL+z> 3: less -S .bashrc 4: <CTRL+z> 5: less -S .bash_history 6: <CTRL+z> 7: jobs 8: fg 9: q 10: fg 11: q 12: fg 13: q 14: fg 15: jobs
你会看到什么
user1@vm1:~$ less -S .profile # exists. # see /usr/share/doc/bash/examples/startup-files for # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setti # for ssh logins,install and configure the libpam-um #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" [1]+ Stopped less -S .profile user1@vm1:~$ less -S .bashrc # for examples # If not running interactively,don't do anything [ -z "$PS1" ] && return # don't put duplicate lines in the history. See bash( # don't overwrite GNU Midnight Commander's setting of HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups # ... or force ignoredups and ignorespace HISTCONTROL=ignoreboth # append to the history file,don't overwrite it shopt -s histappend [2]+ Stopped less -S .bashrc user1@vm1:~$ less -S .bash_history echo Hello,$LOGNAME! echo 'echo Hello,$LOGNAME!' >> .profile cp .profile .profile.bak tail .profile ls -altr history -w ls -al cat .profile echo Hello,$LOGNAME!' >> .profile cp .profile .profile.bak tail .profile ls -altr [3]+ Stopped less -S .bash_history user1@vm1:~$ jobs [1] Stopped less -S .profile [2]- Stopped less -S .bashrc [3]+ Stopped less -S .bash_history user1@vm1:~$ fg user1@vm1:~$ fg user1@vm1:~$ fg user1@vm1:~$ fg -bash: fg: current: no such job user1@vm1:~$ jobs user1@vm1:~$
解释
- 打开
.profile
来查看。注意我如何使用-S
参数,让less
开启-chop-long-lines
选项来启动。@H_403_14@ - 挂起
less
。@H_403_14@ - 打开
.bashrc
来查看。@H_403_14@ - 挂起
less
。@H_403_14@ - 打开
.bash_history
来查看。@H_403_14@ - 挂起
less
。@H_403_14@ - 打印挂起程序的列表。@H_403_14@
- 切换到
less
。@H_403_14@ - 退出它。@H_403_14@
- 切换到第二个
less
。@H_403_14@ - 退出它。@H_403_14@
- 切换到第一个
less
。@H_403_14@ - 退出它。@H_403_14@
- 尝试切换到最后一个程序。没有任何程序,但你这样做是为了确保确实没有。@H_403_14@
- 打印挂起程序的列表。这是为了确保没有后台任务,通过看到
jobs
打印出空的输出。@H_403_14@