首页 > 代码库 > Linux 笔记--进程

Linux 笔记--进程

管道和 "-"

tar cvf  /home | tar xvf -

用-来代替 stdout stdin
这个和管道的区别: 管道是输出字符流, 这个是将前面的视为文件.

tee 双重导向

-a累加写入 file


# 两个重定向
ls | tee a.txt
Desktop
Downloads
Dropbox
goagent
Work

cat a.txt
......
ls | tee a.txt > b.txt

jobs

ctrl+z: 任务是暂停的
ctrl+y: 只有当进程试图从终端读取输入时才被挂起
&: 任务是在后台进行的
fg: 让进程在前台运行
-l列出 PID 和 进程名
-p只 PID 号码
-r运行的 run
-s暂停的 stop



%N作业编号
%STRING命令以 STRING 开头的
%?STRING命令包含 STRING
%+最近被调用的
%%最近被调用的
%-迪尔格最近被调用的



jobs
[1]+  Stopped                 cat > a
[2]-  Stopped                 cat > b
# fg 此时执行 fg 就取出 cat a, 默认是取出 +号的
# 要想取出 2, 就用 fg 2, 或者用 fg -
# 也可以用 fg ?b, 但是 fg ?a 就不行了, 和 cat 有冲突

kill

-iinteractive, 若要删除有提示
-eexact, 加上名字不超过 15 个字符
-I忽略大小写


SIGNAL 信号

-l列出 SIGNAL
-1重新读取一次参数的配置文件
-2ctrl+c
-9强制删除一个工作
-15以正常的程序方式终止一项工作
-17ctrl+z
一般 PID 默认情况下是可以省略 %号, 但也有例外, 工作控制等.
kill -SIGNAL PID

ps

列出在后台执行的顺序

-A, -e将所有的 process 全部显示出来
-a和 terminal 没关的 process
-x和 -a 一起使用, 列出比较完整的信息
输出格式规则
llong format
jjob format
-f完整的输出
l 的格式
F: flags
4 代表 root
1 代表子程序


S: STAT
R:running
S:Sleep
D: 不可被唤醒的睡眠状态
T: Stop
Z: Zombie(僵尸状态)程序已经终止但却不能移除至内存
UID/PID/PPID…
C: 代表 CPU 使用率.
ADDR: kernel function., 指出程序在内存的哪个部分, running -
SZ: 代表程序用掉多少内存
WCHAN: 表示目前程序是否运行, -, 表示在运行.
TTY: 登入者的终端位置, 远程登录则使用动态终端接口(pts/n);
TIME: 使用掉的 CPU 时间, 花费 CPU 的时间.
CMD: COMMAND 名字.

trap


trap "echo ‘you hit control-c‘" INT
trap "echo ‘you try to kill me‘" TERM
while true; do
    sleep 60
done

wait

等待上面的任务完成才做下面的, 防止并发.
do something…
wait
do another thing

at

-f <FILEnAME>所要执行的文件
-l列出当前搜有等待运行的工作. atq
-r清除 atm
-m完成工作后发送邮件给用户
TIMEH HH.MM HH:MM H:M, 支持 a.m 和 p.m
DATEtoday, tomorrow
at now + 2minute
at 11.10pm
atq 列出
atrm +N 先用 atq 看下是哪个程序,然后删除


batch 当系统空闲时候才执行工作

crontab:

MINUTE HOUR DAY MONTH WEEK COMMAND  # 如果没有限定需要用 *.

注: 周日用 0 表示, 表示要在周日和周一运行 COMMAND, 1,0, 周时间和日月时间不应该同时存在

0 22 * * * dropbox start  # 表示每天的 22:00 运行 dropbox 來备份
*/5 * * * * COMMAND # 表示每隔 5 分钟执行一次
crontab FILENAME


export EDITOR="emacs"

-u <user>define user
-eedit user‘s crontab
-llist user‘s crontab
-rdelete user‘s crontab
-iprompt before deleting
-n <host>set host in cluster to run users‘ crontabs
-cget host in cluster to run users‘ crontabs
-x <mask>enable debugging
backup file /var/spool/cron/USER # root

daemon

常驻在内存当中. 一直在后台工作的进程.

top

-d后面接秒数, 默认是 5 秒,画面更新的秒数
-b以批次的方式执行 top
-n和-b 搭配,表示需要进行几次 top 的输出结果
-p指定某些 PID 进行观察检测
按键:
?显示可以输入的按键指令
P以 CPU 使用资源排序显示
M以 Memory 的使用资源排序显示
N以 PID 排序
T由 CPU 时间排序
k给某个 PID 一个讯号(signal)
r给某个 PID 重新制定一个 nice 值
q离开 top 的案件

free

列出内存信息

Linux 笔记--进程