Welcome back to managing Linux systems. This is the second course in the Linux Foundation Specialization. In this fourth module, we're going to think about how to install application software on a Linux system. By the time we're all done, I want you to be able to compile open source packages. Not necessarily understand the source code which is a little bit dangerous, but know how to compile them, at least understand what that means. I want you to understand user repository tools. Lastly, how to install and update packages. In Lesson 1, let's think about open source packages. There's a couple different programs we want to think about here. There's two for downloading source code, wget and see cURL. These allow you to download programs just like you would with a web browser, but you can do it from the command line. We have a program for bundling code together in an archive, we call that tar. Lastly, our compiler for compiling source code is gcc. Let's drill into each of these. Wget is a program for downloading files from the web. It supports HTTP, HTTPS, and FTP. Those protocols you'll use in a web browser. But you can do the same thing from a command line with wget. It can use HTTP proxies just like your web browser can. An example here is if I go to wget http://www.google.com, it's going to download the main page of Google. Now there are several command line options you can pass in. The -c will continue downloading partially downloaded files. If you're downloading some huge file and you had an error or a network partition, you can start back up without starting from the beginning. You can use -o to log messages to a log file, or an O to concatenate all the downloads to a single file or document. Curl command is very similar. It's a command line tool to transfer data to or from a server using any of the supported protocol. So HTTP, FTP, IMAP, POP3, SEP, SFTP, SMTP, TFTP, TELNET, LDAP, or FILE. Curl's more powerful. It can go both directions, but you can do the same thing. Here's my example usage is the same as the wget with curl http://www.google.com. We have similar options. The -c will continue to download a big file, -o tells it to save as a specific filename, and -u can be used to set your user and password options for authentication. The Linux tar stands for tape archive, and it's used to create archive and extract the archive file. Typically, you're going to archive to a tape drive and we'll talk about backing up later in this specialization. But tar can be used essentially to put several files into one file, that's what we call an archive. My example here is going to use tar cvf. The option c creates an archive, v displays verbose information, f creates the archive with a given filename. The given filename is source.tar. Then I'm going to include all files that start with anything and end with.cpp, which is C plus plus file. So I'm taking all my C plus plus source code, putting in a tar file. The x option is how you pull it back out, so xvf would be the opposite. It would pull the files back out, or t will let you display the options. There's also a u which adds to an existing archive file. The gcc command, it stands for GNU compiler collections, which is used to compile mainly C and C plus plus code. Most of Linux is built in C and C plus plus. These are lower level programming languages, you may know how to program in something like Python. C is a lower level programming language. Typically today we write operating systems in C. This compiler is free. An example usage here is gcc source.c. That's a text file that's human-readable, that has C code in it. The -o says create this executable. The executable file is going to be called myexec E-X-E-C. The -o, you're typically going to use, if you don't, it will create a file named a. Little bit of review here you can download files with wget or curl, you can create or read archives with tar and you can compile C or C plus plus files with gcc. See you in the next lesson.