deleted by creator
g-push
which is alias forgit push origin `git branch --show`
Which I’m writing on my phone without testing or looking
git config --global alias.pusho 'push --set-upstream origin HEAD'
You’re welcome.
So that’s making
git push
always push to the current branch?
git push origin HEAD
is a slightly shorter way of doing the same thing, even though you have an alias anyway lol
Uhhh…
sudo su
Don’t be like me
sudo -i
Going to shamelessly plug my custom bashrc setup which has a ton of little scripting helpers and a few useful aliases. Remember to clone recursively if you want to try it out. (Still very much a work in progress, but it’s getting to be pretty robust)
xdg-open FILE
- opens a file with the default GUI app. I use it for example to open PDFs and PNG. I have a one letter alias for that. It can also open a file explorer in the current directoryxdg-open .
. Should work on any compliant desktop environment (gnome/kde).Btop is an amazing resource monitor
Have you tried glances?
qalc
On my desktop:
df -h
to check disk usagehtop
to see resource usagell
list directory contentsI recently found btop and am trying to use that instead of htop.
looks up btop ooooo
touch
😏I remember
touch
I went a little overboard and wrote a one-liner to accurately answer this question
history|cut -d " " -f 5|sort|uniq -c|sort -nr|head -5
Note:
history
displays like this for me20622 2023-02-18 16:41:23 ls
I don’t know if that’s because I setHISTTIMEFORMAT='%F %T '
in .bashrc, or if it’s like that for everyone. If it’s different for you change-f 5
to target the command. Use-f 5-7
to include flags and arguments.My top 5 (since last install)
2002 ls 1296 cd 455 hx 427 g 316 find
g
is an alias for gitui. When I include flags and arguments most of the top commands are aliases, often shortcuts to a project directory.Not to ramble, but after doing this I figured I should alias the longest, most-used commands (even aliasing
ls
tol
could have saved 2002 keystrokes :P) So I wrote another one-liner to check for available single characters to alias with:for c in a b c d e f g h i j k l m n o p q r s t u v w x y z; do [[ ! $(command -v $c) ]] && echo $c; done
In .bash_aliases I’ve added
alias b='hx ${HOME}/.bash_aliases'
to quickly edit aliases andalias r='source ${HOME}/.bashrc'
to reload them.Holy shit, you’re a madman
Helix?
Yup! Migrated from VSCodium; wanted to learn a modal editor but didn’t have the time or confidence to configure vim or neovim. It’s been my go-to editor for 2+ years now.
I’ve been using vi (just the basics) for ~4 years, I don’t think I could be arsed to pick up the keybindings the other way around lol. I’ve heard very good things about Helix, of course
As another longtime Vi user - I had a hell of a time & wound up switching back lol
I think for a lot of folks Helix would be intuitive. Vi has her hooks in me, though.
I recently learned to use a for loop on the command line to organize hundreds of files in a few seconds.
Example of said Black Magik?
Let’s say, for example, you have a directory of files named x01-001; x01-002; x02-001; x02-002; x03-001… and so on.
I want to create subdirectories for each ‘x’ iteration and move each set to the corresponding subdirectory. My loop would look like this:
for i in {1…3}; do mkdir Data_x0$i && mv x0$i* Data_x0$i; done
I’ve also been using it if I need to rename large batches of files quickly.
Check out
rename
$ touch foo{1..5}.txt $ rename -v 's/foo/bar/' foo* foo1.txt renamed as bar1.txt foo2.txt renamed as bar2.txt foo3.txt renamed as bar3.txt foo4.txt renamed as bar4.txt foo5.txt renamed as bar5.txt $ rename -v 's/\.txt/.text/' *.txt bar1.txt renamed as bar1.text bar2.txt renamed as bar2.text bar3.txt renamed as bar3.text bar4.txt renamed as bar4.text bar5.txt renamed as bar5.text $ rename -v 's/(.*).text/1234-$1.txt/' *.text bar1.text renamed as 1234-bar1.txt bar2.text renamed as 1234-bar2.txt bar3.text renamed as 1234-bar3.txt bar4.text renamed as 1234-bar4.txt bar5.text renamed as 1234-bar5.txt
In your second example, it looks like you have an escape character before the first ‘dot’, but not the second one. Is this a typo, or am I misunderstanding the command?
It’s not a typo. The first section of the regex is a matching section, where a dot means “match any character”, and an escaped dot is a literal dot character. The second section is the replacement section, and you don’t have to escape the dot there because that section isn’t matching anything. You can escape it though if it makes the code easier to read.
rename
is written in Perl so all Perl regular expression syntaxes are valid.However, your comment did make me realize that I hadn’t escaped a dot in the third example! So I fixed that.
SED combinator, you win 🙌
xargs
is also fun, and assuming your for loop doesn’t update anything out of the loop, is highly parallelizableThe equivalent of the same command, that handles 10 tasks concurrently, using
%
as a variable placeholder.seq 1 100 | xargs -I'%%' -P 10 sh -c 'mkdir Data_X0%% && mv x0%%* Data_X0%%;'
But for mass renaming files,
dired
along with rectangle-select and multicursors within Emacs is my goto.
$ z
A great cd alternative
Also $ sudo paru -Syu
I think you can run paru without sudo and it should still do privilege escalation no problem
<Esc>[2J<Esc>[H
Is one of my favorites. Of course, most of you are too young to know what that means.
Is that easier than typing
clear
? Also, not sure why you’d say something like that about people’s age. Anyone using terminals today is often going to run into weird quirks of them being around for decades even if they’re young.In the days before *nx, “terminal” meant a VT terminal and “clear” wasn’t a thing.
qmv -f do ${dir}
… for quickly moving and renaming files. The default ‘qmv’ opens up your preferred text editor with a list of the source and destination name of the directory of files you want to move/rename. The ‘-f do’ tells the command we only want to see/edit the [d]estination [o]nly. If you need to rename/move a bunch of files, it’s much quicker to do it in vim (at least for me).
It sounds similar to one of my favorite commands! vidir 🙂
nmtui. But that’s because my router is trash.