2022-07-05 23:16:59

面向“对象”编程——数据分析师常用命令

仅针对mac用户

1.ssh篇

1.1.怎么弄linux机器的ssh免密码登陆

每次都输入用户名密码好烦啊,怎么才能快速登陆linux机器,而不用一遍又一遍的敲又臭又长命令和密码?

层次一:使用ssh-copy-id快速搞

# 假设用户 troy, 机器 10.2.2.2 ssh-copy-id troy@10.2.2.2

相当于将 id_rsa.pub 塞到目标机器目标用户下的 ~/.ssh/authorized_keys 中,这不不用到目标机器上操作,多省事。

如果你从来没有生成功密钥对,那么可以通过以下命令生成:

ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N "" ls -l $HOME/.ssh/id_rsa* -rw------- 1 troy troy 2602 Dec 21 14:13 /root/.ssh/id_rsa -rw-r--r-- 1 troy troy 566 Dec 21 14:13 /root/.ssh/id_rsa.pub
  • 其中id_rsa为私钥,是你的钥匙,切记保存好,不要给别人
  • id_rsa.pub为公钥,很好记,它带.pub后缀,就是public的意思,涉及到的场景,基本都是将公钥塞进去,比如git,登陆机器

鉴权做完了,就可以直接登陆了:

ssh troy@10.2.2.2

层次二:使用ssh config管理会话信息

将一些信息配置到 config 中,作为默认参数,这样就可以直接少输入不少信息

cat ~/.ssh/config Host myhost HostName 10.2.2.2 User troy
ssh myhost

层次三:使用alias,替代固定操作

分析师可能用到的就那么一台或者多台机器,那么就可以做别名

/etc/profile 添加:

alias myhost="ssh troy@10.2.2.2"

然后 source 使其生效

source /etc/profile

为啥不在bashrc中添加?
因为你可能比较高逼格,也许使用了zsh呢?那读的就是zshrc了,不管你用什么shell,profile一定会读的!!!

层次四:使用sshw管理多台机器

有时候管理数十台机器,别名的方式就不太优雅了,那就需要引入工具,要么ui管理,要么命令行管理,这里推荐命令行管理工具。

详情请参考开源项目:sshw

使用以下命令直接安装:

cd /tmp && \ wget https://github.com/yinheli/sshw/releases/download/v1.1.0/sshw-darwin-amd64-v1.1.0.tar.gz && \ tar xf sshw-darwin-amd64-v1.1.0.tar.gz && \ mv sshw-darwin-amd64-v1.1.0/sshw /usr/local/bin && \ rm -rf /tmp/sshw-darwin-amd64-v1.1.0* && \ sshw -h

支持两种模式,一种是自有格式配置文件,另一种是支持ssh config格式,都比较简单。

上面配置过ssh config,所以这里可以直接使用:

sshw -s

自有格式:

cat ~/.sshw - name: myhost user: troy host: 10.2.2.2 port: 22 keypath: /Users/troy/.ssh/id_rsa

支持分组,别名,操作方式基本是标准的vim模式,很是方便【当然,前提你得习惯vim键位】具体配置文件配置方式见官方文档

2.vim篇

linux编辑文件,基本两派:vim派 和 emacs派,大部分是前者。

vim比较强大方便,这里只说基本的操作,比如模式介绍,怎么退出,怎么保存,怎么复制等…

算了,还是跟着教程走吧,这个互动教程比我讲得牛逼,贴地址:

openvim.com

2.1.啰嗦两句,整理一下

  1. 多种模式:编辑 、正常 和 可视化
  2. 怎么进入编辑模式,比如 i啊 a啊
  3. 怎么进入正常模式,esc
  4. 常用位移操作
    a. 上下左右:hjkl
    b. 按单词 w b e
    c. 行首尾 0 ^ $
    d. 文档首尾 gg G 2G/2gg
    e. 数字带位移,比如 5w 10l 2b
  5. 重复插入 比如插入go三遍 3igo esc
  6. 查找,正着找f,反着找F,比如查找o fo,查找第三个q 3fq
  7. 比配括号对 %
  8. 找单词 正找 *;反找 #
  9. 搜索 /text;用 n 和 N 来跳
  10. 新行插入 下一行 o;上一行 O
  11. 删除 x d dw dG dgg d2w d2e
  12. 替换 r
  13. 神奇操作,重复上一个操作 .
  14. v进入可视化模式,通过位移加指令操作
  15. 保存 :w 退出 :q 保存退出 :wq 简化版 :x 强制带!

2.2.教程中的

i, I
change to insert mode

h, j, k, l
move left, down, up, right

w, b, e, ge
move word at a time

[n][action/movement]
do n times, e.g. 3w

x, X
remove a character

a, A
append

f[char]
move to next given char in line

F[char]
move to previous char in line

; and ,
repeat last f or F

/yourtext and then: n, N
Search text

d[movement]
delete by giving movement

r[char]
replaces character below cursor

0, $
move to start/end of line

o, O
add new line

%
Goto corresponding parentheses

ci[movement]
change inside of given movement

D
delete to end of line

S
clear current line; to insert mode

gg / G
move to start / end of buffer

yy
copy current line

p
Paste copied text after cursor.

总结

  • vim的操作命令很好记,可以按单词首字母进行记忆,多操作可合理组合,比如 数字位移操作 的组合
  • 入门其实了解模式,知道怎么进入编辑模式,怎么退出编辑模式进入正常模式,知道怎么保存退出就行了,毕竟大部分的键盘还有方向键,对不??
  • 入门一句话:vim a.txt -> i -> 方向键挪 -> 编辑 -> esc -> wq/q!
  • 操作类的没有捷径可走,掌握道,然后勤加操练即可
  • 感兴趣了,可以深入vim配置;使用vim做日常工作/开发(插件一装,花里胡哨,实乃装逼利器!!!)

本文链接:https://troy.wang/post/wife-oriented-programming-1.html

-- EOF --