《Linux运维步步为营》第一章 Linux基础 1.2 Linux命令(1)
基础命令如cd、ls和rm就不赘述了,此处说几个很有用的命令。
find
查找文件。一般格式为:
find 指定目录 指定条件 指定操作
意指在指定目录下按照指定条件搜索文件,搜到后进行指定操作。find支持的条件表达式和命令可以通过find —help查看。介绍一下常见的指令find ./ -name “*.log”
在当前目录下查找所有log扩展名的文件或文件夹find ./ -type f -name “*.log”
在当前目录下查找所有log扩展名的文件find ./ -type f -name “*.log” -exec file '{}' \;
对当前目录下找到的log文件执行file程序,后面的转义分号是必须的
find可以根据时间查找文件,有三个相关参数
atime n : access_time,读取或执行时间
crime n : change_time,文件状态改变时间
mtime n : modify_time,文件内容修改时间
这三个参数的n指的是24*n,有两种表达方式n、+nfind ./ -mtime n
表示最后一次修改发生在距当前时间 n*24小时内find ./ -mtime +n
表示最后一次修改发生在n天前,即距离当前时间n*24小时以上
grep
强大的文本搜索工具,支持正则表达式。
有几个常用的参数
-c 只输出匹配的行数
-I 忽略大小写
-h 查询多个文件不显示文件名
-l 查询多个文件只输出包含条件的文件名
-n 显示匹配行及行号
-s 不显示不存在或无匹配的错误信息
-v 显示不包含指定条件的所有行
-r 递归搜索
-E 使用正则表达式
-F 不使用正则表达式,在搜索大文件时比较有效率
正则的写法就不赘述了,内容很多,并且需要积累才能灵活运用。
sed和awk
两者都是强大的文本处理工具。sed主要以行为单位进行处理,可以对数据进行增删改等操作。awk将文件逐行读入,默认以空格将每行切片,然后对切开部分进行分析处理,其对数据进行处理分析的能力极其强大。
这两个文本处理工具的操作相当复杂,读者可以自行谷歌或百度搜索阅读。
top
查看系统当前状态,包括负载,部分进程,CPU和内存使用等情况。
top前五行是系统整体的统计信息。第一行为任务队列信息,包含启动时间,当前用户,以及系统负载。第二三行为进程和CPU信息,在键盘上敲1可以将CPU按内核分别显示。第四五行尾内存信息。往下都是进程信息。具体解释一下负载、CPU、内存和进程。
负载load average后有三个数字,分别表示1分钟、5分钟、15分钟内的任务队列平均长度,即负载。平常我们说负载高,说的就是此处显示的数值偏高。一般来说,1分钟的负载应该在CPU核数左右为可承受范围,超过这个范围就要查看一下系统了。
CPU的表示中有一些缩写,此处解释一下。us,用户占用CPU百分比。sy,内核占用CPU百分比。ni用户进程空间内改变过优先级的进程占用CPU百分比。id,空间百分比。wa,等待输入输出的CPU百分比。
内存区的信息有时候会让人迷糊。total表示总的物理内存,used表示使用的物理内存,free表示空闲内存,buffers表示内核缓存的内存,swap是交换分区大小,cached表示缓存的交换区总量。这里内存有有一些计算公式
total=used+free
实际使用=used-buffers-cache
实际空闲=free+buffers+cache
因为buffers和cache是随时变动的,可以挪用。
(未完待续)