|
Linux Commands for Beginning Server Administrators Updated -- reallylinux.com
Linux
Commands for Beginning
Server Administrators Updated
Brought
to you by Mark Rais, senior editor ReallyLinux.com
Every new Linux administrator wants a handy list of those essential commands needed for daily server
management and maintenance. I've updated my beginner administrators command list in hopes that it will help you quickly become
self sufficient in Linux server use.
Please feel free to share these commands. My only request is that you let others know
where you got them so that I may be able to help them as well.
You may also benefit from more basic commands such as:
beginner commands,
more advanced commands, and file
permissions.
Please consider running these basic commands on occasion with the
--help parameter to read
through all of the options. For example try running the command: du
--help
Also note
that if a server command you run gives you an output that is far more
than one single screen, you can use the option |more (referred to as
pipe more). This will display the output one screen at a time. Press the space key for one page
at a time, and the enter key for one line at a time. For example: ps -A |more
Beginner
Server Administrator Commands Compiled
and Updated by Mark Rais exclusively for ReallyLinux.com
|
Command
|
Summary
Use
|
|
arp
|
Command mostly used for checking
existing Ethernet connectivity and IP address
Most common use: arp
This command should be used in conjunction with the ifconfig
and route commands. It is mostly useful for me to check a network
card and get the IP address quick. Obviously there are many more
parameters, but I am trying to share the basics of server
administration, not the whole book of commands.
|
|
df
|
Display filesystem information
Most common use: df
-h
Great way to keep tabs on how much hard disk space you have on
each mounted file system. You should also review our other commands like file
permissions here.
|
|
du
|
Display usage
Most common use, under a specific
directory: du -a
Easily and quickly identify the size of files/programs in
certain directories. A word of caution is that you should not run
this command from the / directory. It will actually display size
for every file on the entire Linux harddisk.
|
|
find
|
Find locations of files/directories quickly across entire filesystem
Most common use: find / -name appname -type d -xdev
(replace the word appname with the name of a file or application like gimp)
This is a very powerful command and is best used when running as root or superuser. The danger is that you will potentially look across every single file on every filesystem, so the syntax is very important. The example shown allows you to search against all directories below / for the appname found in directories but only on the existing filesystem. It may sound complex but the example shown allows you to find a program you may need within seconds!
Other uses and more complex but beneficial functions include using the -exec or execute a command.
You may also try the commands: locate or try slocate
|
|
ifconfig
|
Command line tool to configure or
check all network cards/interfaces
Most common uses: ifconfig
and also ifconfig eth0 10.1.1.1
Using the plain ifconfig
command will show you the details of all the already configured
network cards or interfaces. This is a great way to get a check
that your network hardware is working properly. You may also benefit from this
review of server configuration. Using the many
other options of ifconfig such as the one listed allows you to
assign a particular interface a static IP address. I only show an
example and not a real world command above. Also review some commands for file
permissions here.. Your best bet, if you
want to configure your network card using this command is to first
read the manual pages. You access them by typing: man
ifconfig
|
|
init
|
Allows you to change the server bootup on a specific runlevel
Most common use: init 5
This is a useful command, when for instance a servers fails to identify video type, and ends up dropping to the
non-graphical boot-up mode (also called runlevel 3).
The server runlevels rely on scripts to basically start up a server with specific processes and tools upon bootup.
Runlevel 5 is the default graphical
runlevel for Linux servers. But sometimes you get stuck in a different mode and need to
force a level. For those rare cases, the init command is a simple way to force the mode
without having to edit the inittab file.
Of course, this command does not fix the underlying problem, it just
provides a fast way to change levels as needed. For a more permanent correction to the runlevel, edit
your /etc/inittab file to state: id:5:initdefault:
|
|
joe or nano
|
Easy to use command line editors that are often included with the major Linux flavors
Most common uses:
joe filename
nano filename
A real world example for you to get a better sense on how this works:
nano /etc/dhcp3/dhcpd.conf
This allows you to edit using nano the dhcpd.conf configuration file from the command line.
Maybe you are not up to speed on vi, or never learned how to use emacs? On most Linux flavors the text editor
named joe or one named nano are available. These basic but easy to use editors are useful for
those who need a text editor on the command line but don't know vi or emacs.
Although, I do highly recommend that you learn and use Vi and Emacs editors as well. Regardless, you will need to use a command line editor from time to time. You can also use cat and more commands to list contents of files, but this is basic stuff found under the basic linux commands listing. Try: more filename to list contents of the filename.
|
|
netstat
|
Summary of network connections and
status of sockets
Most common uses: netstat
and also netstat |head and
also netstat -r
Netstat command simply displays all sockets and server
connections. The top few lines are usually most helpful regarding
webserver administration. Therefore if you are doing basic
webserver work, you can quickly read the top lines of the netstat
output by including the |head
(pipe and head commands). Using the -r
option gives you a very good look at the network routing
addresses. This is directly linked to the route command.
|
|
nslookup
|
Checks the domain name and IP
information of a server
Most common use: nslookup
www.hostname.com
You are bound to need this command for one reason or another.
When performing server installation and configuration this command
gives you the existing root server IP and DNS information and can
also provide details from other remote servers. Therefore, it is
also a very useful security command where you can lookup DNS
information regarding a particular host IP that you may see
showing up on your server access logs. Note there are some other commands like file
permissions that may also help. There is a lot more to this
command and using the man pages will get you the details by
typing: man nslookup
|
|
ping
|
Sends test packets to a specified
server to check if it is responding properly
Most common use: ping
10.0.0.0 (replace the 10.0.0.0 with a true IP address)
This is an extremely useful command
that is necessary to test network connectivity and response of
servers. It creates a series of test packets of data that are then
bounced to the server and back giving an indication whether the
server is operating properly.
It is the first line of testing if a network failure occurs. If
ping works but for instance FTP does not, then chances are that
the server is configured correctly, but the FTP daemon or service
is not. However, if even ping does not work there is a more
significant server connectivity issue… like maybe the wires are
not connected or the server is turned off! The outcome of this
command is pretty much one of two things. Either it works, or you
get the message destination host unreachable. It is a very
fast way to check even remote servers.
|
|
ps
|
Lists all existing processes on the
server
Most common uses: ps
and also ps -A |more
The simple command will list every process associated with the
specific user running on the server. This is helpful in case you
run into problems and need to for instance kill a particular
process that is stuck in memory. On the other hand, as a system
administrator, I tend to use the -A with the |more option. This
will list every process running on the server one screen at a
time. Read more of our commands on our
reallylinux.com help page. I use ps to quickly check what others are goofing with on my
servers and often find that I'm the one doing the dangerous
goofing!
|
|
rm
|
Removes/deletes directories and
files
Most common use: rm
-r name (replace
name with your file or directory name)
The -r option forces the
command to also apply to each subdirectory within the directory.
For instance if you are trying to delete the entire contents of
the directory x which includes directories y and z this command
will do it in one quick process. That is much more useful than
trying to use the rmdir command after deleting files! Instead use
the rm -r command and you will save time and effort. You may
already have known this but since server administrators end up
spending a lot of time making and deleting I included this tip!
|
|
route
|
Lists the routing tables for your
server
Most common use: route
-v
This is pretty much the exact same output as the command
netstat -r. You can suit
yourself which you prefer to run. I tend to type netstat commands
a lot more than just route and so it applies less to my situation,
but who knows, maybe you are going to love and use route the most!
|
|
shred
|
Deletes a file securely by
overwriting its contents
Most common use: shred
-v filename (replace filename with your specific file)
The -v option is useful since it provides extra view of what
exactly the shred tool is doing while you wait. On especially BIG
files this could take a bit of time. The result is that your file
is so thoroughly deleted it is very unlikely to ever be retrieved
again. This is especially useful when trying to zap important
server related files that may include confidential information
like user names or hidden processes. It is also useful for
deleting those hundreds of love notes you get from some of the
users on your server, another bonus of being a server
administrator. :)
|
|
sudo
|
The super-user do command that allows you
to run specific commands that require root access.
Most common use: sudo command
(replace command with your specific one)
This command is useful when you are logged into a server and attempt a command
that requires super-user or root privileges. In most cases, you can simply run the command
through sudo, without having to log in as root. In fact, this is a very beneficial way
to administer your server without daily use of the root login, which is potentially dangerous.
Note there are other commands for file
permissions here. Below is a simple example of the sudo capabilities:
sudo cd /root
This command allows you to change directories to the /root without having to login as root.
Note that you must enter the root password once, when running a sudo command.
|
|
top
|
Displays many system statistics and
details regarding active processes
Most common use: top
This is a very useful system administrator tool that basically
gives you a summary view of the system including number of users,
memory usage, CPU usage, and active processes. Often during the
course of a day when running multiple servers, one of my Xwindows
workstations just displays the top command from each of the
servers as a very quick check of their status and stability.
|
|
touch
|
Allows you to change the timestamp on a file.
Most common use: touch filename
Using the basic touch command, as above, will simply force the current date and time upon the
specified file. This is helpful, but not often used.
However, another option that I've used in the past when administering servers, is to force a specific
timestamp on a set of files in a directory. Read more of our commands on our
reallylinux.com help page.
For instance, to force a specific date and time upon all files in a directory, type:
touch *
You can also force a specific date/time stamp using the -t option like this:
touch -t200103041200.00 *
The command above will change all files in the current directory to take on the new date of
March 4th, 2001 at noon. The syntax follows this pattern:
YYYYMMDDhhmm.ss
YYYY represents the four digit year, then the two digit month, day, hour and minutes. You can even
specify seconds as noted above. In any case, this is a useful way to control timestamps on any files
on your server.
|
|
traceroute
|
Traces the existing network routing
for a remote or local server
Most common use: traceroute
hostname
(replace hostname with the name of
your server such as reallylinux.com)
This is a very powerful network
command that basically gives the exact route between your machine
and a server. In some cases you can actually watch the network
hops from country to country across an ocean, through data
centers, etc. Read more of our commands on our
reallylinux.com help page.
This comes in handy when trying to fix a network problem, such
as when someone on the network can not get access to your server
while others can. This can help identify the break or error along
the network line. One strong note to you is not to misuse this
command! When you run the traceroute everyone of those systems you
see listed also sees YOU doing the traceroute and therefore as a
matter of etiquette and respect this command should be used when
necessary not for entertainment purposes. A key characteristic of
gainfully employed server administrators: knowing when to use
commands and when not to use them!
|
|
w
|
An extension of the who command that
displays details of all users currently on the server
Most common uses: w
This is a very important system
admin tool I use commonly to track who is on the server and what
processes they are running. It is obviously most useful when run
as a superuser.
The default setting for the w command is to show the long list
of process details. You can also run the command w
-s to review a shorter process listing, which is helpful
when you have a lot of users on the server doing a lot of things!
Remember that this is different than the who command that can only
display users not their processes.
|
|
who
|
Tool used to monitor who is on the
system and many other server related characteristics
Most common uses: who
and also who -q and also
who -b
The plain command just lists the names of users currently on
the server. Using the -q option allows you to quickly view just
the total number of users on the system. Using the -b option
reminds you how long it has been since you rebooted that stable
Linux server! One of my servers had a -b of almost three years! Yes, that's why we at reallylinux.com call it really Linux!
|
Please realize that
these are just a few select commands for
getting started in the world of Linux Server Administration.
There are many other commands that
you will need to know including:
those for beginners,
more advanced
Linux commands, or an explanation of file
permissions and commands, so please read them and enjoy!
- Updated and brought to you by Reallylinux.com -
|