码迷,mamicode.com
首页 > 其他好文 > 详细

常用指令待整理

时间:2017-10-20 20:13:03      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:设定   压缩文件   文件拷贝   描述符   指定端口   global   主机   监视   相关   

ps:process Status

ps命令用来列出系统中当前运行的那些进程,列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

即使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等,但ps提供不动态连续的进程查看结果。

 

直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。

grep :(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

kill -9 PID命令用于杀死进程,-9强制杀进程。

kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

语法: kill(选项)(参数)
选项

-a:当处理当前进程时,不限制命令名和进程号的对应关系;

-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;

-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;

-s <信息名称或编号>:指定要送出的信息;

-u:指定用户。

参数:进程或作业识别号:指定要删除的进程或作业。
使用示例:

ps -aux | grep java|grep -v grep 列出所有在内存中进行的关于java的进程,当前指令除外

ps -ef | grep java|grep -v grep列出所有关于java的进程,当前指令除外

[root@node20 updateDB]# ps aux|grep ./update_stock

root 14232 0.0 0.0 5928 724 pts/1 S+ 18:16 0:00 grep ./update_stock

root 25021 0.0 0.0 3056 816 ? S Apr12 0:03 ./update_stock

 

linux上进程有5种状态: 

1. 运行(正在运行或在运行队列中等待)

2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps工具标识进程的5种状态码: 

D 不可中断 uninterruptible sleep (usually IO)

R 运行 runnable (on run queue)

S 中断 sleeping

T 停止 traced or stopped

Z 僵死 a defunct (”zombie”) process

1命令格式:

ps[参数]

2命令功能:

用来显示当前进程的状态

3命令参数:

a  显示所有进程

-a 显示同一终端下的所有程序

-A 显示所有进程

c  显示进程的真实名称

-N 反向选择

-e 等于“-A”

e  显示环境变量

f  显示程序间的关系

-H 显示树状结构

r  显示当前终端的进程

T  显示当前终端的所有程序

u  指定用户的所有进程

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的行程

-C<命令> 列出指定命令的状况

--lines<行数> 每页显示的行数

--width<字符数> 每页显示的字符数

--help 显示帮助信息

--version 显示版本显示

4使用实例:

实例1:显示所有进程信息

命令:

ps -A

实例2:显示指定用户信息

命令:

ps -u root

实例3:显示所有进程信息,连同命令行

命令:

ps -ef

实例4: ps 与grep 常用组合用法,查找特定进程

命令:

ps -ef|grep ssh

实例5:将目前属于您自己这次登入的 PID 与相关信息列示出来

命令:

ps -l

实例6:列出目前所有的正在内存当中的程序

命令:

ps aux

实例7:列出类似程序树的程序显示

命令:

ps -axjf

实例8:找出与 cron syslog 这两个服务有关的 PID 号码

命令: ps aux | egrep ‘(cron|syslog)‘

其他实例:

1. 可以用 | 管道和 more 连接起来分页查看

命令:

ps -aux |more

2. 把所有进程显示出来,并输出到ps001.txt文件

命令:

ps -aux > ps001.txt

3. 输出指定的字段

命令:

 ps -o pid,ppid,pgrp,session,tpgid,comm

说明:

各相关信息的意义:

F 代表这个程序的旗标 (flag), 4 代表使用者为 super user

S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍

UID 程序被该 UID 所拥有

PID 就是这个程序的 ID !

PPID 则是其上级父程序的ID

C CPU 使用的资源百分比

PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍

NI 这个是 Nice 值,在下一小节我们会持续介绍

ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"

SZ 使用掉的内存大小

WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作

TTY 登入者的终端机位置

TIME 使用掉的 CPU 时间。

CMD 所下达的指令为何

在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID。

 

说明:

USER:该 process 属于那个使用者账号的

PID :该 process 的号码

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,主要的状态有

R :该程序目前正在运作,或者是可被运作

S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。

T :该程序目前正在侦测或者是停止了

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

START:该 process 被触发启动的时间

TIME :该 process 实际使用 CPU 运作的时间

COMMAND:该程序的实际指令

 

top命令:

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

1命令格式:

top [参数]

2命令功能:

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

3命令参数:

-b 批处理

-c 显示完整的治命令

-I 忽略失效过程

-s 保密模式

-S 累积模式

-i<时间> 设置间隔时间

-u<用户名> 指定用户名

-p<进程号> 指定进程

-n<次数> 循环显示的次数

4使用实例:

实例1:显示进程信息

命令:

top

说明:

统计信息区

前五行是当前系统情况整体的统计信息区。下面我们看每一行信息的具体意义。

第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

14:06:23 — 当前系统时间

up 70 days, 16:44 — 系统已经运行了70天16小时44分钟(在这期间系统没有重启过的吆!)

2 users — 当前有2个用户登录系统

load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行,Tasks — 任务(进程),具体信息说明如下:

系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行,cpu状态信息,具体属性说明如下:

5.9%us — 用户空间占用CPU的百分比。

3.4% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

90.4% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.2% si — 软中断(Software Interrupts)占用CPU的百分比

备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!

第四行,内存状态,具体信息如下:

32949016k total — 物理内存总量(32GB)

14411180k used — 使用中的内存总量(14GB)

18537836k free — 空闲内存总量(18GB)

169884k buffers — 缓存的内存量 (169M)

第五行,swap交换分区信息,具体信息说明如下:

32764556k total — 交换区总量(32GB)

0k used — 使用的交换区总量(0K)

32764556k free — 空闲交换区总量(32GB)

3612636k cached — 缓冲的交换区总量(3.6GB)

备注:

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:18537836k +169884k +3612636k = 22GB左右。

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行,空行。

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

其他使用技巧:

1.多U多核CPU监控

在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况,再按数字键1,就会返回到top基本视图界面。

Kill命令

Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。

1命令格式:

kill[参数][进程号]

2命令功能:

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

3命令参数:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-a  当处理当前进程时,不限制命令名和进程号的对应关系

-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s  指定发送信号

-u  指定用户

注意:

1、kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。例如:

kill -2 123

它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。但是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。

2、kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。

3、可以向多个进程发信号或终止它们。

4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。

5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。

4使用实例:

实例1:列出所有信号名称

命令:

kill -l

说明:

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

HUP    1    终端断线

INT     2    中断(同 Ctrl + C)

QUIT    3    退出(同 Ctrl + \)

TERM   15    终止

KILL    9    强制终止

CONT   18    继续(与STOP相反, fg/bg命令)

STOP    19    暂停(同 Ctrl + Z)

 

 

删除文件

rm

用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。

 

rm命令的一般形式为:rm [选项]... 目录... 删除指定的<文件>(即解除链接)。

-d      --directory    删除可能仍有数据的目录 (只限超级用户)

-f      --force    略过不存在的文件,不显示任何信息,强制删除

-i      --interactive 进行任何删除操作前必须先确认

-r/R --recursive    同时删除该目录下的所有目录层

-v --verbose      详细显示进行的步骤

          --help         显示此帮助信息并离开

           --version      显示版本信息并离开

 

PS1:最好用的带参命令是rm  -rf  <filename>,确定好了要删除的话,改命令不管是文件夹还是文件都会直接强制删除。

PS2:rm同时删除多个文件命令:rm   <filename1>   <filename2>

要删除第一个字符为‘-’的文件 (例如‘-foo’),请使用以下其中一种方法:
rm -- -foo

rm ./-foo

请注意,如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
该文件的内容无法还原,请考虑使用 shred。

范例:

删除所有rb语言程序档;删除前逐一询问确认 :
rm -i *.rb

将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished

将 Finished 子目录及子目录中所有档案删除,并且不用--确认 :

rm -rf Finished

rmdir

 

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。
注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

rmdir(选项)(参数)
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; -v或-verboes:显示命令的详细执行过程; --help:显示命令的帮助信息; --version:显示命令的版本信息。

目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。

删除子目录os_1和其父目录bin

 

cd /usr/meng/test

rmdir -p bin/os_1

 

linux查看tomcat服务

ps-ef |grep tomcat

ps -ef |grep java

杀掉进程:kill -9 PID -9强制杀进程

 

grep指令

 

 

 

 

 

 

linux下端口号查看

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)

1)查看端口占用情况

netstat -ntlp|grep 端口号

找出程序运行的端口:netstat -ap | grep ssh

在 netstat 输出中显示 PID 和进程名称:netstat –pt

找出运行在指定端口的进程:netstat -anpt | grep ‘:16064‘

netstat -nuplf|grep 3306   //这个表示查找处于监听状态的,端口号为3306的进程

查看哪些端口被打开: netstat

 

2)查看某个端口的连接数

netstat -antlp |grep 端口号 |wc –l

netstat -anpt | grep  6064

 

1、              查看主机信息
# more /etc/hosts

2、     查看进程
# ps -aux|grep java      //显示所有进程名中包含java字符串的进程
说明:

grep是查找字符串,把包含有匹配字符串的那行显示出来。

-aux 显示所有包含其他使用者的进程

4、查看网络状态

netstat -tln 命令是用来查看linux的端口使用情况

netstat -a 查看所有的服务端口

netstat -an | grep 端口号  来检验下是不是已经打开了某某端口

#netstat -an 示所有跟本机连接的IP以及连接的端口

查看8080端口占用情况
# netstat -aln|grep 8080

3. 若要关闭某个端口,则可以:

1)通过iptables工具将该端口禁掉,如:

sudo iptables -A INPUT -p tcp --dport $PORT -j DROP

sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP  

2)或者关掉对应的应用程序,则端口就自然关闭了,如:

"kill -9 PID" (PID:进程号)

如:通过"netstat -anp | grep ssh"

有显示:tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh

则: kill -9 7546

 

 

 

 

 

在工作中,经常来备份文件和系统应用,常用到的主要是tar和cp命令,分别介绍如下:

 

一、tar命令,这个现在经常使用用来打包:

 

tar包指的是档案文件:

tar  -cvf  filename_20140805.tarfilename  打tar包的方法

tar  -xvf  filename_20140805.tar 解tar包的方法

 

gz包指的是压缩包文件:

tar -czvf  filename_20140805.tar.gz    filename打压缩包的方法

tar -xzvf  filename_20140805.tar.gz解压缩包的方法

 

以下为对比的几个:

tar-cvf/path/filename.tar ——> 仅打包,不压缩!
tar -zcvf/path/filename.tar.gz——>打包后,以 gzip 压缩
tar 

-jcvf  /path/filename.tar.bz2 ——>打包后,以 bzip2 压缩

 

压缩文件:

tar  -xvzf  /abc/bcd/mm_20141223.tar.gz      /aaa/bbb/ccc.txt        将文件/aaa/bbb/ccc.txt 压缩到另一个路径/abc/bcd/下,并以mm_20141223.tar.gz名字命名

 

实例:压缩服务器上当前目录的内容为xxx.zip文件

zip -r xxx.zip ./*

解压zip文件到当前目录

unzip filename.zip

 

 

二、cp命令,这个常用来拷贝文件/文件夹:

1、同一文件夹内拷贝:

cp  filename  filename_20140805拷贝文件

cp  -rf  foldername  foldername_20140805拷贝文件夹

2、本文件夹内某个文件拷贝到另一个文件夹:

cp  filename  /app/xx/xx/filename(filename_20140805) 拷贝文件

cp  -rf  filename  /app/xx/xx/filename(filename_20140805) 拷贝文件夹

3、某文件夹内所有文件拷贝到另一个文件夹下:

cp  /abc/a*.jsp  /path/to/newfilepath/   

将/abc/路径下以a开头的.jsp文件拷贝到 /path/to/newfilepath/路径下

cp  /abc/*   /path/to/newfilepath/ 

将/abc/路径下所有文件拷贝到 /path/to/newfilepath/路径下

 

注:本文主要是为了总结自己在工作中常用的几个命令和方法,算做自我工作总结。

grep

 

cat caselist.htm

cd  caseManage/

 

cat server.xml

 

cd ../conf/

 

cd /root/.jenkins/workspace/DCBossSite/target/DCBossSite

 

1、从服务器下载文件指令

 

sz  -y 文件名

 

2、上传文件  rz -y 选择文件

ls

常用指令待整理

标签:设定   压缩文件   文件拷贝   描述符   指定端口   global   主机   监视   相关   

原文地址:http://www.cnblogs.com/bln99/p/7701104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!