linux-基础知识-23天

Linux进程及作业管理

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能

Process: 运行中的程序的一个副本;

存在生命周期

Linux内核存储进程信息的固定格式:task struct

多个任务的的task struct组件的链表:task list

进程创建:

init

父子关系

进程:都由其父进程创建

fork(), clone()

进程优先级:

0-139:

1-99:实时优先级;

100-139:静态优先级;

数字越小,优先级越高;

Nice值:

-20,19

Big O

O(1), O(logn), O(n), O(n^2), O(2^n)

进程内存:

Page Frame: 页框,用存储页面数据

存储Page

MMU:Memory Management Unit

IPC: Inter Process Communication

同一主机上:

signal

shm: shared memory

semerphor

不同主机上:

rpc: remote procecure call

socket:

Linux内核:抢占式多任务

进程类型:

守护进程: 在系统引导过程中启动的进程,跟终端无关的进程;

前台进程:跟终端相关,通过终端启动的进程

注意:也可把在前台启动的进程送往后台,以守护模式运行;

进程状态:

运行态:running

就绪态:ready

睡眠态:

可中断:interruptable

不可中断:uninterruptable

停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped

僵死态:zombie

进程的分类:

CPU-Bound

IO-Bound

《Linux内核设计与实现》,《深入理解Linux内核》

Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

pstree命令:

pstree - display a tree of processes

ps: process state

ps - report a snapshot of the current processes

Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;

ps [OPTION]...

选项:支持两种风格

常用组合:aux

u: 以用户为中心组织进程状态信息显示

a: 与终端相关的进程;

x: 与终端无关的进程;

~]# ps aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

VSZ: Virtual memory SiZe,虚拟内存集

RSS: ReSident Size, 常驻内存集

STAT:进程状态

R:running

S: interruptable sleeping

D: uninterruptable sleeping

T: stopped

Z: zombie

+: 前台进程

l: 多线程进程

N:低优先级进程

<: 高优先级进程

s: session leader

常用组合:-ef

-e: 显示所有进程

-f: 显示完整格式程序信息

常用组合:-eFH

-F: 显示完整格式的进程信息

-H: 以进程层级格式显示进程相关信息

常用组合:-eo, axo

-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni: nice值

pri: priority,优先级

psr: processor, CPU

rtprio: 实时优先级

pgrep, pkill:

pgrep [options] pattern

pkill [options] pattern

-u uid: effective user

-U uid: real user

-t terminal: 与指定终端相关的进程

-l: 显示进程名

-a: 显示完整格式的进程名

-P pid: 显示其父进程为此处指定的进程的进程列表

pidof:

根据进程名获取其PID;

top:

有许多内置命令:

排序:

P:以占据的CPU百分比;

M:占据内存百分比;

T:累积占据CPU时长;

首部信息显示:

uptime信息:l命令

tasks及cpu信息:t命令

cpu分别显示:1 (数字)

memory信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定进程:k

选项:

-d #: 指定刷新时间间隔,默认为3秒;

-b: 以批次方式;

-n #: 显示多少批次;

htop命令:

选项:

-d #: 指定延迟时间;

-u UserName: 仅显示指定用户的进程;

-s COLOMN: 以指定字段进行排序;

命令:

s: 跟踪选定进程的系统调用;

l: 显示选定进程打开的文件列表;

a:将选定的进程绑定至某指定CPU核心;

t: 显示进程树

注意:Fedora-EPEL源

Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

vmstat命令:

vmstat [options] [delay [count]]

procs:

r:等待运行的进程的个数;

b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);

memory:

swpd: 交换内存的使用总量;

free:空闲物理内存总量;

buffer:用于buffer的内存总量;

cache:用于cache的内存总量;

swap:

si:数据进入swap中的数据速率(kb/s)

so:数据离开swap中的数据速率(kb/s)

io:

bi:从块设备读入数据到系统的速率;(kb/s)

bo: 保存数据至块设备的速率;

system:

in: interrupts, 中断速率;

cs: context switch, 进程切换速率;

cpu:

us

sy

id

wa

st

选项:

-s: 显示内存的统计数据

pmap命令:

pmap - report memory map of a process

pmap [options] pid [...]

-x: 显示详细格式的信息;

另外一种实现:

# cat /proc/PID/maps

glances命令:

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]

内建命令:

a  Sort processes automatically     l  Show/hide logs

c  Sort processes by CPU%           b  Bytes or bits for network I/O

m  Sort processes by MEM%           w  Delete warning logs

p  Sort processes by name           x  Delete warning and critical logs

i  Sort processes by I/O rate       1  Global CPU or per-CPU stats

d  Show/hide disk I/O stats         h  Show/hide this help screen

f  Show/hide file system stats      t  View network I/O as combination

n  Show/hide network stats          u  View cumulative network I/O

s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)

y  Show/hide hddtemp stats

常用选项:

-b: 以Byte为单位显示网卡数据速率;

-d: 关闭磁盘I/O模块;

-f /path/to/somefile: 设定输入文件位置;

-o {HTML|CSV}:输出格式;

-m: 禁用mount模块

-n: 禁用网络模块

-t #: 延迟时间间隔

-1:每个CPU的相关数据单独显示;

C/S模式下运行glances命令:

服务模式:

glances -s -B IPADDR

IPADDR: 指明监听于本机哪个地址

客户端模式:

glances -c IPADDR

IPADDR:要连入的服务器端地址

dstat命令:

dstat [-afv] [options..] [delay [count]]

-c: 显示cpu相关信息;

-C #,#,...,total

-d: 显示disk相关信息;

-D total,sda,sdb,...

-g:显示page相关统计数据;

-m: 显示memory相关统计数据;

-n: 显示network相关统计数据;

-p: 显示process相关统计数据;

-r: 显示io请求相关的统计数据;

-s: 显示swapped相关的统计数据;

--tcp

--udp

--unix

--raw

--socket

--ipc

--top-cpu:显示最占用CPU的进程;

--top-io: 显示最占用io的进程;

--top-mem: 显示最占用内存的进程;

--top-lantency: 显示延迟最大的进程;

kill命令:

向进程发送控制信号,以实现对进程管理

显示当前系统可用信号:

# kill -l

# man 7 signal

常用信号:

1) SIGHUP: 无须关闭进程而让其重读配置文件;

2) SIGINT: 中止正在运行的进程;相当于Ctrl+c;

9) SIGKILL: 杀死正在运行的进程;

15) SIGTERM:终止正在运行的进程;

18) SIGCONT:

19) SIGSTOP:

指定信号的方法:

(1) 信号的数字标识;1, 2, 9

(2) 信号完整名称;SIGHUP

(3) 信号的简写名称;HUP

向进程发信号:

kill [-SIGNAL] PID...

终止“名称”之下的所有进程:

killall [-SIGNAL] Program

Linux的作业控制

前台作业:通过终端启动,且启动后一直占据终端;

后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);

如何让作业运行于后台?

(1) 运行中的作业

Ctrl+z

(2) 尚未启动的作业

# COMMAND &

此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系:

# nohup COMMAND &

查看所有作业:

# jobs

作业控制:

# fg [[%]JOB_NUM]:把指定的后台作业调回前台;

# bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行;

# kill [%JOB_NUM]:终止指定的作业;

进程优先级调整:

静态优先级:100-139

进程默认启动时的nice值为0,优先级为120;

nice命令:

nice [OPTION] [COMMAND [ARG]...]

renice命令:

renice [-n] priority pid...

查看:

ps axo pid,comm,ni

netstat命令:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

显示网络连接:

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

-t: tcp协议相关

-u: udp协议相关

-w: raw socket相关

-l: 处于监听状态

-a: 所有状态

-n: 以数字显示IP和端口;

-e:扩展格式

-p: 显示相关进程及PID

常用组合:

-tan, -uan, -tnl, -unl

显示路由表:

netstat  {--route|-r} [--numeric|-n]

-r: 显示内核路由表

-n: 数字格式

显示接口统计数据:

netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]

# netstat -i

# netstat -I IFACE

基本语法

========

过滤主机

--------

- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据

# tcpdump -i eth1 host 192.168.1.1

- 源地址

# tcpdump -i eth1 src host 192.168.1.1

- 目的地址

# tcpdump -i eth1 dst host 192.168.1.1

过滤端口

--------

- 抓取所有经过 eth1,目的或源端口是 25 的网络数据

# tcpdump -i eth1 port 25

- 源端口

# tcpdump -i eth1 src port 25

- 目的端口

# tcpdump -i eth1 dst port 25网络过滤

--------

# tcpdump -i eth1 net 192.168

# tcpdump -i eth1 src net 192.168

# tcpdump -i eth1 dst net 192.168

协议过滤

--------

# tcpdump -i eth1 arp

# tcpdump -i eth1 ip

# tcpdump -i eth1 tcp

# tcpdump -i eth1 udp

# tcpdump -i eth1 icmp

常用表达式

----------

非 : ! or "not" (去掉双引号)

且 : && or "and"

或 : || or "or"

- 抓取所有经过 eth1,目的地址是 192.168.1.254 或 192.168.1.200 端口是 80 的 TCP 数据

# tcpdump -i eth1 ‘((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host

192.168.1.200)))‘

- 抓取所有经过 eth1,目标 MAC 地址是 00:01:02:03:04:05 的 ICMP 数据

# tcpdump -i eth1 ‘((icmp) and ((ether dst host 00:01:02:03:04:05)))‘

- 抓取所有经过 eth1,目的网络是 192.168,但目的主机不是 192.168.1.200 的 TCP 数据

# tcpdump -i eth1 ‘((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))‘

时间: 2024-10-29 19:09:05

linux-基础知识-23天的相关文章

Linux基础知识题解答(五)

题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. (1)155729 -rw-r--r--.  1 root root   35 Oct 28 2011  oldboy 请解析上面的每一列内容 文件inode号,文件访问权限,硬链接数,文件所属用户,文件所属组,文件最后修改时间,文件名 (2)描述下硬链接和软连接的区别 1.硬链接原文件/链接文件共用

linux基础知识的总结

例如以下内容是我对linux基础知识的总结,由于本人在初期学习linux的时候走了不少的弯路,对于基础的掌握耗费了不少的时间,所以为了后来者对linux的基础部分有个清晰的了解,特对基础知识进行了总结,由于水平有限.难免有疏忽或者不准确的地方.希望大家可以直接指出来,我会及时改正.一切为了知识的传播.^_^ ? *********************************************************************************************

Linux基础知识之挂载详解(mount,umount及开机自动挂载)

Linux基础知识之挂载详解(mount,umount及开机自动挂载) 转载自:http://www.linuxidc.com/Linux/2016-08/134666.htm 挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载",此目录即为"挂载点",解除此关联关系的过程称之为"卸载" 1.挂载:根文件系统外通过关联至根文件系统上的某个目录来实现访问

老男孩26期运维班linux基础知识大比拼即将开始

老男孩26期运维班linux基础知识大比拼 1 比赛说明 比赛时间:2015年11月12日下午15点 比赛地点:老男孩教育教室二 比赛人员:老男孩教育26期全体同学 奖项:团体奖(按组奖励共1-9组): 一等奖奖励300元人民币或每人老男孩老师新书一本和老师合影签名. 二等奖奖励200元人民币 三等奖奖励100元人民币 个人奖:3名,赠老男孩新书一本 惩罚:没有得奖的组,或者组内无人得奖的组,罚100元或派选代表表演一个节目(唱歌或其它) 比赛规则当场宣布: 主评委:老男孩老师,张导 辅助评委:

Linux 基础知识(五)

一.每12小时备份并压缩/etc/目录到/back目录中,保存文件名格式为,etc-年-月-日-时-分.tar.gz) crontab -e *12/*** /usr/bin/tar -czf `date +%F-%H-%M`-etc.tar.gz /etc/ ??二.rpm包管理功能总结以及实例应用演示rpm命令:rpm [OPTIONS] [PACKAGE_FILE]安装:-i, --install升级:-U, --update, -F, --freshen卸载:-e, --erase查询:

1、linux基础知识

第一天linux基础知识 1:linux操作系统组成 linux内核+GNU工具=完整的类UNIX系统 GNU工具(GNU软件是通过GNU项目发布的软件,它是一种根据GNU软件包的README手册以及自由软件指南开发的软件,大多数GNU软件是免费分发的,但不是所有的都这样,然而,所有的GNU软件必须是自由软件.) 2:linux发行版  slackware debian  reehad  Gentoo等 3:linux哲学思想 一切皆文件(硬件也已文件的形式展现在操作系统中) 小型,单一用途程序

linux基础知识第一节

用户接口: 是一种独特的应用程序,能够为用户提供启动其它应用程序的的机制 cli:命令提示符,用户输入要执行的命令即可, shell: 外壳 sh ,csh ,ksh ,   bash, zsh , tcsh gui: 通过点击操作来启动应用程序 gnome,  mainframe  大型机 多用户操作系统    多终端   终端:设备,显示器,鼠标,键盘 虚拟终端 表示:/dev/tty# ctrl-alt-f(1-6) 物理终端(控制终端)console 串行终端 伪终端 /dev/pts#

Linux基础知识(2)

Linux基础知识: 一.程序管理: (1)程序的组成部分: (2)二进制程序: (3)配置文件: (4)库文件: (5)帮助文件: 二.程序包管理器: X: (1)程序的组成文件打包成一个或有限几个文件: (2)安装: (3)卸载: (4)查询: 三.安装Linux: 虚拟机安装Linux系统 需要设置计算机的CPU, 内存, IO等 四.虚拟化软件程序: vmwareworkstation和virtualbox虚拟机都可以安装系统 五.CentOS的镜像站点: http://mirrors.

第二天linux基础知识

第二天linux基础知识 1:终端(用户与主机交互必然用到的设备) 物理终端:直接接入本机的设备 虚拟终端:以软件的方法虚拟实现的终端. 图形终端:属于虚拟终端 模拟终端:图形打开的命令行或基于远程登录协议打开的终端. 查看当前终端设备命令:tty 2:交互式接口(启动终端后,在终端附加的一个交互式程序) GUI:Graphic User Interface CLI:Command Line Interface 3:SHELL(shell是linux系统的用户界面,提供了用户与内核进行交互操作的

linux基础知识题解答(九)

题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. (Linux用户权限-磁盘-网络) (1)列出 IPv4 的网络地址的分类,各分类容纳的网络数和主机数,以及前三类中的私有地址. A类:1~126,私有地址10.0.0.0~10.255.255.255 B类:128~191,私有地址172.16.0.0~172.31.255.255 C类:192~2