进程与程序

1.子程序与父程序

PID是进程的ID,PPID是其父进程的ID

登录bash之后,就是获取了一个名为bash的PID,在这个环境上所执行的其他命令,就是其子程序

common@common-Aspire-4750:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 5190 5182 0 80 0 - 2153 wait pts/1 00:00:00 bash
0 R 1000 5203 5190 0 80 0 - 1606 - pts/1 00:00:00 ps

查看端口使用情况,使用netstat命令。查看已经连接的服务端口(ESTABLISHEDnetstat -a查看所有的服务端口(LISTEN,ESTABLISHED)

netstat -ap

查看8080端口,则可以结合grep命令:

netstat -ap | grep 8080

如查看8888端口,则在终端中输入:

lsof -i:8888

若要停止使用这个端口的程序,使用kill +对应的pid即可

2.作业管理:&、Ctrl-z、jobs、fg、bg、kill

  & 可以直接将命令放到后台执行

  输入命令后,在该命令的最后加上一个&,表示将该命令放到后台,此时会返回一个“作业号”[1],还有一个PID。

common@common-Aspire-4750:~/下载$ tar -cvzf temp.tar.gz temp/ &
[1] 5225
common@common-Aspire-4750:~/下载$ temp/
temp/b.txt
temp/a_copy.txt
temp/a.txt
temp/a.tar.gz
temp/b (复件).txt
回车
[1]+ 已完成 tar -cvzf temp.tar.gz temp/

在后台中执行的命令,如果有stdout和stderr的时候,它的数据依然是输出到屏幕上的,所以要使用数据流重导向,将输出传至某个文件中

tar -cvzf temp.tar.gz temp/ >> a.txt &

  Ctrl-z 可以将“当前”作业放到后台“暂停

common@common-Aspire-4750:~/下载$ vi a.txt

请按 ENTER 或其它命令继续[1]   已完成               tar -cvzf temp.tar.gz temp/ >> a.txt

按ctrl+z  #暂停

[2]+  已停止               vi a.txt
common@common-Aspire-4750:~/下载$

  jobs 观察当前后台作业状态

  -l:除了列出作业号之外,同时列出PID

  -r:仅列出正在后台运行(run)的作业

  -s:仅列出正在后台暂停(stop)的作业

common@common-Aspire-4750:~/下载$ jobs -l
[2]+ 5310 停止 vi a.txt  #+-符号,+表示默认的作业,在仅输入fg的时候,+的作业会被拿到前台处理

  fg 将后台作业拿到前台处理

common@common-Aspire-4750:~/下载$ fg %2    # %后面跟的是作业号,默认取出+的作业
vi a.txt

  bg 让作业在后台运行

common@common-Aspire-4750:~/下载$ bg %2
[2]+ vi a.txt &  #多了一个&符号

  kill 管理后台作业

  -l:列出当前kill能够使用的信号(signal),signal表示指示,使用man 7 signal可以知道

  -1:重新读取一次参数的设置文件,(类似reload)

  -2:表示与由键盘输入ctrl-c同样的动作

  -9:立刻强制删除一个作业

  -15:以正常的程序方式终止一项作业

common@common-Aspire-4750:~/下载$ kill -9 %2

[2]+  已停止               vi a.txt
common@common-Aspire-4750:~/下载$ jobs
[2]+ 已杀死 vi a.txt
killall -9 httpd    #强制终止所有以httpd启动的进程

  xkill

    杀死一个窗口程序,在QQ后台无法呼出的时候使用

进程管理

  1.进程的观察,ps命令,参数很多,参考man ps

  参数:-A:所有的进程均显示出来,与-e具有同样的作用

     -a:与终端无关的所有进程

     -u:有效用户的相关进程

     x:通常与a参数一起使用,可列出较完整的信息

  输出格式:-l:较长、较详细地显示该PID的信息

       j:作业的格式,带有PID、PPID等信息

       -f:更为完整的输出,进程树格式显示

ps -l    #将当前属于自己这次登录的PID与相关信息显示出来,以长格式显示
ps aux    #列出当前所有正在内存中的进程
ps -lA    #显示出所有的进程,以长格式显示
ps -axjf    #以进程树的方式显示进程
common@common-Aspire-4750:~/下载$ ps -aux | grep 'lantern'  #找出和lantern这个服务有关的PID号码,下面是ps命令本身
common 6929 0.0 0.0 6136 2048 pts/1 S+ 13:42 0:00 grep --color=auto lantern

如果某个进程的CMD后面还有<defunct>,就表示该进程是僵尸进程

造成僵尸进程的原因是,该进程应该已执行完毕,或者是因故应该终止了,但是该进程的父进程却无法完整地结束该进程,而造成那个进程一直存在于内存中。

  2.top进程可以持续检测整个系统的进程工作状态

top [-d] [-bnp]

    参数:-d,间隔多少秒输出

       -b,将批处理的结果输出到文件

       -n,与-b搭配,需要进行几次top的输出结果

       -p,指定某些个PID来进行观察

top -d 2    #每隔两秒输出
top -b -d 2 > a.txt    #以批处理的方式输出到文件,每隔两秒,必须加上-b不然会乱码
top -d 2 -p6559    #6559是已经存在的PID,每隔两秒查询一次

top主要分为两个画面,上面的画面为整个系统的资源使用状态,有6行:

第一行:显示系统时间,上线人数,整体负载(分别表示1、5、10分钟的平均负载,一般不会超过1)

第二行:显示当前观察的进程数量,注意最后的僵尸进程数量

第三行:显示CPU的总负载,id的数值接近于100,表示系统资源使用的很少

第四、五行:表示当前物理内存与虚拟内存(Men和Swap)的使用情况

第六行:输入命令显示状态的地方

  3.pstree查看进程的关联性

  参数:-A:各进程树之间以ASCII字符来连接

     -p:同时列出每个进程PID

     -u:同时列出每个进程的所属账号名称

pstree -Aup    #列出当前系统上所有进程树的关联性,并显示PID和用户

防火墙

  1.查询防火墙状态

sudo service ufw status
sudo ufw status

   2.关闭防火墙

sudo service ufw stop

  3.开启防火墙,运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

sudo ufw enable
sudo ufw default deny

   4.开启和关闭

#开启和禁用
sudo ufw allow|deny [service] #打开或关闭某个端口,例如:
sudo ufw allow smtp   #允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp   #允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53   #允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100   #允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp   #禁止外部访问smtp服务
sudo ufw delete allow smtp   #删除上面建立的某条规则 #允许某特定 IP
sudo ufw allow from xxx.xxx.xx.xxx #删除 smtp 端口的许可
sudo ufw delete allow smtp

centos清理僵尸进程

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
kill -9 XXX

清理buffer/caches

echo 3 > /proc/sys/vm/drop_caches

定制登录motd图案

http://www.kammerl.de/ascii/AsciiSignature.php

在/etc/profile中添加

#Login Info
sh /home/lintong/motd/login_bash_ok.sh

login_bash_ok.sh内容

# * Variables
user=$USER
path=$PWD
home=$HOME # * Check if we're somewhere in /home
if [ ! -d ${home} ];then
return 0
fi # * ASCII head
cat /home/lintong/motd/login_logo.txt
# * Print Output
echo " ::::::::::::::::::::::::::::::::::-STATUS-::::::::::::::::::::::::::::::::::"
reset_terminal=$(tput sgr0)
total_mem=$(top -n 1 -b | grep "KiB\ Mem" | awk '{ print $4/1024 " Mb"}')
echo -e '\E[32m'" Total Memmory :" $reset_terminal ${total_mem}
total_mem_free=$(top -n 1 -b | grep "KiB\ Mem" | awk '{ print $6/1024 " Mb"}')
echo -e '\E[32m'" Total Memmory Free :" $reset_terminal ${total_mem_free}
buff_cache_used=$(top -n 1 -b | grep "KiB\ Mem" | awk '{ print $10/1024 " Mb"}')
echo -e '\E[32m'" Buff Cache Used :" $reset_terminal ${buff_cache_used}

查看机器物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看单个物理CPU中core的个数(即核数)

cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l

Linux学习笔记<六>的更多相关文章

  1. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  2. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  3. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  4. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  5. linux —— 学习笔记(汇总)

    笔记目录:一.系统知识 和 基本概念                    二.常用操作                   三.系统管理(内存.设备.服务等管理)                   ...

  6. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  7. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

  8. deepin linux学习笔记(四)进不去图形界面怎么办?

    目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...

  9. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

  10. deepin linux学习笔记

    目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ...

随机推荐

  1. 基于ARM处理器的反汇编器软件简单设计及实现

    写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...

  2. Elixir - Hey, two great tastes that go great together!

    这是Elixir的作者 José Valim 参与的一次技术访谈,很有料,我们可以了解Elixir的一些设计初衷,目标等等. 原文在: http://rubyrogues.com/114-rr-eli ...

  3. Oracle SGA优化

    oracle的SGA:数据库的系统全局区,SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. 共享池又由两部分构成:共享SQL区和数据字典缓冲区. 共享SQL区专门存放用户SQL命令,oracl ...

  4. SQL SERVER 2008复制数据库时发生执行SQL Server代理作业错误

    1. 情况说明 在利用SQL SERVER数据库复制向导,能够很方便的将一个数据库从一台服务器复制到另一台服务器上,具体操作步骤也十分简单. 不过在实际操作过程常发生“执行SQL SERVER代理作业 ...

  5. 2-kvm创建快照以及网卡绑定

    kvm创建快照以及网卡绑定 创建node1 查看node1 进入到kvm的配置文件里 将rhcs文件复制一份取名为node1.xml 通过这个命令随机生成一个uuid 然后就进入node1.xml里修 ...

  6. [转]Web APi之认证(Authentication)及授权(Authorization)【一】(十二)

    本文转自:http://www.cnblogs.com/CreateMyself/p/4856133.html 前言 无论是ASP.NET MVC还是Web API框架,在从请求到响应这一过程中对于请 ...

  7. [No0000A4]DOS命令(cmd)批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度

    1.替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串.举例说明其功能:========================================= @echo off set a ...

  8. .Net环境下的缓存技术介绍 (转)

    .Net环境下的缓存技术介绍 (转) 摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1         概念 ...

  9. 原生js实现autocomplete插件

    在实际的项目中,能用别人写好的插件实现相关功能是最好不过,为了节约时间成本,因为有的项目比较紧急,没充分时间让你自己来写,即便写了,你还要花大量时间调试兼容性.但是出于学习的目的,你可以利用闲暇时间, ...

  10. java sound初探

    网上关于java sound的正规资源讲解的非常好,本文不再给出示例,主要提供一些好的资源,并说说我的一些理解,用于形成对java sound的整体认识. 一.几个词汇 TTS:text-to-spe ...