You can find the lecture notes and exercises for this lecture at missing.csail.mit.edu/2020/co... Help us caption & translate this video! amara.org/v/C1Efe/
i'm old; i graduated in 1979, way before the www was a thing the fact that i can hop onto youtube and drop into a class at MIT like this still blows my mind
Similar. EE/CS 1980's We've passed files back and forth for decades. Our development projects now involve 10's of programmers. This lecture was well presented and gratefully received. Nice Job and Thank you!
I think we should rather thank MIT. They're quite probably the best tech university in the world, and they're publishing content for free that they could charge us a fortune to access if they wanted to.
Im sad this kind of quality instruction is not commonplace across other post secondary institutions.. I guess it is MIT after all... Thanks for making this available
@@ChristopherOkhravi are you planning on coming back to creating videos on YT? Really wanted to see how your VIM series would pan out. Thanks for everything
I'm like 15 minutes in, and I'm already thankful to you guys for making this!! For someone who used to be a programmer but left and is now making a comeback, this packs-a-punch.
How they teach and covers the topic is really helpful. I think they are doing great work to post these and their notes over internet for people to use. Regards to the authors.
I'm actually tearing up. I've been trying to learn how to do things and it's been super frustrating and EVERY SINGLE COURSE I have ever seen either teaches you what a variable is. Or has a "google is your best friend" sort of approach. Thank you so much for making these videos
43:44 scroll lock is for you to scroll around in spreadsheet program like Excel with arrow keys. so when it is toggled, arrow keys scroll around instead of move the focus on a cell
I cannot thank you enough for this course. Im also a teacher at the university and I never have the time to teach this concepts deeply to my students, so at least now I have a place to redirect them.
I came to think again, that we are living very hopeful period of time given that these fruitful and friendly lectures from MIT is ready to be watched free, at all around the world:)
41:30 it was worth watching for me, just for this. Great example of why 'cat' with shell piping isn't sufficient to write to a system file. But you also don't want to elevate the whole shell to root privileges because it's inconvenient (especially when scripting) and because then everything will be executed with root privileges. Now I understand why tee exists. Cheers.
Hey, that's Jon Gjengset! He does the "Crust of Rust" videos here on RU-vid, I had no idea he also taught these lectures, I only recognize him now after coming back again 2 years later.
A good thing to be doing. I used to do something similar in my airline engineering career by running lunchtime classes for new young engineers. Much of the time people assume that others know as much as they do, without thinking how long and hard it was to acquire that knowledge.
40:24 Please don't teach people "sudo su" (or the slightly less terrible "sudo su -"). In fact, don't teach people about "su" at all, other than to use it to install/fix "sudo" or as a history lesson. It certainly _works_, but you're telling the shell to do something twice, i.e. "run as root" (sudo) then "become the root user" (su). The thing you want is "sudo -i" or "initial login" (equivalent to "su -" and "sudo su -"), which tells sudo to start a shell *and* process the normal login scripts, e.g. .profile, .login, .bash_profile, etc. "Su"ing twice has a number of unexpected and irritating--though not insurmountable--side-effects for administrators (i.e. me, a linux admin for 20+ years), but it also causes trouble for an end-users since it strips their environment variables. "Sudo" handles this quite well (depending on your sudoers configuration), but "su" does not. This is problematic for things like preserving a non-root user's $SSH_AUTH_SOCK (maybe you want to use your ssh keys when you're root), or language preferences ($LANG), or $DISPLAY for GUI users, etc.
@@mwat56 I'll politely disagree here. "sudo -i" does, in fact, give you a shell, AND it simulates a login the proper way. "sudo bash" suffers from the same environment problems as "sudo su"
4 года назад
Exactly. I was going to comment this, but you explained it much better than I could.
If you don't need to go through "login" then 'sudo -s' will also work and just start up a new environment rather than login then env. For example 'sudo -s' will drop you into a root shell and 'sudo -u foo -s' will drop you into a shell for user 'foo'. Again without the login (.profile & .login). I recommend using "sudo -c 'command'", "sudo -s" and "sudo -u foo -sH" (-H sets the homedir for the user as well).
This is truly amazing!! Thanks for sharing!! By the way, I see vendor Perl and core perl in the path at 11:40. Does it mean the instructor is using Perl? If so, for what purpose?
Absolutely amazing lecture. I already knew 80% of these commands but it was still fun to watch and a good learning experience. Especially the fun stuff with sys directory in the end. Nobody teaches that lol...
Just a note of added confusion: Apple replaced "bash" with "zsh" as the default shell in macOS Catalina While a number of Mac developers have already moved on to even more modern shells like Fish, zsh is more compatible with Bourne shell (sh) and mostly compatible with bash. THE VERGE/ By Tom Warren@tomwarren Jun 4, 2019, 4:27am EDT
`which` and `where` were important for me that one time I tried to (roughly) time a short piece of bash script. For some reason `time` did *not* want to accept some parameters I gave it. Turns out I was using the `shell reserved word`, not the *time* program that also exists in `/usr/bin/`. Executing the next gave me info on why my script didn't work: > which time time: shell reserved word > where time time: shell reserved word /usr/bin/time This showed me I just needed to add /usr/bin/ in front of the command to fix my troubles.
Most of the stuff under /sys/class/ are indirect links to the directories that have the actual stuff. By default, find does not follow symlinks. If you search from /sys/, you'll probably find brightness under kernel, devices, and modules.
Another not obvious thing: Inside the shell CTRL + C is cancel, not copy. The most useful trick noone tells you is hitting the up arrow offers you the latest command you entered, and you can scroll up as much as you want by hitting up arrow.
How can you run "tee" as root (sudo) because it is not an ordinary program but a shell utility like ls? In my logic you would need a root shell, too. I'm confused.
You probably want to explain su stands for substitute user not super user, which is a common misconception even in the Linux world, but su let's you go into a shell for another user, not just the superuser, hence the name.
On the exercises #6: Run the command by explicitly starting the sh interpreter, and giving it the file semester as the first argument, i.e. sh semester. Why does this work, while ./semester didn’t? What's the reason for this exactly? Why does sh have permission while a simple ./ cannot execute the file?
I *think* that's because you don't have execution permission on that file so you can't run it directly. but when you use sh, it reads the file and interprets the commands within, so not actually executing the file. from sh's manpage: The shell is a command that reads lines from either a file or the terminal, interprets them, and generally executes other commands.
Start with one of the popular ones like Ubuntu -- they're pretty user-friendly. If you want a more challenging environment (which could be good for learning), you could consider something like Arch. Jon uses Arch on his personal machine and on his servers. Anish and Jose use macOS on their personal machines. Anish uses Debian on his servers.