上传
上传文件:scp ~/data/file_name username@servername:/path
上传目录:scp -r ~/data/file_dir username@servername:/path
下载
下载文件:scp username@servername:/path/file_name /local_path
下载目录:scp -r username@servername:/path/file_dir /local_path
如果设置了别名,可以直接使用 scp ~/data/file_name alias:/path
ssh
ssh-keygen 命令
ssh-keygen 是命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥
语法
ssh-keygen [options]
-b:指定密钥长度;-e:读取openssh的私钥或者公钥文件;-C:添加注释;-f:指定用来保存密钥的文件名;-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;-l:显示公钥文件的指纹数据;-N:提供一个新密语;-P:提供(旧)密语;-q:静默模式;-t:指定要创建的密钥类型。
ssh-agen 命令
ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add命令将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程
另外如果您的私钥使用密码短语来加密了的话,每一次使用 SSH 密钥对进行登录的时候,您都必须输入正确的密码短语。而 SSH agent 程序能够将您的已解密的私钥缓存起来,在需要的时候提供给您的 SSH 客户端。这样子,您就只需要将私钥加入 SSH agent 缓存的时候输入一次密码短语就可以了。这为您经常使用 SSH 连接提供了不少便利
ssh-add 命令
ssh-add命令是把专用密钥添加到 ssh-agent 的高速缓存中。该命令位置在/usr/bin/ssh-add
语法
ssh-add [-cDdLlXx] [-t life] [file ...]ssh-add -s pkcs11ssh-add -e pkcs11
选项
-D:删除ssh-agent中的所有密钥.-d:从ssh-agent中的删除密钥-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。-L:显示ssh-agent中的公钥-l:显示ssh-agent中的密钥-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥-X:对ssh-agent进行解锁-x:对ssh-agent进行加锁
本地端口转发
ssh -L {localPort}:{targetHost:targetPort} {connectUser}@{connectHost}
localPort: 本地端口
targetHost:目标主机地址
targetPort:目标主机端口
connectUser:跳板主机用户
connectHost:跳板主机地址
示例:现有本地主机 serverA(10.0.0.1)一台跳板机 serverB(183.6.114.227:62002)跟一台装有mysql服务端的服务器 serverC(192.168.2.51)。serverA 想通过跳板机访问 51 服务器的 mysql 服务,命令如下:
ssh -L 9000:192.168.2.53:3306 root@183.6.114.227 -p 62002


可以看到使用 ssh -L 开启隧道的时候,会开启一个 ssh 连接,当我们退出这个 ssh 会话的时候,连接也会退出。若只想开启一个 ssh 隧道,并不想开启连接,则可以增加 -N 参数

现在虽然添加了 -N 参数,但是执行完命令后,终端会卡住,此时当我们退出终端,隧道也会被关闭,这是因为隧道是在前台运行的。如果想让隧道在后台运行,还需要添加 -f 参数
ssh -N -f -L 9000:192.168.2.53:3306 root@183.6.114.227 -p 62002
到这里又有一个问题,现在只能在 serverA 才能连上 serverC 服务器的 mysql 服务端,并不能通过别的主机访问 10.0.0.1:9000 端口访问 serverC 上的 mysql 服务。想实现该功能,只需在前面添加本机的 ip 即可
ssh -N -f -L 10.0.0.1:9000:192.168.2.53:3306 root@183.6.114.227 -p 62002
如果还不够,希望 serverA 上的所有 IP 地址的 9000 端口都被监听,那么可以在建立隧道时开启网关功能,使用 -g 选项可以开启网关功能,开启网关功能后,serverA 上的所有 IP 都会监听对应端口
ssh -g -N -f -L 10.0.0.1:9000:192.168.2.53:3306 root@183.6.114.227 -p 62002
动态端口转发
跟本地端口转发不同,动态端口转发不用指定要连接的目标服务器端口。而是将本地监听端口的请求转发到目标服务器对应端口
ssh -D 127.0.0.1:9000 root@183.6.114.227 -p 62002
idea 配置代理
查看所有用户
cat /etc/passwd | cut -d “:” -f 1
tar
解压 :tar -zxvf xxx.tar.gz
压缩 :tar -zcvf xxx.tar.gz ./xdir
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来! -f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项啰!(比较不会忘记) -z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 .tar.gz -j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 .tar.bz2 -J :通过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz -x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开,特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。 -c :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename) -t :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了; -C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 其他后续练习会使用到的选项介绍: -p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
—exclude=FILE:在压缩的过程中,不要将 FILE 打包!
将硬件时间写入系统时间
hwclock —hctosys
查看操作系统信息
> uname -aLinux docker-lab 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux> cat /etc/issue\SKernel \r on an \m

shell 获取所有参数
$1 获取第一个参数$@ 获取所有参数$? 获取上一条命令执行的结果 0:成功 1:失败$$ 获取当前任务的进程id(用于shell脚本里)
systemctl 管理系统服务
语法:systemctl [命令] [服务]
常用参数:
start:启动服务stop:停止服务restart:重启服务status:查看服务状态enable:开启服务disable:关闭服务list -units --type=service:列出所有已启动的服务
示例:已防火墙服务为例
$ systemctl status firewalld$ systemctl stop firewalld$ systemctl start firewalld
