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 ...
随机推荐
- MySQL Performance-Schema(三) 实践篇
前一篇文章我们分析了Performance-Schema中每个表的用途,以及主要字段的含义,比较侧重于理论的介绍.这篇文章我主要从DBA的角度出发,详细介绍如何通过Performance-Schema ...
- 实时跟踪log变化的工具Apachetop
作为一个网站管理员,我们经常会有需要知道当前什么人正在访问我们的网站,谁正在频繁的抓取我们网站的内容,什么搜索引擎正在抓取我们网站?面对这些问题,我们虽然可以去查看log日志文件,但是却不能让我们实时 ...
- php使用microtime(true)查看代码执行时间
microtime() 函数返回当前 Unix 时间戳和微秒数. 如果带个 true 参数, 返回的将是一个浮点类型 round() 取出小数点后 3 位 $t1 = microtime(true); ...
- [笔记]ubuntu安装flashplayer
为firefox安装: 下载tar.gz压缩包:http://get.adobe.com/cn/flashplayer/ 解压:tar -xvxf install_flash_player_11_li ...
- Prometheus 系统监控方案 二 安装与配置
下载Prometheus 下载最新安装包,本文说的都是在Linux x64下面内容,其它平台没尝试过,请选择合适的下载. Prometheus 主程序,主要是负责存储.抓取.聚合.查询方面. Aler ...
- 设备模型(device-model)之平台总线(bus),驱动(driver),设备(device)
关于关于驱动设备模型相关概念请参考<Linux Device Drivers>等相关书籍,和内核源码目录...\Documentation\driver-model 简单来说总线(bus) ...
- Ubuntu 一直掉线 以及连不上网 解决办法
新装了一个Ubuntu 系统16.04才使用的时候一切顺利 但是过了两三天 就会出现 频繁掉线的情况 于是上网找大神们的解决办法 把文件 /etc/ppp/options 里面的一个数值改大一点 l ...
- [LeetCode] Partition Equal Subset Sum 相同子集和分割
Given a non-empty array containing only positive integers, find if the array can be partitioned into ...
- [LeetCode] Majority Element II 求众数之二
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- [LeetCode] Integer to Roman 整数转化成罗马数字
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...