最初的想法是将终端中出错的的命令输出记录下来,后来就想到可以一步到位放入剪切板中,便于分享给他人或者在网上搜索。也许没什么用处,但是让我熟悉了 TypeScript 与 Node.js 中子进程相关的 API。原理简单到发指:读取终端命令历史文件,找到上次运行的命令,重新运行命令,将输出通过管道操作符(|
)输出到剪切板,只支持一些简单的同步命令。
欢迎使用并提出意见建议。
1
henryhu 2019-05-10 00:03:50 +08:00 2
多数命令重复执行,结果不一样了,咋整?
|
2
jamesxu 2019-05-10 06:36:31 +08:00 via iPhone 1
没啥意义,直接 > 输出到文件
|
3
Imr 2019-05-10 08:12:01 +08:00 via iPhone 1
v 友的创意总能让人“大开眼界”
|
4
InternetExplorer 2019-05-10 08:12:49 +08:00 via Android 2
重新运行命令………你可真是个小机灵鬼.jpg
|
5
InternetExplorer 2019-05-10 08:15:55 +08:00 via Android 1
建议弄个命令白名单,不是什么命令都适合重新运行的
|
6
henryhu 2019-05-10 08:26:07 +08:00 1
楼主,tee 命令了解一下,命令结果终端输出,同时输出到文件,例如:ifconfig | tee ifconfig.log
|
7
JackieMe 2019-05-10 08:42:15 +08:00 via Android 1
xclip 好像就是干这个的?
|
8
Sainnhepark 2019-05-10 08:46:59 +08:00 via Android 1
看到这个贴突然想问个问题,zsh 有没有什么办法在不重新运行上一个命令的情况下,打印上一个命令的输出?
|
9
dongin 2019-05-10 10:25:07 +08:00 2
mac 下不是有 pbcopy/pbpaste 么?
|
10
omph 2019-05-10 12:46:33 +08:00 1
直接用 shell 做不更方便吗?
history -n -1 | xargs sh -c | xclip |
11
chunqiuyiyu OP @henryhu
@jamesxu @Imr @InternetExplorer @henryhu 简单的练习项目,只是为了熟悉 TypeScript 与 Node.js 中 child_process 的使用,没想那么多。 |
12
chunqiuyiyu OP |
13
chunqiuyiyu OP @Sainnhepark 没有方法。
|
14
omph 2019-05-10 13:28:09 +08:00 1
@Sainnhepark [Save all the terminal output to a file - Unix & Linux Stack Exchange]( https://unix.stackexchange.com/questions/200637/save-all-the-terminal-output-to-a-file)
|
15
lululau 2019-05-10 13:33:34 +08:00
command | tee >(pbcopy or xclip)
|
16
lululau 2019-05-10 13:36:10 +08:00
如果只是偶尔想拷贝一下先前执行过的命令的输出的话,如果用 tmux 就不用说了,如果用 iTerm2 则可以使用 AppleScript 拿到 iTerm2 pane 的文本内容,3.3.0 好像开始支持 Python 了,但是不知道有没有这个 API
|
17
Cabana 2019-05-10 13:45:16 +08:00
瞬间先到了 rm -rf ./
|
19
mooncakejs 2019-05-10 14:28:31 +08:00
『重新运行命令』好可怕。
cd logs rm -rf * ---- cd / Knao |
20
fuzhuo233 2019-05-16 22:47:15 +08:00
macOS 上 cat package.json | pbcopy; 粘贴回来 pbpaste > out
cygwin 上 cat package.json > /dev/clipboard Linux 上我没用过貌似用 xclip 可以 cat package.json | xclip; macOS 一般在 vim 上按"+用加号寄存器来复制粘贴就行了… |