使用Linux经常会使用到终端,一些使用终端的小技巧,可以减少浪费不必要的时间,更高效,多多使用方能得心应手。

1. 终端快捷键节省时间

  • 打开终端(这个大家应该都十分熟悉了)
    Ctrl + Alt + t
  • 对行操作(大部分人可能不晓得,也确实方便许多)
    在终端,如果你使用 → 或 ← 是相当浪费时间的,相反,你应该:
    • 跳过一个单词:Ctrl + → 或者 Ctrl + ←
    • 直到行末:Ctrl + a , 回到开头:Ctrl + e
    • 删除整行:Ctrl + u
    • 命令查找:通过在终端键入 Ctrl + R 来查找你以前输入过的命令类型。循环多次地键入这个快捷键你会找到所有你输入过的匹配的命令。

2. 使用zsh(oh my zsh)

zsh的好处不用多说,支持多方插件、更加友好的界面、拼写检查、智能补全。更多使用方法直接见官网。

3. 使用别名(Alias)

起别名允许你使用你所选的关键字别名来缩短常用的命令。不得不说,恰当地使用别名会明显地让你每天缩短30分钟(在敲打命令上)。高效的开发者会使用常用命令的别名,而且还会 export 常用的变量和路径到 bash 的变量中。使用方法也相当便捷,只需要编辑~/.zshrc。(如果你使用的是bash,则编辑~/.bashrc)。

  1. 1
    vim ~./zshrc
  2. 其中alias_name是别名,command_line是命令

    1
    alias alias_name='command_line'
  3. 退出保存,并使其生效

    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创建新窗口

  1. 在终端直接输入screen,将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则screen自动切换到前一个窗口。
  2. Screen命令后跟你要执行的程序。

    1
    screen vim test.c

    Screen创建一个执行vim test.c的单窗口会话,退出vim将退出该窗口/会话。但是这样启动的screen会话没有名字,不方便管理,推荐为每个screen会话取个便于记忆的名字,我们只需要加上-S参数。

    1
    screen -S vim_test.c vim test.c
  1. screen -dm <你要跑的命令>
    screen会在后台创建一个新的会话运行<你要跑的命令>,可以通过screen -ls查看。并通过 screen -r [[pid.]tty[.host]] 连接会话(Detached=>Attached)

  2. 在一个已有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高级应用

  1. 会话共享
    还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:
    1
    $ screen -x

这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。

  1. 会话锁定与解锁

Screen允许使用快捷键C-a s锁定会话。锁定以后,再进行任何输入屏幕都不会再有反应了。但是要注意虽然屏幕上看不到反应,但你的输入都会被Screen中的进程接收到。快捷键C-a q可以解锁一个会话。
也可以使用C-a x锁定会话,不同的是这样锁定之后,会话会被Screen所属用户的密码保护,需要输入密码才能继续访问这个会话。

5. Mac 批量解压缩rar

下载unrar

首先,rar文件Mac系统自带软件不能解压缩。可以考虑下载unrar,是命令行工具。

1
brew install unrar

常用命令

1
2
unrar #相当于man unrar,打开帮助信息
unrar x rarfile.rar # Extract files with full path,目前就用过这个命令🤣

批量解压缩

很抱歉,unrar根本就不支持批量解压缩命令。是不是很失望,难道我只能手动输入每个包的名字?我觉得海星…目录下也就一百来个压缩包…anpai
秉持’Do Not Repeat Yourself‘的原则,你能很轻松的发现可以结合shell命令一句话搞定!提示一下,使用find命令。housailei

1
find ./ -name '*.rar' -exec unrar x {}\;

Linux中shell特殊变量

http://www.111cn.net/sys/linux/79750.htm

7. 持续更新中…

Comments

⬆︎TOP