关于iterm2:Iterm2-JumpServer-自动登录脚本

本地连接远端的服务器,Iterm2 能够说是MAC 上的一大利器了,配合脚本,能够一键直连服务器 最近因公司增强了服务器登陆验证,换了JumpServer 服务器,还减少了二次认证,必须用Google Authenticator输出6位动静验证码,能力胜利登陆,这样的话每次都得关上手机,手动输出验证码比拟麻烦,所以,我这么懒的程序猿怎么会安分的一步步操作呢,来个脚本 开始之前,先查看你的电脑装没装brew 和 expect,如果没有装置,先装完再进行后续步骤哈 装置brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed装置expectbrew install expect 筹备工作就绪,咱们持续接下来的步骤 1、首先,给你的电脑装一个 oath-toolkitbrew install oath-toolkit2、你还得获取到我下面截图的二维码上面的 Secret 前面的 key,用上面的命令验证一下你设置的对不对吧oathtool --totp -b YOUR-PRIVATE-KEY3、如果下面的都没有问题,间接来上脚本 #!/usr/bin/expectset jumpusr user_nameset pwd passwordset jumphost 172.16.XXX.XXset host [lindex $argv 0]catch {spawn ssh -p 22 $jumpusr@$jumphost}expect "*password:*"send "$pwd\r"expect "*MFA*" { set code [exec sh -c {oathtool --totp -b YOUR-PRIVATE-KEY}] send "$code\r"}expect {"*Opt>*" { send "[lindex /$argv 0]\r";exp_continue}"*Host*" { send "1\r1\r"}}# 此处看运维给你的什么权限,间接进入app的话上面的能够删除expect "*$*" { send "sudo su - app\r"}interact

July 7, 2022 · 1 min · jiezi

关于iterm2:快速配置-iTerm2GitNode

iTerm2+Git+Node 配置iTerm2 配置装置 iTerm2配置主题 oh-my-zsh sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"主动高亮插件 cd ~/.oh-my-**zsh**/plugins/git clone https://github.com/zsh-users/zsh-syntax-highlighting.gitvi ~/.zshrc 并增加到最初: source ~/.oh-my-zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh保留退出并执行 source ~/.zshrc 主动补全插件 cd ~/.oh-my-zsh/plugins/git clone https://github.com/zsh-users/zsh-autosuggestionsvi ~/.zshrc 并批改 plugins=(zsh-autosuggestions git)保留退出并执行 source ~/.zshrc 配置默认文件夹iTerm2->Preferences->Profiles->General->Working Directory->Directory输出默认文件夹门路 Git 配置装置Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"装置 Git brew install git配置 user.name 和 user.email git config --global user.name "username"git config --global user.email "useremail"配置 alias 节省时间 git config --global alias.st statusgit config --global alias.co checkoutgit config --global alias.ci commitgit config --global alias.br branchgit config --global alias.pl pullgit config --global alias.ps pushNode 配置下载 Node 并装置:https://nodejs.org/配置淘宝镜像源 ...

November 4, 2021 · 1 min · jiezi

Mac 废纸篓无法清空的解决办法

输入命令:sudo rm -rf ~/.Trash/搞定

March 16, 2019 · 1 min · jiezi

2018 年终总结

职业篇博客之前博客系统一直用的 Ghost,然而 Ghost 的新版在vps上升级迁移遇到很多问题,后来索性自己用 nodejs 写了一个,基于 nextjs。翻译文章花了一周的闲余时间,翻译了 maintainable css,访问地址 http://maintainablecss.wtser.com/真的是好久没翻译文章了。生产力在项目中使用了 stylelint ,peritter 等工具,统一代码风格,提高代码质量。iterm2 插件https://xiaozhou.net/learn-the-command-line-iterm-and-zsh-2017-06-23.htmlaliasalias gs=“git status"alias gitclean=“git branch -vv | grep ’ gone]’ | awk ‘{print $1}’ | xargs git branch -d"快速跳转使用 d 这个命令,列出最近访问过的各个目录目录名简写与补全比如我们要进入到 ~/workspace/src/dict,我们只需要输入每个目录的首字母就行,然后再TAB键补全重复上一条命令输入 r ,可以很便捷的重复执行上一条命令。zsh-autosuggestionshttps://github.com/zsh-users/zsh-syntax-highlightinghttps://github.com/zsh-users/zsh-autosuggestions了解了一些 tmux 相关的知识点,但是缺少实践。http://harttle.com/2015/11/06…http://kumu-linux.github.io/b...http://cenalulu.github.io/lin...http://wdxtub.com/2016/03/30/...Tmux使用手册研究与学习算法学习经典排序算法总结与实现JS家的排序算法业务相关给自己取了一个英文名 English name Finn参与公司的一个SPA项目,react,学习了 redux state 相关的知识。SVG use with External Source<svg viewBox=“0 0 100 100”> <use xlink:href=“defs.svg#icon-1”></use></svg>https://css-tricks.com/svg-use-external-source/But, the external resource way doesn’t work in any version (up to 11 tested) of Internet Explorer. Even the ones that do support inline SVG: 9, 10, 11.https://github.com/jonathantneal/svg4everybodyIt works like this:If the browser is IE 9, 10, or 11 (User Agent sniff, but that’s the whole point here).Ajax for the SVG file referencedFind the needed bit, based on the ID referenced (e.g. #icon-1)Inject that into the <svg> on the page简单的跑马灯使用 picture 元素实现 图片的 responsesrcset only use for mobile imghttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture<picture> <source srcset=“mdn-logo-wide.png” media="(min-width: 600px)"> <img src=“mdn-logo-narrow.png” alt=“MDN”></picture>overscroll-behavior 解决 modal 滚动带动底下页面滚动问题比较拙的解决方案就是给body添加overflow:hidden,但这有可能会影响我们的操作,甚至影响你浏览你的页面。CSS的overscroll-behavior,这个属性有三个可取值:auto:其默认值。元素(容器)的滚动会传播给其祖先元素。有点类似JavaScript中的冒泡行为一样contain:阻止滚动链接。滚动行为不会传播给其祖先元素,但会影响节点内的局部显示。例如,Android上的光辉效果或iOS上的回弹效果。当用户触摸滚动边界时会通知用户。注意,overscroll-behavior:contain在html元素上使用,可以阻止导航滚动操作none:和contain一样,但它也可以防止节点本身的滚动效果> overscroll-behavior属性是overscroll-behavior-x和overscroll-behavior-y的简写,如果你只想控制其中一个方向的滚动行为,可以使用其中的某一个属性。编写自定义视频播放器https://www.w3.org/2010/05/video/mediaevents.htmlfullscreen apihttps://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_APIhttps://github.com/sindresorhus/screenfull.jsbug in safarielement:fullscreen{}针对被全屏的元素 (如果element是iframe,:-webkit-full-screen-ancestor:not(iframe) {} 在safari 不生效)safari iframe webkitIsFullScreen aways return falseevent webkitfullscreenchange e.target return document when exit fullscreen娱乐篇电影电视剧大佛普拉斯有话好好说 Keep Cool 1997燃烧底特律 我欲成人末代皇帝红海行动西部世界 S2诚邀辣妹:网络性与爱西游记女儿国this is us s2雌猫们奇迹男孩斯大林之死挚爱梵高异形:契约逃出绝命镇小丑回魂恐惧支配校合唱团的秘密短暂的婚姻去他妈的世界熔炉黑镜 第四季This is us season2移动迷宫2红高粱移动迷宫3逃离与神通行雷神3三块广告牌神秘巨星奇门遁甲大世界好极了中邪请以你的名字呼唤我相亲相爱唐人街探案2废城记电锯惊魂1-7江湖儿女美人计反贪风暴3爆裂无声升级动物世界沙海李银河的52堂性学课逃避可耻但有用血观音毒液特工李茶的姑妈影人生一串游戏青蛙旅行Getting Over It中国式父母阅读篇解忧杂货店What if二十世纪的教训根据我的看法,选举应该是这么回事:我们不是让新政府合法化,而是评判旧政府的表现如何——投票日那天是旧政府缴成绩单的时间。原子弹设计重来2人们的工作方式从“同步”协作变成了无须同步的协作。分布式员工团队(distributed workforce)最适合远程办公的脑力工作,比如写作、编程、设计、客户支持(先列举这几样),跟残酷的利润大战都没什么关系(制造业就属于这种)。我们发现,判断工作质量的最好方法,就是在正式雇用员工、给他们分配许多工作之前,先让他们试做一点。想要在工作中不被人忽略,有两种最基本的方法。第一个就是吵吵闹闹,弄出点动静来。第二个就是在工作中取得进展,交出漂亮作品。幸运的是,对于远程员工来说,工作质量最重要。学习之道活着自卑与超越侧重讲述婴幼儿时期父母教育对孩子的影响Your past experiences are blinding you你的经验会束缚你为啥会有 『偏见与歧视』只有放下执着才能去实现任何事情。It’s only after we’ve lost everything that we’re free to do anything.即便是那些大师级的人也无法找到最好的方式来取胜,因为他们擅长的地方束缚了他们的思想。Even these masters couldn’t see the best way to win because the one they knew so well colonised their mind.人们很难脱离自己的舒适区。处于对未知的恐惧,他们倾向于呆在自己熟悉的地方。People have a hard time letting go of their suffering. Out of a fear of the unknown, they prefer suffering that is familiar”如何摆脱偏见再次成为一个初学者Be a beginner again初学者的思想充满了许多的可能性,但是专家就少了许多In the beginner’s mind there are many possibilities, but in the expert’s there are few”初学者思想不是说要反对经验,而是在我们用经验应对新状况时应保持的一种开放的思想。Beginner’s Mind doesn’t mean negating experience; it means keeping an open mind on how to apply our experience to each new circumstance.未完待续… ...

February 23, 2019 · 2 min · jiezi

iTerm2结合 expect 脚本实现 ssh 登录跳板机后登录指定服务器

痛点一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址通常情况下,我们都是通过两次ssh,第一次本地机器登录跳板机,第二次在跳板机登录指定机器,需要输入两次密码,容易输错后端码农每天要无数次登录各种机器,如果能通过工具自动化,每次能省半分钟,并且心情会愉悦很多,下面来进行实战expect 脚本#!/usr/bin/expectset host [lindex $argv 0]# 设置一个变量,传入的参数,0 表示第一个参数,同时也为了复用,毕竟不只是管理一台服务器set TERMSERV 跳板机IPset USER 跳板机用户名set PASSWORD 跳板机密码set UATUN 内网服务器用户名set UATPWD 内网服务器密码# 登录跳板机spawn ssh -l $USER $TERMSERV# expect是expect环境的一个内部命令,判断上一个指令输入之后的得到输出结果是否包含"“双引号里的字符串,比如后面的”password:",表示上一个输出结果包含password:通配符表示前后可以是任意字符#类似于编程中的 switch语句,exp_continue相当于 continueexpect { “yes/no” {send “yes\r”;exp_continue;} “password:” { send “$PASSWORD\r” } }# 登录内网expect “$USER@*” {send “ssh -l $UATUN $host\r”}expect { “yes/no” {send “yes\r”;exp_continue;} “password:” { send “$UATPWD\r” } }interact# 执行完成后保持交互状态,把控制权交给控制台将脚本保存成一个文件,例如 server.exp可执行权限,chmod +x server.exp配置 iTerm2进入配置页面, Profiles -> Open Profiles -> Edit Profiles配置如图所示send text at start: [expect脚本路径] [参数0] [参数1] … 以空格分割大功告成到此为止,已完成所有准备工作,此时再进入指定机器,只需要三步打开 iTerm2快捷键 Command+o 打开 Profiles 面板选中某个 profile 单击,就直接进入目标机器了,开始挥洒方遒吧!温馨提示之所以在expect 脚本中设置了一个参数,是为了复用,要进入别的机器,复用同一个 .exp脚本,添加一个新的 profile 即可exp 脚本可以多个参数,达到更多场景下复用,具体又童鞋自己考量也可以把exp脚本当做sh脚本一样执行,比如 ./test-server.exp in-test-server-goapi-1,这样可以不必要配置 profileGitHub源码传送门各种数据结构及算法实现, LeetCode解题思路及答案大厂面试题汇总及答案解析本文为原创文章,转载注明出处,欢迎扫码关注公众号 楼兰 或者网站https://lovecoding.club,第一时间看后续精彩文章,觉得好的话,顺手分享到朋友圈吧,感谢支持。 ...

January 15, 2019 · 1 min · jiezi