pushd and popd to change directory and go back when done there.
Even better when
cd
automatically invokespushd
.what’s your alias?
cd -
undoes the last cd. Not quite push/popd but still useful. Pro tip, works also: git checkout -Hell yeah. Every one of these threads makes me more inclined to read man pages
You should. These are the actually sources to learn.
rsync
I use it to backup important work to an external drive.
deleted by creator
GNU Parallel
Ctrl-r with https://github.com/atuinsh/atuin is amazing. Never forget a command you used ever again.
I trigger it with the up arrow.
deleted by creator
I use
atuin
(link) all the timedeleted by creator
sudo !!
to rerun last command as sudo.history
can be paired with!5
to run the fifth command listed in history.@papertowels@lemmy.one I’ve been working in the bash shell since 1993 and did not know
sudo !!
was a thing. Good lord, I no longer have to press up, press crtl-left a bunch of times, then type sudo enter space anymore. And I can give it an easy-to-remember alias like ‘resu’ or ‘redo’! Ahahaha, this changes everything! Thank you!!We’re all learning tricks in this thread! Grateful for all y’all nerds.
Fifth as in fifth most recent command or fifth oldest?
I believe it’s the fifth oldest - I think
!-5
will get you the fifth impost recent, but I was shown that and haven’t put it into practice.The most common usecase I do is something like
history | grep docker
to find docker commands I’ve ran, then use!
followed by the number associated with the command I want to run in history.
Love these, I used a terminal select from history with fuzzy finding to do the !5 as
redo
Saving this thread for later, but I use rsync -a a lot.
Have you heard of our lord and saviour rclone?
I haven’t gone back to rsync in a long time.
I use it to mount cloud storage as network drives… I’ll have to look into your implication though!
Seems like an appropriate place to share https://github.com/agarrharr/awesome-cli-apps
I’m a fan of ripgrep and lsd in particular.
Removed by mod
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.
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.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 🙌
sudo udevadm monitor
Figuring out which usb device went on holiday.
Wow, super useful command. Starring this comment
control+R
in bash, it lets you quickly search for previously executed commands.
its very useful and makes things much quicker, i recommend you give it a try.
I use this constantly
i rely on this in my job. if i really need it, i’ll be using it often enough that it’ll always be in ^R distance :)
Neofetch
Get on with the times, install fastfetch ;)
Sudo !!
It reruns the last command as sudo.
Pretty useful since I’m always forgetting.
Most commands soon followed by sudo !!