Ubuntu 常用操作
Table of Contents
tree 查看目录结构
sudo apt install tree tree -L 4 pathname # -L指定层级
SSH
SSH能够自动加密和解密SSH客户端和服务器之间的网络数据; 如果工作环境中的防火墙限制了一些网络端口的使用, 但允许SSH连接, 那么也可以通过将TCP端口转发来使用SSH进行通讯. 总的来说, SSH端口转发能够提供两大功能:
- 加密SSH Client到SSH Server之间的通讯数据
- 突破防火墙的限制完成一些之前无法建立的TCP连接
基本用法
使用SSH远程登录
ssh pinvon@192.168.1.104
连接到目标主机的其他端口
默认情况下, SSH连接到目标主机的22端口上, 我们也可以指定其他的端口:
ssh -p 3000 pinvon@192.168.1.104
构建SSH密钥对
ssh-keygen -t rsa
寻找主机密钥
在准备添加密钥之前, 可以先检查是否已经添加对应主机的密钥:
ssh-keygen -F 192.168.1.104
删除主机密钥
ssh-keygen -R 192.168.1.104
绑定本地端口
SSH可以传送数据, 我们可以让那些不加密的网络连接, 全部改走SSH连接, 从而提高安全性.
如, 要让8080端口的数据, 全部通过SSH传向远程主机:
ssh -D 8080 pinvon@192.168.1.104
SSH会建立一个socket, 监听本地的8080端口(注意, 不是pinvon@192.168.1.104的8080端口). 一旦本地有数据传向8080端口, 就把它转移到SSH连接上, 发往pinvon@192.168.1.104
如果8080端口的数据原来未加密, 现在就会对其数据进行加密.
SSH隧道
命令格式:
ssh -L <local port>:<remote host>:<remote port> <SSH hostname>
场景: A和B无法互通, C可以同时连接A和B. 现在想通过C, 让A连接到B. 其中, A, B, C都是IP地址.
在A上执行:
ssh -L 2121:B:21 C
它的意思是, 指定SSH绑定本地端口2121, 然后指定C将所有的数据, 转发到B的21端口.
-L接受3个值, 格式为 本地端口:目标主机:目标主机端口
.
只要连接A:2121, 就等于连接上了B:21
SSH反向连接
命令格式:
ssh -R <local port>:<remote host>:<remote port> <SSH hostname>
如, client连上server, 然后把client能访问的机器地址和端口镜像到server的端口上.
常用场景: 家里有一台电脑在内网, 外网的服务器无法连接访问到, 然后使用SSH反向连接, 打通一条隧道, 服务器就可以通过这条隧道进来了.
内网主机IP: 192.168.1.104, 外网主机IP: 123.207.62.191, 内网另一台主机IP: 192.168.1.100
让外网所有能访问到123.207.62.191的IP, 都能通过8080端口访问到192.16.1.100的80端口. #+BEGIN_SRC Shell ssh -R 123.207.62.191:8080:192.168.1.100:80 ubuntu@123.207.62.191
du 查看占用磁盘大小
du即disk usage
查看帮助:
du --help
-h 表示结果以K, M, G为单位, 提高信息的可读性:
du -h filename
如果只想看一个文件夹下所有文件的总和, 而不要看每个子文件的占用大小, 有两种办法, 一是使用-s参数, 二是指定最大深度为0
du -sh filename # 或 du -h --max-depth=0 filename
screen 实现使用键盘在终端选中复制
sudo apt install screen
ctrl+a,[
进入复制模式.
使用 vi 的按键模式进行光标移动.
将光标移动到复制的起始处, 回车.
将光标移动到复制的结束处, 回车.
ctrl+a,]
进行粘贴.
关闭 ssh 自动断开
编辑 /etc/ssh/sshd_config 文件:
ClientAliveInterval 30 # 客户端每隔 30 秒向服务发送一个心跳数据 ClientAliveCountMax 86400 # 客户端多长时间内没有响应, 服务器自动断连接
重启 sshd 服务:
service sshd restart
更改键盘映射
安装 gnome-tweak-tool, 在"键盘和鼠标"子菜单下, 可以修改自己想修改的键盘映射.
为了避免小拇指使用 ctrl 按键所带来的酸痛感, 可以交换 lctrl 和 lalt 两个按键.
windows 上的键盘映射修改, 可以参考: http://jixiuf.github.io/blog/windows-%E7%9A%84%E9%94%AE%E7%9B%98%E6%98%A0%E5%B0%84/
工作常用工具集锦
tar
不解压查看 tar.gz 内容
tar -tf xxx.tar.gz # 查看文件列表(包含路径) tar -tvf xxx.tar.gz | grep ^d # 只查看目录结构
find
查找当前目录下 txt 和 pdf 文件
find . -name "*.txt" -o -name "*.pdf"
删除当前目录下的 .spec 文件
find . -name "*.spec" -delete
查找完成后执行命令
查找当前目录下所有的 .html.bak 文件, 然后拷贝到 dirname 目录下.
find . -name "*.html.bak" -exec cp {} dirname \;
注意最后面要加 \;, 否则会报错; 如果需要执行多个命令, 可以写多个 -exec, 每个 -exec 使用 \; 分隔.
grep
查找某目录下文件中包含 pinvon 的文件:
grep -r 'pinvon' dirname
全局替换某路径下的所有字符:
sed -i "s/old/new/g" `grep "old" -lr ./`
Generated by Emacs 25.x(Org mode 8.x)
Copyright © 2014 - Pinvon - Powered by EGO