文章目录
1.pwd、cd、ls、touch、mkdir
-
pwd:显示当前工作目录的名称
pwd -p #返回链接的真实路径 -
cd:切换到当前工作目录
cd xxx #切换到指定目录下
cd … 或 cd - #切换到上级目录
cd #切换至当前用户的家目录 -
touch:创建或修改文件时间
touch hello.txt #若不存在则创建,存在则更新文件的所有时间为当前时间 -
mkdir:创建目录
mkdir xxx ##创建目录xxx
mkdir -p xxx1/xxx2 ##创建多级目录
2.cp、mv、rm、cat
- cp:删除文件或目录
选项 | 含义 |
---|---|
cp -r | 复制文件和目录,复制目录用 |
cp -a | 复制时保留源文件的所有属性(权限时间等) |
注:不同主机复制用scp
-
mv:移动文件或目录
mv hello.txt hello.txt1
mv hello.txt /root/ -
rm :删除文件或目录
选项 | 含义 |
---|---|
rm -f | 不提示,强制删除 |
rm -i | 删除前提示是否删除 |
rm -r | 删除目录及目录下的所有内容 |
注:一般使用rm -fr
4. cat:查看文件内容
选项 | 含义 |
---|---|
-b | 显示行号,空白行不显示行号 |
-n | 显示行号,包括空白行 |
3 find命令
find:搜索文件或目录
find [命令选项] [路径] [表达式选项]
选项 | 含义 |
---|---|
-empty | 查找空白文件或目录 |
-group | 按组查找 |
-name | 按文件名查找 |
-iname | 按文件名查找,且忽略大小写 |
-mname | 按修改时间查找 |
-size | 按文件大小查找 |
-trpe | 按文件类型查找,文件(f)、目录(d)、设备(b,c)、链接(l) |
-user | 按用户查找 |
-exec | 对找到的档案执行特定的命令,delect |
1)为 find 命令指定 expression 以筛选出特定的文件
$ find directory -name file2#找出file2的目录
directory/sub-dir1/file2
directory/file2
directory/sub-dir2/file2
2)为 find 命令指定特殊的 action(此处 -delete 表示删除搜索结果)
$ find directory -name file2 -delete
3)检索空文件
find / -type d -empty 检索用户主目录下所有的空目录
4)反义匹配
find /usr -type f ! -name ‘*.txt’##检索 /usr 下所有文件名不以 .txt 为后缀的文件
5)根据文件的所属权检索
find / -type f -user starky ##检索根目录下所有属主为 starky 的文件
类似于 -user选项,-group 选项则可以根据文件或目录的属组进行检索。
6)根据时间日期进行检索
选项 | 含义 |
---|---|
-mtime | 修改时间(Modification time):最后一次文件内容有过更改的时间点 |
-atime | 访问时间(Access time):最后一次文件有被读取过的时间点 |
-ctime | 变更时间(Change time):最后一次文件有被变更过的时间点(如内容被修改,或权限等 metadata 被修改) |
例如:
find /usr -type f -mtime +50 -mtime -100 ##检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime 2 -atime 5 检索 /usr ##下两天前被修改过且 5 分钟前又读取过的文件
4.du
du:计算文件或目录的容量
选项 | 含义 |
---|---|
du -h | 人性化展示容量信息 |
du -a | 查看所有目录及文件的容量信息 |
du -h | 仅显示总容量 |
5.top
- 第一行的内容从左到右依次是:当前时间 系统运行时间 当前登录用户数 系统负载即分别为系统 1分钟、5分钟、15分钟前到现在的平均负载。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。(cpu负载和使用率的区别及深挖)
- 第二、三行为进程和CPU的信息。
- 第四、五行为内存信息。
CPU利用率是指CPU工作时间占总时间的比重
CPU平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。
列名 | 含义 |
---|---|
PID | 进程id |
UID | 进程所有者的用户id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
%MEM | 进程使用的物理内存百分比 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb。 |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
COMMAND | 命令名/命令行 |
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
参数
top | 参数 |
---|---|
d | 指定每两次屏幕信息刷新之间的时间间隔。与s交互命令作用相同。 |
p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
q | 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 |
S | 指定累计模式。 |
s | 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 |
i | 使top不显示任何闲置或者僵死进程。 |
c | 显示整个命令行而不只是显示命令名。 |
6 free -m
共两行六列:
Mem 内存的使用信息
Swap 交换空间的使用信息。Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。
total 系统总的可用物理内存大小
used 已被使用的物理内存大小
free 空闲物理内存(实际可用的)
shared 线程共享物理内存大小;shared: 多个进程共享的内存总额
buff/cache 被 buffer 和 cache 使用的物理内存大小(缓存内存数),程序角度上看未使用、可用的内存数
available 还可以被应用程序使用的物理内存大小(=free+buff+cache)
总物理内存(total)=实际已用内存(used) + 物理空闲内存(free)+ 缓冲(buffers) + 缓存(cached)
free 与 available 的区别(问空闲内存时分的两种情况:free和available):
-
free 是真正尚未被使用的物理内存数量。
-
available 是程序认为可用内存数量,available = free + buffer + cache (注:只是大概的计算方法)
Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会
回收 buffer 和 cache 的内存
来满足应用程序的请求。
缓存(cached)
是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了
,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。
缓冲(buffers)
是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
linux有一个守护进程定 期清空缓冲内容(即写如磁盘),也可以通过sync命令手动清空缓冲。举个例子吧:我这里有一个ext2的U盘,我往里面cp一个3M的MP3,但U盘的 灯没有跳动,过了一会儿(或者手动输入sync)U盘的灯就跳动起来了。卸载设备时会清空缓冲,所以有些时候卸载一个设备时要等上几秒钟。
7 PS命令
ps -aux 如下:
显示进程指定信息:
可以使用参数-o来查看进程指定信息
ps -o 对象 ##显示进程的指定信息
对象及其含义:
对象 | 含义 |
---|---|
comm | 进程名称 |
user | 进程所有人 |
group | 进程所有组 |
%cpu | 进程cpu使用率 |
%mem | 进程内存使用率 |
pid | 进程id |
nice | 进程优先级 |
ps命令对进程排序使用–sort参数实现:
ps aux --sort 参数 ##以参数对所有进程排序
参数及含义:
如:
ps -aux --sort -%mem #以内存使用降序排序
ps -aux --sort +%mem #以内存使用升序排序
ps -aux --sort -%cpu #以cpu使用率降序排序
ps -aux --sort +%cpu #以cpu使用率升序排序
8 awk或者sort做统计
cat test | awk ‘{a[$2]++} END{for(i in a) print i,a[i]}’ | sort -rk 2
cat test | sort | uniq -c |sort -rn #只有一列的文件倒序;r倒排,n数值排序
cat test | awk '{print $2}’| sort| uniq -c |sort -rn #统计第二列
统计非200状态码的ip地址访问次数(第一列为状态码,第二例是ip):
cat test | awk ‘{print $1,$2}’| grep -v 200 | awk ‘{print $2}’| sort | uniq -c | sort -rn
9 df -h
Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
Used:表示用掉的磁盘空间大小;
Available:表示剩余的磁盘空间大小;
Use%:磁盘空间使用率;
Mounted on:文件系统的挂载点,也就是磁盘挂载的目录位置
Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
Used:表示用掉的磁盘空间大小;
Available:表示剩余的磁盘空间大小;
Use%:磁盘空间使用率;
Mounted on:文件系统的挂载点,也就是磁盘挂载的目录位置
10 netstat -antlp
常见参数
-a (all) | 显示所有选项,默认不显示LISTEN相关 |
-n | 拒绝显示别名,能显示数字的全部转化成数字。 |
-t (tcp | )仅显示tcp相关选项 |
-l | 仅列出有在 Listen (监听) 的服務状态 |
-p | 显示建立相关链接的程序名 |
-u (udp) | 仅显示udp相关选项 |
-r | 显示路由信息,路由表 |
-e | 显示扩展信息,例如uid等 |
-s | 按各个协议进行统计 |
-c | 每隔一个固定时间,执行该netstat命令。 |
11查看文件时间戳命令:stat awk.txt
可以stat *查看这个目录所有文件的状态。
参数 | 含义 |
---|---|
stat awk.txt | |
Access | 访问时间 |
Modify | 修改时间 |
Change | 状态改变时间 |
现在是要过滤出Modify的时间戳,并以yyyyMMddHHSS格式保存,则可以利用下面这条命令:
stat awk.txt | grep -i Modify | awk -F. '{print $1}' | awk '{print $2$3}'| awk -F- '{print $1$2$3}' | awk -F: '{print $1$2$3}'
输出结果:20080426014818