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 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...
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)
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).
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 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".
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.
@@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.
"< 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.
@@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
ua-cam.com/video/82NBMvx6vFY/v-deo.html here is the video(I put it in a separate comment since yt sometimes automatically removes comments with links in them)
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
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
so to do this I just cat out my iso to /dev/sd*? also why is dd not clean?
@@pleaseenteraname1215
Because dd stands for "dirty delete".
@@pleaseenteraname1215
But no, I don't think cat is a better alternative than dd.
Read more about it here >>> [provide link]
@@xrafter Your link is invalid :(
@@pleaseenteraname1215
Ok.
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!
so you do "cat ./example_file.iso > /dev/sdb", it may be cleaner but is it faster (no blocksize set) ?
@@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...
Hah LOL, fresh video from 20 sec ago!! Yeah!!
True first!
You have been such a large help in my Linux endeavors!! Thank you!
I second this sentiment this small mundane commands give way to learning big ones.
Top notch examples!
More of these videos, please.
Excellent tutorial, especially (at least for me) the "tee" part.
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.
Loving these videos!
More to come!
@@DistroTube Thank you so much keep this up this is very necessary for new users and I love how useful linux has been.
In love with your scripting tutorials
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)
Thanktyou
I have never heard of tac before your video
Wait until tpa......
thx man! the command tee I have used far too rarely :)
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.
Dude I never knew about tac, so much fun lol
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).
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'. ;)
Are you going to explain that or what
@@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".
Thank you. Excellent tutorial.
sudo tee trick is really cool
thx
This is genius!
I need more!
I actually had the very last problem recently. I just sledgehammered it with su, but the tee solution would have been much more elegant :)
How do you get colors in you man pages tho ?
I think Zsh automatically colors man. For bash, you need to write a function. Quick web search will give you the answer
i use 'bat' for my manpager instead of 'less.' I've done a video about changing your manpager awhhile back.
I use tee within mysql to run reports for clients. It's very handy.
would "sudo -u root echo 1 > /proc/sys/kernal/sysrq" work as well?
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.
What are some examples where TAC is useful? Thank you.
Hello DT, in the cat example, are you sure the newfile.txt and bashrc are the same with order difference?
Quick question - will You put link/direct command to change color of cursor in terminal?
Hey DT, I feel that the classic "hello world" statement should be replaced by "Hi Mom!" Do you agree with me?
What widget do you use to get the kernel version?
uname -r
@@othernicksweretaken yes i know the command but how can you put that in a widget?
@@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.
it's weird that people are using cat to print to standard output instead of using < followed by the filename
"< 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.
@@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
ua-cam.com/video/82NBMvx6vFY/v-deo.html here is the video(I put it in a separate comment since yt sometimes automatically removes comments with links in them)
Hey DT, do a video on the 'bat' command - a nice alternative to cat
He probably already did it in his rust programs video
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
Why do you have a terminal rickroll?
Why wouldn't I have a terminal rickroll?!
@@DistroTube you're right
Tee rocks!
Your light is a bit off: some of the face is in shadow.
For vim: sudoedit instead of tee
I remember when I was new and trying to read the inside of a file and the answer was "cat". Lol
Don't forget about eet
cat goes in pair with split
>> for overwrite and > for append would have been much safer !!
I'll do anything to not have to use awk. I'll sacrifice a live chicken.
おはようございます
si
Try this command
cat $(which cat)
tac should have been named dog...
Linux devs have no sense of humour!
Those are GNU commands, not Linux commands.
tac is arabic. TD HUBP
tsk, tsk. The most basic use of cat is the "Useless use of Cat"
frist
First!
Fake news!
@@DistroTube impossible.
So if am I right "cat .bashrc && cat .bashrc > newfile.txt" == "cat .bashrc | tee newfile"?