shell 常用命令
#
基础操作#
ssh登录服务器ssh user@ip
#
linux 免密登录1.将登录服务器的公钥copy 到目标服务器 ~/.ssh/authorized_keys (保证.ssh 700 , authorized_keys 600,如果还是登录失败请 restorecon .ssh .ssh/authorized_keys )2.ssh work@192.168.x.x -i 私钥地址 (如果登录不上可以加-v进行调试) 说明:需要restorecon的原因可能是.ssh 或者 authorized_keys是从另的地方copy过来的,导致SElinux上下文权限一并copy过来,所以需要restorecon重置上下文3./var/log/secure 可以在服务端查询ssh登录日志信息进行调试
#
topshift+p
可以按处理器占用率排序 shift+m
按内存
top -Hp pid 查看pid进程相关信息:包括:子线程信息,cpu占用
#
显示用户对资源的访问情况ulimit -a
ulimit / man.linuxde.net
ulimit -a 查看当前用户线程vi /etc/security/limits.d/90-nproc.conf 修改用户能开启线程最大数vi /etc/security/limits.conf 修改打开最大文件数
printf
#
格式化函数 printf '%X\n' 1231 转16进制
#
传文件 scp sourceAddr root@ip:/home/service
#
tar 压缩、解压缩压缩tar -czf libs.tar.zip libs 解压 tar -zxvf libs.tar.zip
#
网络相关#
网络诊断工具#
tcpdump抓包工具tcpdump tcp -i ens160 and dst port 80 or src net 127.0.0.1 -w ./target.cap
netstat -anltp | grep 1234
#
检查端口占用或者tcp连接情况 安装netstatyum install net-tools分组查询某个tcp服务连接情况netstat -n | grep tcp | grep 9080 | awk '{print $6}' |sort | uniq -c查询本地tcp服务连接情况netstat -n | grep tcp | awk '{print $4 " " $6}' | sort | uniq -c | sort -rn | more 查询应用的连接数netstat -np | grep port | grep ip | awk '{print $7}' | awk -F '/' '{print $1}' | sort | uniq -c
sysstat
工具包相关应用#
1. iostat iostat -d -k 1 10 #查看TPS和吞吐量信息iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)iostat -c 1 10 #查看cpu状态
2. sarsar -u 1 3 #查看cpu使用情况sar -q #查看平均负载sar -r #查看内存使用情况sar -d #磁盘使用详情统计
#
网络链路工具#
traceroutetraceroute www.baidu.com
#
MTR链路测试工具 详细参考文档
安装mtryum install -y mtrmtr baidu.com
#
客户端,服务端socket工具nc/ncat(netcat)
创建服务监听或连接服务指令#
nc -l -p 9090 创建一下9090监听服务nc localhost 9090(server port) [-p 8090(client port)] 连接服务
ss
用来显示处于活动状态的套接字信息#
ss -s 显示socket相关统计信息ss -pl 查看相关进程与端口信息
#
域名查询/诊断工具host -a baidu.com host -a baidu.com 10.0.2.3 指定nameserver解析
nslookup baidu.com 判断域名解析服务器nslookup baidu.com 10.0.2.3 判断域名解析服务器dig工具查询/跟踪dns记录yum install -y bind-utilsdig baidu.comdig +trace baidu.comdig -x 127.0.0.1 根据IP查找域名(反解)
#
开发&测试time
统计程序耗时#
time ls#执行程序总时间(wall clock time 包括cpu执行其它程序时间)real 0m0.002s#ls 程序实际执行时间=user(用户空间) + sys(内核空间)user 0m0.000ssys 0m0.001s
#
ab 圧测安装ab
yum install httpd-tools
使用ab
ab -n 100 -c 10 baidu.com/-c 并发数 -n 请求总数
#
日志相关cat /var/log/messages 包括整体系统信息cat /var/log/dmesg 包含内核缓冲信息cat /var/log/boot.log 系统启动日志cat /var/log/yum.log — 包含使用yum安装的软件包信息cat /var/log/cron crontab 调度时间cat /var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里cat /var/log/faillog – 包含用户登录失败信息。错误登录命令也会记录在本文件中
/var/log/lastlog 用户最后登录日志 可以通过 lastlog 命令查询:lastlog 或者 lastlog -u root /var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
#
进程相关命令#
进程切换Ctrl + z 将进程放到后台进行jobs -l 查看后台进程fg 打开进程
#
pstree 当前某程序的线程或进程数安装 yum -y install psmiscpstree -p | wc -l 总线程数
ps
#
查看进程相关信息 ps -p pid -o etime 查看进程运行总时长ps -ef | grep xxx 搜索某进程ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -nrk5 查询内存等
#
lsof(list opened files) 列举系统中已经被打开的文件lsof -i tcp:8080 查看端口占用lsof | grep deleted 查看已删除,还是被占用的文件:有时候出现rm后的文件,空间还是没有释放,原因可能是这个文件还被其它进程占用,可以通过此命令查看文件被打开情况,情况允许的情况下,重启相关应用,以确保释放空间lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr| 查看进程打开的文件句柄数
#
strace 追踪进程的系统调用安装stracesudo yum install -y stracestrace -f -t -o a.log ls
#
查询命令#
基础查询命令-S按文件大小排序 -h,显示文件大小 k,M,Gls -lthS系统内在使用量free -h按名字查看sudo find / -name nginx.config按大小查看文件 find / -type f -size +2G统计关键词数 `cat filename | grep hello | wc -l`
#
man# 支持查看内核方法yum install -y man-pages 1是普通的命令2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个 函数,需要加什么头文件)3是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件5是指文件的格 式,比如passwd, 就会说明这个文件中各个字段的含义6是给游戏留的,由各个游戏自己定义7是附件还有一些变量,比如向 environ这种全局变量在这里就有说明8是系统管理用的命令,这些命令只能由root使用,如ifconfig如:man 2 socket#查看系统调用man syscalls
#
查看操作系统版本cat /etc/redhat-releasecat /etc/issueuname -acat /proc/version
ip add
与 ifconfig
#
查看ip地址 使用ifconfig需要安装 net-tools使用ip需要安装iprout2ip相关使用ip route show 列出路由条目ip route get 192.xx.xx.xx 获取某ip路由包ip addr show eth0 查看某网卡ip地址
#
du查看目录大小,df查看磁盘使用情况。du -sh du -h --max-depth=1df -h
#
查询cpu信息查询cpu核心数 cat /proc/cpuinfo | grep "processor" | wc -l查询cpu个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
#
服务配置命令#
sysctl 用于运行时配置内核参数/etc/sysctl.conf 设置参数文件-a 显示所有的系统参数-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
#
selinux 相关操作1、/usr/sbin/sestatus -v 如果SELinux status参数为enabled即为开启状态2、临时关闭(不用重启机器): setenforce 0 设置SELinux 成为permissive模式 setenforce 1 设置SELinux 成为enforcing模式3、修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可