Linux高效开发
1. 终端快捷键节省时间
- 打开终端(这个大家应该都十分熟悉了)
Ctrl + Alt + t
- 对行操作(大部分人可能不晓得,也确实方便许多)
在终端,如果你使用 → 或 ← 是相当浪费时间的,相反,你应该:
2. 使用zsh(oh my zsh)
zsh的好处不用多说,支持多方插件、更加友好的界面、拼写检查、智能补全。更多使用方法直接见官网。
3. 使用别名(Alias)
起别名允许你使用你所选的关键字别名来缩短常用的命令。不得不说,恰当地使用别名会明显地让你每天缩短30分钟(在敲打命令上)。高效的开发者会使用常用命令的别名,而且还会 export 常用的变量和路径到 bash 的变量中。使用方法也相当便捷,只需要编辑~/.zshrc。(如果你使用的是bash,则编辑~/.bashrc)。
1
vim ~./zshrc
其中alias_name是别名,command_line是命令
1
alias alias_name='command_line'
退出保存,并使其生效
1
source ~./zshrc
4. 第三方工具screen
参考网址:使用 screen 管理你的远程会话 https://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
为什么要使用screen,其实screen远远不只是一个分屏工具,更是管理远程回话工具的不二之选。经常使用ssh 远程登录Linux的小伙伴们一定常常被一个问题所苦恼:当你要长时间运行的一个任务时,比如系统备份、ftp 传输等,咱们必须等待它执行完毕后才能执行别的命令,通常情况下咱们都是怎么解决的呢?机智的小伙伴们可不会呆呆地傻等着呢,当然是再开一个远程终端窗口,那如果任务不止一个呢?
答:那就有几个开几个![滑稽]
结果就是每次ssh都不厌其烦地输入账户名密码。。这的确不失为一个解决方案,但素,screen给我们提供了一个更优质的解决方案😏。ps:tumx也是一样的。
screen创建新窗口
- 在终端直接输入
screen
,将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则screen自动切换到前一个窗口。 Screen命令后跟你要执行的程序。
1
screen vim test.c
Screen创建一个执行vim test.c的单窗口会话,退出vim将退出该窗口/会话。但是这样启动的screen会话没有名字,不方便管理,推荐为每个screen会话取个便于记忆的名字,我们只需要加上
-S
参数。1
screen -S vim_test.c vim test.c
screen -dm <你要跑的命令>
screen会在后台创建一个新的会话运行<你要跑的命令>,可以通过screen -ls
查看。并通过screen -r [[pid.]tty[.host]]
连接会话(Detached=>Attached)在一个已有screen会话中创建新的窗口
在当前screen窗口中键入C-a c
,即Ctrl键+a键,之后再按下c键,screen 在该会话内生成一个 新的窗口并切换到该窗口。C-a w
可以列出窗口个数和当前窗口,在左下角有显示,一般是从0开始, 当前窗口用’*’号表示。’-‘表示最近一次的窗口。如果要切换可用C-a <要切换窗口的id>
。
离开screen
screen的方便之处在于:你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。比如在screen -S vimtest.c vim test.c
文件时,来了紧急任务,那么可以在screen窗口输入C-a d
来中断会话,处理完紧急任务后screen -r <pid>
重新连接会话。(倒是和git stash有点像😐)
清除dead会话
如果由于某种原因其中一个会话死掉了(例如人为杀掉该会话),这时screen -list
会显示该会话为dead状态。使用screen -wipe
命令清除该会话。
screen常用选项
- 绑定键
ctrl + a
,下简写成C-a
- screen手册 C-a ?
- 重命名window C-a A
- 上下分屏 C-a,shift + s
- 取消分屏 ????
- 切换屏幕 C-a tab 或者C-a
- 新建终端 C-a c
- 关闭终端 C-a x???有点不太对
- 暂时离开[detached] C-a,d
screen高级应用
- 会话共享
还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:1
$ screen -x
这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。
- 会话锁定与解锁
Screen允许使用快捷键C-a s锁定会话。锁定以后,再进行任何输入屏幕都不会再有反应了。但是要注意虽然屏幕上看不到反应,但你的输入都会被Screen中的进程接收到。快捷键C-a q可以解锁一个会话。
也可以使用C-a x锁定会话,不同的是这样锁定之后,会话会被Screen所属用户的密码保护,需要输入密码才能继续访问这个会话。
5. Mac 批量解压缩rar
下载unrar
首先,rar文件Mac系统自带软件不能解压缩。可以考虑下载unrar,是命令行工具。1
brew install unrar
常用命令
1 | unrar #相当于man unrar,打开帮助信息 |
批量解压缩
很抱歉,unrar根本就不支持批量解压缩命令。是不是很失望,难道我只能手动输入每个包的名字?我觉得海星…目录下也就一百来个压缩包…
秉持’Do Not Repeat Yourself‘的原则,你能很轻松的发现可以结合shell命令一句话搞定!提示一下,使用find
命令。
1 | find ./ -name '*.rar' -exec unrar x {}\; |
Linux中shell特殊变量
http://www.111cn.net/sys/linux/79750.htm