Pipes, aliases and scripts make Linux so much easier to use. Credit: Gorodenkoff / Shutterstock 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. Related content how-to How to find files on Linux There are many options you can use to find files on Linux, including searching by file name (or partial name), age, owner, group, size, type and inode number. By Sandra Henry Stocker Jun 24, 2024 8 mins Linux opinion Linux in your car: Red Hat’s milestone collaboration with exida With contributions from Red Hat and critical collaborators, the safety and security of automotive vehicles has reached a new level of reliability. By Sandra Henry Stocker Jun 17, 2024 5 mins Linux how-to How to print from the Linux command line: double-sided, landscape and more There's a lot more to printing from the Linux command line than the lp command. Check out some of the many available options. By Sandra Henry Stocker Jun 11, 2024 6 mins Linux how-to Converting between uppercase and lowercase on the Linux command line Converting text between uppercase and lowercase can be very tedious, especially when you want to avoid inadvertent misspellings. Fortunately, Linux provides a handful of commands that can make the job very easy. By Sandra Henry Stocker Jun 07, 2024 5 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe