这个总结时间花了挺长时间的,有很多实战方面的知识点,大部分都是关于进程的查询还有杀死的等,还有一个硬链接和软链接的实战等,希望这篇博文对大家有帮助,加油↖(^ω^)↗

Linux系统进程管理

进程的属性

进程ID(PID):是唯一的数值,用来区分进程

父进程的ID(PPID)

启动进程的用户ID(UID)和所归属的组(GID)

进程状态:状态分为运行R、休眠S、僵尸Z

进程执行的优先级

进程所连接的终端名

进程资源占用:比如占用资源大小(内存、CPU占用量)

静态进程查看命令:ps

常用参数(选项)

? -a 显示所有用户的进程

? -u 显示用户名和启动时间

? -x 显示没有控制终端的进程

? -e 显示所有进程,包括没有控制终端的进程

? -l 长格式显示,详细信息显示

? -w  宽行显示,可以使用多个w进行加宽显示

我们常用的选项是组合是aux

[root@centos-6-1 ~]# ps -aux | head -10

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

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

root         1  0.0  0.1  19360  1524 ?        Ss   10:58   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/0]

root         5  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/0]

root         6  0.0  0.0      0     0 ?        S    10:58   0:00 [watchdog/0]

root         7  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/1]

root         8  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/1]

root         9  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/1]

[root@centos-6-1 ~]#

1.查看指定选项,用户 pid值  cpu占用 mem内存  ppid父进程    command 命令字 显示前10行

[root@centos-6-1 ~]# ps axo user,pid,%cpu,%mem,ppid,command | head -10

USER       PID %CPU %MEM  PPID COMMAND

root         1  0.0  0.1     0 /sbin/init

root         2  0.0  0.0     0 [kthreadd]

root         3  0.0  0.0     2 [migration/0]

root         4  0.0  0.0     2 [ksoftirqd/0]

root         5  0.0  0.0     2 [stopper/0]

root         6  0.0  0.0     2 [watchdog/0]

root         7  0.0  0.0     2 [migration/1]

root         8  0.0  0.0     2 [stopper/1]

root         9  0.0  0.0     2 [ksoftirqd/1]

[root@centos-6-1 ~]#

2.查看sshd服务的所有占用信息

[root@centos-6-1 ~]# ps axo user,pid,%cpu,%mem,command | grep sshd

root      1141  0.0  0.1 /usr/sbin/sshd

root      1367  0.0  0.4 sshd: root@pts/0

root      1728  0.0  0.0 grep sshd

[root@centos-6-1 ~]#

3.查看sshd服务所使用的pid号

[root@centos-6-1 ~]# pidof sshd

1367 1141

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# pgrep sshd

1141

1367

[root@centos-6-1 ~]#

[root@centos-6-2 ~]#

[root@centos-6-2 ~]# pgrep -l  sshd //-l指的是查看服务名称信息 ,查看当前服务的所有占用的pid

1135 sshd

1349 sshd

[root@centos-6-2 ~]#

4.ps命令按照cpu从小到大进行排序 显示前10行

[root@centos-6-1 ~]# ps aux --sort %cpu | head -10

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

root         1  0.0  0.1  19360  1524 ?        Ss   10:58   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/0]

root         5  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/0]

root         6  0.0  0.0      0     0 ?        S    10:58   0:00 [watchdog/0]

root         7  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/1]

root         8  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/1]

root         9  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/1]

5.ps命令按照cpu从大到小进行排序  显示前10行

[root@centos-6-1 ~]# ps aux --sort -%cpu | head -10

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

root      1812  0.3  0.4 102084  4136 ?        Ss   16:33   0:00 sshd: root@pts/1

root      1816  0.1  0.1 108312  1876 pts/1    Ss   16:33   0:00 -bash

root         1  0.0  0.1  19360  1524 ?        Ss   10:58   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/0]

root         5  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/0]

root         6  0.0  0.0      0     0 ?        S    10:58   0:00 [watchdog/0]

root         7  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/1]

[root@centos-6-1 ~]#

top

动态查看进程信息

top - 15:13:08 up  4:14,  2 users,  load average: 0.03, 0.06, 0.05

Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   194748k used,   825164k free,    29268k buffers

Swap:  2097148k total,        0k used,  2097148k free,    44980k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1 root      20   0 19360 1524 1228 S  0.0  0.1   0:00.73 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:00.04 ksoftirqd/0

第一行:时间  up 系统运行时间   2users 当前登录用户   load acerage 系统负载:0.00(1分钟)   0.01(5分钟)   0.05(15分钟的系统负载)  如果这个值超过1的话就是系统负载过高,  用这个值除1 就是可以知道正不正常了。

第二行:进程信息  total: 进程数   4  running (运行进程):4个进程正在运行  321 sleeping(处于休眠状态的进程)321处于休眠状态的进程 0 stopped (停止状态) 0个停止的进程  0 zombie (僵尸进程)0个僵尸进程

第三行:cpu信息  0.0 us:系统用户进程使用的百分比  0.1 sy:内核中进程占用的百分比

0.0 ni :用户的进程空间  99.9 id :空闲状态     0.0wa:等待     0.0 hi:换入换出   0.0  si:  0.0 st:

第四行:内存信息 984728 total:总内存容量   96376 free:剩余内存   506844 used:使用的内存值  381508 buff/cache :buff 缓存

第五行:交换分区信息 内存信息 984728 total:总内存容量   96376 free:剩余内存   506844 used:使用的内存值  234344 avail  mem :可使用的内存空间

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1 root      20   0 19360 1524 1228 S  0.0  0.1   0:00.73 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:00.04 ksoftirqd/0

单位是KB

Pid :进程id号

User:进程属于哪一个用户

PR:优先级操作系统内核参数的动态调整的,由内核控制的,用户无法控制的

NI:优先级,这个优先级是可以被用户所控制的

VIRT:相当于ps -aux 里的参数 VSZ 都是虚拟内存 VIRT + RES =146276

RES:进程使用当前实际的物理内存

SHR:共享内存,看实际内存 RES – SHR = 实际内存

%CPU:占用cpu的百分比

%MEM:占用内存的百分比

TIME+:运行多长时间

COMMAND:相应的命令,调用了什么东西

top快捷键:

?默认3s刷新一次,按d / s修改刷新时间

?w:保存配置

?空格 :立即刷新。

?q退出

?M:按内存排序

?u/U:指定显示的用户

?P:按CPU排序

?h:帮助

1.进入top动态显示进程下 每隔0.1刷新一次

首先按下键盘上的小写d,在输入0.1  即可

Change delay from 3.0 to: 0.1

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0

2.按照内存进行排序

按下键盘上大写的M即可按照内存从大到小进行排序,小写m是隐藏内存信息和swap(交换分区)

Cpu(s):  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   147628k used,   872284k free,     6708k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43148k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1323 root      20   0 99.7m 4152 3136 S  0.0  0.4   0:00.80 sshd

1242 root      20   0 1012m 3644 2356 S  0.0  0.4   0:00.04 console-kit-dae

1204 postfix   20   0 81144 3448 2564 S  0.0  0.3   0:00.01 qmgr

1191 root      20   0 80896 3436 2532 S  0.0  0.3   0:00.05 master

1203 postfix   20   0 80976 3388 2520 S  0.0  0.3   0:00.03 pickup

1237 root      18  -2 12316 2644  548 S  0.0  0.3   0:00.00 udevd

1236 root      18  -2 12316 2640  548 S  0.0  0.3   0:00.00 udevd

3.按照cpu进行排序

按下键盘上小写的c即可按照cpu从大到小进行排序,或者大写的P也可以

Mem:   1019912k total,   148272k used,   871640k free,     6764k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43304k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1323 root      20   0 99.7m 4152 3136 S  2.5  0.4   0:00.92 sshd

1423 root      20   0 15024 1308 1008 R  2.5  0.1   0:00.46 top

1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:00.08 ksoftirqd/0

4.查看aaa用户所有进程信息

按下键盘输入大写或小写的u即可

Mem:   1019912k total,   148132k used,   871780k free,     6772k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43304k cached

Which user (blank for all): aaa

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:00.08 ksoftirqd/0

Mem:   1019912k total,   148132k used,   871780k free,     6772k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43304k cached

Which user (blank for all): aaa

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:00.08 ksoftirqd/0

pstree工具使用

pstree命令以树状图显示进程间的关系(display a tree of processes)。

格式:pstree

以树状图显示进程,只显示进程的名字,且相同进程合并显示。

格式:pstree  -p

以树状图显示进程,还显示进程PID。

[root@centos-6-1 ~]# pstree -p | more

init(1)-+-auditd(993)---{auditd}(994)

|-console-kit-dae(1242)-+-{console-kit-da}(1243)

|                       |-{console-kit-da}(1244)

|                       |-{console-kit-da}(1245)

|                       |-{console-kit-da}(1246)

|                       |-{console-kit-da}(1247)

|                       |-{console-kit-da}(1248)

................................

以树状图显示sshd服务进程,只显示进程的名字,且相同进程合并显示。

[root@centos-6-1 ~]# pgrep -l  sshd

1323 sshd

1593 sshd

[root@centos-6-1 ~]# pstree  -p 1323

sshd(1323)───bash(1327)───pstree(1599)

使用netstat工具

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态

命令参数:

?-a或–all 显示所有连接中的接口

?-c或–continuous 持续列出网络状态

?-C或–cache 显示路由器配置的快取信息

?-e或–extend 显示网络其他相关信息

?-F或–fib 显示FIB

?-g或–groups 显示多重广播功能群组组员名单

?-h或–help 在线帮助

?-i或–interfaces 显示网络界面信息表单

?-l或–listening 显示监控中的服务器的接口

?-M或–masquerade 显示伪装的网络连线

?-n或–numeric 直接使用IP地址,而不通过域名服务器

?-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称

?-o或–timers 显示计时器

?-p或–programs 显示正在使用接口的程序识别码和程序名称

?-r或–route 显示Routing Table

?-s或–statistice 显示网络工作信息统计表

?-t或–tcp 显示TCP传输协议的连接状况

?-u或–udp 显示UDP传输协议的连接状况

?-v或–verbose 显示指令执行过程

?-V或–version 显示版本信息

?-w或–raw 显示RAW传输协议的连线状况

?-x或–unix 此参数的效果和指定”-A unix”参数相同

?–ip或–inet 此参数的效果和指定”-A inet”参数相同

1.查看sshd服务所有端口以及pid值和详细信息等

[root@centos-6-1 ~]# netstat -anpt | grep  sshd

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1593/sshd

tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      1323/sshd

tcp        0     52 192.168.31.249:22           192.168.31.134:49686        ESTABLISHED 1323/sshd

tcp        0      0 :::22                       :::*                        LISTEN      1593/sshd

tcp        0      0 ::1:6010                    :::*                        LISTEN      1323/sshd

[root@centos-6-1 ~]#

2.查看所有UDP端口

[root@centos-6-1 ~]# netstat -anlpu

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

udp        0      0 0.0.0.0:68                  0.0.0.0:*                               936/dhclient

[root@centos-6-1 ~]#

3.显示所有TCP端口

[root@centos-6-1 ~]# netstat -anpt

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1593/sshd

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1191/master

tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      1323/sshd

tcp        0      0 192.168.31.249:22           192.168.31.134:49686        ESTABLISHED 1323/sshd

tcp        0      0 :::22                       :::*                        LISTEN      1593/sshd

tcp        0      0 ::1:25                      :::*                        LISTEN      1191/master

tcp        0      0 ::1:6010                    :::*                        LISTEN      1323/sshd

[root@centos-6-1 ~]#

虚拟文件系统 /proc 、/sys

Linux一切皆文件,设备(文件)可以通过读写来操作

/proc是内存中有关系统进程的信息

/sys是有关系统内核以及驱动的信息

/sys目录下各个子目录的具体说明

/sys下的子目录

详细描述内容

/sys/devices

官方描述:该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。一般来说,所有的物理设备都按其在总线上的拓扑结构来显示,但有两个例外,即platform devices和system devices。platform devices一般是挂在芯片内部的高速或者低速总线上的各种控制器和外设,它们能被CPU直接寻址;system devices不是外设,而是芯片内部的核心结构,比如CPU,timer等,它们一般没有相关的驱动,但是会有一些体系结构相关的代码来配置它们。

(sys/devices是内核对系统中所有设备的分层次表达模型,也是/sys文件系统管理设备的最重要的目录结构)

sys/dev

官方描述:该目录下维护一个按照字符设备和块设备的主次号码(major:minor)链接到真是设备(/sys/devices)的符号链接文件。

/sys/class

该目录下包含所有注册在kernel里面的设备类型,这是按照设备功能分类的设备模型,每个设备类型表达具有一种功能的设备。每个设备类型子目录下都是这种哦哦那个设备类型的各种具体设备的符号链接,这些链接指向/sys/devices/name下的具体设备。设备类型和设备并没有一一对应的关系,一个物理设备可能具备多种设备类型;一个设备类型只表达具有一种功能的设备,比如:系统所有输入设备都会出现在/sys/class/input之下,而不论它们是以何种总线连接到系统的。(/sys/class也是构成linux统一设备模型的一部分)

/sys/block

该目录下的所有子目录代表着系统中当前被发现的所有块设备。按照功能来说防止在/sys/class下会更合适,但由于历史遗留因素而一直存在于/sys/block,但从linux2.6.22内核开始这部分就已经标记为过去时,只有打开了CONFIG_SYSFS_DEPRECATED配置编译才会有这个目录存在,并且其中的内容在从linux2.6.26版本开始已经正式移到了/sys/class/block,旧的接口/sys/block为了向后兼容而保留存在,但其中的内容已经变为了指向它们在/sys/devices/中真实设备的符号链接文件。

/sys/bus

该目录下的每个子目录都是kernel支持并且已经注册了的总线类型。这是内核设备按照总线类型分层放置的目录结构,/sys/devices中的所有设备都是连接于某种总线之下的,bus子目录下的每种具体总线之下可以找到每个具体设备的符号链接,

一般来说每个子目录(总线类型)下包含两个子目录,一个是devices,另一个是drivers;其中devices下是这个总线类型下的所有设备,这些设备都是符号链接,它们分别指向真正的设备(/sys/devices/name/下);而drivers下是所有注册在这个总线上的驱动,每个driver子目录下 是一些可以观察和修改的driver参数。

(它也是构成linux统一设备模型的一部分)

/sys/fs

按照设计,该目录使用来描述系统中所有的文件系统,包括文件系统本身和按照文件系统分类存放的已挂载点。

/sys/kernel

这个目录下存放的是内核中所有可调整的参数

/sys/firmware

该目录下包含对固件对象(firmware object)和属性进行操作和观察的接口,即这里是系统加载固件机制的对用户空间的接口.(关于固件有专用于固件加载的一套API)

/sys/hypervisor

该目录是与虚拟化Xen相关的装置。(Xen是一个开放源代码的虚拟机监视器)

/sys/module

该目录下有系统中所有的模块信息,不论这些模块是以内联(inlined)方式编译到内核映像文件中还是编译为外模块(.ko文件),都可能出现在/sys/module中。即module目录下包含了所有的被载入kernel的模块。

/sys/power

该目录是系统中的电源选项,对正在使用的power子系统的描述。这个目录下有几个属性文件可以用于控制整个机器的电源状态,如可以向其中写入控制命令让机器关机/重启等等。

1.查看/proc 目录下的所有文件信息

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# ll /proc/

总用量 0

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1      #1代表的是pid值,这个进程的文件

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 10

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1018

dr-xr-xr-x.  8 dbus    dbus       0 6月  23 10:25 1040

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 11

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1115

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1194

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 12

dr-xr-xr-x.  8 postfix postfix    0 6月  23 14:22 1203

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1208

dr-xr-xr-x.  8 root    root       0 6月  23 10:26 1221

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1223

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1225

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1227

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1229

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1231

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1239

......................

2.查看/sys 目录下的所有文件信息

[root@centos-6-1 ~]# ll /sys/

总用量 0

drwxr-xr-x  2 root root 0 6月  23 10:25 block  #设备

drwxr-xr-x 17 root root 0 6月  23 10:25 bus

drwxr-xr-x 42 root root 0 6月  23 10:25 class

drwxr-xr-x  4 root root 0 6月  23 10:25 dev

drwxr-xr-x 10 root root 0 6月  23 10:25 devices

drwxr-xr-x  4 root root 0 6月  23 10:25 firmware

drwxr-xr-x  3 root root 0 6月  23 10:25 fs

drwxr-xr-x  2 root root 0 6月  23 10:25 hypervisor

drwxr-xr-x  5 root root 0 6月  23 10:25 kernel

drwxr-xr-x 84 root root 0 6月  23 10:25 module

drwxr-xr-x  2 root root 0 6月  23 14:27 power

[root@centos-6-1 ~]#

3.查看cpu信息

[root@centos-6-1 block]# cat /proc/cpuinfo

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 58

model name: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz

stepping: 9

microcode: 25

cpu MHz: 2556.506

cache size: 3072 KB

physical id: 0

siblings: 2

core id: 0

cpu cores: 2

apicid: 0

initial apicid: 0

fpu: yes

fpu_exception: yes

cpuid level: 13

wp: yes

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx rdrand hypervisor lahf_lm

........................................

4.查看内存信息

[root@centos-6-1 block]# cat /proc/meminfo

MemTotal:        1019912 kB

MemFree:          861004 kB

Buffers:            9540 kB

Cached:            46828 kB

SwapCached:            0 kB

Active:            33008 kB

Inactive:          41864 kB

Active(anon):      18528 kB

Inactive(anon):      192 kB

Active(file):      14480 kB

Inactive(file):    41672 kB

Unevictable:           0 kB

Mlocked:               0 kB

SwapTotal:       2097148 kB

SwapFree:        2097148 kB

Dirty:                 0 kB

Writeback:             0 kB

AnonPages:         18676 kB

Mapped:             8308 kB

Shmem:               212 kB

Slab:              64172 kB

SReclaimable:       9480 kB

SUnreclaim:        54692 kB

KernelStack:        2528 kB

PageTables:         1952 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:     2607104 kB

..........................................

5.查看是否支持虚拟化

[root@centos-6-1 block]# grep 'ls\|vmx\|svm' /proc/cpuinfo

[root@centos-6-1 block]#

VMX 支持虚拟化 INTEL

SVM -----------------  AMD

LM (64位)

Linux后台进程与前台进程

Linux后台进程与前台进程的区别:

个人描述:

前台进程相当于你正在安装一个数据库文件,相当于编译安装这个界面需要一直等着,如果突然断电此进程就终止了。

后台进程相当于你一直后台执行不影响前台别的进程使用,断电开机后此进程还可以运行。

官方描述:

Linux后台进程:

也叫守护进程(Daemon),是运行在后台的一种特殊进程。

守护的意思就是不受终端控制;Linux的大多数服务器就是用守护进程实现的。

比如,Web服务器httpd等。

后台进程没有控制终端,它不需要终端的交互

Linux前台进程:

是在终端中运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这这个进程也随着消失

进程的前台与后台运行

跟系统任务相关的几个命令:fg、bg、jobs、(nohup)&、ctrl+z

&用在一个命令的最后,可以把这个命令放到后台执行.

ctrl + z 将一个正在前台执行的命令放到后台,并且暂停.

jobs查看当前有多少在后台运行的进程.它是一个作业控制命令

fg(foreground process) 将后台中的命令调至前台继续运行, 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

bg(background process)将一个在后台暂停的命令,变成继续执行; 如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

1.将当前编辑的a.txt文本放到后台暂停,然后再调到前台执行

~

~

~

~

~

"a.txt" [New File]                    #按下键盘上的ctrl+z 就会把此进程调入后台

[1]+  Stopped                 vi a.txt

[root@centos-6-1 ~]# jobs

[1]+  Stopped                 vi a.txt

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# jobs

[1]+  Stopped                 vi a.txt

[root@centos-6-1 ~]# fg 1            #fg代表把后台的暂停的进程放到前台继续执行,1是任务号

vi a.txt

2.将第二个 后台进程调入前台执行

[root@centos-6-1 ~]# jobs

[1]-  Stopped                 top

[2]+  Stopped                 top

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# fg    #默认将最后的进程调入前台执行

top

top - 15:34:18 up  5:09,  2 users,  load average: 0.00, 0.01, 0.05

Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   159544k used,   860368k free,     9820k buffers

Swap:  2097148k total,        0k used,  2097148k free,    46856k cached

Unknown command - try 'h' for help

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1 root      20   0 17128 1284 1056 S  0.0  0.1   0:02.10 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.07 kthreadd

[root@centos-6-1 ~]# jobs

[1]+  Stopped                 top

[root@centos-6-1 ~]#

[root@centos-6-1 ~]#

3.将当前命令调入后台执行

[root@centos-6-1 ~]# cat /aaa/qwer &             #&代表将此进程调入后台进行执行

[3] 1548

[root@centos-6-1 ~]# dsafjqwjeoifadsf

sdfadsfd

adsf

adsfqw

erqwef

adsgwretwretwertqwerqwsadfdsafhdsaoufasdfnpsadfhdsakfjqwepofjsadfodsaifjpafl;asdjfpaoiwfj

[3]   Done                    cat /aaa/qwer

[root@centos-6-1 ~]# jobs

[1]-  Stopped                 ps -le | more

[2]+  Stopped                 ps -le | more

[root@centos-6-1 ~]#

kill进程

控制(关闭)进程

kill killall pkill

kill用法

关闭进程:kill  [进程号]

通过信号的方式来控制进程

常用的信息编号

信号编号  信号名

1)SIGHUP   重新加载配置

2) SIGINT      键盘中断  crtl+c

3)    SIGQUIT     退出

9)     SIGKILL   强制终止

15)    SIGTERM  终止(正常结束),缺省信号

18)SIGCONT   继续

19)   SIGSTOP  停止

20)SIGTSTP   暂停 crtl+z

1.列出所有支持的信号

[root@centos-6-1 ~]# kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1

11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM

16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP

21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ

26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR

31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3

38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8

43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13

48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12

53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7

58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2

63) SIGRTMAX-164) SIGRTMAX

[root@centos-6-1 ~]#

1.暂停top进程,然后在继续运行

[root@centos-6-1 ~]# ps aux | grep top

root         5  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/0]

root         8  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/1]

root      1593  0.4  0.1  15024  1300 pts/0    S+   16:26   0:00 top

root      1613  0.0  0.0 103328   888 pts/1    S+   16:27   0:00 grep top

[root@centos-6-1 ~]# kill -20 1593

[root@centos-6-1 ~]# ps aux | grep top

root         5  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/0]

root         8  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/1]

root      1593  0.2  0.1  15024  1300 pts/0    T    16:26   0:00 top

root      1615  0.0  0.0 103328   888 pts/1    S+   16:28   0:00 grep top

[root@centos-6-1 ~]# kill -18 1593

[root@centos-6-1 ~]# kill -18 1593

[root@centos-6-1 ~]#

2.杀死aaa用户下的所有进程

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# pkill   -u aaa

[root@centos-6-1 ~]#

3.杀死所有sshd 服务的所有进程

[root@centos-6-1 ~]# ps -aux | grep sshd

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root      1655  0.0  0.1  66236  1196 ?        Ss   16:31   0:00 /usr/sbin/sshd

root      1657  0.1  0.4 102084  4152 ?        Ss   16:31   0:00 sshd: root@pts/0

root      1680  0.1  0.4 102084  4148 ?        Ss   16:32   0:00 sshd: root@pts/1

root      1871  0.0  0.0 103324   884 pts/0    S+   16:37   0:00 grep sshd

[root@centos-6-1 ~]# killall   sshd

Connection closed by foreign host.

Disconnected from remote host(centos-6-1) at 16:32:00.

Type `help' to learn how to use Xshell prompt.

进程的优先级管理

进程的优先级的定义

一个进程正好有40种不同级别的NICE值,值越高,优先级越低

优先级取值范围为(-20,19),越小优先级越高, 默认优先级是0

系统允许ROOT用户设置负nice级别以及降低现有进程的nice级别;对普通非特权用户仅允许设置正的nice级别,此外,他们只能对现有进程提升nice级别。而不能降低nice级别

注意:在linux中除了nice级别以外,有很多方法可以影响到进程优先级和资源使用情况,比如备用的调度程序策略和设置、控制组等,但是nice级别是里面最易于使用的一种方法,而且它不仅系统管理员可以使用,普通用户也可以使用

命令1:nice

作用:指定程序的运行优先级

格式:nice -n command

命令2:renice

作用:改变程序的运行优先级

格式:renice -n pid

1.给qweradsf.txt文件添加 5的优先级,然后在更改-20的优先级

[root@centos-6-1 ~]# nice -n 5  vim qweradsf.txt

[1]+  Stopped                 nice -n 5 vim qweradsf.txt

[root@centos-6-1 ~]# ps aux | grep vim

root      1936  0.4  0.5 139264  5160 pts/0    TN   16:55   0:00 vim qweradsf.txt

root      1938  0.0  0.0 103324   884 pts/0    S+   16:55   0:00 grep vim

[root@centos-6-1 ~]# top -p 1936

top - 16:55:27 up  6:30,  2 users,  load average: 0.05, 0.07, 0.06

Tasks:   1 total,   0 running,   0 sleeping,   1 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.6%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   412284k used,   607628k free,    34384k buffers

Swap:  2097148k total,        0k used,  2097148k free,   241192k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1936 root      25   5  136m 5160 2708 T  0.0  0.5   0:00.06 vim

[root@centos-6-1 ~]# renice -n -10 -p 1936

1936: old priority -10, new priority -10

[root@centos-6-1 ~]# echo $?

0

[root@centos-6-1 ~]# top -p 1936

top - 17:19:10 up  6:54,  2 users,  load average: 0.00, 0.01, 0.05

Tasks:   1 total,   0 running,   0 sleeping,   1 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.6%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   412160k used,   607752k free,    34632k buffers

Swap:  2097148k total,        0k used,  2097148k free,   241192k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1936 root      10 -10  136m 5160 2708 T  0.0  0.5   0:00.06 vim

硬链接与软连接的作用及区别实战

个人描述:

软连接和硬链接的相同之处:

不管更改的是原始文件还是链接文件,文件都会实时同步,不管是增删改查,都是一样

都会创建出相应的文件

软连接和硬链接的区别:

硬链接创建的文件相当于备份,他会实时增加链接文件的大小,同理原始文件也会增加文件大小。

软连接相当于做了一个快捷方式,不会增加链接文件的大小,同理原始文件才会增加大小。

软连接可以跨越分区,而硬连接则不可以。

官方描述:

Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在 Linux 中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本。有两种类型的链接:硬链接和符号链接。

硬链接 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。

符号链接 是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位置。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建符号链接。

符号链接与硬链接有什么区别?

简单的说:硬连接记录的是目标的 inode,符号连接记录的是目标的 path。

软连接就像是快捷方式,而硬连接就像是备份!符号连接可以做跨分区的 link;而 硬连接由于 inode 的缘故,只能在本分区中做 link.所以,符号连接的使用频率要高的多。

软连接实战

1.做一个软连接,把/home/aaa/aaa文件的软连接到/aaa/qwer文件

[root@centos-6-1 aaa]# ln -s  /home/aaa/aaa   ~

~aaa/      ~daemon/   ~games/    ~lp/       ~operator/ ~saslauth  ~sync/

~adm       ~dbus/     ~gopher    ~mail/     ~postfix/  ~shutdown/ ~uucp

~bin/      ~ftp       ~halt/     ~nobody/   ~root/     ~sshd/     ~vcsa/

[root@centos-6-1 aaa]# ln -s  /home/aaa/aaa   /

aaa/        bin/        etc/        lib64/      mnt/        root/       srv/        usr/

abc/        boot/       home/       lost+found/ opt/        sbin/       sys/        var/

.autofsck   dev/        lib/        media/      proc/       selinux/    tmp/

[root@centos-6-1 aaa]# ln -s  /home/aaa/aaa   /aaa/qwer    #创建一个软连接把/home/aaa/aaa 文件 相当于做一个快捷方式

放到/aaa/qwer 也相当于做映射

[root@centos-6-1 aaa]# echo $? #验证上一个命令是否执行成功0为真,除0以外都为假

0

[root@centos-6-1 aaa]# cd /aaa/

[root@centos-6-1 aaa]# ls

CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo

CentOS-Debuginfo.repo  CentOS-Media.repo      qwer

[root@centos-6-1 aaa]# vi qwer

[root@centos-6-1 aaa]# cat !$

cat /aaa/qwer

abc

asdfwqerqwe

[root@centos-6-1 aaa]# cat /home/aaa/aaa #原始文件发生了变化

abc

asdfwqerqwe

[root@centos-6-1 aaa]#

[root@centos-6-1 aaa]# ll /aaa/qwer

lrwxrwxrwx. 1 root root 13 6月  23 14:43 /aaa/qwer -> /home/aaa/aaa #查看软连接的详细信息

[root@centos-6-1 aaa]#

硬链接实战

1.将/home/aaa/aaa文件的硬链接到/aaa/qwer文件

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# ln /home/aaa/

aaa            .bash_history  .bash_logout   .bash_profile  .bashrc        .gnome2/

[root@centos-6-1 ~]# ln /home/aaa/aaa   /aaa/qwer    #创建硬链接,将/home/aaa/aaa 文件,相当于备份到 /aaa/qwer 文件名中带有a字符的文件或目录

[root@centos-6-1 ~]# echo $?             #验证上一个命令是否执行成功0为真,除0以外都为假

0

[root@centos-6-1 ~]# cat /aaa/qwer #查看原始文件变化

abc

asdfwqerqwe

[root@centos-6-1 ~]# cat /home/aaa/aaa

abc

asdfwqerqwe

[root@centos-6-1 ~]# vi /aaa/qwer

[root@centos-6-1 ~]# cat /aaa/qwer

abc

asdfwqerqwe

asdfawerqwer

dsafqwefdsafwef

qewfdsaflkjdsaf

dsfsadjifoqewr

dsafjqwjeoifadsf

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# cat /home/aaa/aaa

abc

asdfwqerqwe

asdfawerqwer

dsafqwefdsafwef

qewfdsaflkjdsaf

dsfsadjifoqewr

dsafjqwjeoifadsf

[root@centos-6-1 ~]#

[root@centos-6-1 ~]# ll /aaa/qwer

-rw-r--r--. 2 root root 135 6月  23 14:59 /aaa/qwer

[root@centos-6-1 ~]#

转载于:https://blog.51cto.com/linuxtouch/1941402

Linux下基础命令(二)相关推荐

  1. 在linux系统环境中 常用的关机命令,Linux常用基础命令整理:关机命令、查看目录下文件命令等...

    整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能 Ctrl+c按键---停掉正在运行的程序 Ctrl+d按键---相当于exit ...

  2. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  3. Linux基础命令二

    Linux基础命令二 ⚽⚽有志者,事竟成,破釜沉舟百二秦关终归楚⚽⚽

  4. Linux下的命令总结笔记(二)

    说在前面的话: 本文是以笔记的形式呈现,那么其内容也将会有一个更新的过程.其命令也为亲测内容,大家可以放心使用(蓝色字体部分除外,蓝色部分为未测试或测试后未验证).如果有一些什么问题,可以给我留言. ...

  5. linux小白-基础命令-useradd

    useradd [功能说明]:Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助 ...

  6. Linux入门基础命令(四)

    Linux入门基础命令(四) 文件系统与目录结构: 1.文件和被组织成一个单根倒置树结构 2.文件系统从根目录下开始,用"/表示" 3.以.开头的文件为隐藏文件 4.路径分割的 / ...

  7. linux cat命令缩写,linux下cat命令详解

    cat 能够一同显现多个文件的内容,比方咱们能够在一个cat指令上一同显现两个文件的内容;那么你知道linux下cat命令详解么?接下来是小编为大家收集的linux下cat命令详解,欢迎大家阅读: l ...

  8. Linux常用基础命令198个

    Linux常用基础命令198个 1.mkdir 创建目录 * 主要选项:-p 递归创建目录 主要案列:mkdir /xujun mkdir -p /xujun/oldboy mkdir -p /xuj ...

  9. Linux常用基础命令

    Linux常用基础命令 腾讯在线文档(优化版): https://docs.qq.com/doc/DQmdRTGhIUXV0Vmxm 1.创建目录,文件: mkdir -p /root/a/b/c/d ...

  10. Linux常用基础命令(很全)

    Linux常用基础命令 Linux命令格式 Linux 常见用户管理命令 创建新用户 Linux文件及目录管理命令 绝对路径和相对路径 cd命令 ls命令 pwd命令 mkdir命令 touch命令 ...

最新文章

  1. Android内存优化大全(中)
  2. 我的理想计算机系100字,我的理想作文100字(通用5篇)
  3. dell笔记本耳机怎么设置_win10笔记本怎么设置合上盖子不休眠
  4. IDEA打开vue项目,每次打开的都是上一次的vue项目,即同一个vue项目,解决方法
  5. GDCM:显示有关输入DICOM文件的meta元信息的测试程序
  6. ThinkPHP 5 访问出现No input file specified
  7. PyTorch 1.0 中文文档:torchvision.transforms
  8. mac install wget
  9. SmartUpload问题
  10. 打印系统开发(66)——监控打印机的打印队列
  11. 第四方支付跟第三方支付的区别,支付源码有什么用
  12. VLIW的前世今生:为什么DL加速器都青睐于它
  13. 消防联动控制系统服务器,火灾自动报警消防联动控制系统报价单V4.4.xls
  14. 识别孩子潜能的6大细节
  15. Java读取docx文档乱码求解决
  16. unity urp内置lit材质源码解析(下)
  17. 逗号表达式java_9_三目运算符和逗号表达式
  18. html5静止手机旋转
  19. 苹果6现在多少钱_2020年苹果价格多少钱一斤?苹果种植成本利润分析
  20. 主要的动态视图对应的基表

热门文章

  1. [管理新思维]社会化管理和开放式创新|裂变式创业
  2. 1138 Postorder Traversal
  3. 美国学生债务数据 csv_我如何摆脱学生债务陷阱,为什么其他美国人不那么幸运...
  4. 怎样把两个excel表格合并
  5. 计算机专门存储数据的单元,认识算法的数据存储单元——变量
  6. awb入门(2).色彩恒常
  7. jQuery 任意公历转为农历
  8. 【其他】bilibili下载的m4s格式视频如何还原为mp4
  9. BUUCTF WEB PIAPIAPIA1
  10. UVM_1:UVM介绍