Linux常用命令之一
1.top:
监控系统的运行状态,并且可以按照cpu、内存、执行时间进行排序
第一行中,10:58:56
是当前时间,up 2 days
是系统运行的运行了多长时间,1 user
指出了当前有几个用户登录到系统,load average
指的是系统负载,这后面的三个值分别是1分钟,5分钟,15分钟的系统负载平均值。
第二行中,Task
指出了当前系统有多少个进程,以及各种状态的进程统计信息。
第三行是%Cpu(s)
,代表了CPU占用比例,其中:
- us 用户模式(user mode)
- sy 系统模式(system mode)
- ni 优先值(low priority user mode(nice))
- id 空闲CPU百分比(idle task)
- wa 等待输入输出的CPU事件百分比(I/O waiting)
- hi servicing IRQs
- si servicing soft IRQs
- st steal (time given to other DomU instances)
最后两行为内存信息,前者Mem
为物理内存占用信息,后者Swap
为交换分区占用信息。
最下面是进程的信息区域:
- PID 进程的PID
- USER 用户名,任务属主
- PR 任务的优先级
- NI 优先值
- VIRT 虚拟映像(kb),任务当前使用的虚拟内存数量
- RES 常驻物理内存占用量,RES=CODE+DATA
- SHR 共享内存大小(kb)
- S 进程状态(D-不可中断的睡眠,R-运行,S-睡眠,T-停止,Z-僵尸进程)
- %CPU CPU使用量
- %MEM 内存使用量
- TIME+ CPU时间,百分之一
- COMMAND 程序名称
2. pgrep/pkill:
根据名称或者其它属性查询(发送信号)进程信息。
pgrep
命令根据提供的条件查询进程的pid,查询条件是and方式的,对于同一个选项,使用『,』分隔可以按照or方式查询。
pkill
使用与pgrep
类似,不过它不是用来查询进程pid,而是给进程发送信号,默认会发送 SIGTERM信号。
3.pstree:
该命令用于显示进程树,以树的形式显示正在运行的进程,树的根节点是指定的pid(忽略则为init进程)。
4.netstat:
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告.
显示根据进程号、服务名、端口号查看详细信息:
5.w/who:
w
命令用于查看当前哪些用户登录到系统和他们正在做什么,who
命令仅用于查看哪些用户登录系统。
6.iostat:
报告CPU的统计信息,设备、分区、网络文件系统(NFS)的I/O统计信息。
通过指定-d
参数可以设定自动按照指定时间间隔显示统计信息。例如,下列命令每隔2s显示一次。
这里对几个性能指标进行解释:
- tps 每秒发送的I/O请求数
- Blk_read/s 每秒读取的block数
- Blk_wrtn/s 每秒写入的block数
- Blk_read 读取的block数
- Blk_wrtn 写入的block数
7.查看Linux的版本(Red Hat/Cent OS):
8.tee:
tee
命令用于将标准输入拷贝到标准输出。如下图将hello world 写入txt文件。
9.unzip:
unzip命令用于解压.zip
文件,常用参数如下
- -f 只更新磁盘上已经存在的文件
- -u 更新磁盘上存在的文件,文件不存在则创建
- -o 如果文件已经存在则直接覆盖,不提示
- -d 指定解压到的目录
10.Pushd和Popd:
Pushd和Popd命令,这两个命令一般都是同时使用,意思就是Push和Pop。
pushd 改变当前目录到指定目录,并保存当前的目录在堆栈顶端。
popd 改变当前目录,跳转到堆栈顶端保存的目录,并将堆栈顶端的目录删除。
经常会有这么一种情况,我们会在不同目录中进行频繁的切换,如果目录很深,那么使用cd
命令的工作量是不小的,这时可以使用pushd
和popd
命令快速切换目录。
11.scp:
在服务器和本地计算机之间传递文件, 如果要操作的对象是整个目录的话,需要添加-t
参数。
从服务器下载文件: scp username@服务器地址:/path/文件名 本地保存路径
上传文件到服务器: scp 本地文件路径 username@服务器地址:/保存到服务器的路径
12.sed:
使用sed命令批量操作文件
参数说明:
- -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
- -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
- -h或--help 显示帮助。
- -n或--quiet或--silent 仅显示script处理后的结果。
- -V或--version 显示版本信息。
动作说明:
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
- s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
13.route:
Linux系统的route命令用于显示和操作IP路由表, 要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
备注:直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来设置路由永久有效。
查看路由信息:
14.uname:
uname可显示电脑以及操作系统的相关信息。
参数说明:
- -a或--all 显示全部的信息。
- -m或--machine 显示电脑类型。
- -n或-nodename 显示在网络上的主机名称。
- -r或--release 显示操作系统的发行编号。
- -s或--sysname 显示操作系统名称。
- -v 显示操作系统的版本。
- --help 显示帮助。
- --version 显示版本信息。
15.date:
用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
参数说明:
- -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
- --help : 显示辅助讯息
- -s datestr : 将系统时间设为 datestr 中所设定的时间
- -u : 显示目前的格林威治时间
- --version : 显示版本编号