LINUX SHELL
VI
VI 简介
VI 是Visual Interface 的简称,是一个应用于命令行的全屏幕文本编辑器。VI 有三种基本的工作模式:命令模式、文本输入模式和末行模式。
命令模式下,用户的任何输入都被VI 当作命令加以解释并执行(注意,输入的命令本身并不在屏幕上显示)。VI 命令用于对文档进行管理,当在SHELL 环境下敲入VI 命令,打开编辑器时,默认进入的就是命令模式。
文本输入模式是对文档的编辑模式,用户的任何输入都将作为文本内容显示在文档中。在命令模式下可以通过各种VI 命令(A 、I 、O 等)进入到文本输入模式下;在文本输入模式下,按Esc 键返回命令模式。
末行模式也称EX 转义模式,在命令模式下,按: 键即可进入末行模式。末行模式下,会在窗口的最后一行显示一个冒号,作为末行模式的提示符,等待用户输入命令。末行命令执行完毕后,VI 自动回到命令模式下。在末行模式下,可以通过退格键、DEL 或ESC 等回到命令模式下。
进入 VI
在SHELL 环境下进入VI 的语法如下:
VI [FILENAME]
FILENAME 可以是已经存在的文本文件或不存在的文件,如果不存在时,即为新建。也可以直接敲入VI 命令进入而不带文件名,不过需要在退出的时候给出文件名(在退出命令后面)。
进入VI 后,默认的是命令模式,即系统处于等待命令输入而不是文本输入的模式下。符号-~ 标识的行为空行,最后一行为状态行(类似WINDOWS 中的状态栏),显示当前正在编辑的文件的名称以及光标状态等。
VI 打开后,默认将光标放在第一行,如果需要将光标放在特定行上,可以使用如下语法:
VI +N [FILENAME]
-- 将光标放在第N 行
VI + [FILENAME]
-- 将光标放在最后一行
VI +/XXX [FILENAME]
-- 将光标放在第一个与XXX 匹配的行上(子串模糊匹配)
保存与退出 VI
保存在末行模式下进行,命令为w (应该是write 的简写吧),系统保存当前文件,但并不退出VI (相当于Windows 中的Ctrl+S )。使用w 命令还可以附带一个新的文件名,将当前文本另存为一个新的文件(使用w! 命令会在新文件存在时强行覆盖),而当前编辑的文本并不保存到原文件(另存后仍然回到当前文件的命令模式)。
退出VI 可以分为保存后退出和强行退出。保存后退出命令有:
命令模式下的ZZ
末行模式下的x 和wq (单独的q 要求文档没有被修改过或已经保存过)
强行退出命令为:
末行模式下q!
显示行号
在末行模式下使用如下命令可以显示行号:
set number
或者其简写:
Se nu
显示状态
在最后一行显示文本及光标的状态,在命令模式下使用如下命令:
Ctrl+g
移动光标
移动光标可以在命令模式和文本输入模式下进行。两种模式下都适用的方式是使用方向键,这也是最常用的方式。在命令模式下,还可以使用小写的h (左)、j (下)、k (上)、l (右)来替代方向键。
在命令模式下,还有一些较为复杂的移动光标的方法,列举如下:
space :光标右移一个字符
Backspace :光标左移一个字符
Ctrl+p :光标上移一行
Ctrl+n :光标下移一行
Enter :光标下移一行
w 或W :光标右移一个字至字首
b 或B :光标左移一个字至字首
e 或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
} :光标移至段落开头
{ :光标移至段落结尾
nG :光标移至第n 行首
n+ :光标下移n 行
n- :光标上移n 行
n$ :光标移至第n 行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0 :(注意是数字零)光标移至当前行首
$ :光标移至当前行尾
滚屏
屏幕滚动命令只能在命令模式下使用,分为半屏滚动和全屏滚动。半屏滚动命令如下:
Ctrl+u (向上半屏)
Ctrl+d (向下半屏)
全屏滚动命令如下:
Ctrl+b (向上一屏)
Ctrl+f (向下一屏)
VI 中还有三个在当前屏幕中移动光标的命令,分别为H 、M 和L ,他们可以将光标分别移动到屏幕的顶端、中间和底部,而文本并不发生滚动。
文本输入
在命令模式下,要开始文本输入,有几种不同的命令,如下:
1、 插入命令(INSERT ,在当前光标前插入)
插入命令为小写的i 和大写的I ,小写的i 在光标前插入,大写的I 在光标所在行的行首插入。
2、 附加命令(APPEND ,在当前光标后附加)
附加命令为小写的a 和大写的A ,小写的a 在光标后附加,大写的A 在光标所在行的行尾附加。
3、 打开新行命令(OPEN ,在当前光标所在行的前面或后面打开新行)
打开新行命令为小写的o 和大写的O ,小写的o 在当前行的下面新开一行,大写的O 在当前行的前面新开一行。
文本修改
文本修改除了可以在文本输入模式下直接进行外,还可以在命令模式下通过各种命令进行,说明如下:
X 、x
-- 删除单个字符
D 、dd 、d$
-- 删除整行
U
-- 撤销
.
-- 重复
复制与粘贴
选择文本v
复制选定文本y
剪切选定文本d
粘贴p
文件与目录
显示文件内容
CAT
CAT 可以用来显示文件内容以及合并文件:
cat Readme.txt
cat 1.txt 2.txt 3.txt > 4.txt
注:不带参数使用cat 时,通过Ctrl+d 退出。
MORE
MORE 可以分屏显示文件内容,在每屏结束后,等待用户输入(回车或空格),开始下一屏。其中回车为上移一行,空格为上移一屏。
More Readme.txt
LESS
MORE 命令只能向下翻阅文本,不能向上翻阅,而LESS 命令可以做到这一点。使用LESS 命令,可以通过回车、空格向下翻阅,也可以通过上下方向键进行上下翻阅,退出时使用Q 命令:
Less Readme.txt
HEAD
HEAD 命令查询文件的开头几行内容,命令格式如下:
Head [-n] Readme.txt
其中 n 的默认值为 10 。
TAIL
类似于 HEAD 命令, TAIL 命令显示文件的尾几行,默认为 10 。
SORT
SORT 可以对文件内容进行排序,举例如下:
sort a.txt
-- 排序并输出
sort a.txt > b.txt
-- 排序后输出到文件
UNIQ
UNIQ 可以用来显示或排除重复的行,但输入必须是已经排序的文本,即相同的行必须相邻,否则不会认为是相同的行。举例如下:
uniq -d a.txt
-- 只显示重复的行
uniq -u a.txt
-- 只显示不重复的行
uniq -c a.txt
-- 显示重复次数,可取代d 和u
文件内容搜索
GREP
GREP(Global search Regular Expression and Print out the line ,全面搜索正则表达式并把行打印出来) 是一个强大的文本内容搜索工具,它能使用正则表达式搜索文本,并将匹配的行打印出来。GREP 还包括两个类似的命令:EGREP 和FGREP ,它们之间有微小的差别。下面列举几个搜索的范例:
grep 'camel' readme.txt
-- 在文件readme.txt 中搜索指定字符串
grep camel *
-- 在所有文件中搜索指定字符串
grep camel *.c
-- 在所有.c 文件中搜索指定字符串
文件查找
FIND
find . -name 'a*'
-- 查找所有以a 开头的文件
文件内容统计
WC
WC 命令可以用来对指定文件中的字节、行以及字数进行统计,参数如下:
-c :字节
-l :行数
-w :字数
wc -clw a.txt
文件内容比较
COMM
对已经排序的两个文件进行比较,举例如下:
comm -12 a.txt b.txt
-- 显示两个文件中共有的行
comm -23 a.txt b.txt
-- 显示在第一个文件中出现而不在第二个文件中的行
DIFF
逐行比较两个文件(不需要排序),列出不同之处。
文件的复制、移动和删除
CP
CP 命令可以对文件或目录进行复制,主要参数说明如下:
-f 存在时直接覆盖
-i 存在时给出提示
-r 递归复制所有子目录和文件
举例说明如下:
cp -i a.txt /home/camel/b.txt
-- 将当前目录下的a.txt 复制到/home/camel 下,并更名为b.txt
-- 如果不更名,则取消b.txt
cp -r /home/camel /home/zhl
-- 将/home/camel 中的所有文件和子目录复制到/home/zhl 下
MV
MV 可以用来移动文件或对文件重命名。当移动文件时,一次可以操作多个文件,而重命名时,一次只能操作一个。主要参数有:
-f 存在时直接覆盖
-i 存在时给出提示
举例如下:
mv a.txt b.txt
-- 重命名
mv /home/camel/* .
-- 将/home/camel 目录下所有文件移动到当前目录下
RM
RM 可以删除一个目录中的一个或多个文件。主要参数如下:
-f 忽略不存在的文件
-i 交互式删除
-r 递归删除,包括目录
文件链接
LN
文件链接是指文件或目录的别名,系统可以通过这个别名访问实际对象或进行权限管理。链接分为硬链接和符号链接。
默认情况下,LN 创建的是硬链接,带S 参数为符号链接,举例如下:
ln -s a.txt b
目录的创建与删除
MKDIR
MKDIR ,创建目录。带参数P 可以创建多层目录:
mkdir ./camel/zhl
RMDIR
RMDIR ,删除目录,可以使用rm –r dir 替换。
目录的切换与显示
. 、 .. 与 ~
这三个符号分别代表:当前目录、当前目录的父目录和当前用户的主目录。
CD
CD 命令为变更当前的工作目录,如果不带任何参数,则将用户的主目录变更为当前目录。
PWD
PWD 为列出当前工作目录的绝对路径(Print Working Directory )。
LS 与 DIR
LS 和DIR 命令的功能为列出目录中的内容,LS 命令带有颜色标识。LS 命令可以附带多种参数,其中,A 与a 为显示隐藏文件,而l 为以长格式来显示文件的详细信息,如下:
[ls –l 命令有一个别名:ll]
[oracle@LinuxServer34 camel]$ ls -l
总用量 244
drwxr-xr-x 3 oracle oinstall 4096 9 月 23 14:02 a
-rw-r--r-- 1 oracle oinstall 7 9 月 22 16:58 a1.txt
-rw-r--r-- 1 oracle oinstall 7 9 月 22 16:58 a2.txt
-rw-r--r-- 1 oracle oinstall 21 9 月 22 16:58 a3.txt
lrwxrwxrwx 1 oracle oinstall 5 9 月 23 13:50 m -> a.txt
第一列为文件类型与权限,第二列为链接数,第三列为文件属主,第四列为文件属组,后面为文件大小及修改时间。
对于第一列,文件类型与权限,它由10 个字符组成。第一个字符表示文件的类型,如下:
- :普通文件
d :目录
l :符号链接
b :块设备文件
c :字符设备文件
后面的9 位表示文件的访问权限。分为三组,每组三位,依次表示文件属主、同组用户以及其它用户的权限。其中每一位上的字符说明如下:
r :读
w :写
x :执行,对于目录,表示进入
s :文件执行时,将文件的UID 和GID 赋予执行进程的UID 和GID
t :设置标志位
- :没有设置权限
文件与目录的权限管理
文件与目录权限
通常情况下,文件与目录的权限包括读、写和执行,其权限的赋予可以在 文件属主、同组用户以及其它用户三个级别上进行。通过LS 命令可以查看文件的权限属性。
使用LS –l 查看文件列表时,第一列为文件类型与权限,它由10 个字符组成(-rw-r--r-- )。第一个字符表示文件的类型,如下:
- :普通文件
d :目录
l :符号链接
b :块设备文件
c :字符设备文件
后面的9 位表示文件的访问权限。分为三组,每组三位,依次表示文件属主、同组用户以及其它用户的权限。其中每一位上的字符说明如下:
r :读
w :写
x :执行,对于目录,表示进入
s :文件执行时,将文件的UID 和GID 赋予执行进程的UID 和GID
t :设置标志位
- :没有设置权限
CHMOD
CHMOD (Change Mode )命令为改变文件或目录的权限。这个命令有两种使用方式:文字设定法和数字设定法。
文字设定法的一般格式为:
chmod [who][+|-|=][mode] filename
其中,who 为权限的操作对象,可以为如下单个或组合值:
u :文件或目录的所有者
g :同组用户
o :其它用户
a :所有用户,默认值
操作符号如下:
+ :添加权限
- :取消权限
= :赋予给定权限,同时取消其它权限
mode 代表权限,可以为如下字母的组合:
r :读
w :写
x :执行
u :同属主
g :同属组
o :同其它用户
举例如下:
chmod ug+w,o-x readme.txt
-- 属主与属组增加写权限,其它用户增加执行权限
除了文字设定法,还有一种更加简洁的数字设定法。数字设定法中,0 表示没有权限,1 表示可执行,2 表示可写,4 表示可读。这样,对于每个级别(属主、属组和其它)的权限都可以表示为0 -7 的一个八进制数,表示的顺序依次是:属主、属组和其它。例如,将某个文件设定为属主有读写和执行权限,属组和其它只有读权限,那么,命令格式如下:
chmod 744 a.txt
CHOWN
CHOWN 命令的功能为变更文件或目录的属主或属组。包含一个参数R ,可以递归修改目录的属主和属组:
chown -R username.groupname /home/camel
用户与用户组管理
用户与用户组
LINUX 中,文件是属于用户的,用户属于某个用户组或多个用户组。
用户的基本信息是保存在如下文本文件中的:
/etc/passwd
文件中的每一行描述一个用户信息,如下:
camel:x:500:500:camel:/home/camel:/bin/bash
分别为:登录名、加密口令表示、UID 、GID 、用户描述信息、主目录、SHELL
用户的加密口令是保存在影子文件中的:
/etc/shadow
同样,文件中的每一行描述一个用户信息,如下:
camel:$1$P1U14OXd$OJ1CnkfwJrT060t79qZC9.:14490::99999::::
分别为:用户登录名、加密后的口令、70 年到上次修改口令的天数、两次修改口令之间至少经过的天数、口令还将有效的天数(99999 表示永不过期)等。
同用户一样,用户组的基本信息也保存在一个文本文件中:
/etc/group
文件中的每一行描述一个用户组信息,如下:
camel:x:500:
分别为:分组名、加密口令表示和GID
用户组的口令保存在/etc/gshadow 下,包括组名、加密口令和组成员等信息。
用户管理
USERADD 与 PASSWD
USERADD 命令用来创建系统用户,命令语法如下:
useradd [-c comment]
[-d home_dir]
[-e expire_date]
[-f inactive_time]
[-g initial_group]
[-G group[,...]]
[-m [-k skeleton_dir] | -M]
[-s shell]
[-u uid [ -o]] [-n] [-r] login
举例如下:
useradd -g oinstall -G dba oracle
用户创建完毕后,需要使用PASSWD 命令为用户指定密码,直接敲入:Passwd username 即可开始指定密码。注意,只有超级用户才可以为其它用户指定密码,普通用户只能使用不带参数的PASSWD 命令修改自己的密码。
USERMOD
USERMOD 命令用来修改用户信息,参数类似于USERADD 命令。
USERDEL
USERDEL 命令用来删除用户,带参数r 可以连同主目录一起删除,但是不会删除非主目录下的其它文件,需要使用FIND 命令来删除:
find / -user camel –exec rm {} /
用户组管理
GROUPADD
GROUPADD 命令用来创建用户组。
GROUPMOD
GROUPMOD 命令用来修改用户组信息。
GROUPDEL
GROUPDEL 命令用来删除用户组。注意,当用户组为某个用户的主分组时,不能删除。
软件包管理
RPM
RPM 简介
RPM (Redhat Package Manager )是LINUX 提供的软件包管理工具,提供对软件的打包、安装、卸载、查询以及升级等功能。
RPM 包(*.rpm )除了包含可执行文件、附属文件等,还包含以数据库记录形式存在的依赖属性模块,即为了应用当前软件而需要的其它软件。安装的时候,系统会根据RPM 包中记录的信息,查看当前环境是否满足,不满足时是不能安装的。满足条件安装时,会将软件包信息写入RPM 数据库,以便以后的查询与卸载。
由于RPM 包中的文件是编译好的,所以要求安装环境与编译环境一致,且要满足软件的相互依赖性。为了解决这个问题,出现了SRPM (SOURCE RPM ),即RPM 包中包含源码,通常以 ***.src.rpm 这种格式来命名。
RPMDB (初始化与重建 RPM 数据库)
有的时候, 我们的rpm 的数据库会因为某些原因损坏, 这样当你执行rpm 的相关命令的时候就会报类似下面的错误:
rpmdb: fatal region error detected; run recovery
error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index
这样的后果是你将不能使用rpm 来添加删除, 更新查询你系统的RPM 软件包了, 其实只要按照下面的步骤做就可以恢复您的RPM 数据库而不需要重新安装系统:
# cd /var/lib
# mv rpm rpm.old
# mkdir rpm
# rpmdb --initdb
# cp rpm.old/Packages rpm
# rpmdb --rebuilddb
以上是针对redhat8 和redhat9 的做法如果是以前的版本或者其他版本的linux ,请按照下面的步骤进行:
# cd /var/lib
# mv rpm rpm.old
# mkdir rpm
# rpm --initdb
# cp rpm.old/Packages rpm
# rpm --rebuilddb
RPM -Q (软件包查询)
RPM 软件包查询包括对已经安装完毕的软件查询以及对*.rpm 文件包的查询。查询使用带有q (query )参数的RPM 命令,如下:
rpm -q|--query
各主要参数说明如下:
p :查询未安装的RPM 包(*.rpm )
f :查询某个文件属于那个软件包
a :查询所有已安装的软件包
i :显示软件包的概要信息
l :显示软件包中的文件列表
c :显示配置文件列表
d :显示文档文件列表
R :显示软件包的依赖关系
举例如下:
-- 查询某个具体的软件包
$rpm -q ftp
ftp-0.17-22
-- 查询系统所有已安装的软件包
$rpm -qa
-- 查询系统所有已安装的软件包并分页显示
$rpm -qa |more
-- 查询文件属于那个软件包
$rpm -qf /usr/lib/zsh
-- 查询软件包的安装文件列表
$rpm -ql zsh
-- 查询软件包的概要信息
$rpm -qi zsh
-- 查看一个软件包的依赖关系
$rpm -qpR file.rpm
RPM -I (软件包安装)
RPM 软件包安装通过带有i (install )参数的RPM 命令完成,如下:
rpm -i|--install
-- 普通安装
rpm -ivh xxx.rpm
-- 测试安装
rpm –i --test xxx.rpm
-- 强制安装
rpm -ivh --force xxx.rpm
RPM -E (软件包卸载)
rpm -e xxx
TAR
TAR 是LINUX 下常用的一个打包工具,为TAPE ARCHIVE (最初设计用来将文件打包归档到磁带上)的缩写。通常打包文件为*.tar 。TAR 命令的主要参数有:
c :创建TAR 文件
r :追加文件到TAR 包
delete :从TAR 包中删除文件
t :显示TAR 包文件内容
x :从TAR 包中释放文件
f :对普通文件操作
v :处理时显示详细信息
z :用gzip 压缩或解压缩
举例如下:
-- 创建TAR 文件(f 指对普通文件操作)
tar cvf a.tar ./*
-- 显示TAR 文件
tar tf a.tar
-- 释放文件
tar xvf a.tar
-- 追加文件
$tar -rf all.tar *.gif
在使用TAR 工具打包的同时,还可以进行压缩,避免再次调用压缩程序,下面详细说明可以在TAR 中使用的压缩程序。
TAR 调用 GZIP
gzip 是GNU 组织开发的一个压缩程序,.gz 结尾的文件就是gzip 压缩的结果。与gzip 相对的解压程序是gunzip 。tar 中使用-z 这个参数来调用gzip 。下面来举例说明一下:
tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg 的文件打成一个tar 包,并且将其用gzip 压缩,生成一个gzip 压缩过的包,包名为all.tar.gz
tar -xzf all.tar.gz
这条命令是将上面产生的包解开。
TAR 调用 BZIP2
bzip2 是一个压缩能力更强的压缩程序,.bz2 结尾的文件就是bzip2 压缩的结果。与bzip2 相对的解压程序是bunzip2 。tar 中使用-j 这个参数来调用gzip 。下面来举例说明一下:
tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg 的文件打成一个tar 包,并且将其用bzip2 压缩,生成一个bzip2 压缩过的包,包名为all.tar.bz2
tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。
TAR 调用 COMPRESS
compress 也是一个压缩程序,但是好象使用compress 的人不如gzip 和bzip2 的人多。.Z 结尾的文件就是bzip2 压缩的结果。与compress 相对的解压程序是uncompress 。tar 中使用-Z 这个参数来调用gzip 。下面来举例说明一下:
tar -cZf all.tar.Z *.jpg
这条命令是将所有.jpg 的文件打成一个tar 包,并且将其用compress 压缩,生成一个uncompress 压缩过的包,包名为all.tar.Z
tar -xZf all.tar.Z
这条命令是将上面产生的包解开
压缩包
ZIP
ZIP 压缩包含ZIP 和UNZIP 两个命令,压缩为ZIP ,解压为UNZIP ,形成的压缩文件后缀一般为*.ZIP 。ZIP 压缩与WINDOWS 中的ZIP 文件是通用的,可以互相压缩或解压。
对于压缩命令ZIP ,主要的参数有:
r :压缩时包含子目录
v :显示文件列表
d :从ZIP 文件中删除一个文件
m :将特定文件移入ZIP 文件中
举例说明如下:
-- 压缩当前目录下所有文件
$zip -r all.zip ./*
-- 显示ZIP 文件中的文件信息
$zip -v all.zip
-- 删除压缩文件中的指定文件
$zip -d all.zip a.txt
-- 向压缩文件中添加指定文件
$zip -m all.zip a.txt
UNZIP 用于ZIP 文件的解压,常见用法有:
-- 解压到当前目录
$unzip all.zip
-- 解压到指定目录(-d 为指定目录,-n 不覆盖,-o 为覆盖已经存在的)
$unzip -n all.zip -d /tmp
-- 查看文件目录,类似于带-V 的ZIP 命令
$unzip -v all.zip
GZIP
GZIP 是GNU ZIP 的缩写,一次只能对一个文件进行压缩或解压,不能象ZIP 或RAR 一样一次可以压缩多个文件,默认后缀名为*.gz 。
GZIP 使用比较简单,它集合了压缩和解压功能,主要参数说明如下:
d :解压(否则为压缩)
l :显示压缩文件的内容
v :压缩和解压时,显示名称和压缩比
举例说明一下:
-- 压缩当前目录下的所有文件(各自形成一个.gz 文件)
$gzip -v *
-- 解压缩
$gzip -dv *
BZIP2
BZIP2 也是对单个文件进行压缩或解压缩的,该工具有几个名称,包括:BZIP2 、BUNZIP2 、BZCAT ,形成的文件后缀一般为.bz2 。一般压缩使用BZIP2 ,解压缩使用BUNZIP2 。
进程
查看进程
PS
ps 是LINUX 的进程状态查看命令,是process status (或process snapshot )的缩写。ps 类似于WINDOWS 中的任务管理器(可以同时按下CTRL +SHIFT +ESC 启动任务管理器),不过ps 查看的是进行瞬间的快照,不是动态的(后面即将介绍的top 是动态的)。
不带任何参数的ps 命令列出与当前用户和当前终端有关的进程信息。常用的查看进程信息的参数组合有:
-ef :显示所有进程的全面信息,可以获取的信息有:
UID :进程属主用户
PID :进程ID 号
PPID :父进程的ID 号
C :进程最近使用CPU 的估算
STIME :进行开始时间,以“时: 分”的形式给出
TTY :进程建立时所对应的终端,问号表示不占用终端
TIME :累计使用CUP 时间
CMD :进程所对应的命令名
aux :显示所有终端所有用户的有关进程的所有信息,可以获取的信息有:
USER :进程属主用户
PID :进程ID 号
%CPU :CPU 使用率
%MEM :内存使用率
VSZ :占用虚拟内存大小(K )
RSS :占用内存大小(K )
TTY :进程建立时所对应的终端,问号表示不占用终端
STAT :进程状态
START :进程开始时间
TIME :占用CPU 的时间
COMMAND :所执行的指令
其中,进程状态STAT 有如下几种:
D 不可中断(通常为IO 操作)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6 开始无效)
X 死掉的进程
< 高优先级
n 低优先级
s 包含子进程
+ 位于后台的进程组
TOP
top 命令可以动态显示进程信息。在top 命令显示的信息中,包含统计信息区和进程信息区。统计信息区包含CUP 、内存、虚拟内存(交换内存)以及用户进程等统计信息;进程信息区包含各系统进程的详细信息。
常用的命令格式如下:
top d 1
每一秒刷新一次信息。
终止进程
KILL
对于前台进程可以使用Ctrl+C 来结束,对于后台进程,只能使用KILL 命令来结束。