Nemo的轨迹

work hard, be persistent, and good luck

0%

安全技能树简版-基础必备(二)

终端

唠叨时间: 我在Mac 入门的时候没有多想, 直接安装使用iTerm. 因为网上大部分就是这样推荐的. 现在回过头来想想, Mac自带的 Term ,到底有多难用才让这么多人弃坑? (虽然现在真的讨厌造轮子,但也不能别人给啥你就吃啥…)秉着探索的精神,说一下我的结论:

  1. 最后我们都是要上手 iTerm.

  2. Term 不难用: 提供了多种 profile,在终端主题(背景颜色,字体大小,光标,字符编码)支持性很强.它绝对不是你第一次打开看到的那样,配置性很强.

  3. iTerm 比 Term 优秀在于: 提供了更多快键键.也就是说,你要是没有意识到 iTerm 的快键键可以给你带来多大的便利,真是浪费工具本身.具体后面提到

  4. 如果你连基本命令还没学会,就先用自带的终端少给自己折腾.话说小白如你,知道终端怎么打开么? (前面 Mac 的基础操作,忘记没关系,搜索)

基本 shell 命令

我入门的书籍:
Linux命令行与shell脚本编程大全

思维导图推荐的:

老实说,要是我刚入门的时候看这两个,估计效果还不如看上面的书.具备基础知识后,发现这两个文档的确强大,就连我这个已经把 shell 当成日常工作的人,也可以在里面找到盲点(握草,还有这命令;握草,这命令还能这样用 )

bash-guide: 知识点速览.

the-art-of-command-line : 艺术的第一点,支持17种语言….看这个.感觉是有个高手向你传授经验… 我以前怎么没早点发现….

真正常用的命令其实不会很多,跟我们的语言一样. 老老实实找本书看,多敲打键盘.下面列一下我脑海能想到的命令(没几个说明: 我没有特意去记忆;常用的命令不多,请相信自己是可以掌握的)

1
2
3
4
5
6
7
8
帮助: man
路径,查看: pwd,ls,cd ,
查看文件内容: cat, head, tail, grep
文件管理: file , mv, rm ,mkdir, find
编辑文档: nano , vim, awk,sed, cut ,sort,uniq,
用户与权限控制: su, sudo , chmod, chown
进程管理: ps,kill ,killall
高级命令: dd, iptables,ssh

挑战任务

说是挑战,其实是手把手教,一个小 demo 向你展示为什么命令行是可以提高你效率的

  1. 打开你的终端

  2. 命令行安装 homebrew 作为你的第三方软件的管理工具,可以看官网

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 按照官网的教程,安装 wget
1
2
3
4
5
6
7
8
安装:
brew install wget;
查看是否安装成功, 成功的话会显示
which wget ;
卸载
brew uninstall wget
再次安装(装着玩)
brew install wget

下面重点来了,我是一个 BigBang 迷.甚至有一个 BB 理论:从第一季到最新一集看过的次数来衡量一个人的死宅程度,现在我的等级是8 (大学重复看,刚刚工作的在深圳偶然看,来到北京经常看,求 PK)

  1. 用浏览器打开生活大爆炸第十季全集The Big Bang Theory迅雷下载. 现在我想下载整一季,正常人会怎么做?
1
鼠标放到链接,右击复制链接,打开迅雷,输入链接地址下载. 如此重复24次!!!

虽然可能也就1分钟的事情,但作为一个志在提到生活效率的 Hack 这你能忍? 在终端运行以下命令

1
curl http://www.msj1.com/archives/4423.html | grep -o 'ed2k.*mp4.*|/'

屏幕瞬间显示24集的下载链接, 这时候你就可以复制链接用迅雷下载(其实你要是用其他下载器,连复制粘贴都可以省略,这举一个例子)

上面的命令做了什么?

  • 使用 curl 请求了网页的源代码 (可以搜一下怎么在浏览器查看网页源码,右击一下的事情)

  • 使用到了 管道 ‘|’ ,

  • 使用到了 grep 命令,-o 的意思是只显示匹配内容,而匹配内容是我引号内的正则表达式.

重复的事情就不要自己干,这是机器做的.

iTerm + Oh-my-zsh

阅读: iTerm2 + oh my zsh 打造最强Mac终端

思路大概是:

为什么这样推荐直接使用Oh-my-zsh ? 原因很简单, 省事.比起自己摸索,入门还是让”前辈”带,这个系列一直都是这样的理念. btw, 我们也要有一个志气:前辈是用来学习并干掉的.

iTerm

iTerm2 前面说了,与原生的强大在于他的快键键(当然还有 profile 的管理)

当然你直接通过 iTerm 本身的菜单栏走一遍也是可以的.这里提几个我常用的:

  • 新开标签页(用鼠标其实有点烦)

  • 分屏: 竖直水平分屏

很多人会这一个,也知道分屏后默认进入的是 home 目录.但不知道默认进入的目录是可以改的.在 设置–> Profiles把Working Directory 设置进入的是前一个 session 的目录.

有时候我们就是在一个目录下干一天活,这样可以避免自己重复 cd

  • profile

cmd + T 是打开默认的终端, cmd+o 是可以选择不同的profile.这样的一个好处就是,你可以通过不同的 profile 管理你的远程机器. 方法就是在 profile–>general –>command 写上你的 ssh命令

唠叨: 不知道读者是怎么管理 ssh( 远程连接机器的命令 ).下面说说我的看法

  1. ssh [email protected] 这种最搓,机器一多,难不成用一个备忘录保存(是的,我以前就是这样干的,每次用搜索)

  2. 使用 alias . 不难想到的方法,我也试过,其实这种方法还是搓.

  3. 使用 ssh config. 这种算是一种优雅的解决方法了.这是很通用的做法,不依赖与终端,只要复制一份配置文件,什么机器都可以使用.

  4. 使用 iterm 不同的 profile. 这是我现在在用的.比第三种好处在于,我连名字都不用记. 缺点是,profile 有多份.

方法3,4推荐,其他的就当过去年少不懂事….

iTerm 还有彩蛋: 选取即复制, cmd+f 查找….可以在工作中摸索

  • 在 iTerm 点击路径可以直接打开路径

我们可以使用 Go2Shell 在当前文件夹打开终端(避免 cd );有一次我在想能不能在终端直接进入文件夹.这个需求是有的,结果一搜,发现 iTerm 已经集成这个功能.路径名,使用 cmd+点击就可以进入. 舒服

oh-my-zsh

zsh 安装完之后尝试

  1. 修改主题: .zshrc 文件, 可选的主题可以在 ~/.oh-my-zsh/themes/ 查看.当然可以自定义

选择自己适合的就好了.例如我经常想知道我在哪,又不想 pwd, 所以选了 ‘bira’.

  1. 使用插件

阅读

zsh 全程指南

那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的

默认开启了 git , 很多 git 别名节省我们的输入时间. 这些引用我们组的一个人说的:

插件是要选哪种离开了你就干不了活的. 不贪多.其次才是省事.

现在我就开启了 git(主要是别名) , z(更快进入目录)

要是读者发现哪个插件对你生产效率提高特明显,希望来信通知.我也只能说出我知道的.一定还有我不知道的.