r_bash | Unsorted

Telegram-канал r_bash - r_bash

46

Credits: @r_channels & @reddit2telegram

Subscribe to a channel

r_bash

Resources on Page Has Defunct URL (bash-hackers)

In the "Resources" section of the opening page the current "...bash-hackers.." URL is defunct.


This may be the new , working link for someone to consider.

https://bash-hackers.gabe565.com/

https://redd.it/1uj0cp8
@r_bash

Читать полностью…

r_bash

Would love Some Advice on an Artix Install Script
https://paste.myst.rs/ymp81uzb

https://redd.it/1ui81r9
@r_bash

Читать полностью…

r_bash

A little fzf function I use constantly to jump into any subfolder

Not sure if this is old news to everyone but I use this all day so figured I'd share. I got sick of typing cd really/long/nested/path/to/thing so I "made" this:

#fuzzy cd into any subdirectory
fcd() {
local dir
dir=$(find "${1:-.}" -type d 2>/dev/null | fzf) && cd "$dir" || return
}


Drop it in your .bashrc, open a new shell, and just run fcd. It lists every folder under where you are, you start typing, hit enter, and you're in it. You can also give it a starting point like fcd ~/projects if you don't want to scan from the current dir.

Curious if anyone has a slicker version. I'm sure there's a way to make it faster on huge trees.

https://redd.it/1ugxolf
@r_bash

Читать полностью…

r_bash

Bash Noughts & Crosses (Tic Tac Toe)

https://redd.it/1ugigtd
@r_bash

Читать полностью…

r_bash

Inspired by PnP games, I created TermDecks, printable reference cards for the Linux terminal

https://zntznt.com/termdecks/

Build printable, poker-sized reference cards for the terminal, then study them with the built-in spaced-repetition quiz.

How it works

Each section becomes a card. Long sections spill onto extra cards automatically.
Card front lists the commands; the back shows their questions.
Print lays cards out 9-up and double-sided. What you see is what prints.
Quiz mode resurfaces weak cards more often (spaced repetition).

https://redd.it/1ufvbw3
@r_bash

Читать полностью…

r_bash

Calling All BASH Warriors...
/r/commandline/comments/1uad6zg/calling_all_bash_warriors/

https://redd.it/1uevlrl
@r_bash

Читать полностью…

r_bash

Shell scripting from scratch — what would you do differently?

If you could restart your shell scripting journey with your current knowledge, what would you do differently in the first 30 days — and what common mistakes would you tell your past self to avoid?

https://redd.it/1uee5mg
@r_bash

Читать полностью…

r_bash

I log every n8n workflow error to Google Sheets automatically — now I can actually see patterns
/r/AutomationIncome/comments/1ud5xwv/i_log_every_n8n_workflow_error_to_google_sheets/

https://redd.it/1ud5y5x
@r_bash

Читать полностью…

r_bash

A joke using Grep

We were discussing ways to use Grep at work today and I came up with this...


grep -R ^"My Car Keys"$ /home/


If only life was that easy... But I'm still going to put it on a t-shirt.

https://redd.it/1ucn2iz
@r_bash

Читать полностью…

r_bash

Would you use a CLI that explains cryptic build errors in plain English?"

I want to build a product that would solve developer pain point , A CLI tool + web dashboard that uses some tech to scan your codebase for dead code — unused functions, variables, exports, types and also
An LLM layer on top that generates plain-English explanations for why each piece of code is dead and whether it's safe to delete.

https://redd.it/1ubft3f
@r_bash

Читать полностью…

r_bash

Any Help?

In bash, to be an expert, I have to master the strings manipulating and Advanced Commands.

​

I need a cheat sheet or full free resources to strings manipulating

​

And I need someone to tell me what is the advanced commands that would help me in Cybersecurity and Tools building.

https://redd.it/1uazmsy
@r_bash

Читать полностью…

r_bash

Bash got me the job of my dreams...

I used to own an ISP but due to a drinking problem the business went down hill and ended up closing. So I was unemployed for nearly 5 years. But I have been sober since Jan 1st 2025 and honestly don't miss the drinking.

​

My wife had been sending out my résumé daily to companies around the country. One company picked up my résumé and called me to offer me a job.

​

They were on the other end of the country and would mean I didn't see my kids from my previous marriage that often so I turned them down. My wife was furious and being Jewish I do as the missus says and I called them back.

​

They setup an interview and two days before the interview they asked if I have a GitHub repo because my résumé talks about Bash Scripting. I told them I host my own Git server from home and gave them full access.

​

In the job interview I was told outright that if I get the job it is because of my Git repos. The job position I was originally offered was Linux Engineer. In the interview I found out I was being interviewed for a Senior Linux Engineer.

​

I got the job, moved to the other end of the country with no plan other than where I was going to work. Stayed in an AirBnB for the first week while I looked for a permanent habitat.

​

I have also found out that I am the first person in the Linux department who didn't write an entrance exam and that is because of my Git repos. They read all my code and decided that I know what I am doing.

​

I work at an amazing company that looks after their staff and I work with an amazing team. I start work at 6am which suits me since I wake up at 4am, and I finish at 3pm which suits me as it gives some personal time in the afternoon.

​

My wife and step kids are moving up here at the end of the year. I didn't want to move them now as Meghan is still in school and here in South Africa the school year is from Jan to Dec. I wanted her to start the new year at a new school and not half way through.

​

Also, we wanted to make sure I was happy at my job and secure.

​

I needed money to survive the first month so I sold my piece of shit car and got just enough to survive the first month. My car wouldn't have made the trip anyway. So now I am saving for a second hand car. Plan to buy at the end of the year. But public transport is good here in Johannesburg.

​

But I want to extend a thank you to the r/Bash community for all the eager assistance I have gotten over the years. I still have a lot to learn, this I know. But I have a job I look forward to each day and it has a very good salary. Even the perks are excellent.

​

On day one they handed me a brand new 14 core Ultra 5 laptop with NVMe storage and 32GB RAM and said "Install the version of Linux you prefer". Then once it was installed with all my apps the way I like it, they said "Time for your initiation... Reinstall again but this time encrypt your hard drive..." Talk about cruelty.

​

But I love my job, and it doesn't feel like work.

​

And the best part, they are happy for me to work on my personal projects and support the fact that 99% of my code is GPL3. They even want to market one of my commercial projects so I offered for them to be the sole agent. So when that happens I will get paid for every server that my CDN code runs on.

​

Thank you to Bash for getting me a job I thought would only be in my dreams.

https://redd.it/1uar5u6
@r_bash

Читать полностью…

r_bash

Calling All BASH Warriors...

We all love the terminal for its speed, its power, and that raw, unfiltered command-line efficiency. It is where real work gets done.

But even the most hardened command-line veteran needs to blow off some steam.

Back in the day, we had simple ASCII games and hidden Easter eggs tucked away in the system files. Modern Linux keeps that tradition alive, and the repositories are packed with brilliant, useless, and thoroughly entertaining tools designed to turn your terminal into a playground.

Here is the BASH Warriors entertainment list...



\--- BASH WARRIOR ENTERTAINMENT LIST ---

Command: Description: Download:

sl (Steam Locomotive): If you type ls wrong, a train chugs across your screen. (sudo apt install sl)

cmatrix: Turns your terminal into the falling code from The Matrix. (sudo apt install cmatrix)

fortune: Prints a random, often funny, quote or message. (sudo apt install fortune-mod)

cowsay: An ASCII art cow that speaks whatever text you give it. (sudo apt install cowsay)

aafire: Renders a realistic fire animation using ASCII characters. (sudo apt install libaa-bin)

xeyes: A pair of eyes that follows your mouse cursor around the screen (requires X11). (sudo apt install x11-apps)

bastet: A bastardized version of Tetris where the game intentionally gives you the worst possible piece. (sudo apt install bastet)

robotfindskitten: A Zen simulation where you navigate a robot to find a kitten among hundreds of random objects. (sudo apt install robotfindskitten)

moon-buggy: Drive a moon buggy over craters in this side-scrolling game. (sudo apt install moon-buggy)

fortune bofh-excuses: Generates corporate excuses for why you are late for work. (sudo apt install fortune-mod fortunes-bofh)

figlet: Creates large, stylized ASCII art banners from your text. Example: figlet "Hello World" (sudo apt install figlet)

telnet towel.blinkenlights.nl You can still watch Star Wars Episode IV entirely in ASCII art via Telnet. (sudo apt install telnet)

apt moo: The package manager has a secret. Run apt moo to see a cow. (No download required)

fortune | cowsay | lolcat: Get a rainbow-colored cow giving you random life advice. (sudo apt install fortune-mod cowsay lolcat)



\--- Combo Funpack Download ---

sudo apt update && sudo apt install -y sl cmatrix fortune-mod cowsay libaa-bin x11-apps bastet robotfindskitten moon-buggy fortunes-bofh figlet telnet lolcat

==========================================================

Paste the following at the end of your .bashrc file that is located in your home directory. Customize to your heart's content...



\# --- BASH WARRIOR Aliases (APT Package Management) ---

alias refresh='sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y'

alias apt2='sudo apt update && sudo apt install'

alias update='sudo apt update'

alias upgrade='sudo apt upgrade -y'

alias fullup='sudo apt full-upgrade -y'

alias install='sudo apt install -y'

alias remove='sudo apt remove -y'

alias purge='sudo apt purge -y'

alias cleanup='sudo apt autoremove -y'

alias searchpkg='apt search'

alias info='apt show'

alias listup='apt list --upgradable'



\# --- Enhanced System Calls ---

alias top='htop'

alias port='ss -tulpn'

alias myip='curl -s ifconfig.me'

alias dns='cat /etc/resolv.conf'

alias reboot='sudo reboot'

alias shutdown='sudo shutdown now'



For my DOS Warrior Alias List please goto: https://www.reddit.com/r/pop\_os/comments/1u7e7ex/calling\_all\_dos\_warriors/

https://redd.it/1uad8co
@r_bash

Читать полностью…

r_bash

Pure-Bash system toolkit for macOS — 1500+ lines, shellcheck + Bats tested, zero deps beyond native utils & git
https://redd.it/1ua1imc
@r_bash

Читать полностью…

r_bash

xytz can now download videos from any yt-dlp supported site
https://redd.it/1u9k97z
@r_bash

Читать полностью…

r_bash

Does anyone know/use about xset dpms?

Hi, I'd like to use that cmd xset for try to get xset -s NOW...
Could I set from terminal this cmd for put blank screen now
and then when I come back I move my finger in touchpad or press any key and OS wake up again...

Thank you and Regards!

https://redd.it/1uiucxo
@r_bash

Читать полностью…

r_bash

scp-turbo.sh (replay)

A new iteration on my old idea (half-broken) /r/bash/comments/1ajkmvh/scpturbo/ of a tar-based scp replacement primarily for making faster backups over ssh, especially when you have tens of thousands of small files which takes forever over scp/rsync. After hours of trial and error my most wanted key requirement was added: the --sudo flag which lets you tar huge folders (bigger than the amount of free space on your disk) directly to a stream that is saved on your local machine, compressed to a single file or uncompressed. The destination can be any combination of remote vs local, similar to rsync/scp.

Am I reinventing the wheel? I've searched for existing tools that could do this but didn't find any. Or maybe I didn't know what to search for?

The twist of this script: --sudo requires a passwordless sudo on the target box; I am not comfortable with having no root password on world visible boxes so added an alternative workaround when you DO have to interactively get sudo: --tmux-sudo; the idea is that you manually create a tmux session as your regular user on the remote, do sudo -i inside the session and then detach from it (ctrl+b > d); after this scp-turbo --tmux-sudo remote42:/etc backup-etc-remote42.gz should be able to pick the existing tmux session to run your backup. Not sure how portable/reliable it is but got it working with a regular ubuntu remote. Is this too crazy? Or am I trying to solve a problem that does not exist?

latest final (?) version: https://gist.github.com/glowinthedark/e56fed33be889cea6ec2326dc33f535d

https://redd.it/1uhwo9t
@r_bash

Читать полностью…

r_bash

How redraw the current line of bash?

I make some bindings to help me navigate using the terminal, but I couldn't get to redraw the current lime. I would like to have ps1 info update to display the directory changes.

https://gist.github.com/srcid/25f376b60e6ec2f5b5d20b4eca88b176

I tried:

__update_prompt() {
echo -ne "\r\e[K"
kill -INT $$
}


But it breaks line and output with error sing

__update_prompt() {
echo -ne "\r\e[K${PS1@P}"
READLINE_LINE="$READLINE_LINE"
}


That kinda work, but the old ps1 sticks in the line, I couldn't get rid of it.

https://redd.it/1ugsobl
@r_bash

Читать полностью…

r_bash

“I kept forgetting what complex terminal commands do, so I found a tool that explains them in plain English

“I kept forgetting what complex terminal commands do, so I found a tool that explains them in plain English
https://terminaldecoder.vercel.app/

https://redd.it/1ufxwbk
@r_bash

Читать полностью…

r_bash

Bash 3.2 alternative to read -i for prefilled user input on macOS

Hi everyone,

I have a script that works fine on Linux with Bash 4.x+, where I use read -e -i to prefill existing values and allow the user to edit them:

case "$vals" in

b|B)
echo -ne " ${CYAN}Bsl${RESET}: "
read -e -i "$bsl" -r bsl
;;

t|T)
echo -ne " ${CYAN}Term${RESET}: "
read -e -i "$term" -r term
;;

s|S)
echo -ne " ${CYAN}Site${RESET}: "
read -e -i "$site" -r site
;;

c|C)
echo -ne " ${CYAN}Capt${RESET}: "
read -e -i "$capt" -r capt
;;

esac

However, on macOS (which ships with Bash 3.2), I get:

read: -i invalid option
read: usage: read [-ers\] [-u fd\] [-t timeout\] [-p prompt\] [-a array\] [-n nchars\] [-d delim\] [name ...\]

From what I understand, the -i option was introduced in Bash 4+.

Is there any portable workaround or alternative way to present a default/prefilled value to the user in Bash 3.2 while still allowing them to edit it interactively?

I'd appreciate any suggestions or examples that work on both Linux and macOS.

Thanks!

https://redd.it/1ufkd25
@r_bash

Читать полностью…

r_bash

How to export bash regular and associative arrays to JSON with JC

The jc typeset or declare command parser can make exporting bash variables, arrays, and associative arrays to JSON quick and easy...

https://blog.kellybrazil.com/2026/06/24/how-to-export-bash-regular-and-associative-arrays-to-json-with-jc/

https://redd.it/1ueksl3
@r_bash

Читать полностью…

r_bash

Bash is All You Need, it turns out, to write a language model REPL (oh also jq and curl)

I’ve recently just started tinkering with using local large language models, focusing on simple, low-dependency CLI setups. I ended up going down a bit of a rabbit hole: I wanted to see if I could build a functional model interaction REPL using exclusively standard command-line building blocks.

I tried to abide by the Unix philosophy, breaking the REPL into the composition of a few small, single-purpose program. Because the data flow is just text streams fed through pipes, at any step you can inject tools to inspect or modify the data—like using `grep` to filter out strings before they hit the model, or `pv` to benchmark model throughput. Everything is ultimately tied together into an `agent` Bash script that codifies the interaction into a REPL.

It turns out that `bash` *really is all you need*, and won out over vanilla POSIX `sh` for features like `BASH_SOURCE` to help with path execution.

A few more details I thought this crowd might appreciate:

* Zero heavy dependencies: No `pip`, `npm`, package managers, virtual environments, etc. It just requires `bash`, `jq`, and `curl` to talk to the local model server. These should be available in most modern CLI environments.
* Transparent, file-based state: The agent's memory is just an append-only `.jsonl` file (like `.bash_history`). If you want to rewind the agent's memory, you just run head on the log to drop the last few lines.
* Standard exit codes for control flow: Tool execution is handled by checking standard Unix exit codes within a basic bash while loop.

I'm sure there are scaling limits to doing this all in shell, and I'm still figuring out the most elegant way to handle some of the edge cases, particularly around tool calling - but those appear to mostly be limitations of the underlying models. Nevertheless it's been a really fun experiment in stripping out bloat.

I put the code up here if anyone wants to poke around: [https://github.com/cloudkj/llayer](https://github.com/cloudkj/llayer)

Would love to hear if anyone else has tried orchestrating things this way, or if you spot any glaring anti-patterns in how I've structured the pipes!

https://redd.it/1ue6pbz
@r_bash

Читать полностью…

r_bash

I built a free macOS security audit script — checks ~50 settings against CIS Benchmarks and generates an HTML/JSON report

Hey everyone,

​

I got tired of manually checking my Mac's security settings one by one, so I wrote a Bash script that automates the whole process.

​

**What it does:**

\- Runs \~50 security checks across 10 categories (Firewall, FileVault, SIP, SSH hardening, open ports, startup items, privacy settings, sharing services and more)

\- Maps every check to a CIS macOS Benchmark ID so you know exactly what to fix

\- Gives you a security score (0–100) with a risk level: Low / Medium / High

\- Generates a clean HTML report and a JSON report

\- Offers to auto-fix failures — you confirm each one with y/n

\- Tested on macOS 11 Big Sur through macOS 15 Sequoia

​

**Output example:**

```

Firewall OK Enabled

FileVault FAIL Disabled

SIP OK Enabled

...

Security Score 72/100

Risk Level: Medium

```

​

The script is read-only by default — it never changes anything without your confirmation. sudo is only used where required (e.g. fdesetup, systemsetup).

​

**GitHub:** https://github.com/pTechPL/macOS_security_audit

​

I also made a YouTube walkthrough showing the script in action if you prefer to see it before running it: pTech-pl" rel="nofollow">https://www.youtube.com/@pTech-pl

​

Feedback, PRs and issues are very welcome — especially if something behaves unexpectedly on your macOS version!

https://redd.it/1ucmulh
@r_bash

Читать полностью…

r_bash

Calendar TUI written completely in bash
https://redd.it/1ubtxrm
@r_bash

Читать полностью…

r_bash

I've found a way to learn Linux online
https://www.reddit.com/gallery/1ub1e9r

https://redd.it/1ub1ewc
@r_bash

Читать полностью…

r_bash

Built this because I was spending more time collecting context for AI than actually debugging.

https://github.com/johnsellin93/grab

Built this because I was spending more time collecting context for AI than actually debugging.

Cuts my AI debugging time by about 70% on larger repos.

Used it heavily while building app01.lineflow.eu.

Star it if you end up using it.

https://redd.it/1uarhyr
@r_bash

Читать полностью…

r_bash

find syntax- question

Hi guys,

I achieved the action of deleting all files in a directory ending in .mp4 via this command below-

find -type f -name '*.mp4*' -delete





However, before invoking that, I attempted this one first-

find -type f -name '.mp4$' -delete

This one did NOT work. But I would've preferred to use it, since it didn't need a wildcard; I knew that all the files I wanted to delete indeed ended with .mp4, didn't merely include it.




Does anybody know what I did wrong with the failed command?


thanks!





https://redd.it/1uab329
@r_bash

Читать полностью…

r_bash

Calling All BASH Warriors...
/r/pop_os/comments/1ua7pmq/calling_all_bash_warriors/

https://redd.it/1ua7rf8
@r_bash

Читать полностью…

r_bash

Can someone help me on how to develop a script that runs renice in a process that the process identification is unknown?

Not sure if here is the best place to ask, but forgive me and sorry for my bad English.

I'm working with niceness for two days, renice works well, and I started configuring Feral's Gamemode to increase the ni of the game, which works really well on native games, however it simply doesn't work on Proton games.

If I want to change the ni level, I need to wait the game loads, check what process number is the game and set the ni value manually.

So what I want to do is to have a script, that:

Runs as a launch options on steam.
Wait a few seconds to the game run.
Have a variable that receives the process name externally. Like `scriptname -gamename command`
Search for the process name , picks the process identification number.
Runs renice with the `renice -n -10 -p number`
Quit

My idea is to create a guide for Fedora to improve gaming, and this will help a lot.

https://redd.it/1u9n30g
@r_bash

Читать полностью…

r_bash

This loop take 15x more time in bash in comparison to dash, why?
https://redd.it/1u936t4
@r_bash

Читать полностью…
Subscribe to a channel