Essential Linux Commands - Cat, Tac and Tee

Sdílet
Vložit
  • čas přidán 27. 08. 2024
  • In this video, I will discuss three of the basic command line utilities: cat, tac and tee. These commands are useful for printing the contents of files to standard output and concatenating files. Very handy tools to know whether using the shell interactively or scripting.
    REFERENCED:
    ► distro.tube/ma... - cat
    ► distro.tube/ma... - tac
    ► distro.tube/ma... - tee
    WANT TO SUPPORT THE CHANNEL?
    💰 Patreon: / distrotube
    💳 Paypal: www.youtube.co...
    🛍️ Amazon: amzn.to/2RotFFi
    👕 Teespring: teespring.com/...
    DONATE CRYPTO:
    💰 Bitcoin: 1Mp6ebz5bNcjNFW7XWHVht36SkiLoxPKoX
    🐶 Dogecoin: D5fpRD1JRoBFPDXSBocRTp8W9uKzfwLFAu
    📕 LBC: bMfA2c3zmcLxPCpyPcrykLvMhZ7A5mQuhJ
    DT ON THE WEB:
    🕸️ Website: distrotube.com/
    📁 GitLab: gitlab.com/dwt1
    🗨️ Mastodon: fosstodon.org/...
    👫 Reddit: / distrotube
    📽️ LBRY/Odysee: odysee.com/@Di...
    FREE AND OPEN SOURCE SOFTWARE THAT I USE:
    🌐 Brave Browser - brave.com/dis872
    📽️ Open Broadcaster Software: obsproject.com/
    🎬 Kdenlive: kdenlive.org
    🎨 GIMP: www.gimp.org/
    💻 VirtualBox: www.virtualbox...
    🗒️ Doom Emacs: github.com/hli...
    Your support is very much appreciated. Thanks, guys!

Komentáře • 83

  • @Phydoux2112
    @Phydoux2112 Před 2 lety +20

    Looks like you have a much more stronger and complicated password on your main machine there. Excellent video! I love these shell command videos. This one was really interesting. Thanks!

    • @jyvben1520
      @jyvben1520 Před 2 lety

      so you do "cat ./example_file.iso > /dev/sdb", it may be cleaner but is it faster (no blocksize set) ?

    • @Phydoux2112
      @Phydoux2112 Před 2 lety +1

      @@jyvben1520 that sounds dangerous. I'd read up on mounting iso files with cat a bit more before trying that one. I wonder if tac would mount it in reverse order...

  • @motozappa225
    @motozappa225 Před 2 lety +16

    cat is also useful to write/burn isos to drives, so it's a more efficient and clean alternative to dd or the other gui utilities out there

    • @pleaseenteraname1215
      @pleaseenteraname1215 Před 2 lety +1

      so to do this I just cat out my iso to /dev/sd*? also why is dd not clean?

    • @xrafter
      @xrafter Před 2 lety

      @@pleaseenteraname1215
      Because dd stands for "dirty delete".

    • @xrafter
      @xrafter Před 2 lety

      @@pleaseenteraname1215
      But no, I don't think cat is a better alternative than dd.
      Read more about it here >>> [provide link]

    • @pleaseenteraname1215
      @pleaseenteraname1215 Před 2 lety +1

      @@xrafter Your link is invalid :(

    • @xrafter
      @xrafter Před 2 lety

      @@pleaseenteraname1215
      Ok.

  • @reality-drift122
    @reality-drift122 Před 2 lety +13

    You have been such a large help in my Linux endeavors!! Thank you!

    • @pleaseenteraname1215
      @pleaseenteraname1215 Před 2 lety +1

      I second this sentiment this small mundane commands give way to learning big ones.

  • @spacebuffer
    @spacebuffer Před 2 lety +9

    Loving these videos!

    • @DistroTube
      @DistroTube  Před 2 lety +2

      More to come!

    • @pleaseenteraname1215
      @pleaseenteraname1215 Před 2 lety +1

      @@DistroTube Thank you so much keep this up this is very necessary for new users and I love how useful linux has been.

  • @OldieBugger
    @OldieBugger Před 2 lety +8

    Tac & Tee sound quite like the little programs I've written for some specific use, often a single use. Or sometimes I've used them twice.

  • @maciejszostakiewicz6883
    @maciejszostakiewicz6883 Před 2 lety +7

    Hah LOL, fresh video from 20 sec ago!! Yeah!!

  • @CostaKazistov
    @CostaKazistov Před 2 lety +3

    Top notch examples!
    More of these videos, please.

  • @nxzthelinuxguy5192
    @nxzthelinuxguy5192 Před 2 lety +3

    In love with your scripting tutorials

  • @linuxdude5742
    @linuxdude5742 Před 2 lety +4

    I have never heard of tac before your video

  • @Appalling68
    @Appalling68 Před 2 lety +1

    Excellent tutorial, especially (at least for me) the "tee" part.

  • @jamboyman
    @jamboyman Před 2 lety +6

    The tee content is missing a really cool addition that I've only needed once so far. Using process substitution you can split pipes to multiple commands (ksh/bash/zsh):
    Uname | tee >(cowsay) >(grep a) ... >(Command n) | grep b
    All the commands will be run with the same input
    Think you can do the same process substitution in fish by just doing:
    command 1 | tee (command 2) (command 3)

  • @MasterHigure
    @MasterHigure Před 2 lety +9

    You explained > and >>, but not |. Of the three, I would think that's the one that most needs explaining to beginners. Also, I didn't know command-line arguments really count as stdin, I thought that was only when programs ask for input while running (the way a newbie's second program after hello world, the one that echoes your name back at you, would typically work).

    • @DistroTube
      @DistroTube  Před 2 lety +11

      Yea, 'ls' wasn't a good example of what stdin is. I should have used something like 'cat < file' where cat takes stdin as an argument. Kinda ironic that I didn't use 'cat' as an example since this video was about 'cat'. ;)

    • @WildVoltorb
      @WildVoltorb Před 2 lety

      Are you going to explain that or what

    • @MasterHigure
      @MasterHigure Před 2 lety +4

      ​@@WildVoltorb My understanding, after using it here and there for a decade and a half, but never actually diving deep into any kind of documentation or such, is as follows:
      When you run a program that stops and waits for input from you before it continues (often a yes / no confirmation, but also other things like games played in the terminal), that input comes into the program through stdin. Many common command line tools take input either in the form of command line arguments or from stdin.
      grep, for instance, can take a filename and search through that file for whatever pattern you're looking for, and print each such line it finds. Or it can take input from stdin and look through that in exactly the same way.
      The | symbol takes the stdout output from one program, and rather than printing it to the terminal it feeds it into the stdin input of another program. In such "piped" commands, cat is a typical sender program and grep is a typical receiver program (although in chained piped commands, it can do both roles, and act as a filter). In fact, "cat filename | grep pattern" is, as far as I can tell, equivalent to "grep pattern filename".

  • @user-op1nb7fq6s
    @user-op1nb7fq6s Před rokem

    This is genius!
    I need more!

  • @jidun9478
    @jidun9478 Před rokem

    Thank you. Excellent tutorial.

  • @whiskeylinux
    @whiskeylinux Před 2 lety +2

    Dude I never knew about tac, so much fun lol

  • @Handy-Handy
    @Handy-Handy Před 2 lety

    thx man! the command tee I have used far too rarely :)

  • @michalbotor
    @michalbotor Před rokem

    sudo tee trick is really cool
    thx

  • @MarkusHobelsberger
    @MarkusHobelsberger Před 2 lety +2

    I actually had the very last problem recently. I just sledgehammered it with su, but the tee solution would have been much more elegant :)

  • @davidpetersonharvey
    @davidpetersonharvey Před 2 lety

    I use tee within mysql to run reports for clients. It's very handy.

  • @cuttlefishn.w.2705
    @cuttlefishn.w.2705 Před 2 lety

    md5sum or shasum to see if two files have exactly the same contents, without having to open up and read them individually. The hash should be the same between .bashrc and newfile.txt.

  • @agneaybnair9519
    @agneaybnair9519 Před 2 lety +1

    Hey DT, I feel that the classic "hello world" statement should be replaced by "Hi Mom!" Do you agree with me?

  • @xrafter
    @xrafter Před 2 lety

    15:02 now open that file using vim or nano.
    You will see all of thaf weird "/003" escapes that got interepted by the shell.

  • @kadensharpin2156
    @kadensharpin2156 Před 2 lety

    would "sudo -u root echo 1 > /proc/sys/kernal/sysrq" work as well?

  • @phanindratube10
    @phanindratube10 Před rokem

    Tee rocks!

  • @xrafter
    @xrafter Před 2 lety

    Hello DT, in the cat example, are you sure the newfile.txt and bashrc are the same with order difference?

  • @sotecluxan4221
    @sotecluxan4221 Před 2 lety

  • @staswisniewski4101
    @staswisniewski4101 Před 2 lety

    Quick question - will You put link/direct command to change color of cursor in terminal?

  • @laughingvampire7555
    @laughingvampire7555 Před rokem

    cat goes in pair with split

  • @manofnorse
    @manofnorse Před 2 lety

    First of all, it has to be mentioned that the kind of redirection with file descriptors you show, only applies to those shells, who have mainly inherited from the Bourne shell, while other shells might have other notations for that.
    The other points:
    No, "cat 0

  • @amerikraine3401
    @amerikraine3401 Před rokem

    I remember when I was new and trying to read the inside of a file and the answer was "cat". Lol

  • @Joanyan
    @Joanyan Před 2 lety +1

    it's weird that people are using cat to print to standard output instead of using < followed by the filename

    • @DistroTube
      @DistroTube  Před 2 lety +1

      "< filename" is not a legit command in Bash, the default system on every Linux distro and almost always the default user shell. "< file" is also not a valid command in Fish. So....there's that.

    • @Joanyan
      @Joanyan Před 2 lety

      @@DistroTube oh I see. I original found out about < in a luke smith video from 2019, and it worked as he said on zsh so I thought it was universal.
      after testing it in bash now I see that it's not a bash command

    • @Joanyan
      @Joanyan Před 2 lety

      czcams.com/video/82NBMvx6vFY/video.html here is the video(I put it in a separate comment since yt sometimes automatically removes comments with links in them)

  • @synen
    @synen Před 2 lety

    What are some examples where TAC is useful? Thank you.

  • @lukevideckis2260
    @lukevideckis2260 Před 2 lety

    Hey DT, do a video on the 'bat' command - a nice alternative to cat

  • @econ5887
    @econ5887 Před 2 lety

    For vim: sudoedit instead of tee

  • @mohamedalichabani6775
    @mohamedalichabani6775 Před 2 lety +1

    How do you get colors in you man pages tho ?

    • @ahahahabmbc1075
      @ahahahabmbc1075 Před 2 lety

      I think Zsh automatically colors man. For bash, you need to write a function. Quick web search will give you the answer

    • @DistroTube
      @DistroTube  Před 2 lety +2

      i use 'bat' for my manpager instead of 'less.' I've done a video about changing your manpager awhhile back.

  • @AeriaVelocity
    @AeriaVelocity Před 2 lety

    Don't forget about eet

  • @ArtemPelenitsyn
    @ArtemPelenitsyn Před 2 lety +1

    Your light is a bit off: some of the face is in shadow.

  • @kychemclass5850
    @kychemclass5850 Před 2 lety

    >> for overwrite and > for append would have been much safer !!

  • @SB-qm5wg
    @SB-qm5wg Před 2 lety +1

    I'll do anything to not have to use awk. I'll sacrifice a live chicken.

  • @paupereira1269
    @paupereira1269 Před 2 lety

    What widget do you use to get the kernel version?

    • @othernicksweretaken
      @othernicksweretaken Před 2 lety

      uname -r

    • @paupereira1269
      @paupereira1269 Před 2 lety

      @@othernicksweretaken yes i know the command but how can you put that in a widget?

    • @othernicksweretaken
      @othernicksweretaken Před 2 lety

      @@paupereira1269 I have never done widget development because I don't require a GUI or desktop.
      I can remember that some 25 years ago I scripted GUI / widget stuff in Tcl (tickle), and a little later in Perl::Tcl.
      But I have long forgotten what I did back then.
      I would suggest to read the docs and man/info pages of the respective API that you are using.
      They might have implemted the uname syscall of libc.

  • @tamoozbr
    @tamoozbr Před 2 lety +2

    Why do you have a terminal rickroll?

    • @DistroTube
      @DistroTube  Před 2 lety +1

      Why wouldn't I have a terminal rickroll?!

    • @tamoozbr
      @tamoozbr Před 2 lety +1

      @@DistroTube you're right

  • @livingcodex9878
    @livingcodex9878 Před 2 lety +1

    おはようございます

  • @KangJangkrik
    @KangJangkrik Před 2 lety

    Try this command
    cat $(which cat)

  • @piadas804
    @piadas804 Před 2 měsíci

    Those are GNU commands, not Linux commands.

  • @ShaunakHub
    @ShaunakHub Před 2 lety +2

    tac should have been named dog...
    Linux devs have no sense of humour!

  • @francescopremsolidoro3858

    tsk, tsk. The most basic use of cat is the "Useless use of Cat"

  • @dougtilaran3496
    @dougtilaran3496 Před 2 lety

    tac is arabic. TD HUBP

  • @jangofett132
    @jangofett132 Před 2 lety +4

    frist

  • @thefossenjoyer3346
    @thefossenjoyer3346 Před 2 lety +1

    First!

  • @ebiscaia
    @ebiscaia Před 2 lety

    So if am I right "cat .bashrc && cat .bashrc > newfile.txt" == "cat .bashrc | tee newfile"?