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 ...
随机推荐
- yii2分页扩展之实现跳转到具体某页
作者:白狼 出处:http://www.manks.top/yii2_linkpager_widget.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文 ...
- 父容器利用opacity设置透明后,子元素跟着变透明的解决方案
背景半透明,子元素不透明的效果经常需要用到.通常对父容器使用opacity属性时,子元素也跟着变透明,所以不妨设置父容器的 background-color:rgba(r,g,b,x); 其中x取值从 ...
- 最新官方WIN10系统32位,64位系统ghost版下载
系统来自:系统妈 随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式 ...
- django 一些相关问题
这两天在处理django项目时碰到一些问题 1.ur路径设置要忽略大小写,查找了很多资料,都没有发现相关的介绍,最后在谷歌上找到一个解决方案,https://groups.google.com/for ...
- JS中typeof与instanceof的区别
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: Typeof typeof 是一个一元运算,放在一个运算数之前 ...
- ESLint规则配置说明
"no-alert": 0,//禁止使用alert confirm prompt "no-array-constructor": 2,//禁止使用数组构造器 & ...
- Entity Framework关于SQL注入安全问题
1.EF生成的sql语句,用 parameter 进行传值,所以不会有sql注入问题 2.EF下有涉及外部输入参数传值的,禁止使用EF直接执行sql命令方式,使用实体 SQL 参考: https: ...
- GO语言总结(3)——数组和切片
上篇博文简单介绍了一下Go语言的基本类型——GO语言总结(2)——基本类型,本篇博文开始介绍Go语言的数组和切片. 一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. ( ...
- [LeetCode] Assign Cookies 分点心
Assume you are an awesome parent and want to give your children some cookies. But, you should give e ...
- [LeetCode] Third Maximum Number 第三大的数
Given a non-empty array of integers, return the third maximum number in this array. If it does not e ...