Skip to content

Latest commit

 

History

History
1133 lines (846 loc) · 27.2 KB

linux.md

File metadata and controls

1133 lines (846 loc) · 27.2 KB

Linux 常用命令

ls命令

ll命令

cp命令

mv命令

rm命令

find命令

pwd命令

mkdir命令

tar命令

compress命令

uncompress命令

chmod命令

ln命令

tree命令

cat命令

od命令

head命令

tail命令

wc命令

sort命令

tee命令

grep命令

egrep命令

fgrep命令

sed命令

tr命令

ifconfig命令

ping命令

curl命令

wget命令

tracepath,tracepath6命令

traceroute,tracepath6命令

mtr命令

host命令

netstat命令

nc命令

ps命令

kill命令

lsof命令

free命令

top命令

文件和目录

前置知识

shell 中的文件名通配符

符号 含义
* 匹配任意长度字符串(包括空字符串)。特例:当文件通配符第一个字符为*时,不匹配以.开头的文件。
匹配一个字符。
[] 匹配方括号内任意一个字符。可以用'-'指定一个范围。例如:[A-Z]*匹配所有以大写字母开头的文件

shell在执行某个命令前会先对文件通配符做展开工作,然后才执行命令

linux中的文件类型

符号 类型 含义
- 普通文件 包括纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.
d 目录文件 能用 cd 命令进入的
b 块设备文件 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。
c 字符设备 即串行端口的接口设备,例如键盘、鼠标等等。
s 套接字文件 可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型
p 管道文件 用于进程间通信
l 符号链接文件 类似windows中的快捷方式

文件管理

ls命令

基本用法
  • ls命令后面不给出任何名字时,列出当前目录下所有文件和目录
  • 名字为文件时,列出该文件名
  • 名字为目录时,不列出目录名,而是列出列出该目录下所有的文件和子目录。
  • 在同一命令行中可以指定多个名字,可以配合通配符使用,这是的执行逻辑结合2、3点。
eg:

当前目录结构如下图

.
├── a
│   └── b
│       └── c
└── linux.md

执行ls

a  linux.md

执行 ls a

b

执行ls *

linux.md

a:
b
常用选项
  • -a 列出所有(all)项,包括以.开头的隐藏文件。

  • -R 递归地列出所碰到的子目录(Recursion)。

  • -F 标记每个文件(Flag)。 标记规则:

    • 目录:在文件名后加/
    • 可执行文件:在文件名后加 *
    • 符号链接文件:在文件名后加@
    • 管道文件:在文件名后加|
    • 普通文件:无标记
  • -d 若ls后的名字为目录,则列出目录名,不列出目录下的文件和子目录。 eg:ls * -d 等价于 ls

  • -l 长格式列表(long)。 第一列第1个字符为文件格式,2-4个字符标识所有者权限,5-7标识同组用户权限,8-10个字符标识其他用户权限 第2列是文件的link数(i结点被引用的次数) 第3、4列是文件主的名字和组名 第5列是文件大小 第六列是最后一次被修改时间 第七列是文件名

ll命令

等价于ls -al

cp命令

基本用法
  • cp file1 file2 把文件file1复制到file2

  • cp file1 file2 ... filen dir 把文件file1 file2 ... filen复制到已存在目录dir

常用选项
  • -r/-R 递归的复制目录

  • -d 不复制软链接

  • -n 不服该已存在目录

  • -a 相当于-dr

mv命令

基本用法
  • mv existing-file-or-dir new-name 常用于修改文件名
  • mv file1 file2 ... filen dir 把多个文件或目录移动到已存在目录dir中
常用选项
  • -f 覆盖前不提示

  • -i 覆盖前询问

  • -n 不覆盖已存在文件

rm命令

基本用法
  • rm file1 file2 ... filen 删除file1 ... filen
常用选项
  • -f 忽略不存在的文件和参数,不提示

  • -i 每次删除前都提示

  • -r/-R 递归删除目录

find命令

find命令在一个指定的范围内查找符合条件的文件或者路目,然后执行相应的动作。

eg: find dir1 dir2 -name '*.[ch]' -print : 表示在dir1dir2中查找所有以.c.h结尾的文件,然后打印出文件路径。在这条命令中find-name之间指定查找范围;-name指定查找条件,在这里可以使用*,?,[]通配符,但是这里的通配符是find命令处理的,而不需要shell展开,因此需要放在引号内;-print表示查找到符合条件的文件后执行的动作。

关于“条件”的选项
  • -name 文件名的匹配。可以使用通配符,但需要放在引号内。

  • -type 文件类型的匹配。例如:-type d表示匹配文件目录。

  • -size ±n[b/c/w/k/M/G] 文件大小的匹配。正号表示大于,负号标识小于,无符号表示等于。数字后可加单位,默认为b(需注意大小写)。

    • b 块
    • c 字节
    • w 字
    • k 千字节
    • M 兆
    • G 例如: -size +100:表示长度大于100块。 -size +100c:表示长度大于100字节。
  • -mtime ±n: 文件最近修改(modify)时间。单位为天。

  • -atime ±n: 文件最近访问(access)时间。单位为天。

  • -user: 指定文件主。

  • -group: 指定组。

更多选项可使用man find查看。

选项间不用符号连接表示且,用!链接表示非,用-o链接表示或。

关于动作
  • -print 打印符合条件的文件名。
  • exec, -ok 对符合条件的查找执行某个命令。两者的区别在于**-ok**在执行命令前需要确认。

eg: find . -name '*.[ch] -exec cat {} \;' 表示用cat命令打开以**.c.h结尾的文件。{}表示查找到的文件路径(中间无空格),大括号后的空格不能省,\转义,使得find**命令可以看到分号。

pwd命令

打印当前工作目录(print working directory)。

mkdir命令

创建路目 eg:mkdir hello/worldhello目录下创建world目录。hello目录需存在,否则失败。

mkdir除了创建目录外,还在目录中创建.目录..目录

tar命令

文件归档 这个命令主要掌握常用几个参数,会创建/解压等常规操作就ok。

常用选项
  • -c create创建新tar文件。

  • -v 冗长(verbose)。每处理完一个文件,久打印出文件名,并冠以功能字母。

  • -f 指定设备文件名。

  • -x 抽取(extract)。解压。

  • -u 更新(update)。在末尾追加。若已经存在旧版本,则不删除旧版本,把新版本追加在尾部。

常用操作
  • 创建tar文件

tar -cvf a.tar filelist

  • 解压tar文件

tar -xvf a.tar tar -xvf a.tar filelist 提取a.tar中的filelist tar -uvf a.tar filelist 更新a.tar中的filelist tar --delete -vf a.tar filelist 删除a.tar中的filelist

compress命令

采用LZW算法压缩文件,普通文本文件可压缩掉50%~80%。

uncompress命令

解压压缩文件。

eg:

	tar -cvf a.tar *  		将但前目录中所有文件打包到a.tar
	compress a.tar		压缩a.tar,产生a.tar.Z
	将a.tar.Z通过网络发送
	umcompress a.tat.Z 	解压得到a.tar
	tar -xvf t.tar			得到所有原始文件

chmod命令

基本是用
  • chmod [ugoa][+-=][rwx] file-list
  • chmod mode file-list
符号说明

u:文件主权限 g:同组用户权限 o:其他用户权限 a:所有用户权限 +:增加权限 -:取消权限 =:设置权限 r:读权限 w:写权限 x:执行权限

实例
chmod u+rw * # 对当前目录中所有文件给文件主增加读写权限
chmod go-rwx *.[ch] # 对所有以``.c``或者.``h``文件权限同组用户和其他用户的读、写、执行权限
chmod 640 a # 设置a文件权限:文件主拥有读写权限(110),同组用户拥有读权限(100),其他用户不拥有任何权限

ln命令

ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

常用选项

-s:对源文件建立符号连接,而非硬连接;

实例
  • 将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c
cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c # a2.c为新文件

在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1

ln -s /usr/mengqc/mub1 /usr/liu/abc

符号连接实质是做符号替换,连接创建好后如果移动源文件,会导致链接文件失效

tree命令

以树状图列出目录的内容

基本是用
  • tree dir

文本处理

前置知识

在 b-shell 中,0标识输入设备(键盘)文件描述符,1标识正常输入设备(终端)文件描述符,2表示错误输出设备(设备)文件描述符。

输入重定向

  • < 文件 将标准输入重定向到一个磁盘文件。

  • << 定界符 从shell中获取数据,直到下次遇到定界符。 需要注意的是:shell会对定界符之间的内容做命令替换和变量替换, 例如:

cat << test
> $HOME
> `date`
> test

输出结果为:

/home/yimi
2018年 09月 20日 星期四 15:18:04 CST

输出结果并不是界定符之间的内容。 解决办法为:第一个定界符用单引号括起来或者在第一个定界符前加反斜杠

cat << 'test'
> $HOME
> `date`
> test

或者

cat << \test
> $HOME
> `date`
> test

cat输出的就是原生内容了。

输出重定向

  • > 文件 将标准输出重定向到一个磁盘文件,如果文件已存在,则覆盖。

  • >> 文件 将标准输出重定向到一个磁盘文件,如果文件已存在,则追加到文件尾部。

  • 2 > 文件 将标准输出重定向到一个磁盘文件。

  • 文件描述符 > &文件描述符 指定文件描述符重定向

eg: cmd > log 2 > &1将标准输出和标准错误输出都重定向到log文件。

cmd 1 > log 2 > &1 同上。

管道

  • cmd1 > cmd2 将cmd1的标准输出作为cmd2的输入。

  • cmd1 2 > &1 | cmd2 将cmd1的标准输出和标准错误输出作为cmd2的输入。

常用命令

cat命令

用于列出文本文件的内容。 当cat命令接收的文件个数为0时,从标准输入获取内容,当文件数大于1时,按顺序打印所有文件内容。

od命令

八进制打印文件内容。

  • -x选项 十六进制打印

  • -c选项 课打印字符,打印出字符,不可打印字符,打印出ASCII码。

head命令

  • head -n file 打印file中的前n行

tail命令

  • tail -n file 打印出file中最后n行

  • taile -nf file 打印file中最后n行,打印后并不退出,当file中有追加时,打印出追加内容。

wc命令

字计数

  • wc filelist 统计filelist中的字。 输出第一列为行数,第二行为单词数,第三行为字符数,第四行为文件名。
常用选项
  • -l 只统计行数

  • -c 统计byte数

  • -w 只统计单词数

  • -m 统计字符数

sort命令

对文件内容排序。

常用选项
  • b 忽略行首空格

  • d 字典序

  • g 按数字大小排序

  • f 需略大小写

  • i 忽略不可打印字符

  • -r reverse,逆序

  • -R 随机打乱,但是相同大小的行会在一起

  • -t 指定分隔符

  • -k 指定按第k列排序

  • -o 指定输出文件

tee命令

三通,将从stdin得到的数据抄送到标准输出strout显示,同时存入磁盘文件。eg: cmd | tee cmd.log

grep命令

正则表达式中的特殊字符

和shell中的通配符不同

符号 含义
. 匹配任意一个字符
* 正则表达式后跟星号,表示匹配此单词符正则表达式的0次或任意次出现
[ 匹配左方括号和右方括号之间集合中中的任意一个字符,可用减号(-)连接2个字符定义一个区间;**^**放在集合开始表示补集
\ 取消特殊字符的含义
^ 在**[]中的开始表示补集,在正则表达式的开始,标识以^**后的开始
$ 放在正则表达式末尾,表示以**$**前的结尾
  • grep patten filelist 当文件数小于1时,从标准输入读取数据,当文件数大于1时,查找到指定字符串时,整个行,联通该行处的文件名一起显示。

egrep命令

扩展正则表达式,可以使用'()',?标识0次或1次出现,+表示一次或多次出现,表达式之间可以用**'|'**连接。

fgrep命令

快速字符串搜索,而不是按模式匹配。

常用选项

grep/egrep/fgrep 都可使用下列参数:

  • -n 显示行号

  • -i 忽略大小写

  • -v 显示所有不包含模式串的行

awk脚本

awk逐行扫描文件,并进行处理。扫描行满足某个条件(condition)时,就执行相应的代码块。若代码块未指定条件,则所有的行都匹配。

语法

awk程序的基本格式:

condition { action }
condition { action }
awk中常用的内置变量
变量名 说明
FILENAME 当前输入文件的名字
$0 当前记录(作为单个变量)
$1 ... Sn 当前记录的第n个字段,字段间由FS分隔
FS (Field Separator)输入字段分隔符 默认是K空白
NF 当前记录中的字段个数,就是有多少列
NR 已经读出的记录数,就是行号,从1开始
RS (Record Separator)入的记录分隔符默认为换行符
conditon

描述条件的方式有以下几种:

  • 如果不指定任何条件,那么对文本文件的所有行进行处理
  • 可以使用与C语言类似的关系运算符
  • 正则表达式匹配,描述方法:/pattern/
  • 特殊的条件:BEGINENDBEGIN后的动作,在awk开始处理所有文本之前执行;END之后的动作,在awk处理完所有文本之后执行。
action

在动作部分,awk允许用户使用用户变量、条件和循环、函数、数组(map)。awk还提供了大量的内置函数,这里不再展开了,可以百度。

awk命令

用法:和其他文本处理命令一样,awk支持处理0个到多个文件。

  • awk program filelist
  • awk -f program-file filelist

常用选项:

  • -f/--file 指定程序文件
  • -F/--field-separator FS(field-separator),支持正则表达式

eg: 下来写个例子,把刚才的知识点用一遍:

题目描述
统计一篇文章中单词出现的频率、每个字母出现的频率(不区分大小写)和空行数。
单词和单词间用逗号、句号、问号、感叹号、双引号、连字符、冒号、括号分隔。假设单词中不会出现其他符号。

这个任务用awk,可能不是最适合的,在这里只作为练习。

# usage: awk -f word_count.awk file

BEGIN {
	printf("=============== %s word count test ===============\n", FILENAME);
	# 指定分隔符
	FS = "[,.?!\"-:() ]+";
}

# 统计逻辑
function count(word) {
	# 如果一行以分隔符开始或结尾,则会在一行开始之前或结束后多一个空字符串
	if(word == "") return;
	words[word]++;
	words_cnt++;
	split(word, chars, "")
	for (j = 1; j <= length(word); j++) {
		if(chars[j] == "'") continue;
		letters[chars[j]]++;
		letters_cnt++;
	}
}

# 获取单词或字母的出现频率
function get_frequency(s, is_word) {
	if(is_word == 1) {
		return words[s]*1.0/words_cnt;
	} else {
		return letters[s]*1.0/letters_cnt;
	}
}

# 统计空行数
NF <= 0 {
	blank_lines++;
}

NF > 0 {
	for (i = 1; i <= NF; i++) {
		word = tolower($i);
		count(word);
	}
}

END {
	printf("All Words:      %d\n", words_cnt);
	printf("All Letters:    %d\n", letters_cnt);
	printf("All Blank Line: %d\n", blank_lines);
	print "-------------------------------------------"
	for (letter in letters) {
		printf("%s:\t%.2f\n", letter, get_frequency(letter, 0));
	}
	print "-------------------------------------------"
	for (word in words) {
		printf("%s:\t%.2f\n", word, get_frequency(word, 1));
	}
	printf("=============== %s test end ===============\n", FILENAME);
}

sed命令

流编辑器,用于处理文本。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

基本用法
  • sed [options] 'command' file(s)
  • sed [options] -f scriptfile file(s)

command部分包括:[地址1,地址2] [命令] [参数(标记)]

常用选项

-f 以选项中指定的script文件来处理输入的文本文件

-n 仅显示script处理后的结果

常用sed命令
  • s 替换指定字符

  • d 删除,删除选择的行

  • c 把选定的行改为新的文本

  • i 在当前行上面插入文本

替换标记
  • g 表示行内全面替换

  • p 表示打印行

数字定址和正则定址
  • 关于定址的概念 默认情况下sed会对每一行内容进行匹配、处理、输出,某些情况不需要对处理的文本全部编辑,只需要其中的一部分,比如1-10行,偶数行,或者是包含"hello"字符串的行,这种情况下就需要我们去定位特定的行来处理,而不是全部内容,这里把这个定位指定的行叫做"定址"。
实例

sed '2s/a/b/g' 2为数字地址,s表示替换,/为定界符,g表示如何一行中有多个符合的匹配,则全部替换。/a/b/表示把a替换为b。

sed '2,4s/a/b/g'把2到4行中所有的a替换为b

sed '2,+4s/a/b/g'把2到6(2+4)行中的所有a替换为b

sed '4,~3s/a/b/g'把4到6(大于4的第一个能被3整除的数)行中所有的a替换为b

sed '2~3s/a/b/g'从第2行开始每个3行把a替换为b

sed '$s/a/b/g'把最后一行($)中所有的a替换为b

sed '1,/^CN/d'd表示删除,匹配从第一行到CN开头的行,把匹配的行删除

sed '10,/^TX/s/CHN/CHINA/g' 匹配从第10行开始到第一个以TX开始的行(包括),将所有的CHN替换为CHINA

参考资料

http://man.linuxde.net/sed http://man.linuxde.net/sed

tr命令

tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。

基本用法
  • tr char_set1 char_set2 用第二个字符集中的字符替换第一个字符集中的字符
  • tr -d char_set1 删除第一个字符集中的字符
  • tr -s char_set1 把连续重复的字符(字符集中的字符)以单独一个字符表示
常用选项
  • -d 删除所有属于第一字符集的字符

  • -s 把连续重复的字符以单独一个字符表示

特殊字符集
字符集 含义
[:alnum:] 字母和数字
[:alpha:] 字母
[:cntrl:] 控制(非打印)字符
[:digit:] 数字
[:graph:] 图形字符
[:lower:] 小写字母
[:print:] 可打印字符
[:punct:] 标点符号
[:space:] 空白字符
[:upper:] 大写字母
[:xdigit:] 十六进制字符
实例

echo "HELLO WORLD" | tr 'A-Z' 'a-z' 把所有的大写字母换成小写字母

参考资料

http://man.linuxde.net/tr

网络相关

ifconfig命令

用于配置和显示Linux内核中网络接口的网络参数

实例

ifconfig 查看网络参数

  • 启动关闭指定网卡
ifconfig eth0 up
ifconfig eth0 down
  • 为网卡配置和删除IPv6地址
ifconfig eth0 add ipv6-add    #为网卡eth0配置IPv6地址
ifconfig eth0 del ipv6-add    #为网卡eth0删除IPv6地址
  • 用ifconfig修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
  • 配置IP地址
ifconfig eth0 ipv4
  • 启用和关闭arp协议
ifconfig eth0 arp    #开启网卡eth0 的arp协议
ifconfig eth0 -arp   #关闭网卡eth0 的arp协议
  • 设置最大传输单元
ifconfig eth0 mtu 1500

ping命令

用来测试主机之间网络的连通性。使用ICMP协议。

基本用法
  • ping host
实例
ping www.baidu.com

curl命令

curl 是一个利用URL规则在命令行下工作的文件传输工具。支持文件的上传和下载。同时支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

太多了,先不写,参考http://man.linuxde.net/curl

wget命令

wget 用来从指定的URL下载文件。

基本使用

wge URL

常用选项
  • -b 进行后台的方式运行wget

  • -i 从指定文件获取要下载的URL地址(文件中存多个url)

实例
  • 使用wget下载单个文件
wget https://www.baidu.com/
  • 下载并以不同的文件名保存
wget --limit-rate=300k https://www.baidu.com
  • 增加重试次数
weg --tries=40 URL
  • 下载多个文件
wget -i filelist.txt

tracepath,tracepath6命令

tracepath、tracepath6命令用来追踪并显示报文到达目的主机所经过的路由信息。

基本用法
  • tracepath host
常用选项
  • -n 不打印主机名,只打印ip。
  • -l 设置初始包长度。

traceroute,traceroute6命令

用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。

基本用法
  • traceroute host

mtr命令

结合了pingtraceroute

基本用法
  • mtr host

host命令

通过主机名查询ip或者根据ip查询主机名。

基本用法
  • host host

netstat命令

产看网络状态

基本用法
  • netstat option
常用选项
  • -a/--all 显示所有连线中的Socket

  • -l/--listening 显示监控中的服务器的Socket

  • -n 直接使用ip地址,而不通过域名服务器

  • -r/--router 显示路由表

  • -s 显示网络工作信息统计表

  • -t/--tcp 显示TCP传输协议的连线状况

  • -u/--udp 显示UDP传输协议的连线状况

  • -p 显示正在使用Socket的程序识别码和程序名称

实例
  • 列出所有端口 (包括监听和未监听的)
netstat -a     #列出所有端口
netstat -at    #列出所有tcp端口
netstat -au    #列出所有udp端口
  • 列出所有处于监听状态的 Sockets
netstat -l        #只显示监听端口
netstat -lt       #只列出所有监听 tcp 端口
netstat -lu       #只列出所有监听 udp 端口
  • 显示每个协议的统计信息
netstat -s   显示所有端口的统计信息
netstat -st   显示TCP端口的统计信息
netstat -su   显示UDP端口的统计信息
  • 在netstat输出中显示 PID 和进程名称
netstat -pt

nc命令

nc命令是netcat命令的简称,都是用来设置路由器。

常用选项
  • -l 使用监听模式,监控传入的资料

  • -p<通信端口> 设置本地主机使用的通信端口

  • -u 用UDP传输协议

  • -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存

  • -w<超时秒数> 设置等待连线的时间;

实例
  • 远程拷贝文件 从server1拷贝文件到server2上。需要先在server2上,用nc激活监听。 server2上运行:
nc -lp 1234 > install.log

server1上运行:

nc -w 1 192.168.228.222 1234 < install.log

进程相关

ps命令

用于查看当前系统的进程状态

常用选项
  • -a 显示所有终端机下执行的程序

  • -u 列出属于该用户的程序的状况

  • -x 显示所有程序,不以终端机来区分

  • -p 指定程序识别码,并列出该程序的状况

  • -l 采用详细的格式来显示程序状况。

进程状态说明
符号 说明
D 不可中断
R 正在运行
S 休眠
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
+ 位于后台的进程组
l 多线程
一些列的说明
列名 说明
USER 用户名
UID 用户号
PID 进程号
PPID 父进程号
VSZ 虚拟内存大小(如果一个程序完全驻留在内存的话需要占用多少内存空间)
RSS 当前实际占用了多少内存
STAT 进程状态
%CPU CUP使用率
%MEM 进程使用的物理内存百分比
TTY 登录者的终端位置,若为远程登录使用动态终端接口(pts/n)
TIME 进程实际花费CPU运行的时间
CMD 造成此程序的触发进程的命令为何

kill命令

用来删除执行中的程序或工作

基本使用
  • kill pid
常用选项
  • -l <信号编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称

  • -n n为数字表示信号编号,给进程发送编号为n的信号

实例
  • 列出信号
kill -l #列出所有信号
kill -l 9 #列出编号为9的信号的名字 
  • 杀死进程(实际是给进程发送信号)
kill 111 222 333 # 给所有的进程发送默认信号
kill -9 1234 # 强制杀死pid为12345的进程

###资源监控

lsof命令

用于查看进程打开的文件

基本用法
  • lsof option
常用选项
  • -i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )

  • -p<进程号> 列出指定进程号所打开的文件

实例

lsof -i:80查看和80端口通信的进程

free命令

显示当前系统未使用的和已使用的内存数目

基本使用

  • free option
常用选项
  • -b 以Byte为单位显示内存使用情况
  • -k 以KB为单位显示内存使用情况
  • -m 以MB为单位显示内存使用情况
  • -s<间隔秒数> 持续观察内存使用状况

top命令

可以实时动态地查看系统的整体运行情况

基本使用

  • top option
常用选项
  • -d 屏幕刷新间隔时间

  • -u<用户名> 指定用户名

  • -p<进程号> 指定进程

  • -n<次数> 循环显示的次数

交互命令
  • k:终止一个进程
  • q:退出程序
  • M:根据驻留内存大小进行排序
  • P:根据CPU使用百分比大小进行排序
  • T:根据时间/累计时间进行排序
  • w:将当前设置写入~/.toprc文件中