In this video we're running through all the important things you need to know in order to get comfortable using the shell and see how you can compose commands together to build out super handy chains that'll save you a lot of time.
#terminal #linux #bash
Underrated, it's just amazing how serene and concise this video is
Hey, thanks!
Just taught me more than a $1000 uni course I took which was supposed to be about linux. It had a week or two about cli commands but was poorly taught. Uni of Toronto btw
ASMR: shell commands to fall asleep to
At college, I was forced to learn about shell scripting, but after using Linux for more than half a year, I am enjoying every bit of it. I am still learning about shell scripting.
I listen to this every evening to fall asleep in peace
It's very soothing!
This is sooo smart thank you for the idea 🎉
Oh. So you’re saying this is not a chapter from an audiobook? 😕
@@claudiamanta1943 It's from Harry Potter and the Command Line of Doom
0:28 shell/terminal/console/command line terminology 0:47 ls (list) 1:19 cd (current directory) 1:22 pwd (path to working directory) 1:26 echo 1:30 cat (concatenate) 1:33 touch 1:41 cp (copy) 1:47 mv (move) 1:51 convention 2:02 rm (remove) 2:24 ln (link) 2:35 less 2:50 more 2:56 man (manual) 3:27 grep (global regular expression print) (find strings) 3:36 find (find files/dir) 3:47 sed (stream editor) (find and replace text) 4:25 awk (extract text data) 4:43 sort 4:55 head, tail 5:12 piping, pipe operator < | > 5:46 xargs (split input into chunks and pass as arguments) 6:07 running subshells < $( ) > 6:32 redirection < > > 6:47 appending < >> > 6:54 file content into stdin < < > 7:04 fzf (fuzzy finder) 7:24 compgen - c (lists all cmds) 7:31 Lots of useful command combinations 11:55 key takeaways
Pin this please
Thanks
this definitely needs to be pinned
first time I see someone make working with CLI look aesthetic and easy. Beautiful video
Thanks!
solace?
Alright cool , let me add fzyyyy to improve everything
Worth mentioning Ctrl-R as well for hotkeys. That fzf man alias is really cool
The xargs command section was really good! Something as simple as aliasing 'logs' to open a fzf with all your docker containers and choose one to check the logs for is just so useful
Well that escalated quickly.
Who gave you privilege to crack that joke?
After watching this, it feels like you can do anything with the shell. Then you find yourself needing something like "pipe into a text file, but prepend instead of append", and it turns out you need to use four commands, invoke a function, write a formal proposal, and make a pilgrimage to Dennis Ritchie's final resting place on a moonless night and chant incantations from dusk to dawn to do it.
Haha yeah that is the sad truth. When you're within the bounds of what the shell and coreutils are good at everything is nice and simple. But once you step outside of that, it quickly feels impossibly complex.
Goes from newbie to advanced real quick! I use the terminal a lot as a software engineer, but this taught me a couple things and I feel like I understand some things better.
This is all pretty basic stuff for most *nix natives, presented excellently though!
Awesome and comprehensive video showing off the true capabilities of a good shell user. I realize literally everything people see, is a text doc
probably the best video on overview of shell commands that ive seen so far
I just become death destroyer of the terminal world!!
Very useful video 🎉 For some reason I didn't know about `Ctrl+X` + `Ctrl+E` to edit a multi-line cmd -- that is so cool and definitely needed :D
Low sub channel + quality content like this = instant subscribe
fzf is really cool, gonna use it way more often from now on The only thing that I wish you'd also mention is how you can manipulate history too. Let's say you've done cat on some file with long path, and now you want to copy it. Instead of cp . you can do cp !!:1 . which will use first argument from latest command in history as argument. Also, cd (just cd, with no arguments) will send you to home directory and cd - will send you to previous directory.
The Ctrl-X Ctrl-E to edit command in $EDITOR is actually very very useful! Thanks for telling us that!
One of the finest videos ever made for the shell enthusiast, kudos to u man, eagarly awaiting for more !!!!!
I never thought the shell could be relaxing but you have done it. Good work.
FZF is the tool I didn't know I needed.
I’m addicted to it
really useful video. I am using bash for a few years now, and only recently i am starting to realize how powerful the pipe command is
Perfect content, helpful and calm, thanks. Seeing how someone uses tools is so helpful as I learn to use them.
Impressed that you introduced me to a couple of commands I was not aware of and I pride myself in writing one liners that wrap 3 lines. Specifically `compgen` and `fd`. The latter of course written by the same fellow who's created `bat` which is wonderful replacement for `cat`. Another interesting way to use `xargs` is by inserting the output in a specific location in a command. e.g. $ aws ecs list-clusters | rg blah | cut -d / -f 2 | tr -d '",' | xargs -n1 -I{} aws ecs describe-services --services {} --cluster {} One I use fairly often while writing a long command where I need to switch to looking something else up is prepending the command with a `#` and hitting return, it parks the command as a comment which you can go back to editing but doesn't execute anything when initially entered. Try this in a chromium based browser with a ton of tabs open... `cmd + shift + a`... start typing the title of what you are looking for ;)
didn't know you could do that with xargs, very cool!
Great fzf examples, thank you so much!
Bat instead of less works amazing too (great colour output)
another good one is moar
bat, eza, fd, ripgrep, dust are all great
@wetfloo a man of culture 🏆
I am a self proclaimed shell wizard and learning sed can use any delimiter has blown my mind
That one is definitely a game changer.
Nice, really liked the concise explanations for the basic commands
Have been looking for this exact type of vid now for sometime now. Thank you it was done very well. The final wrap up at the end was perfect.
Wow, I thought I knew stuff in the terminal until watching this video xD. Thank you so much for sharing your knowledge with us, I'll make sure to implement this tips in my workflow
Explained more and better in 12 minutes than our teachers in a whole semester.
This is such a high quality video! It starts off great with some introductory concepts, but then accelerates at a great pace and shows how to put things together. Really was great for someone like myself who is comfortable in the shell but looking to level up. C-x C-e was literally a paradigm shift for me, and has changed how I interact with the terminal. Thanks for the awesome video, looking forward to more great content!
Thank you so much for bringing fzf to my attention! Just the type of tool I've always wanted but never knew existed.
Yeah, the biggest tip is to not try to remember everything. You naturally memorize things you use frequently, and for everything else, that's what documentation is for. On that note, / and ? are very important keybinds for many text viewers, as they let you search forwards and backwards. Very useful for finding relevant parts of manuals.
Voice + command techniques + explanations are superb.❤
Most useful $SHELL video EVER! I learned so much.
I like the calming background music. Kept me from uncontrollably breaking down and taking pepto again
Great video! I already know quite a bit about the CLI, but the fzf tool is super cool!! Will definitely use thanks a ton!
excellent content and delivery. this was incredibly executed. Subbed
I've been messing around with shell for almost 4 years now, I really love the power and flexibility of it, it's really powerful
Awesome video. Loved it. One of my favourite is 'seq'. Prints out a sequence of numbers. Handy and fast. Also one dirty trick to go to your home directory is only typing 'cd' and hitting enter. No need add ~.
Thanks for the useful info! It was awesome seeing the count of monte cristo being used for some examples, its my favourite book.
Im glad to hear it! It’s my favorite book too.
You...., wizard...., has a new worshipper. Me is, from now on, following your magic.
This is great, I’ve been using unix shell scripting a while but not wholeheartedly so haven’t really learnt it properly because i have extensive knowledge of powershell, even to the extent that install powershell on Mac and use it. But I realise that all the funky and fancy stuff in ps, I can do in way less code and probably more so just using the unix approach. Fzf is just fantastic and so is this video, you have given me inspiration to go head first into unix shell scripting so thanks 💪
Great video ! Btw in your node_module cleanup command you could put 2 inside the bracket of your cat command to get only the second part of the entry and not trying to cat the size of the folder like such: fd 'node_modules' -HIt d | xargs du -sh | sort -hr | fzf -m --header "Select which ones to delete" --preview 'cat $(dirname {2})/package.json' | awk '{print $2}' | xargs -r rm -rf
Great video PLUS.The music is very relaxing.
I know I've used tail before when I needed to iter over a very large dir with an unknown amount of empty folders which would break another workflow. Amazing how fast it ran, just recursing through each level and nuking every empty dir it came across
My line editing became a lot less painful once I figured out I could use the emacs bindings on it. Also, I didn’t know about c-x,c-e which in retrospect makes a lot of sense. Thanks for teaching me something
Great information and nice background noice. Helps you concentrate. Thanks for this. I hope you do many more videos on Linux!
Holy crap. I learned some cool new tricks. Thank you. I was really skeptical at first.
Nice video. I've been using Linux for 30 years and learned some new commands, such as fzf. One thing I would add is the tac command. It's cat but in reverse, which is sometimes handy
man works mostly only for coreutils, but not things like ripgrep, fd, fzf, jq etc, coz they don't usually provide it. So if you don't wanna google and your use case is trivial you could install tldr so it would provide some quick use examples. some OSes are POSIX compatible, but their commands could have different set of argument options. Same idea with subshell syntax, as well as advanced redirections. Also, if you forgot how to zip or unzip things using tar you can use mnemonic called "german voice" Compress Ze File -> tar -czf eXtract Ze File -> tar -xzf
Amazing, I had never heard of the german voice mnemonic, but that is perfect.
@@CODE_IS_EVERYTHING seen it on Tweet shot back in a day, remember it since
Why shouldn't man work for ripgrep, fd, fzf, etc? All those examples you listed work with man for me. "man rg", "man fzf", "man fd", "man jq"
@@hypnogri5457 because man uses specially formated text files located at certain places (man man can clarify the detes). When you install it from apt, aur, pacman or whatever else they usually do not provide those text files, so your only documentation located in under --help argument. So if it's works for you then someone made them for your OS distro.
@@DeathSugar thank you
Damn, I thought the video might be too basic for me but I have never seen fzf being used like that. Love it.
this is absolutely a gem :) thank you for the video and learning us nice stuff, you just got a new subscriber
Great format, pleasing voice
Been working in cli server for 2, years and I knew every command. I'd like to add 'history | grep "whatever"' for when you'd reuse some complex commands.
linux shadow wizard money gang
shell wizard money gang we love casting shells
I was trying to find a vid like this for a while now haha. Thank u 😁
So useful. Awesome video thank you
Man this video is relaxing
That fzf is amazing.
Pretty concise, subscribed!
Thanks for posting this!
An alternative to that funky kubectl command would be using k9s. A dog themed terminal controller for kubernetes
Great video, hope you make more!
if you think awk is confusing, you just haven't taken the time to learn it. It is an incredibly simple language that looks a lot like javascript. Literally just like like 15 minutes to read the documentation for gawk (in a browser, its just easier) and you will never be confused again
That is a fair assessment 😅 I’ll have to give it a read
@@CODE_IS_EVERYTHING lol thanks for being nice about it, I was a little rude. Great video!
No worries, I didn’t take it that way. I appreciate the heads up. I use it often enough there is really no good reason to not spend a few minutes to actually learn it haha
To be fair, it's not that awk is that confusing. It's more like when you're initially learning all this stuff as shell utilities and then BAM out comes a fucking scripting language. One of these things is not like the other.
@@Snollygoster- yeah that is pretty accurate lol
Your channel is beautiful Bro. It’s just beautiful.
This one is the best! To the point and powerfull. Thanks so much!
The dash can sometimes be used to use the previous value/location. "cd -" lets you go back to where you were. Nice if you cd into some root folder and want to go to where you were. Same goes for "git checkout -"; if you are in your branch, checkout to master to git pull, but want to return to the branch you were just in.
thank you so much! I've drastically changed my config.fish because of this video
I am a Bash Wizard. It was the first language ive learned. (Even before English).
Great video! Thanks!
wow bro keep it well made and just great overall!
you opened my eyes. ty~
Potential slip up at 10:35 when you say "Ctrl+D to exit the shell"
Shoot, you're right. Ctrl+D is correct, I scuffed the visual hotkey list. Darn, it doesn't look like there is a way to add an overlay in the YT video editor.
Amazing video. You are the king
Ctrl x + ctrl e just changed my life
Never knew about the -f option for tail. Got a feeling I'll be using that quite a bit now!
Excellent, it definitely comes in handy, especially when you’re doing server admin type stuff
Fantastic presentation & info, subd!
Haven't used bash in ages. A lot of the keyboard shortcuts are shared with emacs, since they're both part of the gnu project.
I don't usually comment but this deserves it! Amazing video 🙌
This is a very good video. good work.
This is some good stuff here...
Great video!
Great content
Some more modern tools which are great are jq, yq, xq. Which are a family of tools for json query, yaml query and xml query.
Shell - a program which sits between you and the kernel, needed to only pass legitimate, authorized commands to the kernel or other apps. Terminal Emulator - a program which emulates a vt100 terminal and escape codes. Terminal - previously a screen with a keyboard without any cpu or serious computational power, the device sent escape codes to the mainframe to administer it or just to work on the computer in general. Terminals were wiresly connected to the mainframe (usually in the same building). Console - a terminal (of 1970's) physically attached to the mainframe, other than physical attachment it's the same terminal. Today 'console' is often used in games, when you bring the terminal on half the screen, because it reminiscent of the old terminal attachment to the mainframe, so is a terminal attached to the game.
Wow that was great tutorial👌
HOLY HELL THIS VIDEO IS AMAZING
Have been using linux for a few things for like 5 years, and just only now realized man stands for manual
I'm an RHCSA and RHCE. This was a fantastic video. While I'm familiar with about 90% of this, there was definitely new things to learn! "fzf" is a new one for me, and it looks to be extremely powerful! I really need an excuse to practice using it more often. I work on so many systems that creating aliases is not useful for me. Plus, I'd rather be able to know how it's done rather than do it once and alias it away. I can't say I've ever used awk in all my years doing Linux admin work, but I do think I copied and pasted a big chain of piped commands with it in it before lol. #vim4life
Glad this came up on my feed. Shoutout algorithm
I just know bro is gonna get a hit with the algo at some point and up in niche tech recommends
Wow, what a great video.
This video is great!
I’m going to do my best to regularly forget to use fzf but also that last command with the open the editor was gold! But now I need to find the conf file to select the correct editor.
Haha I'm glad to hear it. The open the editor should default to using whatever you have set in your $EDITOR env var. So if you want to set that to nvim (or whatever you want) you can do: export EDITOR=nvim If you're using zsh, you can put it in the ~/.zshrc, if bash, it would be your ~/.bashrc -- if you're using something else, it'll probably be in a similar spot.
this was so helpful
Thanks! and love the profile pic
Loved it🔥