仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1670|回复: 9
打印 上一主题 下一主题

[shell编程] 带来一篇体系运转历程相干的Shell下令

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!1.历程监控下令(ps):
要对历程举行监测和把持,起首必需要懂得以后历程的情形,也就是必要检察以后历程,而ps下令就是最基础同时也长短常壮大的历程检察下令。利用该下令能够断定有哪些历程正在运转和运转的形态、历程是不是停止、历程有无僵逝世、哪些历程占用了过量的资本等等。总之年夜局部信息都是能够经由过程实行该下令失掉的。
ps下令存在良多的下令行选项和参数,但是我们最为经常使用只要两种情势,这里先给出与它们相干的选项和参数的寄义:
选项申明a显现终端上的一切历程,包含其他用户的历程。u以用户为主的格局来显现步伐情况。x显现一切步伐,不以终端来辨别。-e显现一切历程。o厥后指定要输入的列,如user,pid等,多个列之间用逗号分开。-p前面随着一组pid的列表,用逗号分开,该下令将只是输入这些pid的相干数据。/>psaux
root10.00.128281400?Ss09:510:02/sbin/init
root20.00.000?S09:510:00[kthreadd]
root30.00.000?S09:510:00[migration/0]
......
/>ps-eouser,pid,%cpu,%mem,start,time,command|head-n4
USERPID%CPU%MEMSTARTEDTIMECOMMAND
root10.00.109:51:0800:00:02/sbin/init
root20.00.009:51:0800:00:00[kthreadd]
root30.00.009:51:0800:00:00[migration/0]
这里必要申明的是,ps中存在良多和历程功能相干的参数,它们均以输入表格中的列的体例显现出来,在这里我们只是给出了十分经常使用的几个参数,至于更多参数,我们则必要依据本人使用的实践情形往看ps的man手册。
#以完全的格局显现pid为1(init)的历程的相干数据
/>ps-fp1
UIDPIDPPIDCSTIMETTYTIMECMD
root10005:16?00:00:03/sbin/init

2.改动历程优先级的下令(nice和renice):
该Shell下令最经常使用的利用体例为:nice[-n<优先品级>][实行指令],个中优先品级的局限从-20-19,个中-20最高,19最低,只要体系办理者能够设置正数的品级。
#背景实行sleep100秒,同时在启动时将其nice值置为19
/>nice-n19sleep100&
[1]4661
#背景实行sleep100秒,同时在启动时将其nice值置为-19
/>nice-n-19sleep100&
[2]4664
#存眷ps-l输入顶用黄色高亮的两行,它们的NI值和我们实行是设置的值分歧。
/>ps-l
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
4S0283328290800-1739-pts/200:00:00bash
0S04661283309919-1066-pts/200:00:00sleep
4S046642833061-19-1066-pts/200:00:00sleep
4R0466528331800-1231-pts/200:00:00ps

renice下令次要用于为已实行的历程从头设定nice值,该下令包括以下几个经常使用选项:
选项申明-g利用步伐群组称号,修正一切从属于该步伐群组的步伐的优先权。-p改动该步伐的优先权品级,此参数为预设值。-u指定用户称号,修正一切从属于该用户的步伐的优先权。#切换到stephen用户下实行一个背景历程,这里sleep历程将在背景就寝1000秒。
/>sustephen
/>sleep1000&
[1]4812
/>exit#退回到切换前的root用户
#检察已启动的背景sleep历程,其ni值为0,宿主用户为stephen
/>ps-eouser,pid,ni,command|grepstephen
stephen48120sleep1000
root48210grepstephen
#以指定用户的体例修正该用户下一切历程的nice值
/>renice-n5-ustephen
500:oldpriority0,newpriority5
#从再次实行ps的输入了局能够看出,该sleep背景历程的nice值已调成了5
/>ps-eouser,pid,ni,command|grepstephen
stephen48125sleep1000
root48260grepstephen
#以指定历程pid的体例修正该历程的nice值
/>renice-n10-p4812
4812:oldpriority5,newpriority10
#再次实行ps,该sleep背景历程的nice值已从5酿成了10
/>ps-eouser,pid,ni,command|grepstephen
stephen481210sleep1000
root48290grepstephen

3.列出以后体系翻开文件的工具(lsof):
lsof(listopenedfiles),其主要功效为枚举体系中已被翻开的文件,假如没有指定任何选项或参数,lsof则列出一切举动历程翻开的一切文件。尽人皆知,linux情况中任何事物都是文件,如装备、目次、sockets等。以是,用好lsof下令,对一样平常的linux办理十分有匡助。上面先给出该下令的经常使用选项:
选项申明-a该选项会使前面选项选出的了局列表举行and操纵。-ccommand_prefix显现以command_prefix开首的历程翻开的文件。-pPID显现指定PID已翻开文件的信息+ddirectory从文件夹directory来征采(不思索子目次),列出该目次下翻开的文件信息。+Ddirectory从文件夹directory来征采(思索子目次),列出该目次下翻开的文件信息。-dnum_of_fd以FileDescriptor的信息举行婚配,可以使用3-10,暗示局限,3,10暗示某些值。-uuser显现某用户的已翻开的文件,个中user可使用正则表达式。-i监听指定的协定、端口、主机等的收集信息,格局为:[proto][@host|addr][:svc_list|port_list]#检察翻开/dev/null文件的历程。
/>lsof/dev/null|head-n5
COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME
init1root0uCHR1,30t03671/dev/null
init1root1uCHR1,30t03671/dev/null
init1root2uCHR1,30t03671/dev/null
udevd397root0uCHR1,30t03671/dev/null

#检察翻开22端口的历程
/>lsof-i:22
COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME
sshd1582root3uIPv4119890t0TCP*:ssh(LISTEN)
sshd1582root4uIPv6119910t0TCP*:ssh(LISTEN)
sshd2829root3rIPv4196350t0TCPbogon:ssh->bogon:15264(ESTABLISHED)

#检察init历程翻开的文件
/>lsof-cinit
COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME
init1rootcwdDIR8,240962/
init1rootrtdDIR8,240962/
init1roottxtREG8,2136068148567/sbin/init
init1rootmemREG8,258536137507/lib/libnss_files-2.12.so
init1rootmemREG8,2122232186675/lib/libgcc_s-4.4.4-20100726.so.1
init1rootmemREG8,2141492186436/lib/ld-2.12.so
init1rootmemREG8,21855584186631/lib/libc-2.12.so
init1rootmemREG8,2133136186632/lib/libpthread-2.12.so
init1rootmemREG8,299020180422/lib/libnih.so.1.0.0
init1rootmemREG8,237304186773/lib/libnih-dbus.so.1.0.0
init1rootmemREG8,241728186633/lib/librt-2.12.so
init1rootmemREG8,2286380186634/lib/libdbus-1.so.3.4.0
init1root0uCHR1,30t03671/dev/null
init1root1uCHR1,30t03671/dev/null
init1root2uCHR1,30t03671/dev/null
init1root3rFIFO0,80t07969pipe
init1root4wFIFO0,80t07969pipe
init1root5rDIR0,1001inotify
init1root6rDIR0,1001inotify
init1root7uunix0xf61e38400t07970socket
init1root9uunix0xf3bab2800t011211socket
在下面输入的FD列中,显现的是文件的FileDescriptornumber,大概以下的内容:
cwd:currentworkingdirectory;
mem:memory-mappedfile;
mmap:memory-mappeddevice;
pd:parentdirectory;
rtd:rootdirectory;
txt:programtext(codeanddata);
文件的FileDescriptornumber显现形式有:
rforreadaccess;
wforwriteaccess;
uforreadandwriteaccess;

在下面输入的TYPE列中,显现的是文件范例,如:
DIR:目次
LINK:链接文件
REG:一般文件

#检察pid为1的历程(init)翻开的文件,其输入了局同等于下面的下令,他们都是init。
/>lsof-p1
#检察owner为root的历程翻开的文件。
/>lsof-uroot
#检察owner不为root的历程翻开的文件。
/>lsof-u^root
#检察翻开协定为tcp,ip为192.168.220.134,端口为22的历程。
/>lsof-itcp@192.168.220.134:22
COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME
sshd2829root3rIPv4196350t0TCPbogon:ssh->bogon:15264(ESTABLISHED)
#检察翻开/root文件夹,但不思索目次征采
/>lsof+d/root
#检察翻开/root文件夹和其子目次征采
/>lsof+D/root
#检察翻开FD(0-3)文件的一切历程
/>lsof-d0-3
#-a选项会将+d选项和-c选项的选择了局举行and操纵,并输入兼并后的了局。
/>lsof+d.
COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME
bash9707rootcwdDIR8,1409639887.
lsof9791rootcwdDIR8,1409639887.
lsof9792rootcwdDIR8,1409639887.
/>lsof-a-cbash+d.
COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME
bash9707rootcwdDIR8,1409639887.
最初必要分外申明的是,假如在文件名的开端存在(delete),则申明该文件已被删除,只是还存留在cache中。

4.历程查找/杀失落下令(pgrep/pkill):
查找和杀逝世指定的历程,他们的选项和参数完整不异,这里只是先容pgrep。上面是经常使用的下令行选项:
选项申明-d界说多个历程之间的分开符,假如不界说则利用换行符。-n暗示假如该步伐有多个历程正在运转,则仅查找最新的,即最初启动的。-o暗示假如该步伐有多个历程正在运转,则仅查找最老的,即开始启动的。-G厥后随着一组groupid,该下令在搜刮时,仅思索group列表中的历程。-u厥后随着一组无效用户ID(effetiveuserid),该下令在搜刮时,仅思索该effectiveuser列表中的历程。-U厥后随着一组实践用户ID(realuserid),该下令在搜刮时,仅思索该realuser列表中的历程。-x暗示历程的名字必需完整婚配,以上的选项都可以局部婚配。-l将不但打印pid,也打印历程名。-f一样平常与-l适用,将打印历程的参数。#手工创立两个背景历程
/>sleep1000&
3456
/>sleep1000&
3457

#查找历程名为sleep的历程,同时输入一切找到的pid
/>pgrepsleep
3456
3457
#查找历程名为sleep的历程pid,假如存在多个,他们之间利用:分开,而不是换行符分开。
/>pgrep-d:sleep
3456:3457
#查找历程名为sleep的历程pid,假如存在多个,这里只是输入最初启动的那一个。
/>pgrep-nsleep
3457
#查找历程名为sleep的历程pid,假如存在多个,这里只是输入开始启动的那一个。
/>pgrep-osleep
3456
#查找历程名为sleep,同时这个正在运转的历程的组为root和stephen。
/>pgrep-Groot,stephensleep
3456
3457
#查找无效用户ID为root和oracle,历程名为sleep的历程。
/>pgrep-uroot,oraclesleep
3456
3457
#查找实践用户ID为root和oracle,历程名为sleep的历程。
/>pgrep-Uroot,oraclesleep
3456
3457
#查找历程名为sleep的历程,注重这里找到的历程名必需和参数中的完整婚配。
/>pgrep-xsleep
3456
3457
#-x不撑持局部婚配,sleep历程将不会被查出,因而上面的下令没有了局。
/>pgrep-xsle
#查找历程名为sleep的历程,同时输入一切找到的pid和历程名。
/>pgrep-lsleep
3456sleep
3457sleep
#查找历程名为sleep的历程,同时输入一切找到的pid、历程名和启动时的参数。
/>pgrep-lfsleep
3456sleep1000
3457sleep1000
#查找历程名为sleep的历程,同时以逗号为分开符输入他们的pid,在将了局传给ps下令,-f暗示显现完全格局,-p显现pid列表,ps将只是输入该列表内的历程数据。
/>pgrep-fsleep-d,|xargsps-fp
UIDPIDPPIDCSTIMETTYTIMECMD
root34562138006:11pts/500:00:00sleep1000
root34572138006:11pts/500:00:00sleep1000
欢迎大家来到仓酷云论坛!
分手快乐 该用户已被删除
沙发
发表于 2015-1-15 22:49:02 | 只看该作者

带来一篇体系运转历程相干的Shell下令

放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
小女巫 该用户已被删除
板凳
发表于 2015-1-20 20:52:03 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
乐观 该用户已被删除
地板
发表于 2015-1-30 05:03:27 | 只看该作者
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
只想知道 该用户已被删除
5#
发表于 2015-2-6 09:59:06 | 只看该作者
Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
飘灵儿 该用户已被删除
6#
发表于 2015-2-15 23:23:49 | 只看该作者
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
变相怪杰 该用户已被删除
7#
发表于 2015-3-4 20:44:54 | 只看该作者
我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。
分手快乐 该用户已被删除
8#
发表于 2015-3-11 21:14:27 | 只看该作者
让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?
admin 该用户已被删除
9#
发表于 2015-3-19 16:38:08 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
老尸 该用户已被删除
10#
发表于 2015-3-30 00:01:46 | 只看该作者
有疑问前,知识学习前,先用搜索。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-28 22:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表