Linux学习笔记<六>
进程与程序
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学习笔记<六>的更多相关文章
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
- Linux学习笔记(一)2015.4.13
研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...
- 20160127 linux 学习笔记
Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...
- linux —— 学习笔记(汇总)
笔记目录:一.系统知识 和 基本概念 二.常用操作 三.系统管理(内存.设备.服务等管理) ...
- Linux学习笔记-林耐斯Notes-Linux就该这么学
Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...
- Linux~学习笔记目录索引
回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...
- deepin linux学习笔记(四)进不去图形界面怎么办?
目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...
- deepin linux 学习笔记(二)——文本编辑器
目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...
- deepin linux学习笔记
目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ...
随机推荐
- C# 在Repeater 的ItemDataBound 如何转换e.Item.DataItem 的类型
1.使用DataSet和DataTable绑定数据源时,用 DataRowView view = (DataRowView)e.Item.DataItem; 2.DataReader绑定数据源时,用 ...
- 软件海贼团 OnePiece (版权所有)
最近迷上了“海贼王”这部动画片,不仅仅是因为其中的人物个个性格鲜明,剧情跌宕起伏扣人心弦,各种耍宝搞笑,还感觉到这个团队很像理想中的敏捷软件团队. 作为一直带团队的我,感觉“海贼王”这个动画片给了我很 ...
- linux下安装 oracle 11g
oracle 11g安装 一.环境准备 划分区 / 15000M /tmp 4096M /boot 100M Swap 4096M /u01 剩余空间 2.更改主机名,ip地址 3.安装软件包 那么l ...
- XML简介与CDATA解释
简介XML 是一种受到广泛支持的 Internet 标准,用于以一种特殊的方式编码结构化数据.实际上,以 XML 编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写 XM ...
- 【原】为什么选择iPhone5的分辨率作为H5视觉稿尺寸
[20160105更新:可以用iPhone6分辨率为视觉稿尺寸啦] 又是一年的520网络情人节,深圳这边却下了大雨,这雨只能是单身汉的泪,而对于我来说这一天具有特别的意义,一来怀念父亲,二来对我这种结 ...
- HTML 学习笔记 JavaScript(面向对象)
现在让我们继续跟着大神的脚步前进 学习一下JavaScript中的面向对象的思想,其实作为一个iOS开发者,对面向对象还是比较熟悉的,但是昨晚看了一下Js中的面向对象,妈蛋 一脸萌比啊.还好有大神.让 ...
- jquery validate表单验证插件-推荐
1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...
- Linux ——————用Secure传文件时直接拖了文件用的是AssIC导致linux那边直乱码
如下: 解决办法: 直接删除.
- SQL Check
一款实时性能监测工具 SQL Check? 一款实时监测SQL数据库性能.实时排查的问题的免费工具. 可以实时监测20个左右的SQL关键性能指标,每个指标都已图形化动态直播形式展现. 适合DBA.数据 ...
- python cookbook 学习系列(一) python中的装饰器
简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...