• 如何在终端中显示程序的实时输出 -- stream buffering

    // main.swift
    import Foundation
    
    print(123)
    sleep(1)
    print(456)
    sleep(1)
    print(789)
    

    上面是一段可以执行至少两秒钟的 Swift 代码, 我们可以在命令行中以 nohup swift main.swift &>output.txt & 命令执行, 然后在另一个命令行窗口中使用 tail -f output.txt 命令实时查看文件内容变化. 按照我们直觉, 程序会在执行的第 0 秒打印 123, 第 1 秒打印 456, 第 2 秒打印 789, 但是结果是直到第 2 秒一次性打印了所有内容, why?

  • ls 利器 - lsd 使用及自定义字体

    在终端中查看当前目录文件结构几乎是我们日常在终端中最频繁的操作了, 默认的 ls 命令功能很丰富, 但是不够美观直观, 插件 lsd 可以为 ls 命令中的不同类型文件或文件夹添加不同颜色, 并且使用对应的图标进行标识, 简洁直观.

  • Tmux 使用

    Tmux 是一款终端复用工具, 相比起 Terminal 或 iTerm, Tmux 可以使用快捷键方便的切换会话窗口, 保存 & 恢复会话, 以及方便地进行远程会话.

  • 使用 ssh 协议连接远程主机

    ssh 是连接远程主机的一种协议, ssh 认证有三种模式:

    • 密码认证
    • 证书认证
    • 公钥认证

    默认的认证顺序: publickeygssapi-keyexgssapi-with-micpassword

    本文主要尝试讨论 ssh 公钥认证 流程