linux-commands-guide — lh
Bilingual ES/EN Linux command reference for the terminal. 51 tools covered, keyword search across all of
them, one short command: lh. Like a cheat sheet that is always one keystroke away — and works over SSH.
Guía de comandos Linux bilingüe (español / inglés) para la terminal.
✨ Features
- 🌐 Bilingual — Spanish or English, picked from your locale (
--lang es|ento force it) - 🔍 Cross-tool search —
lh -s portfinds every command mentioning "port", in both languages - 📦 51 tools — awk, grep, find, git, docker, ssh, tmux, jq, ss, rsync, tar, systemctl, iptables and more
- ✅ Checked content — every entry is tested for both translations; examples are real, working commands
- 🔇 Pipe-friendly — plain text when piped (
lh tar | less), honoursNO_COLOR
📥 Installation
pip install linux-commands-guide
Or from source:
git clone https://github.com/serber1990/linux-commands-guide.git
cd linux-commands-guide
pip install -e .
🛠 Usage
lh <tool> # Show commands for a tool
lh -s <keyword> # Search across all tools
lh --lang en <tool> # Force English (or --lang es for Spanish)
lh --help # Help and the full tool list
lh --version
Examples
lh ssh
╔══════════════════════════════════════════════╗
║ SSH Options ║
╚══════════════════════════════════════════════╝
Command Description
──────────────────────────────────────────────────────────────────────────────────────────────
ssh user@host Connect to host as the given user
ssh -p <port> user@host Connect using the specified port
ssh -i key.pem user@host Use a private key for authentication
ssh -L 8080:localhost:80 user@host Local tunnel: forward local port 8080 to host port 80
ssh -R 9090:localhost:8080 user@host Remote tunnel: forward host port 9090 to local port 8080
…
lh -s port
╔══════════════════════════════════════════════════╗
║ Search: port ║
╚══════════════════════════════════════════════════╝
34 results
▶ docker
docker run -p 8080:80 image_name
Map host port to container port
▶ firewall-cmd
firewall-cmd --zone=zone --add-port=80/tcp --permanent
Permanently open TCP port 80
firewall-cmd --zone=zone --remove-port=80/tcp --permanent
…
🔧 Available Tools
| Tool | Description |
|---|---|
awk |
Column-based text processing |
cat |
Display and concatenate file contents |
chmod |
Change file permissions |
chown |
Change file owner and group |
crontab |
Periodic task scheduling |
curl |
Transfer data with URLs |
cut |
Extract sections from each line |
df |
Display disk space usage |
docker |
Docker container management |
du |
Display directory space usage |
descriptors |
File descriptors and redirections |
find |
Search for files and directories |
firewall-cmd |
Manage the firewalld firewall |
free |
Display system memory usage |
git |
Version control with Git |
grep |
Search for patterns in files |
head |
Display the beginning of a file |
htop |
Interactive process monitor |
ifconfig |
Network interface configuration (legacy) |
ip |
Modern network interface and routing management |
iptables |
Kernel firewall rule management |
jq |
Command-line JSON processor |
logs |
Important log file paths in Linux |
lsblk |
List block devices |
lsof |
List open files by processes |
lxc |
LXC container management |
nc |
TCP/IP Swiss army knife |
netstat |
Network connection statistics |
nmap |
Network and port scanner |
ps |
Information about running processes |
regex |
Regular expression patterns |
rsync |
Efficient file synchronization |
scp |
Secure file copy over SSH |
sed |
Stream text editor |
shortcuts |
Terminal keyboard shortcuts |
sort |
Sort lines of text |
ss |
Socket statistics (replaces netstat) |
ssh |
Secure Shell client |
system |
Basic system commands |
systemctl |
Manage services with systemd |
tail |
Display the end of a file |
tar |
File archiving and compression |
tee |
Read stdin and write to stdout and files |
tmux |
Terminal multiplexer |
top |
Real-time process monitor |
tr |
Translate or delete characters |
uname |
System and kernel information |
uniq |
Filter adjacent duplicate lines |
vim |
Modal terminal text editor |
watch |
Execute a command periodically |
xargs |
Build and execute commands from stdin |
🧪 Development
pip install -e ".[dev]"
ruff check .
pytest
Each tool is a small module in guia_linux/tools/ with a COMMANDS list. To add one, copy an existing
module, register it in guia_linux/tools/__init__.py, add it to the table above, and run pytest —
the test suite checks that every entry has both translations and that the README lists every tool.
See CHANGELOG.md for release notes.
📝 License
MIT — see LICENSE.
💬 Feedback
Open an issue or reach out via GitHub.
🌐 Connect
Release files for linux-commands-guide 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linux_commands_guide-2.1.0.tar.gz | 44.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linux_commands_guide-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.6 kB
Release files / linux_commands_guide-2.1.0.tar.gz
| Download URL | linux_commands_guide-2.1.0.tar.gz |
|---|---|
| Size | 44.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
152f5b7c4d0b77b81b98bf636be7887036132bcd082ad2edf3118e875d94afd9
|
|
BLAKE2b-256 checksum How to use checksums |
0e74c1cba779063da9476d727edd6c1de2dfc8efe200609dba202e2135a50238
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / linux_commands_guide-2.1.0-py3-none-any.whl
| Download URL | linux_commands_guide-2.1.0-py3-none-any.whl |
|---|---|
| Size | 62.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8fedab7ef6dfe3ca17f090cd332a10bfeb6e4508a68fd0c35b0375bcf5d9448a
|
|
BLAKE2b-256 checksum How to use checksums |
dc2e2d4459f81712e90086869ab8d51dec868b57f93d91be3fed80a12b27f85d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|