小工具专题

本专题收集趁手的小工具,并附使用技巧。尽量小和简单,尽量用完即走,简单到不必单独成篇,集中放这里;复杂的工具,就单独开一篇不放这里。可能比较多是命令行工具也不一定。

另外开一篇常用软件列表,只列举优缺点对比不展开用法,所以某些工具可能会有重叠,但内容侧重点不同。

只有标题的,先占坑慢慢填。

跨平台

Web API 工具

curl

Postman

Click (Python 包)

Linux

Terminal mutiplexer

multiplexer 电子上是指多路复用器,当前语境则指 Linux 上的终端多会话管理器。

screen

Screen 是 GNU 项目中的一部分,一般 Linux 发行版本应该都有自带。其主页上的介绍是:

” Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.”

可以简单看作一个远程会话 / 窗口管理器。

高级技巧我总是记不住,一般只用到它的主要特性: 断开 ssh 连接之后,远程端的程序继续运行,需要时再重新连上继续工作。

更多技巧,大家自行了解:IBM 开发者网络上的介绍

如果需要多个窗口, Byobu 会更方便好用,定制化更高。 (Byobu 是 对 tmux / Screen 的强化,需要额外安装,我有权限的服务器一般都会装上)

入门使用,以下几个命令已经基本够用了:

1
$ screen

直接输入 screen ,会启动一个执行 shell 的会话。你可以执行任意 shell 程序,就像在 ssh 窗口那样。在窗口中键入 exit 退出该窗口,如果退出会话的唯一窗口,screen 会话也会退出,否则 screen 自动切换到前一个窗口。

1
C-a, d (即Ctrl键+a键,之后再按下d键)

暂时断开 (detach) 当前会话,之后再重新连接 (attach) 。

1
$ screen –ls

列出当前所有会话

1
$ screen –r [pid | session name]

重新连接会话。如果只有一个会话,参数可以留空。如果有多个会话,可以通过上一个命令查看 pid 或 session name(需要另外命令指定)。

1
$ screen –R [pid | session name]

-r 作用一样,但是如果当前没有可用会话,会自动新建一个。

Tmux & byobu

Tmux 的官方介绍写着

tmux is a terminal multiplexer.

What is a terminal multiplexer? It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. And do a lot more.

用法可以看这篇介绍:Linux终端多窗口工具tmux

看起来 Tmux 比 screen 强不是一丁半点,但要自己折腾的地方太多了,我连screen的命令还经常忘,何况这个。


所以我最后选择了 byobu (日语屏风的罗马音)。

Byobu is a Japanese term for decorative, multi-panel screens that serve as folding room dividers. As an open source software project, Byobu is an elegant enhancement of the otherwise functional, plain, practical GNU Screen. Byobu includes an enhanced profile, configuration utilities, and system status notifications for the GNU screen window manager as well as the Tmux terminal multiplexer. Byobu is developed and released as free software under the GPLv3.

介绍里第一句说,byobu 是个日语词,是一种 multi-panel 的 screens(英语里有屏风的意思,不过常见屏风一般是单块,而日式屏风往往是多折的),所以 byobu 其实不是新东西,它本质上是一个 tmux 的 frontend ,是一个 tmux 加上一堆设计好的配置和一些小工具(配置工具,系统状态显示器),好让 tmux 不那么复杂难用。

执行

1
2
3
$ byobu --help
usage: tmux [-28lquvV] [-c shell-command] [-f file] [-L socket-name]
[-S socket-path] [command [flags]]

就暴露真身了。

虽是这样说,byobu 除了能执行 tmux 本身的功能之外,还是给懒人提供了方便的,最简单的就是直接$ byobu ,然后通过F2~F9就可以执行绝大多数功能:

按键 功能
F2 Create a new window
F3 Move to the previous window
F4 Move to the next window
F5 Refresh all status notifications
F6 Detach from the session and logout
Shift-F6 Detach from the session, but do not logout
F7 Enter scrollback/search mode
F8 Rename the current window
F9 Launch the Byobu Configuration Menu
F12 GNU Screen’s Escape Key
Alt-Pageup Scroll back through this window’s history
Alt-Pagedown Scroll forward through this window’s history
Shift-F2 Split the screen horizontally
Ctrl-F2 Split the screen vertically
Shift-F3 Move focus to the next split
Shift-F4 Move focus to the previous split
Shift-F5 Collapse all splits
Ctrl-F5 Reconnect any SSH/GPG sockets or agents
Shift-F12 Toggle all of Byobu’s keybindings on or off

这些功能中,最常用的就是F2 新建,F3 / F4 前后切换,还有 F6 detach了。如果像我习惯了screen,也可以用 Ctrl + a, d 来 detach。

最后提一下,tmux 和 byobu 在 Linux 界两大包管理器 yum 和 apt-get 的源里都有,直接安装即可。

Windows


知识共享 “署名-非商业性使用-相同方式共享” 4.0 (CC BY-NC-SA 4.0)”许可协议
本文为本人原创,采用知识共享 “署名-非商业性使用-相同方式共享” 4.0 (CC BY-NC-SA 4.0)”许可协议进行许可。
本作品可自由复制、传播及基于本作品进行演绎创作。如有以上需要,请留言告知,在文章开头明显位置加上署名(Jayce Chant)、原链接及许可协议信息,并明确指出修改(如有),不得用于商业用途。谢谢合作。
详情请点击查看协议具体内容。