terminal

Laurence Tratt: Better Shell History Search

TLDR: Laurence Tratt discusses enhancing shell command efficiency by improving history search with tools like fzf and skim. By using Ctrl-r combined with fuzzy matching, users can quickly find previously run commands, increasing productivity. Tratt shares custom modifications to display relevant command execution times instead of meaningless identifiers, ultimately promoting smarter shell usage and significant time savings while working in Unix environments.

https://tratt.net/laurie/blog/2025/better_shell_history_search.html

List of Terminal Tools (A-Z)

A-Z list of terminal tools for various tasks, including monitoring, API clients, browsers, text editors, downloaders, and more. Tools like act3, adguardian-term, and aerc offer functionalities from GitHub monitoring to email management. Features cover utilities for encryption, task management, file viewing, and more, continuously updated for user convenience.

https://terminaltrove.com/list/

Standards for ANSI Escape Codes

ANSI escape codes improve terminal usability but lack complete standardization, making troubleshooting challenging. This overview discusses their definition, significant standards like ECMA-48 and terminfo, and varying approaches by applications in handling these codes, raising questions about a unified set of escape codes and the value of terminfo. The landscape remains fragmented, similar to early web standards, with potential for future improvements in terminal features through clearer guidelines.

https://jvns.ca/blog/2025/03/07/escape-code-standards/

Why “alias” Is My Last Resort for Aliases

Using scripts in $PATH instead of alias for shortcuts (like g=git) enhances flexibility, immediate updates, programming language choice, complexity management, and portability. While aliases are quicker and can leverage special shell features, scripts are preferred for their versatility and maintenance ease. Ultimately, both serve similar purposes but scripts are my default choice.

https://evanhahn.com/why-alias-is-my-last-resort-for-aliases/

Tmux

Tmux is a terminal multiplexer for managing multiple sessions. You can detach and reattach to sessions easily. Key concepts include sessions, windows (like tabs), and panes (terminal splits). Basic commands include creating sessions, window switching, and pane management, effectively enhancing productivity with minimal commands. Key commands are summarized for quick reference.

https://davidwinter.dev/2019/03/14/tmux-the-essentials

The Xonsh Shell — Python-powered Shell.

Xonsh is a modern, cross-platform shell that combines Python 3.6+ with shell commands, allowing seamless integration of both. It offers features like shell command combining, extensions (xontribs), customizable prompts, and extensive installation methods (PyPi, Conda, AppImage, Docker). It’s suitable for users of all skill levels and supports major operating systems like Linux, OSX, and Windows.

https://xon.sh/

Atuin

Atuin v18: a magical shell tool for syncing, searching, and backing up shell history. Features include end-to-end encryption, data import, and extra context storage. Open source, supports multiple shells, fast and reliable, easy setup, and optional cloud sync. 20K GitHub stars, growing community.

https://atuin.sh/

How to Add a Directory to Your PATH

TLDR: How to add a directory to your PATH:

  1. Identify your shell (bash, zsh, fish).
  2. Find the config file (~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish).
  3. Determine the directory to add, usually where a program is installed.
  4. Edit your config file:
    • For bash: export PATH=$PATH:/path/to/dir
    • For zsh: path=($path /path/to/dir)
    • For fish: set PATH $PATH /path/to/dir
  5. Restart your terminal or run a new instance of your shell to apply changes.

Common issues:
– Wrong program runs: Add directory to the front of PATH.
– Program not run from the shell: Update PATH differently for non-shell execution.
– Duplicate PATH entries: Check for existing entries before adding.
– History loss after updating: Use source ~/.bashrc instead of starting a new shell.

For fish shell: fish_add_path can add directories but may complicate future removals.

https://jvns.ca/blog/2025/02/13/how-to-add-a-directory-to-your-path/

Some Terminal Frustrations

Survey of 1600 terminal users revealed frustrations around:

  • Syntax Memory (115): Forgetting CLI tool syntax and shortcuts.
  • Switching Terminals (91): OS and version discrepancies complicate usage.
  • Color Issues (85): Inconsistent color schemes and readability problems.
  • Keyboard Shortcuts (84): Inconsistencies across OS platforms hinder efficiency.
  • Copy/Paste Challenges (75): Issues with copy methods, multiple clipboards.
  • Discoverability (55): Difficulty finding tools and features.
  • Learning Curve (44): Terminal complexity hampers learning.
  • History Problems (42): Limitations and retrieval issues with command history.
  • Bad Documentation (37): Lack of clarity and examples in resources.
  • Scrollback Issues (36): Problems with data overflow and resizing.
  • Outdated Feel (33): Frustration about legacy systems and features.
  • Shell Scripting (32): Challenges with POSIX scripting complexities.

122 respondents reported no significant issues. Overall, users find terminal usage complex and frustrating due to various systemic issues, despite experience.

https://jvns.ca/blog/2025/02/05/some-terminal-frustrations/

Scroll to Top