10 protips I wish I knew sooner as a software dev (beginner) anthony explains
Ғылым және технология
here's ten quick things you can learn to level up your bash / terminal skills.
- github.com/asottile/scratch/w...
- more powerful than control-C: • more powerful than con...
- fc / fix command: • bash protip: fc "fix c...
playlist: • anthony explains
==========
twitch: / anthonywritescode
dicsord: / discord
twitter: / codewithanthony
github: github.com/asottile
stream github: github.com/anthonywritescode
I won't ask for subscriptions / likes / comments in videos but it really helps the channel. If you have any suggestions or things you'd like to see please comment below!
Пікірлер: 53
Wow I didn't realize !! is treated like an escape sequence, so it will expand even inside quotes (double quotes, but not single quotes). I can imagine someone going echo "hello world!!" and being very confused.
@anthonywritescode
2 жыл бұрын
heh and this is why I almost always use hard-quotes (single quotes)
@TheKittko
2 жыл бұрын
hah, quite the gotcha indeed
@blumer4029
2 жыл бұрын
Or trying to do a commit with the inline message "Done!!"
@andrewf8366
2 жыл бұрын
I actually had this happen to me early on when using bash.
one pro tip i use all the time is jobs. Ctrl+Z to suspend/pause the current shell command and then fg to get back to it. jobs to list all currently suspended commands.
@anthonywritescode
2 жыл бұрын
yep -- I go over that in kzread.info/dash/bejne/np-FsbN6k5mbiqQ.html
Nice, some really good-to-knows there :) I also like Ctrl+p+q for detaching from an interactive docker container.
I think `Ctrl+Shift+u` for unicode is not Bash, but rather a GTK+ feature; which is where the shell session is running (inside a gnome-terminal, which happens to be GTK+). It also works in many other shells inside a GTK-based terminal, and further-more even in the web-browser. For instance, it doesn't work on Bash running inside Alacritty, and it works different on Kitty Terminal
@anthonywritescode
2 жыл бұрын
indeed! a few have shown me this before as well
Should have mentioned this (coppied from bash(1)): operate-and-get-next (C-o) Accept the current line for execution and fetch the next line relative to the current line from the history for editing. A numeric argument, if supplied, specifies the history entry to use instead of the current line. Basically in bash, after doing a reverse search (C-r) you can run that command and get the next ready to run, and the next and the next... (possibly changing them before running) This is very useful.
afaik ctrl-shift-u is a Gnome-specific unicode entry mode. It works everywhere in Gnome, but not outside of Gnome.
@_baco
2 жыл бұрын
Actually, it's GTK+ specific. It doesn't work, even inside GNOME, if the application is not GTK-based. For instance Alacritty or XTerm
Wow, very cool stuff :) didn't know about reverse-search. I always just grep on my history command, then use `!` for the entry I want to run. If I want to edit it I use `!:p`. Re: fc, I usually run `set -o vi` so I can run vi motions from the terminal, from there I can use `v` to edit commands. Nice post!
Absolutely love these kind of videos! Thanks :)
As always brilliant content !
Great video. Can I fork the wiki for the references?
I use mcfly as a ctrl-r extension. It’s recommendation algo and easy viewing of previous commands is really usefull
how to get out of the editor after the fc command?
@anthonywritescode
2 жыл бұрын
just quit the editor like normal -- (so if it's vim, you'd `:wq`, if it's babi you'd `^X`)
You're a total boss, dude! Your videos are gold!
I find it easier to memorize the ESC+ instead. Eg: ESC+. will write the paste the last argument. ESC+backspace will delete the last word. etc...
@anthonywritescode
2 жыл бұрын
I assume you map capslock to control, otherwise those are quite the stretch!
@CollinJS
2 жыл бұрын
Alt+. will also produce the same effect, though the escape method allows you to fully press and release escape before tapping dot, etc.
@anthonywritescode
2 жыл бұрын
you can also do control-[ + . as well
Cool keyboard, what is it?
@anthonywritescode
2 жыл бұрын
it's the kinesis freestyle pro! here's my thoughts on it: kzread.info/dash/bejne/do6bpbeQlpyqirA.html
Reverse search (Crtl-r) is pretty universal. It works in python REPL, bash, zsh, PowerShell and many more. You can import prompt_toolkit and replace "input" with "prompt" and have your own reverse search. Its very easy: from prompt_toolkit import PromptSession session = PromptSession() while True: answer = session.prompt("Give me some input: ") print(f"You said: {answer}") if answer == "exit": break
@anthonywritescode
2 жыл бұрын
^R is a readline feature -- all those things use readline when available (python on windows for example does not support it, and very frequently pyenv-compiled python doesn't either)
@voytechj
2 жыл бұрын
@@anthonywritescode Just checked both cmd and new Microsoft Terminal on windows and reverse search works in python with no problem.
@anthonywritescode
2 жыл бұрын
you must've installed readline -- the official distributions do not come with functioning readline
@voytechj
2 жыл бұрын
@@anthonywritescode You are right, I installed pyreadline. Forgot about this module
ctrl+. for emoji chart or tabel , unlike ctrl+shift+u youdont have to remember the unicode value 😉
@anthonywritescode
Жыл бұрын
doesn't work on linux or windows -- must be a mac specific thing
`y` does work on gitlab. Unfortunately know this from experience.
@anthonywritescode
2 жыл бұрын
you poor soul, gl with your choo choos
@sillybuttons925
2 жыл бұрын
@@anthonywritescode "run train is against our coc"
Hi anthony, FYI, you typed your password while recording your keyboard ...
@dddsa5951
2 жыл бұрын
I think he uses a virtual machine to make videos so it doesn't actually matter : }
@anthonywritescode
2 жыл бұрын
yep -- my password is literally "bad password"
you can use ctrl - D instead of ~. to close ssh connection. Or get out of the attached docker container terminal
@dddsa5951
2 жыл бұрын
Ctrl+D doesn't work if the connection is stuck. For example if your wifi got disconnected while you were ssh'd into a server, neither ctrl+C or ctrl+D will do anything, you will have to close the terminal. But ~. worked to my surprise and it's a nice trick to know
@anthonywritescode
2 жыл бұрын
nope! ~. is specifically needed when the session is stuck and you want to forcibly detach
Timestamps would be very much appreciated. 🤙
@anthonywritescode
2 жыл бұрын
if you compile them I'll put them into the description!
Ctrl + x then Ctrl + e opens the current terminal line in an editor, so similar to fc, but is better, because it works across multiple shells and together with history navigation is slightly more powerful.
@anthonywritescode
2 жыл бұрын
you didn't watch the video
@con-f-use
2 жыл бұрын
@@anthonywritescode I did, but missed the mention of it also missed the Alt + . (dot) the first time. Just spaced out. At least the info that it works in shells other than bash was not in the vid ;D
@JohnSmith-xf6nb
Жыл бұрын
@@con-f-use Doesn't work in zsh apparently
Title should have been useful bash tricks I wish I knew
@anthonywritescode
2 жыл бұрын
not all of them are bash
^r is a great one thanks ! There was me doing history | grep git all this time