LinuxTeck - Linux Sysadmins Community - RHEL, CentOS, Ubuntu, Debian & Rocky Linux
92 subscribers
325 photos
2 videos
1 file
466 links
LinuxTeck is a high-quality tutorial site dedicated to beginners, system administrators, developers, and everyone interested in learning about Linux. https://www.linuxteck.com/
Download Telegram
Quick Linux Tip #42

https://www.linuxteck.com/linux-tips/tee-command-linux/

Tip Question: How do I watch a long command run AND save its complete output?

Try: ./deploy.sh 2>&1 | tee -a deploy.log

Info: tee splits stdout to both terminal and file. 2>&1 redirects stderr into stdout first to capture error logs. -a appends output instead of overwriting.

Examples:
$ ./script.sh 2>&1 | tee output.log # Overwrite log with output + errors
$ make 2>&1 | tee build.log | grep -E 'error|warning' # Log all, filter display
$ sudo apt upgrade 2>&1 | tee -a /var/log/upgrades.log # Append system upgrade log

Note: Without 2>&1, tee only captures standard output and misses error messages. Use tee -a when running repeated scripts to maintain a history.

Follow @LinuxTeck for more #LinuxTips
❤1
Quick Linux Tip #43 https://www.linuxteck.com/linux-tips/linux-tips-sed-extract-text-between-markers/

Question: How do I extract config values from between BEGIN and END markers?

Try: sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' /etc/ssl/certs/server.crt

Info: sed -n suppresses automatic printing. The pattern '/START/,/END/p' prints all lines between two matching delimiters (inclusive).

Examples:
$ sed -n '/^\[database\]/,/^$/p' config.ini # Extract section until empty line
$ awk '/BEGIN/,/END/' file.txt # Equivalent using awk
$ sed -n '/ERROR/,+5p' logfile # Print ERROR line plus next 5 lines

Note: Range matching /X/,/Y/ works line-by-line from first match of X to next match of Y. The +N relative line count syntax is a GNU sed extension.

Follow @LinuxTeck for more #LinuxTips click here- https://www.linuxteck.com/linux-tips/
Your DevOps Skills Aren’t Complete Without Networking
Caption:
A lot of “application problems” are actually networking problems. This guide covers a practical approach to troubleshooting DNS, routes, ports, firewalls, SSH, IPv6, and cloud networking on Linux.
Read the guide → https://www.linuxteck.com/networking-skills-for-devops/
#LinuxTeck
Quick Linux Tip #44 : https://www.linuxteck.com/linux-tips/linux-tips-check-tcp-packet-loss-ss/

Question: My connections feel unreliable. How do I check for hidden packet loss?

Try: ss -ti | grep -A3 'ESTAB' | head -20

Info: ss -ti dumps TCP internal metrics. Look for retrans:X/Y (X current retransmits, Y total) and rtt (round-trip time). Non-zero retransmits signal packet loss or network congestion.

Examples:
$ ss -ti state established '( dport = :443 )' # Inspect HTTPS connections
$ watch -n 1 'ss -s' # Monitor overall socket summary
$ netstat -s | grep -i 'retrans\|reset' # Global TCP retransmission counters

Note: When retransmissions occur, cwnd (congestion window) shrinks automatically. Persistent retransmits across multiple endpoints point to network hardware issues rather than application bugs.

Follow @LinuxTeck for more #LinuxTips click here : https://www.linuxteck.com/linux-tips/
Quick Linux Tip #45 - https://www.linuxteck.com/linux-tips/fix-windows-file-encoding-linux/

Question: My Windows files have wrong encoding on Linux. How do I fix them all?

Try: find . -name '*.txt' -exec sh -c 'iconv -f WINDOWS-1252 -t UTF-8 "$1" -o "$1.utf8" && mv "$1.utf8" "$1"' _ {} \;

Info: iconv converts text encodings (-f=from, -t=to). Wrapping in sh -c enables chaining iconv and mv per file. The _ acts as a placeholder for $0 in the subshell.

Examples:
$ iconv -f UTF-16 -t UTF-8 windows.txt -o linux.txt # Convert single file
$ iconv -l | grep -i utf # List all supported UTF encodings
$ dos2unix *.txt # Fix CRLF line endings only

Note: Always test on a backup copy first! Use iconv -l to see all supported charsets. Use dos2unix if you only need to fix line endings (CRLF to LF).

Follow @LinuxTeck for more #LinuxTips click here : https://www.linuxteck.com/linux-tips/
Quick Linux Tip #46 : https://www.linuxteck.com/linux-tips/lvm-snapshot-rollback-linux/

Question: I'm about to make risky changes. How do I create a rollback point?

Try: sudo lvcreate --snapshot --name pre_upgrade_snap --size 10G /dev/ubuntu-vg/root

Info: LVM snapshots freeze filesystem state instantly. They store only changed blocks post-creation, making 10G ideal for temporary changes. Merge to rollback.

Examples:
$ sudo lvcreate -s -n snap1 -L 5G /dev/vg0/mysql # Create MySQL snapshot
$ sudo lvremove /dev/vg0/snap1 # Discard snapshot without merging
$ sudo btrfs subvolume snapshot /home /home.snap # Btrfs alternative

Note: Requires LVM or Btrfs. Copy-on-write introduces a slight write penalty. Merging a root filesystem snapshot requires a system reboot. Perfect before major upgrades.

Follow @LinuxTeck for more #LinuxTips click here :https://www.linuxteck.com/linux-tips/
Quick Linux Tip #47 : https://www.linuxteck.com/linux-tips/recover-deleted-files-linux/

Question: I deleted a file 5 minutes ago and there's no backup. Can I recover?

Try: sudo debugfs -R 'lsdel' /dev/sda1 | tail -20

Info: debugfs is a low-level ext filesystem tool. lsdel lists deleted inodes, and dump <inode> <file> restores content. Works only if blocks haven't been overwritten yet.

Examples:
$ sudo debugfs /dev/sda1 # Interactive filesystem mode
$ sudo extundelete --restore-all /dev/sda1 # Automated bulk recovery tool
$ sudo photorec # Universal block recovery across any filesystem

Note: Stop writing to the partition immediately after deletion to prevent overwriting raw blocks. debugfs is specific to ext2/3/4.

Follow @LinuxTeck for more #LinuxTips click here : https://www.linuxteck.com/linux-tips/
Verpex Review 2026: What You Need to Know

We went beyond the promotional price and tested what Verpex is actually like to use.
Performance, load testing, migrations, support, security, pricing, renewal costs, and plan limitations are all covered in this 2026 review.
Verdict: Yes, for the right buyer.
Read the review → https://www.linuxteck.com/guides/verpex-reviews/
#LinuxTeck #Verpex #WebHosting #Linux
Quick Linux Tip #48 :https://www.linuxteck.com/linux-tips/python-http-server-linux/

Question: How do I quickly share files across my network without setting up nginx?

Try: python3 -m http.server 8080 --bind 0.0.0.0

Info: Python's built-in HTTP server serves the current working directory over HTTP. --bind 0.0.0.0 makes it reachable across all network interfaces on port 8080.

Examples:
$ cd /path/to/share && python3 -m http.server 8000 # Share specific directory
$ python3 -m http.server 8080 --directory /var/www/public # Set dir without cd
$ npx http-server -p 8080 # Node.js alternative

Note: Never use in production—it lacks authentication, HTTPS, and multi-threading. Press Ctrl+C to stop. Check your firewall settings (ufw) if connection times out.

Follow @LinuxTeck for more #LinuxTips click here :https://www.linuxteck.com/linux-tips/
Zsh vs Fish: Which Linux Shell Is Better?

Zsh or Fish? This practical Linux comparison breaks down the key differences between the two popular Bash alternatives.
Learn about POSIX compatibility, startup performance, scripting, customization, plugins, learning curve, ecosystem, and real-world use cases. Find out when Fish makes sense, when Zsh is the safer choice, and why Bash or sh still matters for portable automation.
Read the complete : https://www.linuxteck.com/zsh-vs-fish/
#LinuxTeck #Linux #Zsh #FishShell #Bash #LinuxTips #DevOps #SysAdmin #LinuxLearning
Quick Linux Tip #49 : https://www.linuxteck.com/linux-tips/compare-config-files-linux-servers/

Question: How do I check if a config file differs between two servers?

Try: diff <(ssh linuxteck@server1 cat /etc/nginx/nginx.conf) <(ssh linuxteck@server2 cat /etc/nginx/nginx.conf)

Info: Process substitution <() combined with SSH pipes file contents directly to diff. No temp files needed. Great for verifying config parity across servers.

Examples:

$ diff <(ssh s1 'rpm -qa | sort') <(ssh s2 'rpm -qa | sort')
$ diff <(ssh s1 'systemctl list-units --state=running') <(ssh s2 'systemctl list-units --state=running')
$ colordiff <(ssh s1 cat /etc/hosts) <(ssh s2 cat /etc/hosts)

Note: Requires SSH key auth (no password prompts). Use with ControlMaster (Tip #16) for speed. colordiff makes output much easier to read.

Follow @LinuxTeck for more #LinuxTips click here https://www.linuxteck.com/linux-tips/
DNF vs APT: What actually makes them different?

Most comparisons stop at “APT is for Debian and DNF is for Red Hat.”
This guide goes deeper into how their dependency resolvers behave, DNF5's transaction model, APT's flexibility, rollback differences, automation, and the commands you'll actually use.
🔗 https://www.linuxteck.com/dnf-vs-apt/
#LinuxTeck #Linux #DNF #APT
Quick Linux Tip #50 : https://www.linuxteck.com/linux-tips/find-file-by-inode-number-linux/

Question: I have a file's inode but not its path. How do I find it?

Try: sudo find / -inum 524290 2>/dev/null

Info: Every file has a unique inode per filesystem. Running find -inum locates all directory entries pointing to that specific inode number.

Examples:
$ find / -inum 524290 2>/dev/null # Find file by inode number
$ ls -i file.txt # Display inode number for a file
$ find /home -samefile /home/linuxteck/original.txt # Find all matching hardlinks

Note: Hardlinks share the exact same inode number; symlinks do not. Files are deleted only when their link count drops to 0.

Follow @LinuxTeck for more #LinuxTips click here : https://www.linuxteck.com/linux-tips/
Quick Linux Tip #51 : https://www.linuxteck.com/linux-tips/inotifywait-linux-file-monitoring/

Question: How do I know exactly when a file gets created, modified, or deleted?

Try: inotifywait -m -r -e create,modify,delete,move --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f %e' /var/www

Info: inotifywait uses Linux kernel APIs for efficient file monitoring. -m runs continuously, -r recurse subdirectories, and -e filters specified events.

Examples:
$ inotifywait -m -e close_write /uploads | while read path event file; do process.sh "$path$file"; done # Trigger script on write
$ inotifywait -m --exclude '\.tmp$' /home/linuxteck # Ignore temp files
$ inotifywatch -v -e access -t 60 /var/log # Collect statistics over 60s

Note: Requires inotify-tools package (sudo apt install inotify-tools). Kernel events fire instantly with minimal CPU overhead.

Follow @LinuxTeck for more #LinuxTips click here https://www.linuxteck.com/linux-tips/
Best Linux Distro for AI in 2026

Choosing a Linux distro for AI isn't just about performance. GPU drivers, package freshness, stability, containers, and software compatibility can make a big difference.

We compare the major options and where each one fits best for AI and ML workloads.

https://www.linuxteck.com/best-linux-distro-for-ai/

#LinuxTeck #Linux #AI #MachineLearning #LinuxDistro
Quick Linux Tip #52 : https://www.linuxteck.com/linux-tips/linux-tips-rsync-bandwidth-limit/

Question: My rsync is saturating my connection. How do I cap its bandwidth?

Try: rsync -avz --bwlimit=5000 /source/ linuxteck@backup:/dest/

Info: --bwlimit=5000 caps transfers at 5000 KB/s (~5 MB/s) to prevent network congestion during peak hours.

Examples:
$ rsync -avz --bwlimit=10M /src/ user@host:/dst/ # Limit to 10 MB/s (rsync v3.1+)
$ scp -l 40000 file.iso user@host: # scp uses Kbit/s (5000 KB/s * 8)
$ wget --limit-rate=5m http://example.com/big.iso # wget accepts k/m suffixes

Note: rsync --bwlimit defaults to KB/s, while scp -l expects Kbit/s (8x higher number for the same speed).

Follow @LinuxTeck for more #LinuxTips click here :https://www.linuxteck.com/linux-tips/
How to Install Coolify on Any VPS: A Step-by-Step Guide

If you have an unmanaged VPS and want an easier way to deploy and manage applications, Coolify can turn it into your own self-hosted platform.
I put together a step-by-step guide covering the VPS prerequisites, system preparation, Coolify installation, and accessing the dashboard.
Guide: https://www.linuxteck.com/install-coolify-vps/
#LinuxTeck #Coolify #Linux #VPS #SelfHosting
Quick Linux Tip #53 : https://www.linuxteck.com/linux-tips/linux-tips-kill-multiple-processes-pkill/

Question: Kill Multiple Processes with pkill

Try: pkill -f 'python.*worker.py'

Info: pkill matches command lines using regex. -f matches full command strings instead of process names. Always preview matches using pgrep -af first.

Examples:
$ pgrep -af 'ffmpeg' # Preview matching processes and full arguments
$ pkill -9 -f 'stuck-process' # Send SIGKILL to matching processes
$ pkill -u linuxteck # Terminate all processes owned by a specific user

Note: ALWAYS preview with pgrep before killing. Default signal is SIGTERM (15). Use -9 (SIGKILL) only if processes fail to terminate gracefully.

Follow @LinuxTeck for more #LinuxTips click here : https://www.linuxteck.com/linux-tips/
Master Nmap Command in Linux: 15 Practical Examples

Read the guide : https://www.linuxteck.com/nmap-command-in-linux/

This LinuxTeck guide covers 15 practical Nmap commands - from basic host discovery and port scans to -sV, -O, UDP scanning, NSE vulnerability checks, and saving results.


#LinuxTeck #Nmap #Linux #Networking #CyberSecurity #SysAdmin
XZ Compression in Linux Made Easy
https://www.linuxteck.com/xz-compression-in-linux/

12 practical xz examples for Linux users.

Compress & decompress files, keep originals with -k, choose compression levels, use all CPU cores with -T 0, create .tar.xz archives, read compressed logs with xzcat, and verify archive integrity.

A handy Linux command reference from LinuxTeck.


#LinuxTeck #Linux #LinuxCommands #XZ #DevOps #SysAdmin
Quick Linux Tip #54 : https://www.linuxteck.com/linux-tips/linux-tips-extract-json-values-jq/

Question: How do I quickly grab a value from JSON output on the command line?

Try: curl -s https://api[.]github[.]com/users/torvalds | jq -r '.name'

Info: jq is the standard command-line JSON processor. -r outputs raw strings without quotes. Supports filtering, key extraction, mapping, and transformation.

Examples:
$ jq '.users[] | select(.active == true)' data.json # Filter JSON array
$ kubectl get pods -o json | jq -r '.items[].metadata.name' # Extract Kubernetes pod names
$ jq '.[]' file.json # Iterate over array elements

Note: Install via sudo apt install jq. Test filters online at jqplay.org. Essential for REST API scripting and Kubernetes management.

Follow @LinuxTeck for more #LinuxTips click here https://www.linuxteck.com/linux-tips/