linux_command - YUHAO-ZX/StudyCollection GitHub Wiki

1.netstat

查看监听的端口

1.netstat -nat |grep LISTEN
2.显示和tcp相关端口占用:netstat -t 
3.显示和udp相关:netstat -u
4.显示某进程的所有网络连接信息:netstat -p PID
5.查找ssh连接出口:netstat -ap | grep ssh
6.找出指定端口的进程:netstat -an | grep ':80'
7.显示网络接口:netstat -i
8.显示详细信息,像是 ifconfig :netstat -ie

iftop

流量查看:iftop  
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

ifstat

监控网卡上传下载流量
系统不一定自带,iftop需要安装

iptraf

流量监控,系统一般自带

查看具体端口流量

grep

1.反向grep:grep -v file_name
2.grep 或:grep 'TIME|LISTEN' -E
3.grep -m 3  fileName  查询3行

wc 统计

1.行数:wc -l
2.字数:wc -w

passwd

修改root密码:sudo passwd

查看系统信息

1.系统版本
cat /proc/version

2.套接字使用情况(可快速查看端口占用数目)
cat /proc/net/sockstat

3.查看系统最大线程数
cat /proc/sys/kernel/threads-max


window上传下载

安装:apt-get install lrzsz
下载:sz
上传:rz -be

awk

awk '过滤条件  [BEGIN{...}][{执行命令} END{...}]'
参考文档:http://www.gnu.org/software/gawk/manual/gawk.html
通过命令文件:awk -f source-file input-file1 input-file2
冲突字符处理:http://www.gnu.org/software/gawk/manual/gawk.html#Escape-Sequences
另外一种特殊字符处理:awk -v sq="'" 'BEGIN { print "Here is a single quote <" sq ">" }'    定义变量
正则表达式:awk '/li/ { print $0 }' mail-list   /正则表达式/  用于过滤和匹配
内置方法:1.length($0)  求长度   2.rand()  随机数    
定义变量是无需声明:ls -l files | awk '{ x += $5 }  END { print "total bytes: " x }'   其中的X是没有提前声明的
查owl日志,耗时发掘:grep cost_time owl_2017-02-22.log | grep ' 17:20:57' |  awk -F '\001' '{print $8 }' | awk -F '\004' '{if($1>0)print $1}'

ps

查看某进程的线程:ps -mp pid -o THREAD,tid,time  

expect 用于存在交互的自动化命令

例如:
{
xs=`go run /root/shell/token.go ${secret} | awk '{print $1}'`
expect -c "set timeout 200;
spawn -noecho ssh [email protected] \"scp yuey@${LOCAL}:~/${MODULE}.war ${MODULE}${ENV}.war;scp ${MODULE}${ENV}.war ${online_host}:~/ROOT.war ;ssh ${online_host} \\\"sudo cp /home/yuey/ROOT.war /home/jm/tomcat/webapps;sudo /etc/init.d/tomcat stop;sudo /etc/init.d/tomcat start\\\"\";
expect PASSWD+TOKEN:;
send Moon123!${xs}\r;
interact;";
}

expect -c '命令串'   --用于进入expect环境,并执行命令

spawn 开启一个新的进程(必须在进入expect环境后才能使用,是expect的语法),expect的实现其实就是和这些进程打交道的

expect PASSWD+TOKEN:   等待`PASSWD+TOKEN:`的出现

send Moon123!${xs}\r;  发送用户名和密码


ssh 远程命令执行

ssh [email protected] "scp yuey@${LOCAL}:~/${MODULE}.war ${MODULE}${ENV}.war;scp ${MODULE}${ENV}.war ${online_host}:~/ROOT.war ;ssh ${online_host} \"sudo cp /home/yuey/ROOT.war /home/jm/tomcat/webapps;sudo /etc/init.d/tomcat stop;sudo /etc/init.d/tomcat start\""

ssh 目标机器  "需要执行的命令"   --如果命令中包含  "  需要做转义 \"  命令之间用  ;  分割 表示顺序执行,如果用 && 表示必须要前面的命令执行完毕才能执行后面的

mac linux 自定义用户命令

1.创建或者修改~/.bashrc 文件,编写  alias jump="sh jump.sh"
2.source ~/.bashrc 
3.运行  jump  即可完成自定义命令的执行

自动登录

1.客户机器:ssh-keygen -t rsa -P ''      cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
2.目标机器:拷贝客户机器的pubkey到目标机器的authorized_keys  中
3./etc/hosts.allow   存放了允许访问的IP列表,例如:sshd:10.16.30.69    sshd  表示进程
4./etc/hosts.deny    存放拒绝的ip列表
5.ssh 配置文件地址     /etc/ssh/sshd_config

查看当前所有环境变量

printenv
⚠️ **GitHub.com Fallback** ⚠️