25 years later I have no clue where this guy went but I remember him because he was instrumental in moving me off zsh to bash
P.S. just fully noticed your handle, very shell discussion appropriate! :)
https://atuin.sh/
https://github.com/akinomyoga/ble.sh
https://starship.rs/
These three have made my shell game so much more enjoyable.atuin in particular records the history of each command but also how long they took and is they were successful or not.
You never have to rerun a command with long output to know how long it took: just ctrl-r and see.
> ls GN*
and accidentally paste it into a terminal window (or a web page that someone else pastes into a terminal window) and accidentally create an empty file named "ls". Or, in some cases, overwrite an existing file.My own current setting is
PS1=': ${env:+($env) }\W; '
Which looks like this: : ~; cd wak
: wak; ls
LICENSE monosrc scripts toybox toybox_awk_test
Makefile README.md src toybox_awk_parts
: wak;
The :; has the advantage that, if you unintentionally include the prompt in your copy and paste, it usually has no effect. (Maybe I should change ($env) to [$env].) \W (the last segment of the directory name) is usually about the right amount of context for me, but if I were working on a project with a lot of directories named things like "views" I would probably reconsider that.BTW, since this prompt collection was written, Linux terminal emulators have mostly gained 24-bit color support, which potentially opens up more alternative colors. See http://canonical.org/~kragen/sw/dev3/gradient.c with sample results in http://canonical.org/~kragen/sw/dev3/gradient.png. The escape sequence is \033[38;2;rrr;ggg;bbbm, where \033 is ESC and rrr, ggg, and bbb are decimal numbers from 0 to 255.
(Probably I should switch from bash to zsh...)
If this is a concern to mitigate, consider adding the following alias to your preferred shell profile:
alias rm='/bin/rm -I'
This will not conflict with scripts using PATH-relative 'rm' invocations, yet will provide the desired protection from erroneous interactive use of "rm -rf".See here[0] for details regarding the '-I' flag.
rm -rf * & cd; trn
Several hours later, around 3 AM, I was done reading netnews, so I exited trn. Then I remembered that there was one newsgroup I had forgotten to read, so I typed ↑↵ to run trn again, which had the effect of again running rm -rf * & cd; trn
but this time in my home directory. And of course my frantic ^C^C^C had no effect on the `rm`, which was safely in the background.Fortunately the computer center kept nightly backups.
rm /dir
Then go back and add the -rf.
Works on GNU and BSD. On GNU only you can
‘rm /dir -rf’
Another reason against using ">" in the definition of PS1 is that this is a typical character used in the definition of PS2[0].
> The :; has the advantage that, if you unintentionally include the prompt in your copy and paste, it usually has no effect.
This is because colon (':') has a specific definition in POSIX shells[1], which is:
Do nothing beyond expanding arguments and performing
redirections. The return status is zero.
Note that "performing redirections" can result in destructive file operations.0 - https://unix.stackexchange.com/questions/193659/in-which-sit...
1 - https://www.gnu.org/software/bash/manual/html_node/Bourne-Sh...
(My prompt is platform aware since codes for some ops differ between MacOS and Linux. The return is colour-coded (green, red, purple, depending on case), and multiline, with git status if in a repo, cwd, and a few other things....)
For bash users I can recommend looking into setting PS1 from a function and assigning that function to PROMPT_COMMAND as it makes it much easier to make it readable
_jobscount() {
local jobs=($(jobs -p))
local count=${#jobs[@]}
(($count)) && echo -n " (${count}j)"
}
And then put that in your prompt.
okasaki•2d ago
Also I have a theory that it lowers chatbot performance if you're copy pasting terminal output.
r_lee•2d ago
One thing that comes to mind is it might make its output more aligned with data that includes the full terminal output, which could make it more copy-pastey?
okasaki•2d ago
It's just an idle thought though.
actionfromafar•2d ago
dpflan•2d ago
This also applies to say vimrc (choose your editor/tool of choice).