- Buy Microsoft Visio Professional or Microsoft Project Professional 2024 for just $80
- Get Microsoft Office Pro and Windows 11 Pro for 87% off with this bundle
- Buy or gift a Babbel subscription for 78% off to learn a new language - new low price
- Join BJ's Wholesale Club for just $20 right now to save on holiday shopping
- This $28 'magic arm' makes taking pictures so much easier (and it's only $20 for Black Friday)
Getting started on the Linux (or Unix) command line, Part 4
Some of the most versatile commands you can run on the Linux command line are those that enable you to pass the output of one command to another by using something called a “pipe”. You can also set up complex commands as “aliases” so that you only need to type a simple string to run them.
Using pipes
One of the features that I’ve always loved about working on the command line is the ability to use pipes expressed as vertical bars (i.e., |) to pass the output of one command to another command. For example, you can count the number of people logged into a Linux server with a command like this:
$ who | wc -l 3
The who command shows you who is logged in. The wc -l command counts the lines of output sent by the who command.
You can look at recently run commands with a command like this:
$ history | tail -3 1014 ls bin 1015 uptime 1016 history | tail -3
You can look at the most recently updated files in the current directory with a command like this:
$ ls -ltr | tail -3 -rw-r--r--. 1 justme justme 2459 Nov 17 13:59 AllTables -rwx--x--x. 1 justme justme 701 Nov 17 14:05 mkTable -rwxr-x---. 1 justme justme 86 Nov 20 11:25 myscript
Some of the aliases in the sections below also make use of pipes.
Creating aliases
One of the most time-saving and clever things you can do as you warm up to Linux is to turn complex commands into aliases. In other words, you associate a word or abbreviation like “ll” with a command like “ls -l” or a single word like “recent” with a command like “history | tail -10” to view the most recent ten commands you’ve used.
Aliases can save you time by reducing how much you have to type and can avoid typing errors by supplying all of command’s details – especially if you use them often (less typing) or infrequently (less brain power required to remember how to use them).
To save aliases, insert them into your .bashrc file and they will be available every time you open a terminal window.
alias myprocs="ps -ef | grep `whoami`" # show my processes alias c="clear" # clear the screen alias rec="ls -ltr | tail -3" # show recent file updates
Understanding your search path $PATH
Your search path on a Linux system is a sequence of file system locations separated by colons (:) that is used to find a command when you type it. If you type “date”, for example, your shell will look at each location on your search path until it finds it – finds an executable by that name. When it finds the command, it runs it. Your PATH setting should include directories like “/usr/bin” and “/usr/local/bin”.
You can examine your search path with a command like this:
$ echo $PATH /home/justme/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
Editing text files
Before you can start creating text files – whether notes, lists or scripts – you will need to become familiar with one of the Linux text editors. The default on many Linux systems today is called “vim”. It makes it easy to add content, move around the lines in the files, replace words or lines, etc.
Like aliases, scripts allow you to run a series of commands simply by typing the just their name. Here’s an example of a very simple script:
#!/bin/bash echo This script is running in $SHELL echo The user running it is $USER
The first line identifies the shell that will be used to run the script. Without this, the shell that is currently in use will run the script. The other two lines will display the script being used and the name of the user running it. To create a simple script like this, you would start vim with a command like “vim myscript”. Press “i” to get into input mode and then enter the text shown. When you’re done entering the text, press the enter key to exit input mode and then enter “:wq” to save the file and exit vim.
Note that scripts have to be given execute permission with a command like that shown below to be run when you type the script name.
$ chmod 750 myscript $ ./myscript This script is running in bash The user running it is justme
In the example above, the script name is preceded with “./” since the current file system location is likely not in your search path.
Writing scripts will make many of your tasks easier to run – especially when they include complex commands (e.g., loops that allow you to run commands with a series of values or case statements that run differently depending on some variable).
Wrap-up
Using pipes, aliases and scripts can make the Linux command line easier to use and more powerful.