List of Command Line Commands: Background
List of Command Line Commands: Background
BACKGROUND
The command line is a text interface for your computer. It's a program that takes in commands,
which it passes on to the computer's operating system to run.
From the command line, you can navigate through files and folders on your computer, just as
you would with Windows Explorer on Windows or Finder on Mac OS. The difference is that the
command line is fully text-based.
COMMANDS
>
$ cat oceans.txt > continents.txt
> takes the standard output of the command on the left, and redirects it to the file on the right.
>>
$ cat glaciers.txt >> rivers.txt
>> takes the standard output of the command on the left and appends(adds) it to the file on the
right.
<
$ cat < lakes.txt
< takes the standard input from the file on the right and inputs it into the program on the left.
|
$ cat volcanoes.txt | wc
| isa "pipe". The | takes the standard output of the command on the left, and pipes it as standard
input to the command on the right. You can think of this as "command to command" redirection.
~/.BASH_PROFILE
$ nano ~/.bash_profile
~/.bash_profile is the name of file used to store environment settings. It is commonly called
the "bash profile". When a session starts, it will load the contents of the bash profile before
executing commands.
ALIAS
alias pd="pwd"
The alias command allows you to create keyboard shortcuts, or aliases, for commonly used
commands.
CD
cd Desktop/
$ cd jan/memory
CD ..
$ cd ..
CP
$ cp ada_lovelace.txt historical/
WILDCARDS (*)
$ cp * satire/
The wildcard * selects all of the files in the current directory. The above example will copy all of
the files in the current directory to the directory called satire. There are other types of
wildcards, too, which are beyond the scope of this glossary.
$ cp m*.txt scifi/
Here, m*.txt selects all files in the working directory starting with "m" and ending with ".txt",
and copies them to scifi/.
ENV
env
The env command stands for "environment", and returns a list of the environment variables for
the current user.
env | grep PATH is a command that displays the value of a single environment variable.
EXPORT
export USER="Jane Doe"
export makes the variable to be available to all child sessions initiated from the session you are
in. This is a way to make the variable persist across programs.
GREP
$ grep "Mount" mountains.txt
grep stands for "global regular expression print". It searches files for lines that match a pattern
and returns the results. It is case sensitive.
GREP -I
$ grep -i "Mount" mountains.txt
GREP -R
$ grep -R Arctic /home/ccuser/workspace/geography
grep -R searches all files in a directory and outputs filenames and lines containing matched
results. -R stands for "recursive".
GREP -RL
$ grep -Rl Arctic /home/ccuser/workspace/geography
grep -Rl searches all files in a directory and outputs only filenames with matched results. -
R stands for "recursive" and l stands for "files with matches".
HOME
$ echo $HOME
The HOME variable is an environment variable that displays the path of the home directory.
LS
$ ls
2014 2015 hardware.txt
ls -a
ls -a
. .. .preferences action drama comedy genres.xt
ls -a lists all contents in the working directory, including hidden files and directories
ls -l
ls -l
drwxr-xr-x 5 cc eng 4096 Jun 24 16:51 action
drwxr-xr-x 4 cc eng 4096 Jun 24 16:51 comedy
drwxr-xr-x 6 cc eng 4096 Jun 24 16:51 drama
-rw-r--r-- 1 cc eng 0 Jun 24 16:51 genres.txt
ls -l lists all contents of a directory in long format. Here's what each column means.
ls -t
ls -t orders files and directories by the time they were last modified.
MKDIR
$ mkdir media
mkdir takesin a directory name as an argument, and then creates a new directory in the current
working directory. Here we used mkdir to create a new directory named media/.
MV
$ mv superman.txt superhero/
To move a file into a directory, use mv with the source file as the first argument and the
destination directory as the second argument. Here we move superman.txt into superhero/.
NANO
$ nano hello.txt
nano is a command line text editor. It works just like a desktop text editor like TextEdit or
Notepad, except that it is accessible from the the command line and only accepts keyboard input.
PATH
$ echo $PATH
/
home/ccuser/.gem/ruby/2.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/
sbin:/sbin:/bin
PATH is an environment variable that stores a list of directories separated by a colon. Each
directory contains scripts for the command line to execute. PATH lists which directories contain
scripts.
PWD
$ pwd
/home/ccuser/workspace/blog
RM
$ rm waterboy.txt
rm deletes files. Here we remove the file waterboy.txt from the file system.
RM -R
$ rm -r comedy
SED
$ sed 's/snow/rain/' forests.txt
sed stands for "stream editor". It accepts standard input and modifies it based on an expression,
before displaying it as output data.
In the expression 's/snow/rain/':
SORT
$ sort lakes.txt
sort takes a filename or standard input and orders each line alphabetically, printing it to standard
output.
STANDARD ERROR
standard error, abbreviated as stderr, is an error message outputted by a failed process.
SOURCE
source ~/.bash_profile
source activates the changes in ~/.bash_profile for the current session. Instead of closing the
terminal and needing to start a new session, sourcemakes the changes available right away in the
session we are in.
STANDARD INPUT
standard input, abbreviated as stdin, is information inputted into the terminal through the
keyboard or input device.
STANDARD OUTPUT
standard output, abbreviated as stdout, is the information outputted after a process is run.
TOUCH
$ touch data.txt
touch creates a new file inside the working directory. It takes in a file name as an argument, and
then creates a new empty file in the current working directory. Here we used touch to create a
new file named keyboard.txt inside the 2014/dec/ directory.
If the file exists, touch is used to update the modification time of the file
UNIQ
$ uniq lakes.txt
uniq,short for "unique", takes a filename or standard input and prints out every line, removing
any exact duplicates.