Skip to content

Commit c45defa

Browse files
committed
feat: 🎉 initialize repo
0 parents  commit c45defa

File tree

7 files changed

+532
-0
lines changed

7 files changed

+532
-0
lines changed

README.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# cli-tips
2+
3+
`cli-tips` is a CLI tool that provides useful tips and commands for Linux users. It can be integrated as a Message of the Day (motd) to enhance your terminal experience.
4+
5+
## Features
6+
7+
- Displays helpful Linux command tips
8+
- Supports multiple languages
9+
- Easy to customize and extend
10+
11+
## Installation
12+
13+
Soon...
14+
15+
## Usage
16+
17+
Run the script to display a random tip:
18+
19+
```bash
20+
cli-tips
21+
22+
# Output:
23+
# Use 'uniq' to remove duplicate lines from a file
24+
```

Taskfile.yml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
version: "3"
2+
3+
tasks:
4+
debug:
5+
cmds:
6+
- TIPS_FOLDER=translations ./cli-tips.sh {{.CLI_ARGS}}
7+
silent: true

cli-tips.sh

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
3+
# Default tips folder
4+
if [ ! -n "$TIPS_FOLDER" ]; then
5+
TIPS_FOLDER="/usr/share/cli-tips"
6+
else
7+
TIPS_FOLDER="$TIPS_FOLDER"
8+
fi
9+
10+
# Default language is based on the user's environment
11+
if [ ! -n "$TIPS_LANGUAGE" ]; then
12+
LANGUAGE="$(echo $LANG | cut -d'_' -f1)"
13+
else
14+
LANGUAGE="$TIPS_LANGUAGE"
15+
fi
16+
17+
# Parse command-line options
18+
while [[ "$#" -gt 0 ]]; do
19+
case $1 in
20+
-l|--language|--lang)
21+
LANGUAGE="$2"
22+
shift
23+
;;
24+
--language=*|--lang=*)
25+
LANGUAGE="${1#*=}"
26+
;;
27+
*) echo "Unknown parameter passed: $1"; exit 1 ;;
28+
esac
29+
shift
30+
done
31+
32+
# Find the localized tips file
33+
localized_file=$(find "$TIPS_FOLDER" -type f -name "tips_${LANGUAGE}.txt" | head -n 1)
34+
35+
# If a localized file is found, use it; otherwise, fall back to English
36+
if [ -n "$localized_file" ]; then
37+
TIPS_FILE="$localized_file"
38+
else
39+
TIPS_FILE="$TIPS_FOLDER/tips_en.txt"
40+
fi
41+
42+
# Read tips from the file into an array
43+
mapfile -t tips < "$TIPS_FILE"
44+
45+
# Generate random index
46+
tip_index=$((RANDOM % ${#tips[@]}))
47+
48+
# Print random tip
49+
echo "${tips[$tip_index]}"

translations/tips_de.txt

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
Verwende `alias`, um eigene Befehle zu erstellen. Beispiel: `alias ll='ls -la'`
2+
Verwende `htop` zur Echtzeitüberwachung von Systemressourcen.
3+
Verwende `df -h`, um den verfügbaren Speicherplatz zu überprüfen.
4+
Der Befehl `grep -i` ermöglicht die Suche ohne Beachtung der Groß- und Kleinschreibung.
5+
Verwende `crontab -e`, um automatische Aufgaben zu planen.
6+
Der Befehl `du -sh *` hilft, die Größe aller Verzeichnisse im aktuellen Ordner anzuzeigen.
7+
Um schnell eine Datei zu finden, verwende `find /path/to/search -name filename`.
8+
Verwende `lsblk`, um alle Blockgeräte aufzulisten.
9+
Verwende `top`, um Systemprozesse zu überwachen.
10+
Verwende `ps aux`, um detaillierte Informationen zu laufenden Prozessen anzuzeigen.
11+
Verwende `kill` gefolgt von der PID, um einen Prozess zu beenden.
12+
Verwende `chmod +x script.sh`, um ein Skript ausführbar zu machen.
13+
Verwende `man command`, um das Handbuch für einen Befehl anzuzeigen.
14+
Verwende `tldr <command>`, um vereinfachte Handbuchseiten anzuzeigen.
15+
Verwende `cp -r`, um Verzeichnisse zu kopieren.
16+
Verwende `mv`, um Dateien zu verschieben oder umzubenennen.
17+
Verwende `rsync`, um Dateien schnell und zuverlässig zu synchronisieren.
18+
Verwende `wget`, um Dateien aus dem Internet herunterzuladen.
19+
Verwende `curl -O`, um Dateien von einer URL herunterzuladen.
20+
Verwende `tar -czvf archive.tar.gz directory`, um ein Verzeichnis zu komprimieren.
21+
Verwende `tar -xzvf archive.tar.gz`, um eine komprimierte Datei zu extrahieren.
22+
Verwende `sudo`, um Befehle mit Administratorrechten auszuführen.
23+
Verwende `cat`, um den Inhalt einer Datei anzuzeigen.
24+
Verwende `less`, um den Inhalt einer Datei seitenweise anzuzeigen.
25+
Verwende `more`, um den Inhalt einer Datei Bildschirm für Bildschirm anzuzeigen.
26+
Verwende `tail -f file`, um Änderungen an einer Datei in Echtzeit zu überwachen.
27+
Verwende `head -n 10 file`, um die ersten 10 Zeilen einer Datei anzuzeigen.
28+
Verwende `grep`, um in Dateien zu suchen.
29+
Verwende `cut`, um Abschnitte aus jeder Zeile einer Datei zu entfernen.
30+
Verwende `sort`, um Zeilen in einer Datei zu sortieren.
31+
Verwende `uniq`, um doppelte Zeilen aus einer Datei zu entfernen.
32+
Verwende `diff`, um Dateien zeilenweise zu vergleichen.
33+
Verwende `find /path -name filename`, um nach Dateien anhand ihres Namens zu suchen.
34+
Verwende `locate filename`, um Dateien schnell anhand ihres Namens zu finden.
35+
Verwende `updatedb`, um die von `locate` verwendete Datenbank zu aktualisieren.
36+
Verwende `alias`, um Befehlsabkürzungen zu erstellen.
37+
Verwende `export`, um Umgebungsvariablen festzulegen.
38+
Verwende `echo`, um Text im Terminal auszugeben.
39+
Verwende `which command`, um den Pfad eines Befehls zu finden.
40+
Verwende `history`, um die Befehls-Historie anzuzeigen.
41+
Verwende `clear`, um den Terminalbildschirm zu löschen.
42+
Verwende `sudo apt update`, um die Paketliste zu aktualisieren.
43+
Verwende `sudo apt upgrade`, um installierte Pakete zu aktualisieren.
44+
Verwende `sudo apt install <package>`, um Softwarepakete zu installieren.
45+
Verwende `sudo apt remove <package>`, um Pakete zu deinstallieren.
46+
Verwende `apt-cache search <package>`, um nach einem Paket zu suchen.
47+
Verwende `dpkg -l`, um alle installierten Pakete anzuzeigen.
48+
Verwende `dpkg -S filename`, um herauszufinden, zu welchem Paket eine Datei gehört.
49+
Verwende `snap install <package>`, um Snap-Pakete zu installieren.
50+
Verwende `snap list`, um installierte Snap-Pakete anzuzeigen.
51+
Verwende `snap remove <package>`, um ein Snap-Paket zu entfernen.
52+
Verwende `systemctl start <service>`, um einen Systemdienst zu starten.
53+
Verwende `systemctl stop <service>`, um einen Systemdienst zu stoppen.
54+
Verwende `systemctl restart <service>`, um einen Systemdienst neu zu starten.
55+
Verwende `systemctl enable <service>`, um einen Dienst beim Systemstart zu aktivieren.
56+
Verwende `systemctl disable <service>`, um einen Dienst beim Systemstart zu deaktivieren.
57+
Verwende `journalctl`, um Systemprotokolle anzuzeigen.
58+
Verwende `journalctl -xe`, um Protokolle in Echtzeit anzuzeigen.
59+
Verwende `lsof`, um geöffnete Dateien und Prozesse anzuzeigen.
60+
Verwende `ufw status`, um den Status der Firewall zu überprüfen.
61+
Verwende `ufw allow <port>`, um einen bestimmten Port durch die Firewall zuzulassen.
62+
Verwende `ufw deny <port>`, um einen bestimmten Port zu blockieren.
63+
Verwende `ip addr`, um Netzwerkschnittstellen anzuzeigen.
64+
Verwende `ifconfig`, um Netzwerkschnittstellen anzuzeigen und zu konfigurieren.
65+
Verwende `ping`, um die Netzwerkverbindung zu testen.
66+
Verwende `netstat`, um Netzwerkverbindungen und Routing-Tabellen anzuzeigen.
67+
Verwende `traceroute`, um die Route von Paketen zu einem Ziel zu verfolgen.
68+
Verwende `nmcli`, um Netzwerkverbindungen über die CLI zu verwalten.
69+
Verwende `hostname`, um den Systemhostnamen anzuzeigen oder festzulegen.
70+
Verwende `whoami`, um den aktuellen Benutzer anzuzeigen.
71+
Verwende `uptime`, um die Systembetriebszeit zu überprüfen.
72+
Verwende `dmesg`, um Kernel- und Systemmeldungen anzuzeigen.
73+
Verwende `lscpu`, um CPU-Architekturinformationen anzuzeigen.
74+
Verwende `free -h`, um den Speicherverbrauch des Systems anzuzeigen.
75+
Verwende `watch`, um einen Befehl in regelmäßigen Abständen auszuführen.
76+
Verwende `find /path -type f`, um nur nach Dateien zu suchen.
77+
Verwende `find /path -type d`, um nur nach Verzeichnissen zu suchen.
78+
Verwende `chmod`, um Datei-Berechtigungen zu ändern.
79+
Verwende `chown`, um den Eigentümer einer Datei zu ändern.
80+
Verwende `useradd`, um einen neuen Benutzer zu erstellen.
81+
Verwende `usermod`, um Benutzerkonten zu ändern.
82+
Verwende `passwd`, um das Passwort eines Benutzers zu ändern.
83+
Verwende `groupadd`, um eine neue Gruppe zu erstellen.
84+
Verwende `groupdel`, um eine Gruppe zu löschen.
85+
Verwende `groups`, um die Gruppen eines Benutzers anzuzeigen.
86+
Verwende `su`, um zu einem anderen Benutzer zu wechseln.
87+
Verwende `sudo su`, um root-Rechte zu erlangen.
88+
Verwende `id`, um Benutzer- und Gruppen-IDs anzuzeigen.
89+
Verwende `who`, um anzuzeigen, wer eingeloggt ist.
90+
Verwende `last`, um die Login-Historie anzuzeigen.
91+
Verwende `chroot`, um das Root-Verzeichnis zu ändern.
92+
Verwende `tar -czf`, um komprimierte Archive zu erstellen.
93+
Verwende `tar -xzf`, um komprimierte Archive zu extrahieren.
94+
Verwende `gzip`, um Dateien zu komprimieren.
95+
Verwende `gunzip`, um gzip-Dateien zu extrahieren.
96+
Verwende `bzip2`, um Dateien mit höherer Kompression zu komprimieren.
97+
Verwende `bunzip2`, um bzip2-Dateien zu extrahieren.
98+
Verwende `xz`, um Dateien mit noch höherer Kompression zu komprimieren.
99+
Verwende `unxz`, um xz-Dateien zu extrahieren.
100+
Verwende `md5sum`, um die MD5-Prüfziffer einer Datei zu überprüfen.
101+
Verwende `sha256sum`, um die SHA256-Prüfziffer einer Datei zu überprüfen.
102+
Verwende `ncdu`, um eine interaktive Festplattennutzungsanalyse durchzuführen.
103+
Verwende `lvm`, um logische Volumes zu verwalten.
104+
Verwende `docker`, um Container zu verwalten.
105+
Verwende `git`, um Versionskontrolle zu nutzen.
106+
Verwende `git clone <repository>`, um ein Repository zu klonen.
107+
Verwende `git status`, um den Status deines Git-Repositories zu überprüfen.
108+
Verwende `git add`, um Änderungen in den Staging-Bereich hinzuzufügen.
109+
Verwende `git commit`, um Änderungen zu committen.
110+
Verwende `git push`, um Änderungen zu einem Remote-Repository zu pushen.
111+
Verwende `git pull`, um Änderungen von einem Remote-Repository zu ziehen.
112+
Verwende `git merge`, um Zweige zusammenzuführen.
113+
Verwende `git log`, um die Commit-Historie anzuzeigen.

translations/tips_en.txt

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
Use 'alias' to create your own commands. Example: alias ll='ls -la'
2+
Use 'htop' for real-time monitoring of system resources
3+
Use 'df -h' to check available disk space
4+
The 'grep -i' command allows case-insensitive search
5+
Use 'crontab -e' to schedule automatic tasks
6+
The 'du -sh *' command helps see the size of all directories in the current folder
7+
To quickly find a file, use 'find /path/to/search -name filename'
8+
Use 'lsblk' to list all block devices
9+
Use 'top' to monitor system processes
10+
Use 'ps aux' to see detailed information about running processes
11+
Use 'kill' followed by a PID to terminate a process
12+
Use 'chmod +x script.sh' to make a script executable
13+
Use 'man command' to view the manual for any command
14+
Use 'tldr <command>' for simplified man pages
15+
Use 'cp -r' to copy directories
16+
Use 'mv' to move or rename files
17+
Use 'rsync' for fast and reliable file synchronization
18+
Use 'wget' to download files from the internet
19+
Use 'curl -O' to download files from a URL
20+
Use 'tar -czvf archive.tar.gz directory' to compress a directory
21+
Use 'tar -xzvf archive.tar.gz' to extract a compressed file
22+
Use 'sudo' to execute commands with superuser privileges
23+
Use 'cat' to display file content
24+
Use 'less' to view file content page by page
25+
Use 'more' to view file content one screen at a time
26+
Use 'tail -f file' to monitor changes in a file in real-time
27+
Use 'head -n 10 file' to view the first 10 lines of a file
28+
Use 'grep' to search within files
29+
Use 'cut' to remove sections from each line of a file
30+
Use 'sort' to sort lines in a file
31+
Use 'uniq' to remove duplicate lines from a file
32+
Use 'diff' to compare files line by line
33+
Use 'find /path -name filename' to search for files by name
34+
Use 'locate filename' to quickly find files by name
35+
Use 'updatedb' to update the database used by locate
36+
Use 'alias' to create command shortcuts
37+
Use 'export' to set environment variables
38+
Use 'echo' to print text to the terminal
39+
Use 'which command' to find the path of a command
40+
Use 'history' to view the command history
41+
Use 'clear' to clear the terminal screen
42+
Use 'sudo apt update' to update the package list
43+
Use 'sudo apt upgrade' to upgrade installed packages
44+
Use 'sudo apt install <package>' to install software packages
45+
Use 'sudo apt remove <package>' to uninstall packages
46+
Use 'apt-cache search <package>' to search for a package
47+
Use 'dpkg -l' to list all installed packages
48+
Use 'dpkg -S filename' to find which package owns a file
49+
Use 'snap install <package>' to install snap packages
50+
Use 'snap list' to list installed snap packages
51+
Use 'snap remove <package>' to remove snap packages
52+
Use 'systemctl start <service>' to start a system service
53+
Use 'systemctl stop <service>' to stop a system service
54+
Use 'systemctl restart <service>' to restart a system service
55+
Use 'systemctl enable <service>' to enable a service at boot
56+
Use 'systemctl disable <service>' to disable a service at boot
57+
Use 'journalctl' to view system logs
58+
Use 'journalctl -xe' to view logs in real-time
59+
Use 'lsof' to list open files and processes
60+
Use 'ufw status' to check firewall status
61+
Use 'ufw allow <port>' to allow a specific port through the firewall
62+
Use 'ufw deny <port>' to block a specific port
63+
Use 'ip addr' to show network interfaces
64+
Use 'ifconfig' to view and configure network interfaces
65+
Use 'ping' to test network connectivity
66+
Use 'netstat' to display network connections and routing tables
67+
Use 'traceroute' to trace the route packets take to reach a destination
68+
Use 'nmcli' to manage network connections via CLI
69+
Use 'hostname' to display or set the system hostname
70+
Use 'whoami' to display the current user
71+
Use 'uptime' to check system uptime
72+
Use 'dmesg' to view kernel and system messages
73+
Use 'lscpu' to display CPU architecture information
74+
Use 'free -h' to view system memory usage
75+
Use 'watch' to run a command at regular intervals
76+
Use 'find /path -type f' to search only for files
77+
Use 'find /path -type d' to search only for directories
78+
Use 'chmod' to change file permissions
79+
Use 'chown' to change file ownership
80+
Use 'useradd' to create a new user
81+
Use 'usermod' to modify user accounts
82+
Use 'passwd' to change the password of a user
83+
Use 'groupadd' to create a new group
84+
Use 'groupdel' to delete a group
85+
Use 'groups' to list the groups a user belongs to
86+
Use 'su' to switch to another user
87+
Use 'sudo su' to become the root user
88+
Use 'id' to display user and group IDs
89+
Use 'who' to see who is logged in
90+
Use 'last' to view login history
91+
Use 'chroot' to change the root directory
92+
Use 'tar -czf' to create compressed archives
93+
Use 'tar -xzf' to extract compressed archives
94+
Use 'gzip' to compress files
95+
Use 'gunzip' to decompress files
96+
Use 'bzip2' to compress files with higher compression rates
97+
Use 'bunzip2' to decompress bzip2 files
98+
Use 'xz' to compress files with even higher compression
99+
Use 'unxz' to decompress xz files
100+
Use 'md5sum' to check the MD5 checksum of a file
101+
Use 'sha256sum' to check the SHA256 checksum of a file
102+
Use 'ncdu' for an interactive disk usage analyzer
103+
Use 'lvm' for managing logical volumes
104+
Use 'docker' to manage containers
105+
Use 'git' for version control
106+
Use 'git clone <repository>' to clone a repository
107+
Use 'git status' to check the status of your git repository
108+
Use 'git add' to add changes to the staging area
109+
Use 'git commit' to commit changes
110+
Use 'git push' to push changes to a remote repository
111+
Use 'git pull' to pull changes from a remote repository
112+
Use 'git merge' to merge branches
113+
Use 'git log' to view commit history

0 commit comments

Comments
 (0)