本文转载自 https://www.ibm.com/developerworks/cn/linux/l-cn-screen/ 原文随着 IBM Developer 改版已经找不到了,我从 Web Archive 上把他扒回来了。 作者 田强

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。

终于有一天,我的 vscode 因为装了大量插件他终于速度慢的我有点无法忍受了。

尤其是在我这台可怜的 Surface Go 2 上,每次打开都慢的要命不说,使用起来也非常卡顿。

偶然听说 Neovim 这个现代化的 Vim 编辑器,并且有良好的插件生态,所以我打算尝试一下。

最近在做一个工具,估计很快就能和大家见面了。

这是我第一次用 Go 写 CLI 工具,功能意外的还蛮多蛮复杂,其中涉及到一些 Linux 运维的工作,包括对网络接口进行操作,对 IPtables 的维护等。

不可避免的,这个过程中需要调用 Syscall,Go 的 Syscall 不像 C 那样直接,虽然 Go 提供了 golang.org/x/sys/unix 包,其中打包了一些常用的 Syscall,但就我们的案例而言需要去调用裸 Syscall,因此研究了一下 Go 调用 Syscall 的正确打开方式。

旧版 RHEL 能得到 RPM,但新版本系统不再提供了怎么办呢?

除非你使用的软件是专有软件,没有提供 SRPM,否则最好使用 SRPM 在新系统下重新打包。这样可以保证编译时使用新版本的编译器和动态链接库,以便避免一些各种依赖版本带来的问题。

甚至你可以在原包基础上升级软件版本。

我们如何在当前的 PC 上模拟一个大端序系统呢?当然你可以用 QEMU 来完全模拟一个其他架构的计算机,但显然这样的效率比较低。其实可以利用 QEMU-User 来实现 chroot 进入一个与宿主机完全不同架构的环境,这是依靠 QEMU-User 与 binfmt 实现的。