The jamescherti/bash-stdops project is a collection of helpful Bash scripts that simplify various operations, including file searching, text replacement, and content modification.
I use these scripts in conjunction with text editors like Emacs and Vim to automate tasks, including managing Tmux sessions, replacing text across a Git repository, securely copying and pasting from the clipboard by prompting the user before executing commands in Tmux, fix permissions, among other operations.
The bash-stdops Script Collection Overview
Files, Paths, and Strings
- walk: Recursively lists files from the specified directory.
- walk-run: Executes a command on all files.
- sre: Replaces occurrences of a specified string or regular expression pattern, with support for case-insensitive matching and regular expressions.
- git-sre: Executes
sre
at the root of a Git repository to replace text within files. - path-tr, path-uppercase, path-lowercase: Processes a file path to convert the filename to uppercase or lowercase.
- autoperm: Sets appropriate permissions for files or directories (e.g., 755 for directories).
- path-is: Prints the path and exits with status 0 if the file is binary or text.
Git
- git-dcommit: Automates the process of adding, reviewing, and committing changes in Git.
- git-squash: Squashes new Git commits between the current branch and a specified branch.
SSH
- esa: Manages the SSH agent, including starting, stopping, adding keys, and executing commands.
- sshwait: Waits for an SSH server to become available on a specified host.
Tmux
- tmux-cbpaste: Pastes clipboard content into the current tmux window with user confirmation.
- tmux-run: Executes a command in a new tmux window. If inside tmux, it adds a new window to the current session; otherwise, it creates a window in the first available tmux session.
- tmux-session: Attaches to an existing tmux session or creates a new one if it doesn’t exist.
X11/Wayland
- xocrshot: Captures a screenshot, performs OCR on it, displays the extracted text, and copies it to the clipboard.
Misc
- haide: Uses AIDE to monitor the file integrity of the user’s home directory.
- cbcopy, cbpaste, cbwatch: Manages clipboard content by copying, pasting, or monitoring for changes.
- outonerror: Redirects the command output to stderr only if the command fails.
- over: Displays a notification once a command completes execution.
- largs: Executes a command for each line of input from stdin, replacing
{}
with the line. - xargs-loop: Similar to
xargs
but allows placeholder substitution and processes each line individually.
Conclusion
The jamescherti/bash-stdops scripts provide a variety of tasks, including file manipulation, Git management, and SSH automation, improving efficiency and usability.