名称:kill
使用权限:所有使用者
使用方式:
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
说明:kill 送出一个特定的信号
(signal) 给行程
id 为
pid 的行程根据该信号而做特定的动作,
若没有指定,
预设是送出终止 (TERM)
的信号
把计:
-s (signal):其中可用的讯号有 HUP (1), KILL (9), TERM (15),
分别代表着重跑,
砍掉,
结束;
详细的信号可以用 kill -l
-p:印出 pid ,
并不送出信号
-l (signal):列出所有可用的信号名称
范例:
将 pid 为
323 的行程砍掉
(kill):
kill -9 323
将 pid 为
456 的行程重跑
(restart):
kill -HUP 456
名称:nice
使用权限:所有使用者
使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
说明:以更改过的优先序来执行程式,
如果未指定程式, 则会印出目前的排程优先序,
内定的 adjustment
为 10,
范围为 -20 (最高优先序)
到 19 (最低优先序)
把计:
-n adjustment, -adjustment, --adjustment=adjustment
皆为将该原有优先序的增加 adjustment
--help 显示求助讯息
--version 显示版本资讯
范例:
将 ls 的优先序加
1 并执行:
nice -n 1 ls
将 ls 的优先序加
10 并执行:
nice ls将 ls
的优先序加 10
并执行
注意:优先序
(priority) 为作业系统用来决定
CPU 分配的参数,Linux
使用『回合制(round-robin)』的演算法来做
CPU 排程,优先序越高,所可能获得的
CPU时间就越多。
名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process)
的动态
参数:
ps 的参数非常多,
在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU
使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止 (通悸□□缜b进行
I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
范例:
ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
.......
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
........
名称:pstree
使用权限:所有使用者
使用方式:
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
pstree -V
说明:将所有行程以树状图显示,
树状图将会以 pid (如果有指定)
或是以 init
这个基本行程为根 (root) ,如果有指定使用者
id , 则树状图会只显示该使用者所拥有的行程
参数:
-a 显示该行程的完整指令及参数,
如果是被记忆体置换出去的行程则会加上括号
-c 如果有重覆的行程名,
则分开列出 (预设值是会在前面加上
*
范例:
pstree
init-+-amd
|-apmd
|-atd
|-httpd---10*[httpd]
%pstree -p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree -c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
| |-httpd
| |-httpd
| |-httpd
....
名称:renice
使用权限:所有使用者
使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
把计:
-p pid 重新指定行程的 id
为 pid
的行程的优先序
-g pgrp 重新指定行程群组(process group)的
id 为
pgrp 的行程
(一个或多个)
的优先序
-u user 重新指定行程拥有者为 user
的行程的优先序
范例:
将行程 id 为
987 及
32 的行程与行程拥有者为
daemon 及
root 的优先序号码加
1:
renice +1 987 -u daemon root -p 32
注意:每一个行程(Process)都有一个唯一的
(unique) id
名称:top
使用权限:所有使用者
使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
说明:即时显示 process
的动态
把计:
d:改变显示的更新速度,或是在交谈式指令列( interactive command)按
s
q:没有任何延迟的显示速度,如果使用者是有
superuser 的权限,则
top 将会以最高的优先序执行
c:切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S:累积模式,会将己完成或消失的子行程
( dead child process ) 的
CPU time 累积起来
s:安全模式,将交谈式指令取消,
避免潜在的危机
i:不显示任何闲置 (idle)
或无用 (zombie)
的行程
n:更新的次数,完成后将会退出
top
b:批次档模式,搭配
"n" 参数一起使用,可以用来将
top 的结果输出到档案内
范例:
显示更新十次后退出 ;
top -n 10
使用者将不能利用交谈式指令来对行程下命令:
top -s
将更新显示二次的结果输入到名称为 top.log
的档案里:
top -n 2 -b < top.log
名称:skill
使用权限:所有使用者
使用方式: skill [signal to send] [options]
选择程序的规则
说明:
送个讯号给正在执行的程序,预设的讯息为
TERM (中断) ,
较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和
0
讯息有三种写法:分别为
-9 , -SIGKILL , -KILL , 可以使用
-l 或
-L 已列出可使用的讯息。
一般参数:
-f 快速模式/尚未完成
-i 互动模式/
每个动作将要被确认
-v 详细输出/
列出所选择程序的资讯
-w 智能警告讯息/
尚未完成
-n 没有动作/
显示程序代号
参数:选择程序的规则可以是,
终端机代号,使用者名称,程序代号,命令名称。
-t 终端机代号 ( tty
或 pty )
-u 使用者名称
-p 程序代号 ( pid )
-c 命令名称 可使用的讯号:
以下列出已知的讯号名称,讯号代号,功能。
名称 (代号)
功能/
描述
ALRM 14 离开
HUP 1 离开
INT 2 离开
KILL 9 离开/
强迫关闭
PIPE 13 离开
POLL 离开
PROF 离开
TERM 15 离开
USR1 离开
USR2 离开
VTALRM 离开
STKFLT 离开/
只适用于i386, m68k, arm
和 ppc
硬体
UNUSED 离开/
只适用于i386, m68k, arm
和 ppc
硬体
TSTP 停止 /产生与内容相关的行为
TTIN 停止 /产生与内容相关的行为
TTOU 停止 /产生与内容相关的行为
STOP 停止 /强迫关闭
CONT 从新启动 /如果在停止状态则从新启动,否则忽略
PWR 忽略 /在某些系统中会离开
WINCH 忽略
CHLD 忽略
ABRT 6 核心
FPE 8 核心
ILL 4 核心
QUIT 3 核心
SEGV 11 核心
TRAP 5 核心
SYS 核心 /或许尚未实作
EMT 核心 /或许尚未实作
BUS 核心 /核心失败
XCPU 核心 /核心失败
XFSZ 核心 /核心失败
范例:
停止所有在 PTY 装置上的程序
skill -KILL -v pts/*
停止三个使用者 user1 , user2 , user3
skill -STOP user1 user2 user3
其他相关的命令: kill
名称:expr
使用权限:所有使用者
### 字串长度
shell>> expr length "this is a test"
14
### 数字商数
shell>> expr 14 % 9
5
### 从位置处抓取字串
shell>> expr substr "this is a test" 3 5
is is
### 数字串 only the first character
shell>> expr index "testforthegame" e
2
### 字串真实重现
shell>> expr quote thisisatestformela
thisisatestformela
名称: tr
### 1.比方说要把目录下所有的大写档名换为小写档名?
似乎有很多方式,"tr"是其中一种:
#!/bin/sh
dir="/tmp/testdir";
files=`find $dir -type f`;
for i in $files
do
dir_name=`dirname $i`;
ori_filename=`basename $i`
new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;
#echo $new_filename;
mv $dir_name/$ori_filename $dir_name/$new_filename
done
### 2.自己试验中...lowercase to uppercase
tr abcdef...[del] ABCDE...[del]
tr a-z A-Z
tr [:lower:] [:upper:]
shell>> echo "this is a test" | tr a-z A-Z > www
shell>> cat www
THIS IS A TEST
### 3.去掉不想要的字串
shell>> tr -d this ### 去掉有关 t.e.s.t
this
man
man
test
e
### 4.取代字串
shell>> tr -s "this" "TEST"
this
TEST
th
TE
指令:clear
用途:清除萤幕用。
使用方法:在 console
上输入 clear。
名称: reset, tset
使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]
使用说明:
reset 其实和 tset
是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数,命令列或是其它的组态档决定目前终端机的型态。如果指定型态是
? 的话,这个程式会要求使用者输入终端机的型别。
由于这个程式会将终端机设回原始的状态,除了在
login 时使用外,当系统终端机因为程式不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o
例如不小心把二进位档用 cat
指令进到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪字元的问题。此时就可以用
reset 将终端机回复至原始状态。选项说明:
-p
将终端机类别显示在萤幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别。
-e ch
将 erase 字元设成
ch
-i ch
将中断字元设成 ch
-k ch
将删除一行的字元设成 ch
-I
不要做设定的动作,如果没有使用选项
-Q 的话,erase,中断及删除字元的目前值依然会送到萤幕上。
-Q
不要显示 erase,中断及删除字元的值到萤幕上。
-r
将终端机类别印在萤幕上。
-s
将设定 TERM 用的命令用字串的型式送到终端机中,通常在
.login 或
.profile 中用
范例:
让使用者输入一个终端机型别并将终端机设到该型别的预设状态。
# reset ?
将 erase 字元设定
control-h
# reset -e ^B
将设定用的字串显示在萤幕上
# reset -s
Erase is control-B (^B).
Kill is control-U (^U).
Interrupt is control-C (^C).
TERM=xterm;
名称:compress
使用权限:所有使用者
使用方式:compress [-dfvcV] [-b maxbits] [file ...]
说明:
compress 是一个相当古老的 unix
档案压缩指令,压缩后的档案会加上一个
.Z 延伸档名以区别未压缩的档案,压缩后的档案可以以
uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案
tar 起来再压缩。由于
gzip 可以产生更理想的压缩比例,一般人多已改用
gzip 为档案压缩工具。
参数:
c 输出结果至标准输出设备(一般指荧幕)
f 强迫写入档案,若目的档已经存在,则会被覆盖
(force)
v 将程式执行的讯息印在荧幕上 (verbose)
b 设定共同字串数的上限,以位元计算,可以设定的值为
9 至
16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值
16 bits (bits)
d 将压缩档解压缩
V 列出版本讯息
范例:
将 source.dat 压缩成
source.dat.Z ,若
source.dat.Z 已经存在,内容则会被压缩档覆盖。
compress -f source.dat
将 source.dat 压缩成
source.dat.Z ,并列印出压缩比例。
-v 与 -f
可以一起使用
compress -vf source.dat
将压缩后的资料输出后再导入 target.dat.Z
可以改变压缩档名。
compress -c source.dat > target.dat.Z
-b 的值越大,压缩比例就越大,范围是
9-16 ,预设值是
16 。
compress -b 12 source.dat
将 source.dat.Z
解压成 source.dat ,若档案已经存在,使用者按
y 以确定覆盖档案,若使用
-df 程式则会自动覆盖档案。由于系统会自动加入
.Z 为延伸档名,所以
source.dat 会自动当作
source.dat.Z 处理。
compress -d source.dat
compress -d source.dat.Z
Linux系统命令及其详解3
最新推荐文章于 2021-05-03 23:53:05 发布