by agate - Published: 2010-05-26 [2:05 下午] - Category: 系统操作

进程前台与后台转换需要用到以下几个命令:

1. &
我们最常用到的就是这个命令了. 用法就是放在一个命令的最后, 可以把这个命令放到后台去执行. 大概用法如下:

$ tail -f log/* &
[1] 21867
# 这里 [1] 代表它是后台运行的一个 job 编号为 1
# 这里 21867 是它的进程号

2. ctrl + z
这也是常用到的快捷键. 用于将当前正在执行的前台进程放到后台, 并且暂停. 用法大致如下:

$ vi
# 按下 ctrl + z
[2]+  Stopped                 vi
# 这里 [2] 代表它是后台运行的一个 job 编号为 2
# 这里 + 代表他是最近一个被放到后台的进程, 如果直接输入 fg 就是恢复这个进程.
# 这里 Stopped 说明它被停止了也就是 ctrl + z 的第二个作用 --  暂停
# 这里 vi 就是进程名

3. jobs
查看当前后台运行的进程, 以 "[作业号][-/+] 运行状态 作业名称" 输出结果类似:

$ jobs
[1]-  Running                 tail -f log/* &
[2]+  Stopped                 vi

2. fg
用于恢复后台进程到前台. 具体用法如下:

$ fg
# 将恢复 vi (还记得么 vi job 有一个加号, 它代表它是最近一次被放到后台的进程)
# 说明跟参数直接输入 fg 是恢复最近一次放入后台的进程到前台
# ctrl + z
[2]+  Stopped                 vi
$ fg 1
# 将恢复 tail
# ctrl + z
[1]+  Stopped                 tail -f log/*
$ jobs
[1]-  Stopped                 tail -f log/*
[2]+  Stopped                 vi
# 再次注意 tail 变成了 Stopped, 并且没有 & 在句尾了

3. bg
用户把后台 stopped 的进程唤醒, 并且继续在后台运行. 具体用法如下:

$ bg 1
[1]+ tail -f log/* &
$ jobs
[1]-  Running                 tail -f log/* &
[2]+  Stopped                 vi
# 当然 bg 也可以不跟参数就是唤醒最近放入后台的那个 stopped 进程(就是有 + 的那个)
Tags: [ ] - Comments: View Comments
by agate - Published: 2008-05-28 [9:35 下午] - Category: 系统操作

一般我们些进行shell变成的时候总需要给sh传入一些参数,这里描述这些参数调用的一些技巧.
1、 位置参数
由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。
2、 内部参数
上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。和$0一样的内部变量还有以下几个。
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ...
$0 ----当前程序的名称
$@----以"参数1" "参数2" ... 形式保存所有参数
$$ ----本程序的(进程ID号)PID
$! ----上一个命令的PID

Tags: [ , ] - Comments: View Comments