Saturday, 31 August 2013

An Introduction to Linux Command Line

I read an article about command-line recently and one sentence stood out: “many people younger than 30 have never used, or have little knowledge of command-line”. I would say that this has some truth to it. As a university student studying Computer Forensics BSc, I see many people aged between 18-25 and I’ve yet to meet one who knows the first thing about command-line. In this post, we’ll be looking at the terminal/*nix shell. In Windows, Mac OS and Linux, users can communicate with the computer via the terminal. Terminals serve as conduits for inputting and displaying characters. In Windows, you will see the terminal referred to as the command prompt, which can be called up by typing ‘cmd’ (without quotes) into Start > Run and hitting enter.

In Mac & Linux, you’ll see a ‘Terminal’ with an icon like this: 
Often, you’ll find that Unix commands don’t carry out an entire task by themselves, but when used in conjunction with other commands, the usefulness vastly increases. For the following examples, we wont be using anything Windows-related.

 Open up your shell and navigate over to your desktop using the cd command. (cd = change directory) Example: “cd /home/username/desktop” Now think about what files you may have there. If you’re anything like me, you probably have a few folders and other files lying around. If you type in: ‘ls’ you will be presented with a list of files on your desktop.

 That’s OK, but there’s not a whole lot of information there. Typing in ‘ls –l’ will give you a long-list, which will say: ‘Total x’ where total indicates the total number of disk blocks required to store the files.

Column 1 displays permissions,
Column 2 displays links, which we’ll discuss another time,
Column 3 displays the owner,
Column 4 displays the group,
Column 5 displays the size (in bytes) e.g 33964250.
Column 6 displays the last modification e.g 10 Dec 10:00
and finally Column 7 displays the file name.

 You may notice that the results displayed aren’t in alphabetical order. This may be because you have a mixture of uppercase & lowercase file names. This is an instance where we need to use two tools (commands). We will end this post by discussing the pipe symbol: |  . The pipe symbol simply lets you transfer the results over to another command. So lets say you have just ran ‘ls –l’ but you wish to sort the results. You could run the following: ‘ls –l | sort’.

Your results will still be off. If you consult the manual for sort by typing in ‘sort --help’ you’ll see you need to add –f to ignore upper/lowercase. So typing in: ‘ls –l | sort –f’ will work. You’re essentially asking for a long list of file names, permissions, groups, then piping the results of that command over to sort, ignoring the case. The output will be posted on your screen.

 I hope this was a useful insight into command-line for beginners.

Stay tuned for much more.