10:top命令:
TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况
top - 12:38:33(当前时间) up 50 days(系统运行时间), 23:15, 7 users(当前登录用户数), load average(系统负载): 60.58, 61.14, 61.22(任务队列平均长度,三个值应该小于1)
Tasks: 203 total(进程总数), 60 running(正在运行的进程总数), 139 sleeping(睡眠进程数), 4 stopped, 0 zombie(僵尸进程)
Cpu(s) : 27.0%us(用户空间占用cpu百分比), 73.0%sy(内核空间占用cpu百分比), 0.0%ni, 0.0%id(空闲cpu百分比), 0.0%wa(等待输入输出cpu百分比), 0.0%hi, 0.0%si, 0.0%st
Mem(物理内存): 1939780k total, 1375280k used, 564500k free, 109680k buffers(缓存)
Swap(交换区): 4401800k total, 497456k used, 3904344k free, 848712k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4338 oracle 25 0 627m 209m 207m R 0 11.0 297:14.76 oracle
4267 oracle 25 0 626m 144m 143m R 6 7.6 89:16.62 oracle
3458 oracle 25 0 672m 133m 124m R 0 7.1 1283:08 oracle
top -p [pid] -H 可以查看进程号pid对应的所有线程cpu占用情况
top -d 10 u root 查询root用户的进程(u 用户名),10s更新一次(-d 时间s)
11:查询内存的使用情况:free -m
12:查看服务器整体磁盘容量:df -lh
13.清楚内存,,sync(将内存的数据写入硬盘) echo 3 > /proc/sys/vm/drop_caches(清楚多余内存)
14.查看实时日志:tail -f sever.log
15,远程调试“
16,删除多个文件:rm -f *.log
20、查询大于2m的文件:
find / -type(类型) f -size(文件大小) +2M(大写)-name(文件名称) filename -a(逻辑and)/-o(逻辑或) -size 5M -exec ls -lh {} \;
[命令] -exec [命令] {} \;标准格式,将第一个命令处理的结果交给后面的命令处理
千字节+2k(小写)
find 命令:搜索文件
find /root/ -ctime +10 (10天前)
-ctime改变文件属性
-atime文件访问时间
-mtime修改文件内容
-10(10天内)
10(10天)
特20,find与grep组合使用
1,在当前目录下所有文件中查找内容包含 string 的文件:
find ./ -name "*" -exec grep "string" {} \;
注意:在最后不能加 print ,否则会出错.
2,
在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件:
find ./ -name "*" -exec grep -l "string" {} \;
3,在当前目录下 *.c 中查找内容包含 string 的文件并列出字符所在的文件的所在行(不显示文件名 )
find ./ -name "*.c" -exec grep -n "string" {} \;
4,在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件,所在行及所在行的内容:
find ./ -name "*" -exec grep -n "string" ./ {} \;
5,查找文件夹下,查找包含某一个字符串的文件:
find -type f -name "*.c" | xargs grep ""
在export/目录下 查询 jmeter.log 文件中带有jmeter.reporters.Summariser: summary =的字符串,只输出1行
find /export/ -name jmeter.log -a -mtime -1 | xargs grep 'jmeter.reporters.Summariser: summary =' |tail -1 //指定行数
21、ps 命令用于查看当前正在运行的进程。
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里 CMD 是 java 的进程信息
ps -aux | grep java
-aux 显示所有状态
22. kill 命令用于终止进程 例如: kill -9 [PID]; -9 表示强迫进程立即停止。通常用 ps 查看进程 PID ,用 kill 命令终止进程
23、rm -rf 文件夹名,删除文件夹以及下面的文件,
rmdir 目录名,删除空目录
24、重命名文件;mv a b ,将a文件重命名为b;
25、grep用法文件当中搜索符合条件的字符串
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! --color=auto :可以将找到的关键词部分加上颜色的显示喔!
grep --color=auto "搜索字符串" 文件名
grep [选项] -"字符串" 文件名
26、man 帮助命令
man ls 获取ls的功能。
ls --help(获取ls命令的帮助)
hlep cd(获取shell内部命令帮助,whereis找不到的命令都是内部命令)
27、挂载命令
mount [-t文件系统] [-o特殊选项] 设备文件名 挂载点
挂在光盘
建立挂载点:mkdir /mnt/cdrom/
挂在光盘:mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -t iso9660 /dev/sr0 /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
卸载挂载:umount /mnt/cdrom
挂载优盘:查看系统当中已经存在的硬盘:fdisk -l
U盘设备名:/dev/sdb1
挂载命令:mount -t vfat(默认不支持NTFS文件系统(移动硬盘)) /dev/sdb1 /mnt/usb/
28、echo -e "\e[1;31m 贱人 \e[0m" (颜色输出 : \e[1m(开始);31m(颜色) 文本 \e[0m (结束颜色))
29输出重定向
命令>>文件 2>&1(错误和正确的输出追加存到同一文件中)
命令>>文件(错误和正确的输出追加存到同一文件中)
命令 1>文件a 2>文件b(错误和正确的输出追加存到不同文件中)
30多命令顺序执行
;多命令顺序执行。命令之间没有逻辑(不管中间是否报错,,后续命令继)
&& 与 前面的命令正确执行,后面才能执行(按顺序执行)
|| 或 前面的命令错误执行,,后面一正确执行;前面的命令正确执行,,后面的错误不执行(按顺序执行)
| 管道符,命令1的结果作为命令2的执行条件
31、wc
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
32 find 命令
33,更改系统时间命令 date -s "2012-05-18 04:53:00"
34,杀死僵尸进程,lsof |grep delete|awk '{print $2}'|xargs kill -9,,杀完需要重启
35,自动删除日志文件shell脚本
1创建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一个可执行文件auto-del-30-days-ago-log.sh,并分配可运行权限
2编辑shell脚本:
vi auto-del-30-days-ago-log.sh
编辑auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /export/Domains/ -name "*.log" -size +1M -exec rm -rf {} \;
find /export/Domains/ -name "*.out" -size +1M -exec rm -rf {} \;
find /export/Domains/ -name "*.log.*" -size +1M -exec rm -rf {} \;
#清除内存
echo 3 > /proc/sys/vm/drop_cache
sleep 5
for dir in $(ls /export/Domains/)
do
ps -ef |grep ${dir}|grep -v grep|awk '{print $2}'|while read d;do `kill -9 $d`;done
sh /export/Domains/${dir}/server1/bin/stop.sh
sleep 5
sh /export/Domains/${dir}/server1/bin/start.sh
done
ok,保存退出(:wq)。
3计划任务:
#crontab -e
将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行
输入:
10 0 * * * /opt/soft/log/auto-del-log.sh >/dev/null 2>&1
这里的设置是每天凌晨0点10分执行auto-del-7-days-ago-log.sh文件进行数据清理任务了。
完成以上三步,你就再也不每天惦记是否硬盘空间满了,该清理日志文件了
36,将文件夹权限给某个用户 chown -R keesail:keesail ./local
赋予local目录给keesail权限
chmod 760 ./local
赋予local目录读写权限给keesail,别的用户对这个目录没有任何权限。
37.使用命令关闭占用80端口的程序
sudo fuser -k 80/tcp