首页 > 代码库 > Linux基础命令(二)

Linux基础命令(二)

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




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) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) 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 ~]# 


本文出自 “linuxtouch” 博客,谢绝转载!

Linux基础命令(二)