1:统计文件中字符串次
单个文件:
grep 字符串 文件名 | wc -l
grep输出,wc -l按行统计,每行重复只统计一个
统计文件夹下特定类型文件个数
find /mount/taskdata -name *.log |wc -l #find查找特定类型并统计
或者
ls /mount/taskdata/*.log |wc -l #ls列出特定类型并统计
2:管道符
- "|": 管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
- grep:-v 不显示匹配上的内容;-n 显示匹配上的内容
- grep -v down,显示不包含down的内容。
- grep -n down,显示包含down的内容。
- du:(disk use)显示每个文件和目录的磁盘使用空间。
- df:(disk free)显示磁盘分区上可以使用的磁盘空间。
3: 显示所有行的行号
:set number (:set nu)
:set nonumber (:set nonu)
4: 查看进程,线程
1:根据关键字查看某个运行的进程:ps -ef | grep tomcat || pstree -aup | grep php
2:查看当前所有运行的进程:ps aux | less,按q退出当前模式
不显示本身进程:ps -aux | grep mmp-front
1):
ps aux
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程。
**上图中各字段解释:**
USER:启动该进程的用户账号名称
PID:该进程的ID号,在当前系统中是唯一的
%CPU:CPU占用的百分比
%MEM:内存占用的百分比
VSZ:占用虚拟内存(swap空间)的大小
RSS:占用常驻内存(物理内存)的大小
TTY:该进程在哪个终端上运行。“?”表未知或不需要终端
STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程)。对处于僵死状态的进程应予以手动终止。
START:启动该进程的时间
TIME:该进程占用CPU时间
COMMAND:启动该进程的命令的名称
**总结:ps aux 是以简单列表的形式显示出进程信息。**
2):
ps -elf
-e:显示系统内的所有进程信息。
-l:使用长(long)格式显示进程信息。
-f:使用完整的(full)格式显示进程信息。
3)
top
以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的任务管理器。
上图解释:
Tasks(系统任务)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数。
CPU信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/O等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。了解空闲的CPU百分比,主要看%id部分。
Mem(内存)信息:total,总内存空间;used,已用内存;free,空闲内存;buffers,缓存区域。
Swap(交换空间)信息:total,总交换空间;used,已用交换空间;free,空闲交换空间;cached,缓存空间。
4):
pstree -aup
可以带上|grep 查询特定进程。例如 pstree -aup | grep php
3:查看定时任务列表:top
4:查看某个进程下云运行的所有线程:pstree -p 进程号
5:查看当前磁盘空间:df -hl
6:查找某个文件:find -name 文件名
7:查看端口号(查看所有的进程和端口使用情况) :netstat –apn
8:ps -aux | grep pid 就可以明确知道8080端口是被哪个程序占用了
5:复制文件
1)将本地文件拷贝到远程
scp (-r)文件名 用户名@计算机IP或者计算机名称:远程路径
2)从远程将文件拷回本地
scp (-r)用户名@计算机IP或者计算机名称:文件名 本地路径
6: 如何查找出现频率最高的100个ip地址
文档中:
- cat test.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 1
参数含义:
awk '{ print $2}':取数据的低2域(第2列)
sort:对IP部分进行排序。
uniq -c:打印每一重复行出现的次数,并去掉重复行 ?????????????
sort -n -r:按照重复行出现的次序倒序排列
head -n 5:取排在前5位的IP,本例中是找"最多",因此5可以写为1
WEB服务器中:
- 命令:netstat -ntu | tail -n +3|awk '{ print $5}' | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 5
参数解析:
tail -n +3 :去掉上面用红色标明的两行。?????????????tail 尾部??
cut -d : -f 1 :取蓝色部分前面的IP部分。
log文件中:
- cat access_log |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 | less
5:常用命令
ls # 列出文件或目录
pwd # 展示当前所在的目录
mkdir # 创建目录
mkdir -p # 创建连续的目录
cd # 切换目录
vi # 点i开始编辑,输入:
# :w - 保存文件,不退出vim
# :w file - 将修改另外保存到file中,不退出vim
# :w! - 强制保存,不退出vim
# :wq - 保存文件,退出vim
# :wq! - 强制保存文件,退出vim
# :q - 不保存文件,退出vim
# :q! - 不保存文件,强制退出vim
# :e! - 放弃所有修改,从上次保存文件开始再编辑
cat # 显示文件内容
cp # 复制文件或目录
mv # 移动文件或目录,把b下的c移动到b那一级
rm # 删除文件或目录
echo # 显示变量内容,类似于python里面的print
find 目录 -name 文件名 # 查找文件
ps # 查看进程状态
kill # 杀死进程
ping # 检测请求是否联通,默认一直ping下去,-c 次数
netstat # 查看网络状态(需安装net-tools)
sed # 文本编辑,支持正则表达式
sleep # 等待指令,如等待3秒,即3秒内不能输入
tar # 打包指令
# tar -zcvf renwolesshel.tar.gz /renwolesshel 打包成tar.gz格式压缩包
# tar zxvf renwolesshel.tar.gz 解压tar.gz格式压缩包
# zip -q -r renwolesshel.zip renwolesshel/ 压缩成zip格式
# unzip renwolesshel.zip 解压zip格式的压缩包
# tar -jcvf renwolesshel.tar.bz2 /renwolesshel 打包成tar.bz2格式压缩包
# tar jxvf renwolesshel.tar.bz2 解压tar.bz2格式的压缩包
awk # 文本分析工具
# awk就是把文件逐行的读入,以指定的分隔符(默认为空格)将每行分成若干个field。
# 然后可以通过编写各种逻辑,对这些field进行处理。
# 前置命令 | awk [命令选项] ‘条件{动作}…’
# awk [命令选项] ‘条件{动作} …’ 文件…
# 命令选项:-F:指定分隔符,默认空格或Tab符。可指定多个分格符-F"[,;?]":指定分格符为:,或;或?
# -v:调用外部Shell变量
head # 查看文件头部,输出前五行 head -n 5 12
tail # 查看文件尾部,输出后五行 tail -n 5 12
top # 性能分析工具