Agenda for Linux Basics dat8tf063-29 Spring 2017

Learn the basics of Linux in just 8 weeks! Linux course is teached in English in Pasila, Helsinki.

Tero teaches all the classes in computer lab h5004, Mondays 12:00 – 11:45.
1  Installation w03
2 Desktop Linux, Licenses w04
3 No class on w05 Command Line Interface w05
4 Package Management and Administration w06
5 Apache Web Server w07
w08 is winter holiday, practice Linux at home

6 OpenSSH Server and Client w09
7 Hello World. Programming environments and shell scripting. w10
8 Final Lab Exercise (50% grade) w11


Course grade consists of homework (50%) and final lab exercise (50%). Course requires active participation in the classes.
Homework reports are returned weekly, for example by publishing on the web and returning the link. We’ll talk about homeworks at the beginning of each class, and you can get oral feedback on your work. All homework is evaluated at the end of the course with one grade, based on a package of combined homework. Still, each individual homework must be completed before next class. If there are quizzes on the class, there points are included in the homework (50%) grade.

Previous Courses and Links

Feel free to check comments on Linux Basics dat8tf063-27, Linux Basics 26, Linux Basics 23, Linux Basics 22 and older feedback, too.
Course description.
Course uses Xubuntu Linux.
Moodle page of Linux Basics (user account required)

Posted in Uncategorized | Tagged , , , , , , , , , , | 33 Comments

33 Responses to Agenda for Linux Basics dat8tf063-29 Spring 2017

  1. h1: Create a Linux a live USB. Try it on a computer outside the lab. Report. (This task is about live cd, no installation required)
    Update: Homework deadline is always 24 hours before next class starts.

  2. ps.
    – Get a free (add funded) blog from
    – Use Xubuntu 16.04 LTS 64bit from
    – Take backups, for example to an external USB drive. After that, installing Linux is a good idea
    – For this assignment, you don’t have to install, trying live USB is enough.
    It does not have to work perfectly with your specific hardware, just test it and report what worked.
    – It’s a good idea to publish your work. If for some reason you don’t dare or want to publish, you can put your work to a web page behind a password, using password feature or myy private directory. Homeworks must be returned as web pages (not as odt, doc, pdf nor rtf), as links to Moodle (not by email).
    – You can return just a link to Moodle
    – Write your report so that another person could repeat what you did. Write the report at same time when you work. Describe environment, hardware; steps you took; what happened; conclusions.
    Voluntary bonus tasks: include a detailed list of your hardware, try ‘sudo lshw -short -sanitize’.
    Voluntary difficult bonus task: create very detailed hardware report with ‘sudo bash machinotero’
    – Good luck!

  3. h2. a) List software you use (currently, on your old system).
    For each piece of software, list it’s purpose.
    Finally, find a Linux alternative (preferably Free).
    For example: Current software: Microsoft Word -> Purpose: Word Processor -> Linux alternative: LibreOffice Writer. (For part a, just write, no need to work on computer.)
    b) Pick three Linux applications from your list. Test them by doing a typical task with them. For example, draw a diagram with Inkscape.
    Voluntary reading task: The Rise of Open Source Licensing: chapter 5.1 :”Bargaining in the Shadow of Intellectual Property Law”.

  4. h3.
    a) Learn the most important commands by heart and practice them. (No written report needed for this part a.
    b) Install three command line programs and test them.
    (This task may be returned just before the classes, so you have more time than usual)

  5. usman says:

    Here is my h3 assignment. I was having a bit trouble in managing pages so if it does not work then let me know. Thanks

  6. h4.
    a) Analyze two log lines. One of an error or something denied, one about success. Carefully explain each component of the loglines. If you are not sure of the meaning of some part of a log line, also write that down.
    b) Learn “Commands for Admin” (sudo, apt-get) by heart.(no reporting for this part b)
    c) Pick a file from /etc/ or /var/log/ that was not mentioned in the class. Find out it’s purpose.

  7. h5. LAMP
    a) Install Apache and enable user homepages
    b) Install MySQL, create a new database and a user
    c) Create some tables and content into your database
    d) Enable PHP on user homepages (See ‘grep -ir php /etc/apache2’) and write “Hello world” PHP application
    e) Link or attach this log. txt

    $ tail /var/log/syslog /var/log/auth.log /etc/lsb-release /var/log/apache2/*.log /proc/uptime >log.txt

    Voluntary bonuses:
    f) Create a PHP page that reads records from your database
    g) Read user input with PHP and forms

  8. Usman Ali says:
    Hi, My all assignments are in my page in descending order. Thanks

  9. Basics
    a) Install SSH server
    b) Get someone else to login to your server.
    c) Find the login in the logs (auth.log)
    d) Use scp to transfer files
    e) Authenticate with public key (ssh-keygen, ssh-copy-id)
    f) Use sshfs to mount remountly
    g) Use rsync with ssh
    h) Use -D proxy (difficult, more steps)
    i) Over the Wire

  10. A dump of some of the commands as requested.

    setxkbmap fi
    sudo apt-get update
    sudo apt-get -y install ssh
    ssh xubuntu@localhost
    hostname -I
    ip addr
    ssh xubuntu@
    sudo adduser tero
    ssh tero@
    sudo apt-get -y install ipcalc
    hostname -I
    tail /var/log/auth.log
    grep -i ssh /var/log/auth.log
    history |grep tero
    scp animals.txt tero@
    scp -r public_html/ tero@
    rm animals.txt
    scp tero@ .
    ssh-copy-id tero@
    ssh tero@

  11. h6.
    a) Install an SSH server (to a computer that does not have one yet).
    b) Create a new user. Always use good passwords.
    c) Find and analyze log lines of both successful and failed actions related to ssh daemon.
    d) Set up a firewall, with a hole for ssh daemon
    Do at least one of e-h:
    e) Automate login with public keys.
    f) Mount a directory with sshfs. Unmount it with ‘fusermount -u’.
    g) Use rsync to copy files
    h) Use git over ssh.
    Attach or link this log.txt:
    $ tail /var/log/syslog /var/log/auth.log /etc/lsb-release /var/log/apache2/*.log /proc/uptime >log.txt
    (If you could not finnish h5 LAMP earlier, do it now. Apache and SSH are the most common Linux daemons.)

  12. Stuart Boaler says:

    Excellent course, everything was laid out well and was understandable, especially enjoyed learning about setting up a VPS and using SSH keys to automate the login.

  13. Hieu Cao says:

    – Did you learn something?
    Yes, I have learned a lot about Linux Basics. I enjoyed every day of classes and I gained a lot new information.
    I feel more confident now using Linux and installing a server with Linux.
    – Was it useful?
    Yes, the information I get is very valuable to me as I am learning to be a back-end developer and I believe it is the right course for me.
    – How are you going to use skills after course?
    I am going to practice combining some programming languages together. I already set up my own server on DigitalOcean. Currently I am making a simple chat application with the LAMP stack that I was taught during the course.
    – Which class was the most interesting?
    For me, I enjoyed the LAMP stack, the SSH server and the day where you instructed us to set up server on DigitalOcean.
    – How could I improve the course?
    To be honest, I enjoy the course so much that I could not think of many improvements for the course.
    I think you can give more interesting tasks or small projects for us during the course.
    As a basic course, I think the course structure is pretty nice already
    – Would you recommend this course to a friend or a colleague?
    Yes and I already did recommend to friends who didn’t take this course already.
    – Anything else on your mind?
    Thank you for the awesome course. Please be sure to tell me if there’s English advanced Linux course in the future.

  14. Niko Koponen says:

    This was a very helpful course, provided a lot of information regarding Linux OS in a limited time.
    Going through apache2 web server, mysql and ssh things were probably the most interesting topics and most useful at this point.
    I will certainly continue working with linux after the course because I have installed linux on one of my computers.
    Because it is a basic course, I don’t have any recommendations on how this course could be improved, I think it has a sufficient amount of content for a basic course.
    I would recommend this course for my colleagues and friends.

  15. Karita says:

    Did you learn something?
    I learned a lot in the course. Before the course I did not know anything about Linux
    Was it usefull?
    It was definitely useful
    How are you going to use skills after course?
    Not completely sure, but hopefully at work at some point.
    Which class was the most interesting?
    LAMP was the most interesting
    How could I improve the course?
    Maybe do more exercises like the exam was.
    Would you recommend this course to a friend or a collegue?

  16. Steven says:

    Before entering the course I have never used linux and had almost no experience with it at all.
    After the course I feel comfortable enough with linux so I can handle main deamon installations and use. By the end of the month I will start working in a company and linux is main operating system, so I am very glad that I know how to use it to start my career.
    There were many useful aspects in the course like homeworks and creating own website to store homeworks. I this environment you learn more that you would by reading slides and watching videos.
    Course can be improved by actually implementing a real server with cloud and securing it and putting it online to WWW.
    I recommend this course for anyone who wants to use linux in the future it is very nice start up for your career.

  17. Janne Takala says:

    Did I learn something?
    With no prior Linux experience at all, I definitely learned the very basic level at least. Also learned how to set up DigitalOcean VPS and other fancy useful stuff.
    Was it useful?
    How am I going to use skills after course?
    Honestly don’t know yet, most likely it’ll just stay in my memory if there’s no follow-up course or if I don’t happen to find any Linux related work.
    How could you improve the course?
    Unfortunately you had to fly to meetings on Mondays quite often, hopefully this won’t be the case in the future classes, probably not much you can do about it though.
    Would I recommend this course?
    Anything else?
    Thanks for a great course, hopefully there’ll be a follow-up for this next semester!

  18. Mia says:

    I learned a lot during this course and it was very useful to me. I don’t feel that i am ready to go out and do professional work but i definitely think that i now have the base to develop my knowledge either by my self or in a more advanced course. I liked the lamp stack since i am a Computer science student i like programming and databases.
    I would recommend this course if i meet someone it would be relevant for. (I don’t usually live in Finland).

  19. Jordan Forbes says:

    I learned a lot about useful Linux commands, how to create useful applications, such as a LAMP stack.
    The skills I learned were all very useful.
    I enjoyed using ssh, and overthewire in particular.
    I have recommended the course.
    I still have many questions and do not fully understand everything we went through. I think the wording and some of the materials are at times a bit confusing. There is a lot of crossover between terms.

  20. Leo Malinen says:

    I learned a lot more from this course than I was expecting and that in my eyes is great. Before this course I had never used Linux without GUI and was worried about how I would manage with the terminal. Since we had a lot of hands on experience with using Linux in many different aspects I was able to learn it a lot better.
    Overall thank you for the course, I really enjoyed it and learned a lot!