A Study in Bash Shell: Executing Commands
Running Commands
ubuntu@ip-172-31-24-188:~$ date
Tue Jan 19 02:45:27 UTC 2016
ubuntu@ip-172-31-24-188:~$ pwd
/home/ubuntu
ubuntu@ip-172-31-24-188:~$ hostname
ip-172-31-24-188
ubuntu@ip-172-31-24-188:~$ ls
git setup.sh There
ubuntu@ip-172-31-24-188:~$ ls -t
There setup.sh git
ubuntu@ip-172-31-24-188:~$ ls -lt
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Jan 19 02:33 There
-rw-rw-r-- 1 ubuntu ubuntu 10338 Jan 17 07:00 setup.sh
drwxrwxr-x 3 ubuntu ubuntu 4096 Jan 16 17:03 git
History Commands
ubuntu@ip-172-31-24-188:~$ history 8
77 pwd
78 hostname
79 ls
80 ls -t
81 ls -lt
82 ls -alt
83 history
84 history 8
Connecting and Expanding Commands
A truly powerful feature of the shell is the capability to redirect the input and output of commands to and from other commands and fi les.
Piping between commands
Here is an example of a command line that includes pipes:
$ cat /etc/passwd | sort | less
This command lists the contents of the /etc/passwd fi le and pipes the output to the
sort command. The sort command takes the usernames that begin each line of the
/etc/passwd fi le, sorts them alphabetically, and pipes the output to the less command (to page through the output).
Sequential commands
yang@ubuntu:~$ date ; who am i; date
Tue Jan 19 11:09:26 CST 2016
yang pts/1 2016-01-19 10:24 (u6036458-tpl-a.ten.thomsonreuters.com)
Tue Jan 19 11:09:26 CST 2016
Background commands
yang@ubuntu:~$ date &
[1] 20243
yang@ubuntu:~$ Tue Jan 19 11:11:50 CST 2016
[1]+ Done date
Expanding commands
vi $(find /home | grep xyzzy)