====================== Running a Linux Distro ====================== In order to run a Linux distribution "inside" your Windows installation, you can use a **Virtual Machine** (VM). A VM is a "virtual computer running inside your computer". There are several VM **players** available. A few options: - `VirtualBox `_ - `VMware `_, look for the "VMware player" application - `Parallels `_ There is also a Free & Open Source alternative, `QEMU `_, but it is rather unix-centric and definitely the least user-friendly of the pack. Now download a Linux distribution. I suggest downloading a user-friendly distribution, such as: - `Ubuntu `_ - `Fedora `_ Download the installation image (also called ISO), it represents a CD-ROM or a DVD-ROM. Now run the VM player and tell it to **create a new virtual machine** (details depend on the player you use). Tell it to install the Operating System from the installation image you already downloaded. There are several tutorials on how to do this, like `this one `_. The Linux installation menu will appear on screen. Just follow the instructions. Hopefully everything will work out, and in a few minutes Linux will be installed in your Virtual Machine. If you have trouble, try to ask a more experienced computer user (your colleagues, Toma, or me), or search e.g. "*how to install Ubuntu on VirtualBox*" on Google. There are a lot of useful tutorial online | | ====================== Unix shell: a few tips ====================== .. warning:: The material in this section does **not** play any role in the exam! It is only given for students to get a bit familiar with the Unix shell. **Opening a shell**. When you open a new terminal, a new shell prompt is shown:: stefano@computer:~/$ The exact text changes between Unix distributions/versions. In my case, the login text tells me what is the name of my user on the machine I am using (``stefano``), what is the name of the computer I am using (``computer``), and in what directory I am standing in (in this case my home directory ``~``). The tilde character ``~`` is just a shorthand for the full path of my home directory:: /home/stefano/ **Running commands**. In order to run a command, say ``python``, it is sufficient to type:: python and press ``Enter``, and that's it. In order to quit the terminal, use the ``exit`` command, or press ``Control-d`` on an empty line. **Moving around**. From my home, I can move to other directories using the ``cd`` command. For instance, if I am in my home directory ``/home/stefano/`` and I type:: cd Devel/sciprog/lectures I will move to the directory:: /home/stefano/Devel/sciprog/lectures The special path ``..`` can be used to go back up one level, so if I am in:: /home/stefano/Devel/sciprog/lectures and execute ``cd ..``, I end up in:: /home/stefano/Devel/sciprog At any point in time, I can use the ``pwd`` command to print the path of the directory I am currently in. For instance, from a newly opened terminal I could do:: $ pwd /home/stefano $ cd Devel/sciprog/lectures $ pwd /home/stefano/Devel/sciprog/lectures $ cd .. /home/stefano/Devel/sciprog If I use ``cd`` alone (not followed by a path), I will move to the home directory, irregardless of where I currently am:: $ pwd /home/stefano/Devel/sciprog/lectures $ cd /home/stefano **More information**. Of course there are many more things you can do with/from the terminal (most of them, actually), but I won't write about them. Feel free to consult an online tutorial, like `this `_ for further inputs. Some useful commands: =========================== ======================================= Command Meaning =========================== ======================================= ``pwd`` Print the directory I am currently in ``cd `` Move to a different directory ``ls ()`` List contents of the given directory ``mv `` Move a file/directory somewhere else ``cp `` Copie a file/directory ``rm `` Delete a file/directory ``mkdir `` Create a new directory somewhere ``cat `` Print the contents of a file =========================== ======================================= And some useful key presses: ============= ============================================================= Keypress Meaning ============= ============================================================= ``Control-c`` Kill any running program (may not always work) ``Control-d`` Means "end-of-data", useful for exiting the terminal. ``Control-l`` Cleans the terminal window. ``Tab`` Auto-completes the current command/path. ``↑``, ``↓`` Recalls previously used commands. ``history`` Prints previously used commands on screen. ============= =============================================================