UNIX Sysadmin Boot Camp: bashPosted by Ryan Robson in SoftLayer, Technology, Tips and Tricks
Welcome back to UNIX Sysadmin Boot Camp. You’ve had a few days to get some reps in accessing your server via SSH, so it’s about time we add some weight to your exercise by teaching you some of the tools you will be using regularly to manage your server.
As we mentioned earlier in this series, customers with control panels from cPanel and Parallels might be tempted to rely solely on those graphical interfaces. They are much more user-friendly in terms of performing routine server administration tasks, but at some point, you might need to get down and dirty on the command line. It’s almost inevitable. This is where you’ll use bash commands.
Here are some of the top 10 essential commands you should get to know and remember in bash. Click any of the commands to go to its official “manual” page.
man– This command provides a manual of other bash commands. Want more info on a command? Type
man commandname, and you’ll get more information about “commandname” than you probably wanted to know. It’s extremely useful if you need a quick reference for a command, and it’s often much more detailed and readable than a simple
ls– This command lets you list results. I showed you an example of this above, but the amount of options that are available to you with this command are worth looking into. Using the “manual” command above, run
man lsand check out the possibilities. For example, if you’re in
ls -l /etcwill get you a slightly more detailed list. My most commonly used list command is
ls -hal. Pop quiz for you (where you can test your
manskills): What does the
cd– This command lets you change directories. Want to go to
cd /etc/will take you there. Want to jump back a directory?
cd ..does the trick.
mv– This command enables you to move files and folders. The syntax is
mv originalpath/to/file newpath/to/file. Simple! There are more options that you can check out with the
rm– This command enables you to remove a file or directory. In the same vein as the
mvcommand, this is one of those basic commands that you just have to know. By running
rm filename, you remove the “filename” file.
cp– This command enables you to copy files from one place to another. Want to make a backup of a file before editing it? Run
cp origfile.bla origfile.bak, and you have a backup in case your edit of
origfile.blagoes horrendously wrong and makes babies cry. The syntax is simply:
cp /source /destination. As with the above commands, check out the manual by running
man cpfor more options.
tar– On its own,
taris a command to group a bunch of files together, uncompressed. These files can then be compressed into .gzip format. The command can be used for creating or extracting, so it may be a good idea to familiarize yourself with the parameters, as you may find yourself using it quite often. For a GUI equivalent, think 7-zip or WinRAR for Windows.
wget– I love the simplicity of this little command. It enables you to “get” or download a target file. Yes, there are options, but all you need is a direct link to a file, and you just pull one of these:
wget urlhere. Bam! That file starts downloading. Doesn’t matter what kind of file it is, it’s downloaded.
top– This handy little binary will give you a live view of memory and CPU usage currently affecting your machine, and is useful for finding out where you need to optimize. It can also help you pinpoint what processes may be causing a slowdown or a load issue.
chmod– This little sucker is vital to make your server both secure and usable, particularly when you’re going to be serving for the public like you would with a web server. Combine good usage of permission and iptables, and you have a locked down server
When you understand how to use these tools, you can start to monitor and track what’s actually happening on your server. The more you know about your server, the more effective and efficient you can make it. In our next installment, we’ll touch on some of the most common server logs and what you can do with the information they provide.
Did I miss any of your “essential” bash commands in my top 10 list? Leave a comment below with your favorites along with a quick explanation of what they do.