一些命令及参数
du -sh:查看某文件大小
sh -x 脚本名称:检测脚本错误
vim +行数:定位到内容的错误行数
dir 目录 查看目录
factor 分解因数
exit 直接结束循环体
break 结束整个循环体(最近一个循环)跳出当前循环
continue 结束当次循环,进入下一次循环
reture(函数里用到)从哪调用函数回哪
nl 读取文件内容并显示行号
cat -n 查看并显示行号
查看cpu相关信息:cat /proc/cpuinfo
at /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l #物理cpu个数
cat /proc/cpuinfo | grep "processor" | wc -l #逻辑cpu个数(所有物理cpu所有核数相加)
查看内存 free
buffers:buffer cache针对磁盘块读写的磁盘缓存大小
cached:cached cache针对文件inode读写的磁盘缓存大小
-buffers/cache:真正被用于程序占用的内存数(used-buffers-cached)
+buffers/cache:可用的内存数(free+buffers+cache)
查看硬盘使用情况
分区信息 fdisk -l 文件系统 df
df -m 以m方式显示 -k kb方式显示 -h 以kb/mb/gb显示 -i 以inode数量显示 -a 显示所有文件系统 -T显示文件系统类型 -H以1024=1000方式显示
查看目录大小 du -s显示总量 -S不包括子目录 -a显示所有 -c总计 -h -m -k
查看硬盘的I/O性能 iostat
iostat -x -k 1 3 #每秒一次共三次
%util:一秒中I/O操作时间的百分比,即一秒内有多少时间I/O队列是非空的,若接近%100表示I/O请求过多,超负荷,磁盘存在瓶颈
await:平均每次设备I/O操作的等待时间,一般应低于5ms,若大于5ms表示磁盘I/O压力大,应升级硬件或调优
查看系统平均负载 uptime w top
主要是load average 1分钟 5分钟 15 分钟的平均进程的数量
top可以查看进程优先级,cpu使用率,内存使用率
top -b -n1 >/top.txt 导入一个文件中再查看 cat /top.txt
VIRT #虚拟内存用量
RES #物理内存用量
SHR #共享内存用量
%MEM #内存用量
系统整体性状态 vmstat
jstack
jstack用于打印出给定的java进程ID或core file或远程调试服务的java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64"
,windows的jstack使用方式只支持一下的这种方式:
jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获取core文件的java stack和native stack的信息,从而可以轻松知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属在正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息,如果现在运行的java程序呈现hung的状态,jstack是非常有用的
格式
jstack [option] pid
jstack [option] executable core
jstack [option] [server-id@]remote-hostname-or-IP
参数说明
option:executable java executable from which the core dump was produced(可能是产生core dump的java可执行程序)
core将被打印信息的core dump文件
remote-hostname-or-IP远程debug服务的主机名或ip
server-id唯一id,假如一台主机上多个远程debug服务
说明:
-F:当‘jstack[-l]pid’没有相应的时候强制打印栈信息
-l:长列表,打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表
-m:打印java和native c/c++框架的所有栈信息
-h | -help:打印帮助信息
pid:需要被打印配置信息的java进程id,可以用jps查询
dmesg
dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里
-c:显示信息后,清除ring buffer中的内容;
-s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小;
-n:设置记录信息的层级
dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息
来自: http://man.linuxde.net/dmesg
查询某命令来自光盘镜像源里的哪个软件包 yum provides */scp
校准系统时间 date 12211604 格式读作 12月21日16点04分
创建用户免交互输入密码方式:echo "密码" | passwd --stdin 用户名 & > /dev/null
针对系统的一些参数查看方法
查看linux系统有几颗物理cpu和每颗cpu的核数
cat /proc/cpuinfo | grep -c "physical id" #查看几颗cpu grep -c "processor" #查看逻辑cpu核数
cat /proc/cpuinfo | grep "physical id " | sort | uniq | wc -l #物理cpu个数
cat /proc/cpuinfo | grep "cpu cores" | uniq #每个cpu核数
查看系统负载
命令:w/uptime #load average 就是系统负载 三数值表示 1min 5min 15min内系统的平均负载(平均任务数)
vmstat显示分别表示什么意思
r #正在跑的任务数
b #被阻塞的任务数
si #从交换分区读入内存
so #从内存写入交换分区
bi #从磁盘读入内存
bo #从内存写入磁盘
查看网卡流量/查看历史网卡流量
安装sysstat 使用sar命令查看
sar -n DEV #查看网卡流量,默认以10min更新一次
sar -n DEV 1 10 #1s显示一次,一共显示10次
sar -n DEV -f /var/log/sa/sa22 #查看指定日期的流量日志
系统进程
ps aux /ps -elf
ps查看系统进程,一列为STAT 当前进程的stat为Ss /Z表示:
S #表示休眠 s #表示主进程 Z #表示僵尸进程
查看端口
netstat -lnp
查看网络连接状态
netstat -an
hostname #查看主机名 hostname 主机名 #修改主机名 永久生效就需要修改配置 /etc/sysconfig/network
设置DNS修改配置文件:/etc/resolv.conf 中设置 或者 /etc/sysconfig/network-scripts/网卡名 里设置
iptables 一条规则拒绝ip 访问本机80端口:
iptables -I INPUT -s ip地址 -p tcp --dport 80 -j REJECT
iptables 规则导出保存一个文件中/恢复:
使用iptables-save重定向到文件中:iptables-save > 1.ipt
使用iptables-restore反重定向回来:iptables-restore < 1.ipt
检查网卡是否连接交换机:mii-tool 网卡名 /mii-tool 网卡名
网卡/硬盘有问题使用命令dmesg
关闭不需要的服务命令ntsysv/chkconfig servicename off
一个脚本运行超过2天,要使其不间断运行且有 信息输出 使用screen工具
抓包只过滤访问http服务的+ip,共1000个包且保存到一个文件中 tcpdump -nn -s0 host ip地址 and port 80 -c 1000 -w 文件名
rsync做同步数据时,可以过滤一些不需要的文件 --exclude= "文件名"
rsync同步时,目标 文件比源文件还新,要忽略 使用-u或者--update
要访问 某个网站没有做网站域名解析 在/etc/hosts 文件中 做映射 格式为:ip 域名 或者使用curl -x
查看系统的历史负载 sar -q -f /var/log/sa/sa日期
指定DNS服务器来解析某个域名 使用dig命令 :dig @DNSip 域名
rsync同步数据,使用ssh方式 指定目标sshd端口 :rsync "--rsh=ssh -p 端口"或者rsync -e "ssh -p 端口"
ls | grep -Ev 'home' | xargs du -sh #统计除家目录外的其他目录文件大小
du -sh* #统计当前目录内的文件大小
df -vh #查看磁盘使用情况
dmesg -H #存放硬件故障信息,“Kernel Ring Buffer ”(内核环状缓冲区)
文件系统:指定调整的文件系统或者其对应的设备文件名
e2label 位置/sbin/e2label 用来设置第二扩展文件系统的卷标
tune2fs 位置/sbin/tune2fs tune2fs命令允许系统管理员调整“ext2/ext3”文件系统中的可该参数
磁盘的uuid位置及查看它们之间的关系
ls -l /dev/disk/by-uuid/
nohup命令 用户退出系统进程继续工作
nohup命令可以将程序以忽略挂起信号的方式运行起来,被运行程序的输出信息将不会显示到终端。
无论是否将nohup命令的输出重定向到终端,输出都将写入到当前目录的nohup.out文件中。如果当前目录的nohup.out文件不可写,则输出重定向到$HOME/nohup.out文件中
strace跟踪进程的系统调用
strace -tt -f -o /tmp/test.txt /usr/local/nginx/sbin/nginx -tt 加上时间信息 -f 跟踪目标进程及目标的进程产生的子进程 -o将跟踪到的信息输出到目标文件中
-e trace=file 只跟踪与文件操作有关的系统调用
-c 为进程所有的系统调用做一个统计分析
-T 将每个系统调用所花费的时间打印出来
ltrace 跟踪进程调用库函数
echo -e 处理特殊字符
echo- n 不换行输出