du -sh * 显示某些文件的大小
df -h 磁盘空间是否还有剩余?-a 全部文件系统列表 -h 方便阅读方式显示 1K=1000,而不是1K=1024
拷贝源资源至目标目录下
scp -r root@192.168.62.10:/root/ /home/administrator/Desktop/new/
scp root@192.168.62.10:/root/1.txt /home/administrator/Desktop/new/
ulimit -n 查看文件句柄数
ulimit -n 2048 进行修改
locale 查看系统的默认编码
tar -zxvf file.tar.gz file
tar -zcvf file.tar.gz
zip -r filename.zip file1 filesdir -r 选项递归目录
unzip filename.zip
gzip -c abc.tar > abc.tar.gz
gunzip abc.tar.gz
grep的基本形式 grep [option] [pattern] [files]
默认情况下,’grep’只搜索当前目录。这里有两种解决的办法:明确要求搜索子目录:grep -r或忽略子目录:grep -d skip
-i :忽略大小写
-c :打印匹配的行数
-l :只列出匹配的文件名
-v :查找不包含匹配项的行
-n:打印包含匹配项的行和行标
-w:只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)
find的基本形式 find [path] -name [pattern]
find . -amin -10 #查找在系统中最后10分钟访问的文件
find . -atime -2 #查找在系统中最后48小时访问的文件
find . -empty #查找在系统中为空的文件或者文件夹
find . -group cat # 查找在系统中属于groupcat 的文件(试了,命令不对。)
find . -mmin -5 # 查找在系统中最后5 分钟里修改过的文件
find . -mtime -1 #查找在系统中最后24 小时里修改过的文件
find . -nouser #查找在系统中属于作废用户的文件(不明白是什么意思)
find . -amin 10 #查找在系统中最后10分钟访问的文件
find . -user root #查找在系统中属于root这个用户的文件
find /tmp -size +10000000c -and -mtime +2 #查找/tmp目录中大于10000000字节并且在48小时内修改的某个文件
find /tmp -user tom -or -user george #查找/tmp目录中属于tom或者george这两个用户的文件
find /tmp ! -usr fred #查找/tmp目录中不属于fred的文件
awk基本形式 awk '/pattern/{action}' {filenames} pattern是可选的
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"。
内置变量(含$0-n)
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
|
例子:
awk -F ':' '/^root/{print $1}' /etc/passwd
awk -F ':' '{print $1"\t"$7}' /etc/passwd
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
awk -F ':' '{printf("filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd
awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd
w,last 有谁在线,有哪些用户访问过
history 服务器上执行过的命令(export HISTTIMEFORMAT='%F %T ')(添加EXTENDED_HISTORY=ON至/etc/environment)
pstree -a,ps aux 查看现有进程的情况
netstat -ntlp,netstat -nulp,netstat -nxlp 找到所有正在运行的服务,各个监听端口。在netstat显示的服务列表中的PID 和 ps aux 进程列表中的是一样的。
free -m,uptime,top,htop CPU 和内存的情况
lspci,dmidecode,ethtool 找到RAID 卡 (是否带BBU备用电池)、 CPU、空余的内存插槽。网卡是否设置? 是否正运行在半双工状态? 速度是10MBps? 有没有 TX/RX 报错
iostat -kx 2 检查磁盘使用量
vmstat 2 10 是否开启了swap交换模式
mpstat 2 10 CPU被谁占用:系统进程? 用户进程? 虚拟机?
dstat --top-io --top-bio 谁在进,行 IO是不是MySQL吃掉了所有的系统资源? 还是你的PHP进程?
mount 挂载了多少文件系统
cat /etc/fstab 有没有某个服务专用的文件系统? (比如MySQL?)
vgs 文件系统的挂载选项是什么: noatime? default?
pvs 有没有文件系统被重新挂载为只读模式了?
lsof +D / /* beware not to kill your box */ 如果磁盘空间有问题,你是否还有空间来扩展一个分区?
dmesg,less /var/log/messages,less /var/log/secure,less /var/log/auth 系统日志和内核消息
ls /etc/cron* + cat,for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done 是否有某个定时任务运行过于频繁,是否有些用户提交了隐藏的定时任务
top TOP 命令拿到最耗 CPU 的那个进程
ps p 10495 -L -o pcpu,pid,tid,time,tname,cmd > ~/10495ps.txt 找到这个进程中占用 CPU 较高的那些线程