Linux Command-Line Tips & Tricks: Over 15 Examples!

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024

ความคิดเห็น • 308

  • @SMJSmoK
    @SMJSmoK 2 ปีที่แล้ว +35

    26:50
    Also, when you chain commands with ||, you make sure that the second command runs only if the first one fails (for example: "command1 || command2" will only run command2 if command1 failed). You can then make a construction like this:
    (command && echo "success") || echo "failure" - this will "tell you" if the command was a success or not. If you redirect the output and perhaps include some timestamps, you have simple logging that comes in handy in scripts, for example :)

    • @KrolPotato
      @KrolPotato ปีที่แล้ว

      That's cool!

    • @cynth0984
      @cynth0984 7 หลายเดือนก่อน +1

      have you tried:
      echo $?
      ?

  • @MartinCode
    @MartinCode 2 ปีที่แล้ว +27

    just write "cd" will take you to home

    • @darkseid3427
      @darkseid3427 หลายเดือนก่อน

      That's a cool trick thanks mate!

  • @hugocoolens
    @hugocoolens 2 ปีที่แล้ว +20

    The reason why CTRL-z sometimes does not work with nano is that it often is disabled in the settings of nano e.g. by editing /etc/nanorc and commenting the line "set suspend". The reason for doing this is, is that people with a windows background often start pressing CTRL-z in nano thinking that would undo something, but of course it doesn't. If you are teaching linux beginners, this is a nice feature to have.

    • @veden310
      @veden310 2 ปีที่แล้ว

      I remember having pain in a$$ with this feature when I switched from Windows to Linux ))

  • @_yourNameHere__
    @_yourNameHere__ 2 ปีที่แล้ว +1

    Ctrl + y will paste whatever you yanked with Ctrl + u, Ctrl + k, or Ctrl + w.
    One use for this is when you forget to type sudo in the beginning of a line. So you would Ctrl + u the line then type in sudo then Ctrl + u to bring back the commands you just yanked.
    Thanks for the awesome tips in the video!

  • @cynodont7391
    @cynodont7391 2 ปีที่แล้ว +10

    In the last example, 'mount' is used to illustrate the 'column' command. 20 years ago, the output of 'mount' was quite easy to read. Nowadays, this is a mess because even the most basic Linux installation creates at least 20 virtual filesystems and nothing is sorted.
    Here are 2 good alternatives to 'mount' that are probably installed by default on all modern linux systems:
    The first is 'findmnt' which basically prints the same information but nicely formatted in a tree. As its name indicates, the real purpose of findmnt is to find which filesystems are matching a set of criteria but its default output matches everything.
    The second is 'lsblk' which prints information about the physical block devices (so no virtual filesystems). By default, the output is formatted as a tree representing the device hierarchy (LVM, LUKS, raid, ...) and the columns can also be configured (see the options -o, -f , ...)

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว

      I learn something new every day. in this case findmnt.

    • @Economics21st
      @Economics21st 5 หลายเดือนก่อน

      Thanks!

  • @knjohnson312
    @knjohnson312 2 ปีที่แล้ว +2

    As someone relatively new to Linux, watching this video was like scratching an itch, or finally remember who the actor was in that movie you were talking about a week ago. Such a relief to have these in my toolkit now. Thanks for the video!

  • @jolimartinez1495
    @jolimartinez1495 2 ปีที่แล้ว +1

    I have been working with Linux/Unix systems for over 20 years. I have worked with Solaris, SCO, FreeBSD as well as most major linux distros. I stumbled upon this video and thought it would be some basic commands I already knew. But, I was surprised that some of the commands were new and I will start using them right away. The "sudo !!" as well as adding a space to a command would not appear in the history. Stuff like that was very useful. I have a bash script that will go and search for passwords in history and clear them out, but this is much better. Thank You. Finally I would add the "watch" and "timeout" command. The watch command runs whatever command every 2 seconds. This is useful for getting realtime file sizes. The timeout command is great when you want to run a command for X amount of time, for example tcpdump.

  • @TanjoGalbi
    @TanjoGalbi 2 ปีที่แล้ว +17

    CTRL-A and CTRL-E are also implemented with HOME and END respectively with most terminal software. Much easier to remember HOME for the start/home of the line and END for the end!

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว +5

      If you're an emacs or mg editor user, you should learn it anyway. If you're a "vi" user, put the shell into "vi" mode.

    • @TanjoGalbi
      @TanjoGalbi 2 ปีที่แล้ว +2

      @@xpusostomos pfft, vi is a user unfriendly editor that only die hard long term Linux users hold on to. They seem to think you are not a true Linux user if you don't use it which is just plain stupid, it's a "no true Scotsman" fallacy that needs to end and besides, why make things harder for yourself when there are easier tools to use? Just use tools you like to use, if the job gets done either way then what does it matter? 😏
      Just a small rant about vi, nothing wrong with what you said 🙂

  • @glendubie
    @glendubie 2 ปีที่แล้ว +3

    Thanks for all your help Jay. You are a true blessing for those of us who are new to Linux. Keep up the good work my friend it is truly appreciated.

  • @krackpot_
    @krackpot_ 2 ปีที่แล้ว +2

    Incredible. I have been pecking away at command line mostly hating the experience and didn’t know more than 90% of these commands. Not a full time Linux user but have been using Linux over the years. I think I’m going to have to incorporate as much of these commands and possible going forward. Thank you for sharing this knowledge, Jay!

    • @farfthi
      @farfthi 2 ปีที่แล้ว +1

      These tips are for the bash shell, the default for Linux distros

  • @cyberp0et
    @cyberp0et 2 ปีที่แล้ว +1

    Linode is the best sponsor on TH-cam :)
    I need to spend more time in Linux console/ terminal.
    Thank you for this video. I need to watch it again with pen and paper.

  • @goran.jovanovic
    @goran.jovanovic 2 ปีที่แล้ว

    Well so much things you can learn from Jay......and Silent BOB. Jokes aside. This is one of the best learning places on the net for Linux. Really. Thank you so much for the time you got in this Jay.

  • @ericcousineau8358
    @ericcousineau8358 2 ปีที่แล้ว +11

    Pretty much everyone knows how to glob things with *, but I've found fewer people know about brace expansion {}.
    If you want to repeat a command for a list of strings, you can list them inline.
    Eg.
    ls {dir1,dir2}/subdir_named_same
    It can be very useful whenever there are repeated patterns in directory structures.

    • @othernicksweretaken
      @othernicksweretaken 2 ปีที่แล้ว +3

      I often use even nested curly braces (or is it curly brackets?)
      to avoid typing sprees and let the shell do the hard work of expanding all alternations.
      I wonder if you knew that you can even avoid the seq comnand (if your Bash isn't too dated) and use the magic power of curly brackets' counting ability?
      Here is what I often do to create a bunch of temporaral mount points whenever I tinker with several filesystems in parallel.
      # mkdir /mnt/tmp{1..9}

    • @joelynott
      @joelynott 2 ปีที่แล้ว +2

      Or when you have to create multiple directories in the same location, saves some time.
      Mkdir {dir1, dir2, dir3}

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว +2

      And of course here you could do ls dir{1,2}/subdir_named_same. Also there are square brackets that do something slightly different. Braces always expand, no matter whether the result names a file or not. But
      $ ls dir[0-9]/hello
      will expand to anything of the form dir4/hello provided that it exists. Also ? is worth knowing about (it matches precisely one character, whereas * matches any string, including the 0-length string "" so hello?*world matches any file starting with hello and ending with world and which has at least something between hello and world.

  • @geoptus
    @geoptus 2 ปีที่แล้ว +4

    There are loads of cli key-commands and escape sequences for both emacs mode and vi mode, they can be listed with:
    bind -p

    • @KrolPotato
      @KrolPotato ปีที่แล้ว +1

      You just ruined Jay's entire series he planned on "Terminal Tricks" with this "bind -p" command. Good job! ;-)

  • @PoodlePlugins
    @PoodlePlugins 2 ปีที่แล้ว +1

    I just want to say thanks Jay for al your content, I've been using Linux for quite a few years alongside MacOS, ( I use Arch btw ) and I learn and discover something new every week with your videos. It was your Arch install video that got me started with that, and I've not looked back.

  • @ericanker9049
    @ericanker9049 9 หลายเดือนก่อน

    This was just great. Fitted straight in, right now, in my atempt to learn linux. Thanks!

  • @andmefikri7555
    @andmefikri7555 2 ปีที่แล้ว +1

    Thank you so much! This has been very informative. Of all the 15 tips, only 1 I knew, despite having used Linux for up to 5 years. Keeps the great content coming, man :D

    • @f4zkh4n
      @f4zkh4n 2 ปีที่แล้ว

      meanwhile I knew all but 1 and still can't seem to make the switch from windows despite many attempts.

    • @andmefikri7555
      @andmefikri7555 2 ปีที่แล้ว

      @@f4zkh4n Neither can I. Have tried it, works when your needs do not clashes, but doesn't when there are things you simply cannot do in Linux. So these days, I just use WSL. Works best as a compromise.

    • @f4zkh4n
      @f4zkh4n 2 ปีที่แล้ว

      @@andmefikri7555 i'm going to try jump ship once again. win10 telemetry has always been outrageous and left a bad taste in my mouth. win11 seems even in worse in more ways than one, complete no go. WSL has been cool though and android apps running in win11 is also the one enticing thing about it.

  • @Igor-qn6pj
    @Igor-qn6pj 2 ปีที่แล้ว +3

    Also there is a trick if you forgot to run long running command with nohup, or run this command in screen, and you need to close the session, just run disown -a && exit

  • @motoryzen
    @motoryzen 2 ปีที่แล้ว +1

    4:10 to 4:20. very cool. Much respect for ctrl + l ( lower case L btw) I've been typing clear and enter this whole time.

    • @6500s1
      @6500s1 2 ปีที่แล้ว +1

      but clear actually clears instead of just 'pushing down' :D

    • @_maxt
      @_maxt 2 ปีที่แล้ว

      You can also C-L after you typed your command, just before pressing enter for example :o)

  • @Lilvictus
    @Lilvictus ปีที่แล้ว

    One tip I think is similar to "!!" to repeat the entire previous command, is to use "!$" to repeat just the last argument from the previous command. If I "cat ~/longpath/somefile", then decide I want to edit the same file, it's a simple "vim !$". It's also useful when you "ls ~/longpath/somelongdir", see the file you want to edit, and can then just "vim !$/somefile".

  • @duranopaulo
    @duranopaulo ปีที่แล้ว

    Thank you coming from Cebu, Philippines.

  • @aaaaaaaaaaaaaaaaa98
    @aaaaaaaaaaaaaaaaa98 2 ปีที่แล้ว +1

    22:19 I usually use "home", "end", "ctrl + arrow keys" to jump over command line text

    • @joelynott
      @joelynott 2 ปีที่แล้ว

      In some "dumbs" terminal home, end or ctrl+arrows doesn't work, so is good to keep this in mind.

  • @dmitry86
    @dmitry86 11 หลายเดือนก่อน

    You can also use :var to temporarily leave the vim terminal, it should split the screen in two.

  • @jotmai3630
    @jotmai3630 2 ปีที่แล้ว

    Well well well... As an outdated Unix user myself, coming back to the nix community, migrating myself from Windows, I am inclined to rekindle myself to CLI before I even can go forward with the nix system. You got my subs from this video. Gonna get myself updated with your Linux knowledge on this channel. Just to add a little note though. This symbol ">" is also useful in terminal or CLI or CMD.

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว

      Not to mention ">>", "

  • @linuxman0
    @linuxman0 2 ปีที่แล้ว +5

    I expected you to include command || command to show that if the first command fails, run the second command.

  • @PS_Tube
    @PS_Tube 2 ปีที่แล้ว

    Great tutorial. I was actually waiting for cmatrix to appear.

  • @preetamvmw
    @preetamvmw 11 หลายเดือนก่อน

    nice, today is 28.10 and i watching this video on same day and month when this video was recorded. Point is - year does not matters

  • @joshinils
    @joshinils 2 ปีที่แล้ว +1

    opposed to ctrl+a and ctrl+e to go to the start and end of a line i use the buttons home and end buttons abothe the arrows, its muscle memory and works (if not should) everywhere i can type text

  • @nlflint
    @nlflint 2 ปีที่แล้ว

    My fav that you didn’t mention is “less”, but that’s kinda its own program that you could do a whole video on.

  • @k4tipun013
    @k4tipun013 2 ปีที่แล้ว +1

    This is really helpful. Thank you!

  • @lynnbethechange
    @lynnbethechange 10 หลายเดือนก่อน +1

    Not only will ";" run all the commands and "&&" will run them all if no mistakes are encountered, the "||" will ONLY fun the following commands IF an error happens.

  • @BigBlueMotors
    @BigBlueMotors 2 ปีที่แล้ว

    As a newb Linux user, apropos command + function helps find how to complete tasks that I forgot.

  • @itlearner1175
    @itlearner1175 ปีที่แล้ว

    Jumping to be the beginning and end of the line is very useful. Is there a command to go in the middle of the line or move word by word back and forth? Or maybe 3 words back and forth at once?

  • @Magicman8508
    @Magicman8508 2 ปีที่แล้ว

    Just seen and already used. Thx!

  • @medic2299
    @medic2299 7 หลายเดือนก่อน

    I use ctrl-shift with up arrow to scroll through the history many times when wanting not to reach for the mouse.

  • @elektron2kim666
    @elektron2kim666 2 ปีที่แล้ว

    'startx' is my favourite. In the long gone past I didn't get to the desktop in every distro.

  • @houltmac
    @houltmac 2 ปีที่แล้ว

    To replace an string in the last command with a new one ^old^new where old is being replaced with new

  • @joffreybluthe7906
    @joffreybluthe7906 2 ปีที่แล้ว

    Very useful! Thank you very much

  • @serpantinthewild
    @serpantinthewild 2 ปีที่แล้ว

    Thanks, very comprehensive and helpful

  • @cynodont7391
    @cynodont7391 2 ปีที่แล้ว +1

    My command line tip: if apt prints hundreds of lines and ask you to type 'Yes, do as I say!' to continue then don't do it.

    • @rbettsx
      @rbettsx 2 ปีที่แล้ว +1

      I don't think Linus from tech-tips is watching 🙄

  • @MrMo3557
    @MrMo3557 2 ปีที่แล้ว

    Great video Jay, even taught an old grey beard something

  • @taveek
    @taveek 2 ปีที่แล้ว

    Excellent tips, thanks for your sharing

  • @X19-x5f
    @X19-x5f 2 ปีที่แล้ว

    Great content. I learned a lot. Thanks for making this video.

  • @deephouse369
    @deephouse369 2 ปีที่แล้ว +1

    Great stuff, ty for sharing 😇

  • @diegonayalazo
    @diegonayalazo ปีที่แล้ว

    Amazing man thanks!

  • @tonyweston3219
    @tonyweston3219 2 ปีที่แล้ว

    Informative keep up the good work

  • @indranilkamulkar1199
    @indranilkamulkar1199 2 ปีที่แล้ว

    Fantastic ... Good job I liked your tutorial very much

  • @JosePerez-pn3ke
    @JosePerez-pn3ke 2 ปีที่แล้ว

    Great Stuff--super cool!

  • @itlearner1175
    @itlearner1175 ปีที่แล้ว

    Push and pop works like a stack , can we pop from the middle in some way?

  • @BeginningProgrammer
    @BeginningProgrammer 2 ปีที่แล้ว

    On thing about the HISTTIMEFORMAT change in the config file is that I had to reload the terminal for it to work on Windows WSL

  • @rupesharora8561
    @rupesharora8561 2 ปีที่แล้ว

    echo "" > filename can also acts as truncate -s0 filename

  • @clextra3238
    @clextra3238 2 ปีที่แล้ว

    Nice usable tips!

  • @terryforsythe8083
    @terryforsythe8083 2 ปีที่แล้ว

    Excellent video!

  • @MindoverMaster1
    @MindoverMaster1 2 ปีที่แล้ว

    I have that same shirt!!

  • @meiowalot7570
    @meiowalot7570 2 ปีที่แล้ว

    cd by itself generally takes you to $HOME, so cd ~ is redundant.

  • @joshinils
    @joshinils 2 ปีที่แล้ว +1

    huh, column is not as "efficient" as ls in packing the content on screen.
    `ls` priduces a more compact list opposed to `ls -1|column` which makes every column the same width

    • @jyvben1520
      @jyvben1520 2 ปีที่แล้ว

      can ls show the content of a file ? no

  • @mikechappell4156
    @mikechappell4156 2 ปีที่แล้ว

    You can also chain commands with ||. It only runs the second command if the first one fails.
    cat notfound 2>/dev/null || echo oops

  • @m_sen8710
    @m_sen8710 2 ปีที่แล้ว

    great video, thank you.

  • @BatteryProductions
    @BatteryProductions 2 ปีที่แล้ว

    learned a few things here :)

  • @fredericroux616
    @fredericroux616 ปีที่แล้ว

    13:30 ssh skynet ;-)

  • @thelearner761
    @thelearner761 2 ปีที่แล้ว

    Perfect!!

  • @joshinils
    @joshinils 2 ปีที่แล้ว

    will you or have you done a video on something like screen to keep a process running after disconnecting an ssh connection or closing a terminal window? and the benefits that come with that like having multiple terminals in the sam terminal and configuring the split widths or heights of them?

    • @jyvben1520
      @jyvben1520 2 ปีที่แล้ว +2

      see tmux, might need a cheat sheet for even basic tmux

    • @robotsnthat
      @robotsnthat 2 ปีที่แล้ว +1

      Jay has covered tmux already. th-cam.com/video/gmjyMxezIWU/w-d-xo.html

  • @CesarPeron
    @CesarPeron 2 ปีที่แล้ว

    Does Debian have a helper like yay from Arch? I find it so unproductive to use Debian for it, any advice would be welcome

  • @khalifakhalifi2397
    @khalifakhalifi2397 2 ปีที่แล้ว

    You using Linux just to do stuff from the terminal?

  • @skipinkoreaable
    @skipinkoreaable 2 ปีที่แล้ว

    Thank you.

  • @MarkJYule
    @MarkJYule 2 ปีที่แล้ว

    Ctrl L for the win!
    Don't know how many CTF walkthroughs I've watched and seen a million "clear" cmds being typed ....arghhhh 😂

  • @Ju13n1s2e9
    @Ju13n1s2e9 2 ปีที่แล้ว

    Ctrl+D is a very handy keyboard shortcut, used instead of the EXIT command, and also close the terminal window.

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว

      Ctrl+D also does more than just exit. Ctrl-D sends an end-of-file. So for example you can dump text into a file via
      $ cat > myfile
      start typing
      some text
      Ctrl+D
      and the Ctrl+D on the last line will finish dumping what you type into a file. I often write short scripts this way, rather than bothering to launch an editor. (This is useful if you want to see the lines in the terminal above while entering a script. It also teaches you to think before you type, as once you're pressed Enter, what you typed is committed to the file.)

  • @jim7smith
    @jim7smith 2 ปีที่แล้ว

    For the "#%$&@*& I forgot to preface with sudo AGAIN", I just up arrow and home and type sudo with a space after and hit enter... I have challenges remembering the dual exclamation points...BUT now that I have commented, I will likely remember it... LOL.

  • @rostislavsvoboda7013
    @rostislavsvoboda7013 ปีที่แล้ว

    Use `less +F` instead of `tail -f`.

  • @malelonewolf80
    @malelonewolf80 2 ปีที่แล้ว

    Is it possible to use the truncate command to create multiple empty files with the filenames of the folders in a directory, and have the respective files be placed in their respective folders that shares their name?

    • @davidh.4944
      @davidh.4944 2 ปีที่แล้ว +1

      truncate only does what it says on the tin, it reduces a single file's size down to a given length.
      What you want would probably require some kind of a loop. 1. get the list of directories, 2. iterate over each name in turn, to... 3. build the desired /path/to/filename for each entry, and 4. create the files in their desired locations. Not hard, but not a single-command job.
      Creating a single file (or truncating it to zero), though, is actually as simple as running '> /path/to/filename'. This is the shell's standard built-in file redirection feature. '>' redirects the stdout of a command to the given file, creating it if necessary. If no preceding command is given, it simply creates the (empty) file.
      Warning, though, '>' will always overwrite, (i.e. truncate/erase) any previous file contents to zero. Unwanted data loss is very easy. Bash does have a _noclobber_ shell option, however, that can help prevent accidental truncation, at the cost of needing a slightly more complex syntax to override it.

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว +1

      If I understand what you're asking, it's this:
      for f in `ls`
      do
      test -d "$f" && >"$f"/"$f"
      done

    • @malelonewolf80
      @malelonewolf80 2 ปีที่แล้ว

      @@xpusostomos Thanks. Will have to try that and see if it works.

  • @costachen9895
    @costachen9895 2 ปีที่แล้ว

    Can you explain how auto completion work in oh-my-zsh?

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว

      A while since I used zsh, but I think it's basically the same as bash.

  • @Gabriel-kl6bt
    @Gabriel-kl6bt 2 ปีที่แล้ว

    Only "cd" is enough to go back to home directory.

  • @lolaa2200
    @lolaa2200 2 ปีที่แล้ว

    Very interesting video but it's too long and there is too much at one bite, there is n way i could remember all this although i totally see the usefulness of 90% of those commands for my daily practice. I think a 5min tip of the week rolling format would be much more suited, plus with careful title easier to search for.
    Just my 2cts...

  • @krunalshah2484
    @krunalshah2484 2 ปีที่แล้ว

    Sweet!!!!

  • @OsmanDD
    @OsmanDD 2 ปีที่แล้ว

    I was using cd .. instead cd -

  • @RickJohnson
    @RickJohnson 2 ปีที่แล้ว +33

    15:30 - %Y-%m-%d is the same as %F in bash. Thus HISTTIMEFORMAT='%F %T ' gives the same results in fewer keystrokes.

    • @X19-x5f
      @X19-x5f 2 ปีที่แล้ว

      Nice! Thanks for the tip.

    • @SanjayWale
      @SanjayWale ปีที่แล้ว

      Cool!

  • @unbekannter_Nutzer
    @unbekannter_Nutzer 2 ปีที่แล้ว +23

    To cd to your home, just use `cd`. The tilde is only needed if you need to address a subdirectory of your home, like `cd ~/proj/scala/mini`.
    To exit cmatrix, just hit the q key. Many other programs use the q=quit too, like man, less, ...
    Beside Ctrl-a for the beginning of the line, you may use the HOME key as well, and respectively the END key for end of line.

    • @Economics21st
      @Economics21st 5 หลายเดือนก่อน

      Also to cd to another user's home directory:
      cd ~bob

  • @jeffherdzina6716
    @jeffherdzina6716 2 ปีที่แล้ว +23

    Jay, I'm kinda surprised that you didn't include Alias commands. Being a Sys admin, I use Alias commands all of the time.

    • @tomv3999
      @tomv3999 2 ปีที่แล้ว

      Me too. The problem is then I log into another machine, and my aliases aren't there. I love aliasing "lt" (ls -lht | head) but whenever I'm on a new box, I get (of course)
      Command 'lt' not found, but can be installed with:
      sudo apt install looptools

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว

      aliasing, and also functions.
      instead_of_an_alias() { do_something; }
      my_func() {
      local A="$1"
      shift
      for s; do
      echo "$s:$A"
      done
      }
      and so on. I mostly use functions.

  • @PanSatyr
    @PanSatyr ปีที่แล้ว +9

    Been using Linux for decades and I still learned some things from this. Thank you. Now I want to share the world changing CLI tip I learned within the last decade.
    tail -F
    The capitol F will "follow" Log files that roll over. For example if your tailing syslog and it gets rolled to syslog.1 the tail -F will continue tailing the new syslog file.
    I work on apps that write lots of data to their log files and roll them rapidly. The tail -F option saved me from missing things and or having to go back and grep through he log files.

    • @LearnLinuxTV
      @LearnLinuxTV  ปีที่แล้ว +6

      OH MY GOSH. Look at that. I just learned ANOTHER cool trick from an awesome person in the community. I'm still learning things after two decades. The learning never stops, and I learn from you guys all the time!

  • @glidersuzuki5572
    @glidersuzuki5572 2 ปีที่แล้ว +13

    cd ~ is same as just cd.
    Ctrl-w will delete word instead of whole thing like Ctrl-u
    Ctrl-k is like Ctrl-u but for things after the cursor and not before.

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว

      Not sure whether it was mentioned, but e.g. ~john reverse to the home folder of the user named john, not necessarily the logged in user. So cd ~harry/Videos changes to something like /home/harry/Videos.

  • @pierresmith
    @pierresmith 2 ปีที่แล้ว +3

    I never use "cd ~" . Instead I use .............. "cd" only 😅

  • @bofhorg
    @bofhorg 2 ปีที่แล้ว +12

    control-z doesn't send your process to the background; it *stops* it. To send it running to the background, use 'bg'

    • @jim7smith
      @jim7smith 2 ปีที่แล้ว

      sounds good, BUT just tried it in mint-xfce and it did not like it. It replied with "bash: bg: current: no such job". Perhaps this is distro dependent?

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว +1

      @@jim7smith It's definitely not distro dependent, so I'm not sure what went wrong for you. After you hit ^Z, you should be able to type "jobs" to see what you've got running. Also, putting interactive processes like editors into the background is a bad idea.

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว +3

      @bofhorg... a matter of terminology... Control-z makes it stopped in the background. "bg" makes it running in the background.

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว +1

      @@jim7smith Ctrl-Z sends the SUSPEND signal to the process. Processes can trap this signal and control what happens next, possibly ignoring, possibly terminating. If you get bg: no current job, that probably means the program terminated in response to SIGSUSPEND. Which command did you try Ctrl-Z with, out of curiosity?

    • @chetanc7909
      @chetanc7909 ปีที่แล้ว +1

      Ctrl +z and immediately type bg
      Then your process will run on background

  • @ricklakes9405
    @ricklakes9405 2 ปีที่แล้ว +12

    Hi Jay, This will take me some time to wrap my head around all of this. Little by little I will work on this. Thank you so much for this video.

  • @xpusostomos
    @xpusostomos 2 ปีที่แล้ว +2

    You kinda should mention that all this video is predicated on your shell being /bin/bash. Your tips about what ^a and ^r and ^e assume that bash is in "emacs" mode... as opposed to "vi" mode... but then you're using vim in the video. If you're a "vi" user, might as well put bash into "vi" mode.... or stop using vim editor and use emacs or mg which have the same keys... why learn these keys that are useless in your editor. And your tips about making the font bigger and smaller... and maximising your window, is predicated on a particular terminal program, and a particular window manager. For all you know, someone is sshed into Linux from Windows, or who-knows-where. ... the truncate command is a long-way-around to zero a file... most long term unix users would just go ">hello.txt"

  • @stuartm5745
    @stuartm5745 2 ปีที่แล้ว +32

    22:11 Ctrl+U will not necessarily delete everything on a line. It will delete everything to the left of the cursor. (Ctrl+K will delete from the cursor to the end of the line.)
    To delete an entire line regardless of where the cursor is located, use Ctrl+C.

  • @MatthewCrofut
    @MatthewCrofut 2 ปีที่แล้ว +18

    As a linux noob, can't tell you how many times I've accidently hit control-z and then had no idea how to get back to that screen. Thanks Jay!

    • @hugocoolens
      @hugocoolens 2 ปีที่แล้ว +1

      Just type: fg and you'll get your nano session back. You could also make nano insensitive to CTRL-z by editing /etc/nanorc and commenting the line "set suspend" in that file. (sudo nano /etc/nanorc)

    • @jim7smith
      @jim7smith 2 ปีที่แล้ว

      were you trying to hit ctrl A instead to select all?

    • @cynodont7391
      @cynodont7391 2 ปีที่แล้ว

      The applications do not see control-z. Instead they receive a suspend signal sent by the tty. You can list the terminal settings with the command stty -a
      You can disable the 'susp' signal by executing the following command (in your .bashrc):
      stty susp ""
      Or you can change it to something that you are less likely to hit by mistake such as
      stty susp "^@"
      However, I am not sure that changing the default terminal settings is a good idea. It is better to learn about control-z and the fg and bg commands.

  • @vladk4444
    @vladk4444 2 ปีที่แล้ว +2

    cd without anything takes you home

  • @towtruckn
    @towtruckn 2 ปีที่แล้ว +1

    Hi great video; if you add alias cmatrix='cmatrix -s' to .bash_aliases cmatrix will act like a screen saver i.e. any key subsequently pressed will exit cmatrix.

  • @joelynott
    @joelynott 2 ปีที่แล้ว +2

    Wonderful video and the comments are gold.
    I remember a couple of command/shortcuts that I'm use daily.
    !$: Calls the last parameter of the previous command.
    Example:
    Touch anyfile.txt
    Nano !$
    ||: Double pipe works like "OR".
    Only if the first command fails, run the second.
    Ctrl+x, ctrl +e: For long commands, open the default editor so you can write a very long command, save and it's ready in your prompt.

  • @nicolasrenard2551
    @nicolasrenard2551 2 ปีที่แล้ว +11

    The Ctrl + Left or Right arrow, allowing you to go to the previous/next word within a command, is pretty useful too.

  • @pyrokamileon
    @pyrokamileon 2 ปีที่แล้ว +5

    I have learned so much since discovering your channel! This video all in his own is like an excellent little cheat sheet that you might have with you for a final exam. If there is not a text / transcript version of this already available I may have to get on that myself even if it is just for myself, a lot of these were very useful, thank you 😮👍🏽

  • @paulstrong1656
    @paulstrong1656 2 ปีที่แล้ว +1

    Escape, .
    Push last argument of last command to cursor position

  • @d00dEEE
    @d00dEEE 2 ปีที่แล้ว +4

    If you use ctrl-R to recall commands, you should know that ctrl-S moves you forward in the search list (in case you pass the one you're looking for).
    Also, related to all the cd variants, see 'man bash' and look for CDPATH. If you have a set of path values set, say 'CDPATH=.:~', then cd tries to cd to '/' for each entry in the path. 'cd bin' attempts first 'cd ./bin', if that fails, then 'cd ~/bin' and so on.

    • @PendalfCell
      @PendalfCell 2 ปีที่แล้ว +1

      Ctrl-S doesn't work for me, neither on Windows in Putty or native terminal in GNOME, it just stucks untill you press Ctrl+C couple times.
      UPD: you need to set "stty -ixon" manually or in ".bash_profile" to disable XON/XOFF feature that takes over Ctrl+S.

    • @d00dEEE
      @d00dEEE 2 ปีที่แล้ว +1

      @@PendalfCell You got it, 'stty -ixon' is the solution. And if you forget and get stuck, ctrl-Q is the "xon" key that turns the tty back on, so you can continue without breaking out in the middle...

    • @_maxt
      @_maxt 2 ปีที่แล้ว +1

      @@d00dEEE I was just about to shout c-Q hehe +1

  • @davemeech
    @davemeech ปีที่แล้ว +3

    This is currently my favourite video on this channel, for which there has been a lot of competition. A lot of the tips in here are 100% going to be applied at work after the holidays. This channel has been fantastic for ramping myself up in a lot of skills I'm using in my current role. That and I want to start up a homelab, so even more mileage to be had on this channel. Top quality content, Jay, thank you for all of this.

  • @adasprogramuotojas2183
    @adasprogramuotojas2183 2 ปีที่แล้ว +3

    Instead of "truncate -s 0 file" you can use ">file"

    • @Chalisque
      @Chalisque 2 ปีที่แล้ว

      in the latter case, you need something to redirect into file. E.g.
      $ cat /dev/null >file # or
      $ echo -n >file
      but these don't offer much in terms of saving characters over truncate. Also, if you have noclobber set
      (via $ set -o noclobber),
      >file will not overwrite file (but >|file will). Noclobber is a useful safety feature, and I have it on by default, and only switch it off if I intend to overwrite stuff. (As another safety thing, I often use an alias so that to remove I have to type rmreal rather than rm -- once I intended to rsync some files from one machine to another -- I have my default options for rsync aliased to a command, something like
      $ alias rs='rsync -haux --progress'.
      On one occasion I typed rm instead and deleted a whole load of files I intended to rsync.

  • @aba-nascu
    @aba-nascu 2 ปีที่แล้ว +2

    Part 2 please..... ;-) Great Video!

  • @aaronperl
    @aaronperl 2 ปีที่แล้ว +4

    I've been running Linux since 1998, and I love the command line ... but I never knew about the "column" command.
    After I learned how to use Vim, and found that I really like it, I learned that Bash has a vi-mode ("set -o vi"), so I tried enabling it, almost as a joke, just to see how long it would take to annoy me. To my surprise, I still use it to this day, and I find its editing and searching commands far easier to remember than the emacs-mode. I always had trouble remembering how to use the search feature (ctrl-r or ctrl-i or whatever it is), but in vi-mode it's totally intuitive, at least for me (/ to search, j and k to scroll through matches).

    • @GooogleGoglee
      @GooogleGoglee 2 ปีที่แล้ว

      Cool

    • @davidh.4944
      @davidh.4944 2 ปีที่แล้ว

      Run _info coreutils_ and you'll find a whole host of other useful commands like _column_ .
      Edit: actually _column_ is not a coreutil, but part of the _util-linux_ package, another bundle of commands that should be installed by default.

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว

      Yes, intuitive for vi users. Of course, you should change to using emacs :-P

    • @bfahren
      @bfahren 2 ปีที่แล้ว +1

      "After I learned how to use Vim, and found that I really like it,..."
      Me, a vim rookie: "LIAR!"

    • @xpusostomos
      @xpusostomos 2 ปีที่แล้ว

      @@bfahren
      Confidence is the food of the wise man, and the liquor of the fool. Vim is fast for simple edits and limited for difficult work

  • @NoEgg4u
    @NoEgg4u 2 ปีที่แล้ว +8

    @4:10 "clear" command.
    Yes, ctrl-l is faster and more convenient, for interactive shell execution.
    But for within a script, "clear" is what you probably use to clear your screen.
    Perhaps you can issue a ctrl-l from within a script?
    If someone knows how that can be done, please chime in.
    @23:57 "...and just delete everything on that line" (via ctrl-u)
    That is correct, as well as incorrect, depending on your cursor position.
    ctrl-u does not necessarily delete everything on the line. Rather, it deletes everything to the left of the cursor. So if you cursor happens to be at the end of the line (and it usually is at the end of the line), then, yes, it will delete the entire line.
    But if your cursor was not at the end of the line, then ctrl-u would not delete any characters to the right of the cursor. It would delete only the characters to the left of the cursor.
    @27:03 "tail -f"
    I prefer to use "less -iM filename" or simply "less filename", and from within less's output, press "shift F" (the "F" means "forever", as in tail the file forever).
    Why is "less" and from there "shift F" my preference?
    That "shift F" feature that is within the "less" command will do the same thing as "tail -f". But the benefit of using "less" and "shift-F" is that when you are done tailing the file, you can press ctrl-q, and return to the standard "less" pager's output -- scroll around within the output -- search through the output, etc).
    With "tail -f", once you ctrl-c out of it, you are returned to the shell prompt. That might be better, depending on your situation. But I find the "less" command's "shift F" to be better, somewhat more often. At any rate, you have a choice between the two.
    Often, when jobs run, they will duplicate their standard output (what is shown to the user) to a log file. This is often the case in a business environment, where the operators, controllers, programmers (employees) must keep a real-time eye on its progress. And there could be countless jobs running. So it is common to run "tail -f" to check on job completions and see if they succeeded or ended with errors, etc.
    As such...
    When you run "tail -f" on a log file of a job that is running, you could confuse the output from "tail -f" as the actual job, when it is really only a real-time view of the actual job (it is not the actual job, but simply the mirrored output of a log file that the job created).
    Whereas, with "less", followed by "shift F", you will never mistake what you are viewing. You will absolutely know that you are in your "less" pager, tail'ing a file. You will never confuse viewing the tail of a file with viewing the actual, real job that is running.
    If you mistakenly thought that you were doing a "tail -f", when that window happened to be the actual job, then when you run "ctrl-q" to break out of what you thought was a tail of a log, you end up performing that ctrl-q on the actual job, and you kill the job. Depending on the job, that could be a big problem.
    Using "shift-F" via the "less" command avoids any and all potential mix-ups and mistakes that could happen with "tail -f".
    -----
    And, of course, another great video with clear and useful tips.
    Cheers!

  • @lloydsumpter7735
    @lloydsumpter7735 2 ปีที่แล้ว +1

    Love the pushd and popd - obviously from Assembly language. "BASIC'ers peek and poke, Assemblers push and pop!" :)

  • @BeginningProgrammer
    @BeginningProgrammer 2 ปีที่แล้ว +2

    What an awesome video. I've been using linux ... just enough to get by here and there and thought I knew some commands and I knew only one of these (history). Thanks for sharing.