Lecture 1: Course Overview + The Shell (2020)

Sdílet
Vložit
  • čas přidán 31. 01. 2020
  • 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/
  • Věda a technologie

Komentáře • 375

  • @litchyarn
    @litchyarn Před 3 lety +592

    6:04 shell prompt
    6:32 curstermizing shell
    7:03 $date
    7:19 $echo
    7:29 $echo hello
    7:46 $echo "Hello world"
    8:41
    10:01 environment variable
    10:17 $echo $PATH
    11:01 $ which echo
    12:30 relative path
    12:50 $pwd (print working directory)
    13:24 cd /home (change my directory)
    13:58 dot
    15:03 ../../../../../
    16:20 $ls
    17:15 ~ tild
    17:36 - dash
    $ cd -
    20:09 d means directory
    21:32 read, write, execute
    24:32 mv (rename, move)
    25:20 cp (copy from, to)
    25:50 rm (remove)
    26:15 rmdir, mkdir (remove directory, make directory)
    26:50 man (manual)
    27:55 Ctrl+L (clear shall)
    28:30 input and output
    29:30 $echo hello > hello.txt
    29:59 $cat hello.txt
    30:10 $cat < hello.txt
    30:43 $cat < hello.txt > hello2.txt
    31:15 $>>^C
    31:50 pipe
    32:20 tail
    $tail -nl
    $ls -l / | tail -nl
    $ls -l / | tail -nl > ls.txt
    33:35 curl
    curl --head --silent google.com
    curl --head --silent google.com | grep -i content-length
    curl --head --silent google.com | grep -i content-length | cut --delimetr = ' ' -f2
    36:39 $sudo (super user)
    38:02 $cat brightness
    $sudo echo 500 > brightness

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

      Jeong Rita thanks man really helps

    • @lucaban
      @lucaban Před 3 lety +1

      this needs more upvotes!!!

    • @Mainmenify
      @Mainmenify Před 3 lety +4

      Well done! this absolutely needs to be added to the video description to show timespamps on the video progress bar!!!

    • @DrHusseinAlOmari
      @DrHusseinAlOmari Před 3 lety +1

      Thank you! Very useful!

    • @hingsli7245
      @hingsli7245 Před 3 lety +1

      good job man, very helpful!

  • @samdavepollard
    @samdavepollard Před rokem +185

    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

    • @upstatenetworks4639
      @upstatenetworks4639 Před 8 měsíci +2

      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!

    • @edvaned8207
      @edvaned8207 Před měsícem

      Similiar too. i graduated in 2004 😁

  • @ShivangiSingh-wc3gk
    @ShivangiSingh-wc3gk Před 4 lety +263

    I feel so dumb at work sometimes. I had to learn these things the hard way, thank you for putting this out there.

    • @xBugzilla
      @xBugzilla Před rokem +2

      But #! is a special comment, not telling the shell to run as root, right? I don’t get your comment or maybe I missed the part he explained shebang

  • @Chr0nalis
    @Chr0nalis Před 4 lety +475

    I've been writing "clear" instead of just ctrl+l all this time ..

    • @love.ly.
      @love.ly. Před 4 lety

      Teymur Azayev same 😮

    • @wolfram77
      @wolfram77 Před 4 lety +5

      is there a shortcut to clear scrollback too?

    • @rabingaire
      @rabingaire Před 4 lety +1

      same here

    • @aavocadoToast
      @aavocadoToast Před 4 lety

      Same

    •  Před 4 lety +11

      The clear command and ctrl+l do not do the same thing. They are very similar, but sometimes it makes sense to use one or the other.

  • @resulhangeldiyev4427
    @resulhangeldiyev4427 Před 4 lety +126

    thank you youtube algorithm for this magnificent content

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

      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.

  • @yixe2253
    @yixe2253 Před 4 lety +399

    These lecture are amazing, thanks for releasing this to the public!

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

      This.

    • @skarasif
      @skarasif Před 3 lety +1

      @@ChristopherOkhravi lectures ;-)

    • @v1r47
      @v1r47 Před 3 lety

      @@skarasif lectures* :-)

    • @driden1987
      @driden1987 Před 3 lety

      @@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

    • @terrence369
      @terrence369 Před 3 lety

      Very true

  • @mrmusicdu74
    @mrmusicdu74 Před 3 lety +117

    Why is this in my recommandations and why am I starting to plan to watch the whole courses

  • @Milbrown_Worker
    @Milbrown_Worker Před 4 lety +95

    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

    • @yousifabdulhussein
      @yousifabdulhussein Před 8 měsíci +5

      This type of quality instruction isn’t even commonly available at MIT lol.

  • @middleverse3838
    @middleverse3838 Před 3 lety +17

    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.

  • @loremipsum7513
    @loremipsum7513 Před 4 lety +79

    THIS IS WHAT WE ALL NEEDED. THANK YOU FROM THE BOTTOM OF MY HEART.

  • @seonginna8804
    @seonginna8804 Před 4 lety +17

    This is a lecture series I have wanted. Thank you MIT!

  • @harshdeepsingh1026
    @harshdeepsingh1026 Před 4 lety +7

    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.

  • @dhruvgupta8751
    @dhruvgupta8751 Před 3 lety +10

    the xdg-open in powershell was just: start worked with pdfs and .html files.

  • @infinite-journey
    @infinite-journey Před 3 lety +5

    Lectures we didn't ask for but we all needed the most.

  • @shreyaskali996
    @shreyaskali996 Před rokem +1

    great! MIT never ever dissapoints me. Hope this quality of education become a standard in the future in every country.

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

    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

  • @alexandrechen3081
    @alexandrechen3081 Před 4 lety +8

    This is exactly what I need! Thank you MIT

  • @sciberbee
    @sciberbee Před 2 lety

    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:)

  • @PainfullySubjective
    @PainfullySubjective Před 5 měsíci +1

    so glad i found this courses. thank you MIT and all who made this!

  • @mlcmingliang
    @mlcmingliang Před 4 lety +34

    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

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

      that is also what ctrl+arrow keys do in a text editor. thanks for sharing.

  • @koraytugay
    @koraytugay Před 4 lety +163

    Starts at 4:08

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

    This is awesome. You guys are awesome for sharing it publicly. Everything about this is awesome.

  • @tamat
    @tamat Před 4 lety +60

    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.

  • @StankyPickle1
    @StankyPickle1 Před 4 lety +8

    I wish this lecture series existed 6 years ago. Would've made life a little easier.

  • @shelinesim1038
    @shelinesim1038 Před 4 lety +45

    "On Windows, who knows?" made me chuckle

    • @pedrofalcao1900
      @pedrofalcao1900 Před 3 lety +6

      Made me install linux

    • @ze_kel
      @ze_kel Před 3 lety +3

      ​@@pedrofalcao1900 try WSL it's super easy to setup and you get full linux terminal inside your windows.

    • @HendersonHarrisson
      @HendersonHarrisson Před 3 lety +1

      WSL easy bash without switching OSes

  • @bsko3D
    @bsko3D Před 2 lety

    what a great and generous idea to publish these lectures for everyone. Thank you!

  • @popluss
    @popluss Před 3 lety +1

    wow, this is very good! the content is really nice and the way he teaches it and structure the lecture is way better than what i had in college

  • @majoragan
    @majoragan Před 3 lety +1

    Just finished first lecture... Big thanks for this series!

  • @EndrChe
    @EndrChe Před 3 lety +3

    This is the most beautiful thing I’ve ever found on CZcams...

  • @casedup
    @casedup Před 3 lety

    Great Great Great! Been using bash shell foryears and you opened me up to other worlds man. These videos are so 👍

  • @JasonSFuller
    @JasonSFuller Před 4 lety +116

    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.

    • @adammoore6594
      @adammoore6594 Před 4 lety

      Thanks, that is useful :)

    • @mwat56
      @mwat56 Před 4 lety

      In case you need a shell (to do more than a single command) you'd call: sudo bash
      That avoids the problems mentioned above.

    • @JasonSFuller
      @JasonSFuller Před 4 lety +5

      @@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"

    •  Před 4 lety +1

      Exactly. I was going to comment this, but you explained it much better than I could.

    • @aram535
      @aram535 Před 3 lety

      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).

  • @henryluo9380
    @henryluo9380 Před 3 lety +3

    Thanks for sharing it. It's really helpful to someone like me who have never learnt these basic things.

  • @EarthB00
    @EarthB00 Před 4 lety +17

    These are super useful. Making my way through them.

  • @surered4958
    @surered4958 Před 4 lety +5

    I cannot believe how good of a professor this guy is. I wish I could learn software development and data science from him.

    • @glizzdawiz
      @glizzdawiz Před 4 lety +3

      He has his own CZcams channel, which I just discovered czcams.com/channels/_iD0xppBwwsrM9DegC5cQQ.html

  • @yanlin9130
    @yanlin9130 Před 4 lety +24

    Pretty good lecture, I wish it would be available when I was a freshman five years ago. Thanks for the hard work.

  • @takreem.akhter
    @takreem.akhter Před 3 lety

    Thank you youtube recommendations. This was beautiful! I am going to watch the whole course.

  • @wizard7314
    @wizard7314 Před 3 lety +3

    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.

  • @edavar6265
    @edavar6265 Před rokem +1

    Another resource I can reccomend on this topic is Learn Enough Command Line To Be Dangerous. It is a fun read with exercises.

  • @meojunior
    @meojunior Před 3 lety

    I really enjoy this course and learn a ton of foundation things. Thanks guys

  • @shubxam
    @shubxam Před 4 lety +1

    Thank you so much for releasing this course in public. Just been through 1st lecture and content and the way you teach is very good.

  • @mrbeats7434
    @mrbeats7434 Před 3 lety

    Very good. This teacher is first class. Thanks so much

  • @metroboomin8895
    @metroboomin8895 Před 2 lety

    tip: watch on 1.5 speed if it suits your fancy, i find it helps me focus (also great lecture!!)

  • @sriranganayakulu8513
    @sriranganayakulu8513 Před 3 lety +1

    Thanks MIT!! For these great lecture series

  • @kwangee
    @kwangee Před 4 lety

    About the "echo 1060 | sudo tee brightness" command 42:17 , does this mean if we somehow run a malicious .sh script obtain from internet that contain similar command but does malicious action, it will execute successfully? since this command does not require shell login as superuser

  • @user-ox9wq1gj5k
    @user-ox9wq1gj5k Před 4 lety +40

    Amazing to look at it during quarantine. Thank you very much!

  • @rabingaire
    @rabingaire Před 4 lety +5

    I love how this guy explains things, I am a long time subscriber of his channel his voice is just mesmerizing

    • @linsanity626
      @linsanity626 Před 4 lety +1

      Rabin Gaire same! what's his channel name?

    • @rabingaire
      @rabingaire Před 4 lety

      @@linsanity626 channel link czcams.com/channels/_iD0xppBwwsrM9DegC5cQQ.html

  • @yuexiao4739
    @yuexiao4739 Před 3 lety

    Love this course! Really helped me on my work.

  • @jasonkwan4814
    @jasonkwan4814 Před 4 lety +6

    I wish it would be available when I was a freshman one years ago. Thanks for the hard work.

    • @ZhengQu
      @ZhengQu Před 3 lety

      It is never too late :)

    • @jitpackjoyride
      @jitpackjoyride Před 3 lety +1

      lol, I was a freshman 4 years ago and much more experienced now and I’m still going to sit through these lectures 🤓

  • @Kruglord
    @Kruglord Před rokem

    Hey, that's Jon Gjengset! He does the "Crust of Rust" videos here on CZcams, I had no idea he also taught these lectures, I only recognize him now after coming back again 2 years later.

  • @mubintirsaiwala7141
    @mubintirsaiwala7141 Před 4 lety

    I just can't thank you enough. Great content.

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

    God damn, I had this bookmarked for way too long. Looking forward to going through the playlist! :)

  • @10riddles
    @10riddles Před 4 lety

    Super useful for graduates. Thanks a bunch.

  • @jamoinmoin
    @jamoinmoin Před 3 lety

    wow so many small useful things that actually boost productivity, great lecture

  • @lautoka63
    @lautoka63 Před 4 lety +4

    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.

  • @garysantos7053
    @garysantos7053 Před 3 lety +7

    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

    • @xrafter
      @xrafter Před 3 lety +1

      Bash and zsh have the same syntax.

  • @Qladstone
    @Qladstone Před 7 měsíci

    After several years of watching lectures in my off-work hours, this shall be my "graduation" class.

  • @steveroger4570
    @steveroger4570 Před 3 lety +1

    This is better than my entire degree in my uni

  • @iduran
    @iduran Před 3 lety

    Nice terminal setup. I already checked the instructor's dotfiles but couldn't find which font he is using. Any idea what font that is?

  • @KonstantinDorichev
    @KonstantinDorichev Před 4 lety +3

    I remembered the basics and did learn a few commands I didn't know. Thanks!

  • @venusumanthpotru9535
    @venusumanthpotru9535 Před 3 lety

    This is super helpful 👍. Thanks a lot for uploading it to CZcams.

  • @priteshugrankar6815
    @priteshugrankar6815 Před 2 lety

    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?

  • @harishkrish14386
    @harishkrish14386 Před 3 lety

    Thanks fr these videos which have released! ❣️

  • @MubashirullahD
    @MubashirullahD Před 3 lety

    This entire talk is this smart telling you you don't know things. :)

  • @keonys1
    @keonys1 Před rokem

    Very insightful!
    thank you for releasing to us

  • @MichaelS-em8id
    @MichaelS-em8id Před 4 lety

    Are there solutions for the exercises given? I'm having trouble with Question 3. Is it telling me to execute the file with *ls semester*?

  • @sefacorleone8276
    @sefacorleone8276 Před 3 lety

    oouuww yes.. i will put that knowledge inside my head. Thank you!

  • @mukulkumar2316
    @mukulkumar2316 Před 4 lety

    this is exactly what i needed

  • @aavocadoToast
    @aavocadoToast Před 4 lety +12

    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...

  • @adjusted-bunny
    @adjusted-bunny Před 3 lety +2

    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.

  • @hulk94smash
    @hulk94smash Před 2 lety

    WOWOWOWOWOWOW THIS IS GOLDDD!!! 🔥💯 wish I knew this year's ago 😭

  • @FrederizEguren
    @FrederizEguren Před 3 lety

    He is very eloquent.

  • @blndcat4502
    @blndcat4502 Před měsícem

    was trying out the backlight example. i could cd backlight/ but the ls after that shows no file. am i missing something? access or hidden files? i am using ubuntu on windows virtual box if it matters. please help if you can.

  • @jerrys5387
    @jerrys5387 Před 3 lety +14

    I hope my univ could have such courses, instead of assuming we already know

  • @phillipuchen
    @phillipuchen Před 2 lety

    Brilliant course!

  • @d8qx0j31
    @d8qx0j31 Před 9 měsíci

    Wait so does both "echo 1060 | sudo tee brightness" and "echo 1060 | sudo brightness" commands work fine? I am running linux shell on a virtual machine so i cant run a brightness program.. can't find out myself..

  • @advitiayanand5974
    @advitiayanand5974 Před 4 lety +1

    That's basic? Man I'm hyped!

  • @rajasekharreddy7977
    @rajasekharreddy7977 Před 3 lety

    Very insightful and useful lecture.

  • @haraldurkarlsson1147
    @haraldurkarlsson1147 Před 3 lety

    Excellent lectures!

  • @shawnxihaowu7638
    @shawnxihaowu7638 Před rokem

    Thank you for this lecture!

  • @akashpatil7662
    @akashpatil7662 Před rokem

    Thank you these lectures

  • @narindersharma303
    @narindersharma303 Před 3 lety

    Very nicely explained!

  • @Sethsm1
    @Sethsm1 Před 3 lety

    Extremely helpful. Thank you.

  • @Flyforward226
    @Flyforward226 Před 3 lety

    What does the forward slash do in this command? ls -l / | tail -n1

  • @angelsalinas9697
    @angelsalinas9697 Před 3 lety +1

    can someone help me, when I do, cd /sys in my mac terminal it says no file or directory found.

  • @kellybmackenzie
    @kellybmackenzie Před rokem

    This is awesome, thank you so much!

  • @expeditiontoabyss3597
    @expeditiontoabyss3597 Před 5 měsíci

    this is crazy good, thanks

  • @user-uc5ow2rd9o
    @user-uc5ow2rd9o Před 3 lety

    great lecture! thanks

  • @wallwhite5800
    @wallwhite5800 Před 12 dny

    what a greate lecture!

  • @Nirnaeth1987
    @Nirnaeth1987 Před 3 lety

    This is a great idea!

  • @nairorokidul
    @nairorokidul Před rokem +1

    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.

    • @geoafrikana
      @geoafrikana Před 10 měsíci

      Use Ctrl + Insert to copy
      Shift + Insert to paste

  • @warshipwarriors
    @warshipwarriors Před 3 lety

    Nice lectures, happy to learn more

  • @mcvgs1780
    @mcvgs1780 Před 3 lety +1

    I wish I had these kind of lectures in college.

  • @mugen1305
    @mugen1305 Před 8 měsíci

    I'm not able to run some of the commands like pipe, ls -l etc..on windows powershell. Do I need Linux?

  • @Steve-ox9gu
    @Steve-ox9gu Před 4 lety +1

    thank you mit, this course helps a lot!

  • @AK47_414
    @AK47_414 Před 5 měsíci

    Is there a bash command cheat sheet anywhere I can use? The ones I googled where not very concise or helpful. A good 1 page cheat sheet would be very useful

  • @ConorJTobin
    @ConorJTobin Před 3 lety

    Am I being pedantic to ask about 18:53? When Jon says that "there is an optional number of options," does he mean a number of optional options? I guess zero would be an "optional" number of options we could apply, no?

  • @gaomingt
    @gaomingt Před 3 lety +1

    22:40 Also, if you don't have write permission on a file but have write permission on its directory, you can still delete the file.

  • @sibongumusaws419
    @sibongumusaws419 Před 2 lety

    This is beautiful.

  • @je9625
    @je9625 Před 4 lety

    Is there an example of screen casting from the command line he refers to ?

  • @muddi900
    @muddi900 Před 3 lety

    This is my reference book now.