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

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

SIGNAL 信号

-l 列出 SIGNAL
-1 重新读取一次参数的配置文件
-2 ctrl+c
-9 强制删除一个工作
-15 以正常的程序方式终止一项工作
-17 ctrl+z

一般 PID 默认情况下是可以省略 %号, 但也有例外, 工作控制等.

kill -SIGNAL PID

ps

列出在后台执行的顺序

-A, -e 将所有的 process 全部显示出来
-a 和 terminal 没关的 process
-x 和 -a 一起使用, 列出比较完整的信息

输出格式规则

l long format
j job 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 完成工作后发送邮件给用户
TIME H HH.MM HH:MM H:M, 支持 a.m 和 p.m
DATE today, 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
-e edit user‘s crontab
-l list user‘s crontab
-r delete user‘s crontab
-i prompt before deleting
-n <host> set host in cluster to run users‘ crontabs
-c get 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

列出内存信息

时间: 2024-10-13 10:57:28

Linux 笔记--进程的相关文章

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

Linux 程序设计学习笔记----进程管理与程序开发(上)

转载请注明出处,http://blog.csdn.net/suool/article/details/38406211,谢谢! Linux进程存储结构和进程结构 可执行文件结构 如下图: 可以看出,此ELF可执行文件存储时(没有调入内存)分为代码区.数据区和未出花数据区三部分. 代码区:存放cpu的执行的机器指令. 数据区:包含程序中的已经初始化的静态变量,以及已经初始化的全局变量. 未初始化数据区:存入的是未初始化的全局变量和未初始化的静态变量. 现在在上面的程序代码中增加一个int的静态变量

笔记整理--Linux守护进程

Linux多进程开发(三)进程创建之守护进程的学习 - _Liang_Happy_Life__Dream - 51CTO技术博客 - Google Chrome (2013/10/11 16:48:27) Linux多进程开发(三)进程创建之守护进程的学习 2013-07-04 17:25:35 标签:守护进程 daemon Linux多进程开发 系统编程 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liam2199.bl

linux内核——进程管理

在讲进程之前先说一下进程的堆栈的吧: 1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈.每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间.当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈:当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈. 2.进程用户栈和内核栈的切换 当进程因为中断或者系统调用而陷入内核态之行时,进程所使用的堆栈也要从用户栈转到内核栈. 进程陷

Linux笔记常规部分总结(待续)

Linux笔记常规部分总结 shell: 子shell bash--bash bash: 1.命令历史.命令补全 2.管道.重定向 3.命令别名 4.命令行编辑 5.命令行展开 6.文件名通配 7.变量 8.编程 命令行编辑: 光标跳转: ctrl+a:跳到命令行首 ctrl+e:跳到命令行尾 ctrl+u:删除光标至命令行首的内容 ctrl+k:删除光标至命令行尾的内容 ctrl+l:清屏 命令历史: 查看命令历史:history -c:清空命令历史 -d OFFSET [n]:删除指定位置的

操作系统学习笔记----进程/线程模型----Coursera课程笔记

操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上

【03】Linux笔记

Linux 笔记 装机必备 立刻关机 sudo shutdown -t now 设置fish为默认shell chsh -s /usr/bin/fish 安装ssh服务 sudo apt install sshd 让你的sudo输错密码的时候嘲讽你 sudo visudo 然后在配置中加入如下一行: Defaults insults 安装ss-qt5 sudo add-apt-repository ppa:hzwhuang/ss-qt5 sudo apt install shadowsocks-

转:linux守护进程的启动方法

Linux 守护进程的启动方法 作者: 阮一峰 日期: 2016年2月28日 "守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问题的由来 Web应用写好后,下一件事就是启动,让它一直在后台运行. 这并不容易.举例来说,下面是一个最简单的Node应用server.js,只有6行. var http = require('http'); http.createServer(function(req, res)

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a