首页 > 代码库 > 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基础命令(二)