1 端口转发
ssh -L{PC端口号}:localhost:{数据库端端口号} root@{服务器IP地址}
工作中遇到如下需求,
服务器1 服务器2 windows开发机
服务器1和服务器2互相之间不能直接访问,但是windows可以访问服务器1和服务器2
如果我们需要从服务器1访问服务器2,我们需要建立端口转发,将windows作为中介,数据流大致是这样的:
服务器1=>windows机=>服务器2
在windows下输入:
ssh -L{PC端口号}:localhost:{服务器2端口号} root@{服务器2IP地址}
ssh -L 6483:localhost:8380 Remote2
将本地6483绑定到服务器2的8380
ssh -R{服务器1端口号}:localhost:{PC端口号} root@{服务器1IP地址}
ssh -R 6482:localhost:6483 Remote1
将服务器1的6482绑定到本地的6483
这样 服务器1就可以和服务器2通讯
服务器1:
nc 127.0.0.1 6482
服务器2:
nc -l 8380
可以尝试从服务器1给服务器2发送信息
-L : 所谓“正向代理”就是在本地启动端口,把本地端口数据转发到远端。
-R : 所谓“反向代理”就是让远端启动端口,把远端端口数据转发到本地。
2 在Linux控制终端 到达行首和行位
Crtl+a Crtl+e
3 ll 命令
键入ll 而不是 ls -al
4 执行以前执行的命令
假如要查找执行过的上一个包含/tmp 的命令, 可以按 Ctrl+r,并且键入/tmp
假如要显示所有执行过的包含/tmp的命令, 可以使用正则表达式 history | grep "/tmp"
5 yes命令
如果想对一个命令中的所有问题都回答yes, 可以使用yes命令。例如:
yes | yum install curl 这个命令会对yum安装过程中所有的问题都回答yes。
如果想回答no 键入: yes no | yum install curl
6 查找是谁占用了你的端口
netstat -tulpn | grep 8080
你可以执行下面的命令来找到更多的信息:
ps aux | grep 33413
7 实时读取日志文件
下面命令将只显示指定日志文件中包含ERROR字符的新行
tail -f /var/log/my.log | grep ERROR
8 进程排序
下面的命令是按照CPU的使用率排序,显示最高的3个进程:
ps aux --sort=-pcpu | head -n 4
下面的命令是按照内存的使用率排序,显示最高的3个进程:
ps aux --sort=-rss | head -n 4
9 每隔XX秒执行一次命令
watch -n 1 date
每隔一秒打印一次date命令的输出
10 安静模式
很多标准命令都有安静模式,在创建bash脚本的时候非常有用,大多数情况,只需要在命令后面添加一个 -q 或者 -s 详细信息可以看 --help 或者man 输出的内容。
输出不可避免,但是也必须忽略输出,可以将输出定向到/dev/null
./my.sh > /dev/null
11 查找根目录下所有log文件里含有"Login"字符串的命令
find / -name "*.log"|xargs grep -i login