Skip to content

Unix Tools

Version History
Date Description
Jun 21, 2021 Update
Dec 23, 2020 extracted from the summary doc

Alternative UNIX commands

Old wine in new bottles. Those are moden rewrite of common commands.

Essential Commands

The following repos have the essential UNIX commands like ls, cat, demsg. I don’t think it is a good idea to blindly read the source code. Rather, I think they should be used as references whenever we need to check how something is implemented.

Large Collections

  • BusyBox
    • This is a software suite that provides several Unix utilities in a single executable file.
    • It has a large collection of commands. It probably has everything that GNU coreutils has. BuysBox is targeting embedded environment.
  • GNU Coreutils
    • This repo has the most used commands such as cp, dd, cat.
    • See the full list here.
  • GNU binutils: gas, static linker, and more
    • This one has a set of programming tools for creating and managing binary programs, object files, libraries, profile data, and assembly source code.
    • See the full list here
  • util-linux
    • This is a standard package distributed by the Linux Kernel Organization for use as part of the Linux operating system.
    • See the full list here.
  • FreeBSD

Network Commands

  • iperf3 is a TCP, UDP, and SCTP network bandwidth measurement tool
  • arping
  • tcpdump
  • OpenSSH is our ssh!
  • scapy: Python-based interactive packet manipulation program & library. Very neat
  • tcpstat: C-based simple tool that could dump network traffic. Seems using pcap interface, the one used by tcpdump?
  • Also checkout FreeBSD as it has tools like ifconfig, if and many more

Misc

  • Tools

    • tmux
    • git
    • FFmpeg
      • FFmpeg project is famous for its clean and neat C code.
      • This project is used by a lot online video service companies
    • CRIU: Checkpoint and Restore in Userspace
      • The reason I love this repo is because it has so many interesting pieces on how to interact with kernel, save states, and restore them. In addition, it shows how to properly use many less well known syscalls.
    • GRUB2: bootloader
      • Learn how modern bootloader works.
      • Detailed analysis of Linux booting sequence (how it transit from real-mode to protected mode, and finally to 64-bit mode, how to navigate Linux source code etc.)
    • strace
      • System call tracer at userspace
      • I’ve designed one for LegoOS in kernel space
  • Editors

Libraries