linux 常用 掌握要点
1、查看正在执行的进程(Process)
ps命令 Process Status 进程状态
语法: ps [option] [--help]
- -A 列出所有的行程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的行程
- au(x) 输出格式 :
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
名词解释:
- USER: 行程拥有者
- PID: pid
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的记忆体使用率
- VSZ: 占用的虚拟记忆体大小
- RSS: 占用的记忆体大小
- TTY: 终端的次要装置号码 (minor device number of tty)
- STAT: 该行程的状态:START: 行程开始时间
- D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
- TIME: 执行的时间
- COMMAND:所执行的指令
# ps -A 显示进程信息
# ps -u root //显示root进程用户信息
# ps -ef //显示所有命令,连带命令行
2、查询指定的进程ID(PID) 打开的文件
查看pid:pidof programe-name
方法 1)
cd /proc/$PID/fd(会看见文件描述符)
ls -l
得到文件描述符指向的实际文件,即当前进程打开的文件
方法 2)
安装lsof (lsof(list open files)是一个列出当前系统打开文件的工具)
lsof -g gid 显示归属gid的进程情况
3、杀死指定PID的进程(PID为Process ID)
kill -s 9 pid
9代表强制终止
4、计算文件的行数、字数或字符数
wc [option]文件… (Word Count)
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
–version 显示版本信息
5、显示进程信息,并实时更新
top
-d 设置刷屏的时间
-p 指定需要监控的进程id
-u 指定需要监控的用户名称
-b 指定之后不能使用交互式的方式,如果不指定的话可以动态调整,一般用于输出到文件的时候使用
-H 指定这个可以显示每个线程的情况,否则就是进程的总的状态
-i 不显示闲置和僵死的进程
-c 显示全部命令参数
按q退出,按h进入帮助。
6、调用top命令的"-H"选项,该选项会列出所有Linux线程(Thread)
top -H:-H 指定这个可以显示每个线程的情况,否则就是进程的总的状态
7、查看用户username的进程所打开的文件
# ps -u username
# ps -u root //显示root进程用户信息
8、在ps命令中,"-T"选项可以开启线程(Thread)查看,下面的命令列出了由进程号为pid的进程创建的所有线程
ps -T
ps -T -p <pid>
方法二: Top
top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。
1.$ top -H
要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:
2.$ top -H -p <pid>
方法三: Htop
一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。
要在htop中启用线程查看,请开启htop,然后按<F2>来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。
9、比较两个文件
diff [options] file1 file2
该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。
如果用”-”表示file1或file2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。
[options]主要参数
-a:将所有文件当作文本文件来处理。
-b或–ignore-space-change 忽略空格造成的不同。
-B或–ignore-blank-lines 忽略空行造成的不同。
-c 使用纲要输出格式。
-H 利用试探法加速对大文件的搜索。
-I 忽略大小写的变化。
-n –rcs 输出RCS格式。
-N或–new-file 在比较目录时,若文件A仅出现在某个目录中,会显示:Only in目录;文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-r或–recursive 比较子目录中的文件。
-u,-U<列数>或–unified=<列数> 以合并的方式来显示文件内容的不同。
10、后台执行,通过shell中输入exit来推出终端
exit
11、查看正在执行的任务
# ps aux | less 查看所有运行中的进程
12、多线程执行
Linux系统内核只提供了轻量级进程的支持,并未实现线程模型。
Linux是一种“多进程单线程”的操作系统,Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。
使用'&'+wait 实现“多进程”实现
待更新
13、查看进程和线程的树形结构关系
pstree 命令,查看进程和线程的树形结构关系。
14、ps命令-L参数显示进程,并尽量显示其LWP(轻量级进程)(线程ID)和NMWP(线程的个数)
ps -L
15、ps命令查看线程在哪个CPU上运行
# ps -eo pid,args,psr
参数的含义:
pid 进程ID
args 该进程执行时传入的命令行参数
psr 分配给进程的CPU
16、取出文件的前面几行
查看 前 head -100 filename
查看 后 tail -100 filename 或 tail -n 100 filename
查看 中 sed -n '100,200p' filename
17、动态查看文件变化
tail -f filename
18、退出tail -f
Ctrl + c (Mac Os : control + c)
19、tail程序放到后台去(Ctrl+z)等处理完其他事情,再用fg命令将tail命令转到前台来
20、查看文件夹和子目录的大小
21、设置定时任务
启动crontab服务
一般启动服务用 /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意 下 不同版本linux系统启动的服务的命令也不同 ,像我的虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务
查看服务是否已经运行用
ps -ax | grep cron
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
vi /etc/crontab
minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下 例:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
删除任务调度工作
crontab -r //删除所有任务调度工作
22、重命名文件和文件夹
mv 和剪切是一个命令
将目录A重命名为B : mv A B
将/a目录移动到/b下,并重命名为c :mv /a /b/c
23、复制、剪切、清空和删除
创建文件夹 :mkdir (Make directory 建立目录)
文件夹复制:cp (Copy file 复制文件)
1.把/home/file1里面的文件和文件夹等复制到home/file2目录下
cp -rf /home/file1/* /home/file2
2.把/home/file1目录复制到/home/file2目录下,即把file1复制变成file2的子目录,变成/home/file2/file1的路径
cp -rf /home/file1 /home/file2
剪切: mv (Move file 移动文件)
1.使用mv命令剪切文件。
如需要将/home/file1/目录下的1.txt文件剪切到/home/file2目录下,执行下面的命令即可:
# mv /home/file1/1.txt /home/file2
2.使用mv命令剪切文件夹。
把/home/file/soft文件夹剪切到/home/file/abc目录下
# mv /home/file/soft /home/file/abc
3.使用mv命令剪切文件夹和文件
把/home/file/下的文件夹和文件剪切到/home/file2目录下
# mv /home/file/* /home/file2
清空
清空文件夹实例:
rm -rf /home/file/*
将会强制删除/home/file目录下所有文件、文件夹,保留/home/file目录
删除 rm( Remove file 删除文件)
rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
24、Linux通信
Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量(semaphore),信号(signal),套接字(Socket)
(1) 管道(pipe):管道允许一个进程和另一个与它有共同祖先的进程之间进行通信;
(2) 命名管道(FIFO):类似于管道,但是它可以用于任何两个进程之间的通信,命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建;
(3) 信号(signal):信号是比较复杂的通信方式,用于通知接收进程有某种事情发生,除了用于进程间通信外,进程还可以发送信号给进程本身;Linux除了支持UNIX早期信号语义函数signal外,还支持语义符合POSIX.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD即能实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数的功能);
(4) 内存映射(mapped memory):内存映射允许任何多个进程间通信,每一个使用该机制的进程通过把一个共享的文件映射到自己的进程地址空间来实现它;
(5) 消息队列(message queue):消息队列是消息的连接表,包括POSIX消息对和System V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能成该无格式字节流以及缓冲区大小受限等缺点;
(6) 信号量(semaphore):信号量主要作为进程间以及同进程不同线程之间的同步手段;
(7) 共享内存 (shared memory):它使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。这是针对其他通信机制运行效率较低而设计的。它往往与其他通信机制,如信号量结合使用,以达到进程间的同步及互斥;
(8) 套接字(Socket):它是更为通用的进程间通信机制,可用于不同机器之间的进程间通信。起初是由UNIX系统的BSD分支开发出来的,但现在一般可以移植到其他类UNIX系统上:Linux和System V的变种都支持套接字。
linux 常用 掌握要点的更多相关文章
- linux 常用 掌握要点 详细终结
linux 命令大全 每个开发者应该了解的 10 个 Linux 命令 1.查看正在执行的进程(Process) ps命令 Process Status 进程状态 语法: ps [option] ...
- Linux常用命令(一)
Linux常用命令 1. pwd查看当前路径(Print Working Directory) [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...
- linux常用命令的介绍
本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...
- linux常用指令
整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...
- linux——常用命令与脚本
linux常用命令 --文件管理pwd --查看当前目录cd --切换当前目录ls --列出当前目录下的所有文件touch --创建文件mkdir --建立目录rmdir --删除空目录rm --删除 ...
- Linux常用的安全工具 转自https://yq.aliyun.com/articles/52540?spm=5176.100239.blogcont24250.8.CfBYE9
摘要: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/85790 ...
- Linux 常用工具小结:(5) lftp工具使用
Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...
- DOS 和 Linux 常用命令的对比
DOS 和 Linux 常用命令的对比 许多在 shell 提示下键入的 Linux命令都与你在 DOS 下键入的命令相似.事实上,某些命令完全相同. 本附录提供了 Windows的 DOS 提示下的 ...
- 第一章,Linux常用命令
20161124 Linux常用命令1.find find /etc/ -size +50k -lsfind /etc/ -size +50k -ls 2> /dev/null查看目录下大于50 ...
随机推荐
- 关于微信小程序遇到的wx.request({})问题
域名请求错误问题 当我们在编写小程序,要发送请求时,wx.request({})时或许会遇到如下的问题: 一:这是因为微信小程序的开发中,域名只能是https方式请求,所以我们必须在小程序微信公众平台 ...
- 关于JS的return false
之前真的不知道JS里的return false 还能跳出事件. 今天在修改BUG的时候,用到了这个,就去查了一下,为了加深记忆在此处做个总结. retrun true: 返回正确的处理结果. retu ...
- 写给Android App开发人员看的Android底层知识(5)
(十)Service Service有两套流程,一套是启动流程,另一套是绑定流程.我们做App开发的同学都应该知道. 1)在新进程启动Service 我们先看Service启动过程,假设要启动的Ser ...
- R语言-混合型数据聚类
利用聚类分析,我们可以很容易地看清数据集中样本的分布情况.以往介绍聚类分析的文章中通常只介绍如何处理连续型变量,这些文字并没有过多地介绍如何处理混合型数据(如同时包含连续型变量.名义型变量和顺序型变量 ...
- RavenDB FS 安装使用 介绍
前言 最近项目因为要存储图片和文件,折腾了RavenDB,使用RavenDB的FS系统统一管理图片和文件. 安装 RavenDB 的FS文件系统,需要用到windows的远程差分压缩功能: 安装好之后 ...
- CodeForces 544C (Writing Code)(dp,完全背包)
题意:有n个程序员,要协作写完m行代码,最多出现b个bug,第i个程序员每写一行代码就会产生a[i]个bug,现在问,这n个人合作来写完这m行代码,有几种方案使得出的bug总数不超过b(题中要求总方案 ...
- 浅谈MVC数据验证
一.一般情况 对于使用过MVC框架的人来说,对MVC的数据验证不会陌生,比如,我有一个Model如下: public class UserInfo { [Required(ErrorMessage = ...
- js实现防盗图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Selenium】idea的selenium环境配置
1.maven配置 下载地址:http://maven.apache.org/download.cgi# 下载内容:apache-maven-3.5.0-bin.zip 环境变量:M2_HOME:E: ...
- 浅谈this那些事
一直以来,对this的讨论都是热门话题.有人说掌握了this就掌握了JavaScript的80%,说法有点夸张,但可见this的重要性.本人至今也是记录了很多关于this的零碎笔记,今天就来个小结. ...