Difference between revisions of "Linux Guide"

From Computer Science
Jump to navigationJump to search
Line 73: Line 73:
  
 
For information on installing new software and keeping your system up to date,
 
For information on installing new software and keeping your system up to date,
see [here](care-and-feeding).
+
see [[Things you need to know]].
  
 
The graphical environment installed, Xfce, is fairly similar to graphical
 
The graphical environment installed, Xfce, is fairly similar to graphical
 
environments on other operating systems.  I recommend poking around to see
 
environments on other operating systems.  I recommend poking around to see
 
what you can do, but if you need more structured information,
 
what you can do, but if you need more structured information,
[documentation](http://docs.xfce.org/) is available.
+
[http://docs.xfce.org/ documentation] is available.
  
 
One significant difference between Linux and the Big Two Operating Systems is
 
One significant difference between Linux and the Big Two Operating Systems is
Line 87: Line 87:
 
graphical environment, and all the same principles apply.
 
graphical environment, and all the same principles apply.
  
The easiest way to transfer files between guest and host is to use [shared
+
The easiest way to transfer files between guest and host is to use [[shared
folders](shared-folders).
+
folders]].
  
I've compiled a list of [basic commands](commands).
+
I've compiled a list of [[commands|basic commands]].
  
  
Line 105: Line 105:
 
If you installed Linux because you wanted to experiment with software that
 
If you installed Linux because you wanted to experiment with software that
 
isn't as easily available on other operating systems, check out the list of
 
isn't as easily available on other operating systems, check out the list of
[common
+
[https://wiki.archlinux.org/index.php/List_of_applications common applications] on
applications](https://wiki.archlinux.org/index.php/List_of_applications) on
 
 
the Arch Wiki, install random software, and play around.
 
the Arch Wiki, install random software, and play around.
  
 
A specific option in this vein is to install a *display manager*, which is the
 
A specific option in this vein is to install a *display manager*, which is the
 
piece of software that allows for graphical login as opposed to the text-based
 
piece of software that allows for graphical login as opposed to the text-based
login you've got now.  Check out the [XFCE FAQ entry on display
+
login you've got now.  Check out the [http://wiki.xfce.org/faq=is_it_possible_to_use_xfce_with_dms XFCE FAQ entry on display managers] as
managers](http://wiki.xfce.org/faq=is_it_possible_to_use_xfce_with_dms) as
+
well as the [https://wiki.archlinux.org/index.php/Display_manager relevant page on the Arch Wiki]. (This highlights
well as the [relevant page on the Arch
 
Wiki](https://wiki.archlinux.org/index.php/Display_manager). (This highlights
 
 
the situation with much software on Linux: both the writers of the software
 
the situation with much software on Linux: both the writers of the software
 
and the distribution maintainers will often have documentation available on
 
and the distribution maintainers will often have documentation available on
 
the same topic!)
 
the same topic!)
  
You might find some inspiration in checking out [screenshots](eye-candy) of
+
You might find some inspiration in checking out [[eye-candy | screenshots]] of
 
other peoples' Linux situations.
 
other peoples' Linux situations.
  
Line 127: Line 124:
  
 
If you installed Linux because you want to avail yourself of the power of a
 
If you installed Linux because you want to avail yourself of the power of a
programmable command shell, check out the [Advanced Bash-Scripting
+
programmable command shell, check out the [http://www.tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide].
Guide](http://www.tldp.org/LDP/abs/html/). (As to be expected on Linux, there
+
(As to be expected on Linux, there
are [other shells](https://wiki.archlinux.org/index.php/Command-line_shell) to
+
are [https://wiki.archlinux.org/index.php/Command-line_shell other shells] to
choose from, too.)
+
choose from, too.
  
  
Line 136: Line 133:
  
 
One of the reasons I favor the Arch flavor of Linux is that it has a
 
One of the reasons I favor the Arch flavor of Linux is that it has a
particularly helpful [wiki](https://wiki.archlinux.org).  The
+
particularly helpful [https://wiki.archlinux.org wiki].  The
[forums](https://bbs.archlinux.org) are also quite good, but before wading in
+
[https://bbs.archlinux.org forums] are also quite good, but before wading in
there, I strongly recommend you check out the canonical guide on [how to ask
+
there, I strongly recommend you check out the canonical guide on [http://www.catb.org/esr/faqs/smart-questions.html how to ask
questions the smart way](http://www.catb.org/esr/faqs/smart-questions.html).
+
questions the smart way].
 
You are also most welcome to ask questions of me.
 
You are also most welcome to ask questions of me.
  
Line 145: Line 142:
 
=== Other info ===
 
=== Other info ===
  
[Background information](background), wherein I answer questions like, "what's
+
[[Background information]], wherein I answer questions like, "what's
 
an operating system", "what is Linux?", and "what's a distribution?"
 
an operating system", "what is Linux?", and "what's a distribution?"
  
[Justification](why), which explains why I recommend, specifically, Linux,
+
[[Justification]], which explains why I recommend, specifically, Linux,
 
VirtualBox, Arch Linux, and so on.
 
VirtualBox, Arch Linux, and so on.
  
Some [notes for faculty and staff](faculty-and-staff) who might like students
+
Some [[notes for faculty and staff]] who might like students
 
to use this Linux VM for their classes.
 
to use this Linux VM for their classes.

Revision as of 14:38, 7 February 2020

Installing Linux

These pages describe how to install Linux as a virtual machine running on your own computer. Your Linux installation will look like just another window on your desktop: as if you had an imaginary (*virtual*, if you will) computer within the physical computer. In this arrangement, Linux is called the "guest" operating system in contrast to the "host" operating system.

Once you've downloaded, installed, and configured the software that lets you manage virtual machines, you need to get Linux into one. There are two options for this: you can install Linux yourself (more instructive) or you can use a preinstalled image of Linux (more expeditious). Following are instructions for both approaches.

To install Linux yourself...

1. Download [install media](middlinux-2020.01.05-x86_64.iso) (~800 MB)

2. Create a new virtual machine

3. Install Linux in a virtual machine

4. Your first boot

5. Things you need to know

(These instructions were last verified to work on 06 Nov 19.)


CAVEAT

There is a known bug whereby the graphical environment refuses to start. That is, when you run `startxfce4`, instead of seeing pretty pictures, you see errors like "(EE) AddScreen/ScreenInit failed for driver 0" and "(EE) Server termninated with error". The fix is to run this command:

$ sudo systemctl restart dbus


(The last character of the second word is the letter ell, not the digit one. When prompted, enter *your* password.)

After doing so, running `startxfce4` should work fine. Once inside, you can click on the icon at the bottom that looks like a TV screen to get a terminal in which you can type and work. You can (should) also install a text editor like atom. You should read the "Things you need to know" link above.

Whenever you boot the virtual machine anew, you will likely have to run that command again.



Using Linux

For information on installing new software and keeping your system up to date, see Things you need to know.

The graphical environment installed, Xfce, is fairly similar to graphical environments on other operating systems. I recommend poking around to see what you can do, but if you need more structured information, documentation is available.

One significant difference between Linux and the Big Two Operating Systems is the prominence of the command-line (ie, text) interface. You can access this power by running a *terminal emulator*, a program that simulates a physical access terminal from the 60s (but with more bells and whistles). The terminal emulator, by default, runs the same shell you've interacted with outside the graphical environment, and all the same principles apply.

The easiest way to transfer files between guest and host is to use [[shared folders]].

I've compiled a list of basic commands.


What now?

First and foremost: *be fearless*. One of the benefits of working inside a virtual machine is that your normal computing environment is protected from anything you do inside the VM. Within the VM itself, it is *impossible* for you to break anything that can't be fixed by reinstalling and reinstalling is fairly easy.

Nextly... it depends on what you want out of Linux.

If you installed Linux because you wanted to experiment with software that isn't as easily available on other operating systems, check out the list of common applications on the Arch Wiki, install random software, and play around.

A specific option in this vein is to install a *display manager*, which is the piece of software that allows for graphical login as opposed to the text-based login you've got now. Check out the XFCE FAQ entry on display managers as well as the relevant page on the Arch Wiki. (This highlights the situation with much software on Linux: both the writers of the software and the distribution maintainers will often have documentation available on the same topic!)

You might find some inspiration in checking out screenshots of other peoples' Linux situations.

If you installed Linux because you want to get more experience programming, I recommend you find a program you find interesting and read its source code. Modify it. See what happens. Add a feature. Fix a bug.

If you installed Linux because you want to avail yourself of the power of a programmable command shell, check out the Advanced Bash-Scripting Guide. (As to be expected on Linux, there are other shells to choose from, too.


Where to get help

One of the reasons I favor the Arch flavor of Linux is that it has a particularly helpful wiki. The forums are also quite good, but before wading in there, I strongly recommend you check out the canonical guide on [http://www.catb.org/esr/faqs/smart-questions.html how to ask questions the smart way]. You are also most welcome to ask questions of me.


Other info

Background information, wherein I answer questions like, "what's an operating system", "what is Linux?", and "what's a distribution?"

Justification, which explains why I recommend, specifically, Linux, VirtualBox, Arch Linux, and so on.

Some notes for faculty and staff who might like students to use this Linux VM for their classes.