Skip to content

How to Linux

A brief guide on how to use Linux command lines.

Terminals and Shells

Linux systems support a basic user interface over the TTY (TeleTYpewriter) application. This application renders text and takes user input, offering a framework for running a shell. The shell is the application that hosts a command-line, allowing users to issue commands to the operating system. On most systems, the shell will be bash or zsh.

Bash/Zsh

The first word sent to bash/zsh is interpreted to be a program to run, and following words are arguments that are sent to the program:

program argument1 argument2 ...

For instance, if you wanted to list files in your Documents directory, you may run

/bin/ls /home/username/Documents

In this case, there is a program at /bin/ls that we are running, and we are passing it the parameter Documents.

Variables

Sometimes, a certain phrase may be typed often enough to where we may want to store it in a variable. For instance /home/username is your user directory, and is very commonly accessed. This path is by default stored in the variable HOME. We use the character $ to let bash know that we are referring to a variable, so the command above becomes

/bin/ls $HOME/Documents

Because the home directory is so commonly used, there is also an alias that binds ~ to $HOME

/bin/ls ~/Documents

If we want to set our own variables, we can use the = operator

docs="$HOME/Documents"
/bin/ls $docs

Search Paths

Linux systems often stores many programs in some directory. For instance, /bin typically holds a few dozen commands we often need to use. To avoid needing to specify the full path to the program, there is a variable PATH that lists the directories for the shell to search for programs. If we set PATH to include /bin, then we will be able to run ls without specifiying where it is.

PATH="/bin" ls ~/Documents

Export

Sometimes we want a variable to be globally available to all programs the shell runs. If this is the case, we need to run the program export to make this happen.

export PATH="/bin"

Output Redirection

Typically, when a program prints some output, it displays it on-screen. However, we may want to send the programs output somehwere else, such as into a file. We can redirect the output using the >> operator. For instance, if we want to save the list of documents to a file dirs.txt in our home directory, then we can run

ls ~/Documents >> ~/dirs.txt

In addition to

Saving Configuration

It would suck to have to configure the shell every time, so most operating systems will load a configuration file, typically ~/.bashrc or ~/.bash_profile (sometimes both). These files contains a list of commands to run whenever the shell is started, for instance, if we want to ensure /bin is always in our search path, we store

echo 'export PATH="/bin"' >> ~/.bashrc

(Don't run this. Your shell already has a defined PATH with many other directories included).

Manual

Linux has manuals for each program. To install the manuals, run

Ubuntu

sudo apt install man-db

Arch Linux

sudo pacman -S man-db

To view the manual for a program, run

man program

for instance, to view the manual for ls

man ls

press q to exit the manual.