Background jobs and inherited file descriptorsWhy & backgrounds execution but doesn't stop output from flooding your terminal.Redowan Delowar·Mar 28·3 min readFollowShellUnix
Dynamic shell variablesLearn variable indirection in Bash with ${!var} syntax. Build context-aware configs, function dispatch, and dynamic variable name resolution.Redowan Delowar·Jan 11·3 min readFollowShellUnixTILCLI
Running only a single instance of a processPrevent multiple script instances with file locking. Use flock in Bash, fcntl in Python, and syscall.Flock in Go for single-instance processes.Redowan Delowar·Dec 31·3 min readFollowShellUnixPythonGo
SSH sagaComplete SSH setup guide: key pairs, authorized_keys, sshd_config, ssh_config, known_hosts, agent forwarding, and hardening for secure remote access.Redowan Delowar·Dec 17·4 min readFollowShellUnixNetworkingSecurity
Discovering direnvAutomate environment variables per directory with direnv. Load .envrc files on entry, unload on exit. Integrate with Python venv and uv workflow.Redowan Delowar·Oct 2·6 min readFollowTILShellUnixCLI
Bash namerefs for dynamic variable referencingMaster Bash namerefs with declare -n to create dynamic variable references. Build generic functions for arrays and associative arrays without eval.Redowan Delowar·Sep 20·5 min readFollowShellUnixTILCLI
Shell redirection syntax soupComplete guide to Bash redirection. Master stdout, stderr, pipes, tee, file descriptors, and shorthand syntax with practical examples for every case.Redowan Delowar·Sep 12·4 min readFollowShellUnix
HTTP requests via /dev/tcpMake raw HTTP requests with Bash's /dev/tcp file descriptor. Build health check scripts without curl or wget using TCP socket connections.Redowan Delowar·Aug 8·2 min readFollowTILShellUnixNetworking
The *nix install commandReplace mkdir, cp, and chmod with a single install command. Copy files, create directories, and set permissions in one step with GNU coreutils.Redowan Delowar·Jul 28·2 min readFollowShellUnixTILCLI
Here-doc headacheAvoid here-doc pitfalls when running remote commands via SSH. Learn variable expansion gotchas and simpler alternatives for deployment scripts.Redowan Delowar·Jul 19·3 min readFollowShellUnixDevOpsGitHub
I kind of like rebasingMaster git rebase for cleaner commit history. Learn interactive rebasing, squashing commits, and rebasing feature branches onto main with practical examples.Redowan Delowar·Jun 18·6 min readFollowgitShellUnixGitHub
Pesky little scriptsOrganize custom scripts with comma-prefixed naming. Improve tab completion and eliminate clutter by prefixing script names with special characters.Redowan Delowar·Oct 29·2 min readFollowShellUnixCLI
Dotfile stewardship for the indolentManage dotfiles across devices with GNU Stow. Symlink configuration files from git repo to home directory with simple, idempotent commands.Redowan Delowar·Sep 27·4 min readFollowShellUnixTILCLI
Using DNS record to share text dataShare data via DNS TXT records using dig and base64 encoding. Learn limitations, security concerns, and practical use cases for DNS tunneling.Redowan Delowar·Jul 17·2 min readFollowShellUnixTILNetworking
Unix-style pipelining with Python's subprocess moduleBuild Unix-style command pipelines in Python using subprocess.run with stdout piping for efficient process chaining and output capture.Redowan Delowar·Jul 14·5 min readFollowPythonTILShellUnix
Implementing a simple traceroute clone in PythonBuild a traceroute clone in Python using UDP and ICMP sockets to trace network packet routes and measure hop latency with TTL manipulation.Redowan Delowar·Jun 1·6 min readFollowPythonNetworkingShellUnix
Fixed-time job scheduling with UNIX 'at' commandSchedule one-time commands with UNIX at command. Learn job queuing, remote scheduling via HTTP API, and managing atd/atrun daemons.Redowan Delowar·May 14·7 min readFollowShellUnixJavaScriptNetworking
Associative arrays in BashLearn how to use associative arrays in Bash to create key-value pairs, mimic dictionaries, and manage complex data structures in shell scripts.Redowan Delowar·May 3·4 min readFollowShellUnixTILData Structures
Process substitution in BashUse process substitution <() to treat command output as files in Bash. Compare directories, process data, and avoid temporary files with this technique.Redowan Delowar·Apr 30·6 min readFollowShellUnixTIL
Dynamic menu with select statement in BashBuild interactive CLI menus with Bash select statement. Create user-friendly command-line tools with option selection and function dispatch.Redowan Delowar·Apr 29·3 min readFollowShellUnixTILCLI
Simple terminal text formatting with tputFormat terminal output with tput instead of ANSI codes. Set colors, bold text, underlines, and backgrounds with simple commands in shell scripts.Redowan Delowar·Apr 23·3 min readFollowShellUnixTILCLI
Tinkering with Unix domain socketsBuild Unix domain socket servers and clients with Python and socat. Access Docker API via UDS, create HTTP servers, and optimize inter-process communication.Redowan Delowar·Mar 11·7 min readFollowPythonShellUnixNetworking
Colon command in shell scriptsUse the colon : command as a no-op in Bash scripts for cleaner debug output with -x flag. Alternative to echo for section markers and comments.Redowan Delowar·Dec 23·2 min readFollowShellUnixTILCLI
Auditing commit messages on GitHubAutomate commit message validation with GitHub Actions. Enforce refs and closes patterns to maintain clean Git history and link commits to issues.Redowan Delowar·Oct 6·5 min readFollowGitHubDevOpsShellUnix
To quote or not to quoteMaster shell quoting rules: single vs double quotes, backticks vs $(). Learn when to quote variables to prevent spaces and special characters from breaking commands.Redowan Delowar·Oct 5·3 min readFollowShellUnix
Returning values from a shell functionUnderstand how return values work in Bash functions. Learn exit codes, status evaluation patterns, and proper boolean returns with true/false commands.Redowan Delowar·Sep 25·3 min readFollowShellUnixTIL
Distil git logs attached to a single fileView git commit history for a single file with git log --follow. Learn to track multiple files with xargs and concatenate their commit logs.Redowan Delowar·Jun 21·2 min readFollowShellUnixGitTIL
Health check a server with 'nohup $(cmd) &'Run background health checks in CI with nohup and ampersand. Test server readiness with retry loops and automatic cleanup on success or failure.Redowan Delowar·Apr 18·2 min readFollowShellUnixTILDevOps
Don't add extensions to shell executablesWhy executable scripts shouldn't have extensions. Learn GitHub's scripts-to-rule-them-all pattern for language-agnostic project automation.Redowan Delowar·Nov 23·1 min readFollowShellUnixTILCLI
Use 'command -v' over 'which' to find a program's executableReplace which with command -v for POSIX-compliant executable lookup. Learn why command -v is the portable alternative for finding program paths.Redowan Delowar·Nov 16·1 min readFollowShellUnixTILCLI