Linux Advice for Computer Science Courses
The Computer Science department (currently) uses Linux for teaching. The computers in the labs run it, and they test coursework programs on them, so it’s worthwhile to be able to use Linux effectively. Although the department provided my cohort with a decent introduction to some fundamental concepts, I would like to give some (perhaps oddly specific) advice as an excessively experienced hobbyist Linux user.
Get Comfortable with the Terminal
Due to a number of factors relating to how Linux-based software is developed, there are numerous vastly different GUIs and desktop environments for Linux. The only thing that is almost guaranteed to remain constant between all of these is , the most popular command-line shell for Linux. At some point in your career you might need to work with a server running Linux, which may not be running a GUI at all!
On the topic of accessing a server, you can get remote access to the DCS machines via . While you may find it tempting to use VNC to access the GUI desktop remotely, the lower bandwidth required to transmit text can make staying in the terminal much more pleasant if your internet connection is weaker. When doing this, you may wish to use , a Terminal Multiplexer, to open multiple Bash shells within a single connection. It provides an additional benefit of maintaining your session if the connection is interrupted, allowing you to re-connect to it with .
For remote work, it is highly useful to be able to use a terminal text editor. Nano is the terminal equivalent of Notepad (for better or worse), but I would strongly suggest giving Vim a try. The best place to start is to run in the terminal on a machine with Vim installed; this takes no more than an hour to complete. It is highly unusual, but if you like it, there are plugins for most (more capable) editors to simulate it.
Read The Fabulous Manual (RTFM)
Most command-line Linux programs have pages, which document how to use them. These will be easier and quicker to access than online resources, and will often be sufficient. To access a page, run . I recommend and as good places to start.
In addition to pages, there are also manuals, accessed via , which will provide more thorough documentation for some programs. You can also view these in Emacs, which (in its GUI form) provides navigation controls and clickable links, by pressing , then .
Experienced users, frustrated by those unaware of the effectiveness of manuals, may proclaim that they should RTFM!
Running Linux on your own Machine
It almost goes without saying that the best way to “learn Linux” is to use it every day, for everything. Obviously, it can take a long time to build up to the level of confidence required for this (in my case, approximately a year), and some may not be fortunate enough to have control of a computer which would easily allow installation of other operating systems.
If you are able to, however, I would suggest installing something like Arch Linux as an opportunity to discover and gain some understanding of the individual components of an operating system (by manually setting up each one), which Windows makes more of an effort to mask over with a seamless user experience.
As an added benefit, using the same Operating System to create your coursework as the department uses to test it could help to alleviate potential cases of “it works on my machine” the night before a deadline.
References to resources provided by the university reflect my experience with the course. It is possible that these could change in the future.