进程与程序

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. eclipse调试(debug)的时候,出现Source not found,Edit Source Lookup Path,一闪而过

    问题描述 使用Eclipse调试代码的时候,打了断点,经常出现Source not found,网上找了半天,大部分提示点击Edit Source Lookup Path,添加被调试的工程,然而往往没 ...

  2. 简历生成平台项目开发-STEP4第二次项目例会讨论

    时间:2016.7.15周五7点半 地点:图书馆 讨论主题:交流各自手头项目进展,确定下一步任务 内容:按照之前的讨论的任务大家各自汇报进度. 汇报人:谭卓.尹忠诚 内容:1.基于富文本编辑器的模板, ...

  3. (转)C# 选择正确的集合

    原文: http://www.cnblogs.com/luminji/archive/2011/03/24/1993393.html 要选择正确的集合,我们首先要了解一些数据结构的知识.所谓数据结构, ...

  4. MS SQL巡检系列——检查外键字段是否缺少索引

    前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...

  5. 几大排序算法的Java实现

    很多的面试题都问到了排序算法,中间的算法和思想比较重要,这边我选择了5种常用排序算法并用Java进行了实现.自己写一个模板已防以后面试用到.大家可以看过算法之后,自己去实现一下. 1.冒泡排序:大数向 ...

  6. [Python核心编程] 第1章 欢迎来到Python世界

    什么是Python Python的起源 Python的特点 下载Python 安装Python 运行Python Python文档 比较Python 其他实现   1.什么是Python        ...

  7. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

  8. ubuntu无限卡在logo界面

    ubuntu默认的是lightdm显示管理器,GDM就是Gnome display manager,lightdm是ubuntu开发的代替gdm的显示管理器.如果ubuntu进不去图形界面,除了重新安 ...

  9. spi子系统之驱动SSD1306 OLED

    spi子系统之驱动SSD1306 OLED 接触Linux之前,曾以为读源码可以更快的学习软件,于是前几个博客都是一边读源码一边添加注释,甚至精读到每一行代码,实际上效果并不理想,看过之后就忘记了.主 ...

  10. [django]手动数据库备份

    基本原理是按钮点击后,系统查询出数据表中信息,然后在网页中导出相关表格! 若有自动数据库备份的兄弟,指点一下! 模板代码: <a href="{% url 'work_backup' ...