Hidden config files in Linux and UNIX

There are some files within the home directory that are ordinarily hidden. Hidden files have names that begin with a period; hence, they have been given the nickname of dot files. Hidden files are not displayed by the ls command unless the –a option is used in the format of ls –a.

The table below lists some of the more common dot files that users should know about. This is by no means a totally comprehensive list. Additional dot files can be found in the user’s home directory; however, some searches may not find some of the files listed here. The files found are dependent upon the applications installed on the server, the utilities that are in use and the command shell that is being used. Since the default shell for Linux is the bash shell, the home directory typically contains the bash related scripts indicated below.




For users of the bash shell, a file containing up to 500 of the most recent commands available for recall using the up and
down arrow keys.


Script that is run by the bash shell when the user logs out of the system


Initialization script that is run by the bash shell upon login in order to setup variables and aliases. When bash
is started as the default login shell, it looks for the .bash_profile file in the user’s home directory; if not found, it looks for .bash_login.
If there is no .bash_login file, it then looks for a .profile file.


Initialization script executed whenever the bash shell is started in some way other than a login shell. It is better to put
system-wide functions and aliases in /etc/bashrc, which will be presented later in the book.


GTK initialization file. GTK+
is a multi-platform toolkit for creating graphical user interfaces, used by a
large number of applications. It is the toolkit used by the GNU
project’s GNOME desktop.


The initialization script that is run whenever a user
login occurs.


The script that is automatically run whenever a user
logout occurs.


Put default system-wide environment variables in /etc/profile.


Initialization file for the Vim text editor that is
compatible with vi.


Specifys the default window manager if one is not
specified in startx

.Xdefaults & .Xresources

Initialization files for Xterm resources for the user.
Application program behavior can be changed by modifying these files.


The initialization file used when running startx, which can be used to activate applications and run a particular window manager.


This file is executed when a user logs in to an X-terminal
and is used to automatically load the window manager and applications.

Easy Linux CommandsFor more tips like this check out my book Easy Linux Commands, only $19.95 from Rampant TechPress.

Buy it now!

unix, linux, system administration, sysadmin, hidden files, config files

Secure remote file copy

Here’s a quick description of the scp command used for securely copying files between systems on Linux and UNIX.

The scp (secure copy) command can be used to copy files or even entire directories to a remote host. scp is a replacement for the rcp (remote copy) command. While rcp provides the same functionality it is not encrypted and therefore not secure. The scp command uses SSH for data transfer, providing SSH level security.

scp takes arguments in the form of scp –options source destination. The most common option is the –r (recursive) option which is necessary if you are using scp on multiple files or on directories. The source and destination arguments can specify not only a path but optionally a username and hostname in the format of username@hostname:path. If the username is omitted scp assumes the username of the current logged in user. If the hostname is omitted scp assumes the path provided is on the current system. Typically either the source or the destination will describe a remote system; however you could use scp to move a file or files from one remote system to another.

The following example copies the file secret.dat from user tclark’s home directory to a directory named /backup/tclark on a server named backup_server logging in as user terry. As indicated below, the scp command will prompt for the password for user terry on the backup_server when the connection is attempted.

$ scp /home/tclark/secret.dat terry@backup_server:/backup/tclark
terry@backup_server's password: password
secret.dat 100% 1011 27.6KB/s 00:00

Zach has a good article about setting up ssh with key authentication which will allow you to use the scp and ssh commands without a password while still maintaining security.

Easy Linux CommandsFor more tips like this check out my book Easy Linux Commands, only $19.95 from Rampant TechPress.

Buy it now!

linux, unix, system administration, sysadmin, easy linux, scp

head and tail commands for viewing the beginning or end of files

Often we only need to see the beginning or end of a file to find what we’re looking for. The head and tail commands offer exactly this functionality. Here’s some more info on these commands from Easy Linux Commands.

Displaying Beginning Lines of a File

Sometimes a user might have a large file for which they only need to display the first few lines. For instance, perhaps the user would like to see the error code on a dump file and the code and error messages appear within the first fifteen lines of the dump file. The following example demonstrates how to display the first fifteen lines of a file using the head command. The head command takes a number as an option and uses it as the number of lines to be displayed. The default is 10.

$ head -15 declaration.txt
The Declaration of Independence of the Thirteen Colonies
In CONGRESS, July 4, 1776

The unanimous Declaration of the thirteen united States of America,

When in the Course of human events, it becomes necessary for one people to dissolve the political
bands which have connected them with another, and to assume among the powers of the earth, the
separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent
respect to the opinions of mankind requires that they should declare the causes which impel them
to the separation.

We hold these truths to be self-evident, that all men are created equal, that they are endowed by
their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit
of Happiness. --That to secure these rights, Governments are instituted among Men, deriving their
just powers from the consent of the governed, --That whenever any Form of Government becomes

In this example and often in use it may seem like head is displaying more lines than you asked for. That typically is because the lines are too long for the display so a single line may be continued on the next line.

Displaying Ending Lines of a File

The need might arise to see only the last lines of a file. A good example of this might be an error log file where the user would like to see the last few messages written to the log. The tail command can be used to display the last lines of a file, while passing the number of lines to be displayed. The following example requests the last eight lines in the file called declaration.txt.

$ tail -8 declaration.txt
they are accustomed. But when a long train of abuses and usurpations, pursuing invariably the
same Object evinces a design to reduce them under absolute Despotism, it is their right, it is
their duty, to throw off such Government, and to provide new Guards for their future security.
—Such has been the patient sufferance of these Colonies; and such is now the necessity which
constrains them to alter their former Systems of Government. The history of the present King of
Great Britain [George III] is a history of repeated injuries and usurpations, all having in
direct object the establishment of an absolute Tyranny over these States. To prove this, let
Facts be submitted to a candid world.

Again it appears we are getting more than eight lines, but this is just the result of long lines wrapping onto two lines.

Display Active Writes to a File

Sometimes you need to go one step further and watch as lines are being written to a file. Perhaps, for example, an application is compressing and copying files to an alternate location, writing messages to a log file called message.log as it processes each file. A curious user might want to observe the progress of the application. In this case, the tail command with the –f (follow) option can be used to read the messages as they are written to a file. The following example assumes that the current working directory is the same directory where the log file resides.

$ tail -f message.log

A clever Linux user can also use the less command to display the beginning lines of a file, the ending lines of a file, or to follow active writes to a file like tail –f does. See the man entry for the less command to see how this is done.

Easy Linux CommandsFor more tips like this check out my book Easy Linux Commands, only $19.95 from Rampant TechPress.

Buy it now!

Easy Linux Commands – Now On Shelves!

My book Easy Linux Commands: Working Examples of Linux Command Syntax is now on shelves, as seen in this picture from Borders Book and Music right down the street from my home in Concord, NH.

Easy Linux Commands at Borders Concord

Written by me and Terry Clark this book is part reference and part tutorial encompasing everything from basic file manipulation to administrative commands.

From an Amazon review by Kurt:

New users to Linux and old-school Unix engineers alike will find value in this book. The author did a tremendous service representing this rapidly growing technology in an easy to read, easy to follow humorous format. Page to page there are examples of basic Unix commands and obscure Linux features available to most builds. Having built my career in deploying “Enterprise Class” Unix based solutions for today’s high availability needs, it is refreshing to learn some new tricks and be reacquainted with old tools built discussed in this book. I recommend it to entry level and veterans alike.

The book is available in major bookstores (although any bookstore should be able to order it for you) and can also be ordered from the publisher for just $19.95. That’s 30% off the cover price!

Thanks to Zach for snapping the pic and sending it on to me.

linux, unix, linux commands, command line, redhat, ubuntu, book, technology, information technology, system administration, sysadmin

Archiving Directories and Files with tar

Still hanging in there the tar command remains the de facto standard for archiving files and directories in UNIX and UNIX-like operating systems. Here are some tar basics from Easy Linux Commands

There are several reasons you may want to create an archive of a file or directory. Here are some of the most common ones:

  • Archive and compress unused directories to conserve disk space
  • Create an archive of a directory and files before an upgrade allowing you to restore the original contents if there is a problem
  • Archive a directory before making any major changes
  • Create an archive to move several files and folders to another system as one
  • Create an archive as a means of software distribution

One of the most useful utilities for archiving a set of files and directories is tar. The name tar is short for Tape ARchiver because tar was originally written to write data to a tape backup device.

The following is a basic example of archiving a directory into a tar archive file and also extracting the archive into its original structure.

$ tar -cvf examples.tar examples
$ rm –r examples
$ ls
$ tar –xvf examples.tar
$ ls
examples examples.tar

In this example we have demonstrated the two most common uses of tar. The first tar command combines the –c (create) option to create a new archive, the –v (verbose) option to list the files and directories it’s archiving and the –f option to write to a file rather than to tape. Remember that tar was originally written for use with tape drives and it still defaults to tape if you do not use the –f option.

The two arguments for this tar command are the destination file (examples.tar in our example here) and the files which should be added to that file. This can be confusing since most other Linux commands take a source argument before the destination. tar takes them in the order of destination then source so you can list multiple source files to be archived into a single file. Also not that we have to specify the file extension (.tar) if we want our new archive to have an extension. You can name a tar archive (typically called a tarfile or tarball) anything you want, but the .tar extension is a widely accepted convention.

In the second tar command the –v and –f options have the same result and the –x (extract) option tells tar that we want to extract the contents of a tar file rather than create one. We then give tar the name of the archive to be extracted and it goes to work restoring our files.

A Warning about Relative and Absolute Paths in tar

As with other commands tar can be used with either relative or absolute paths. When specifying the tarfile to be created or extracted there is little difference between these two methods; however, if you use an absolute path when listing files to be archived you might get a surprise when you extract them!

If an absolute path is used to tell tar which files to archive, like with the command below the archive will record the absolute path and restore those files to that path, no matter where tar is run from or where the tarfile is.

$ tar -cf examples.tar /home/tclark/examples

If an absolute path is not specified on archiving the files will be extracted into the working directory or the appropriate subfolder of the working directory.

Easy Linux CommandsFor more tips like this check out my book Easy Linux Commands, only $19.95 from Rampant TechPress.

Buy it now!

linux, unix, system administration, sysadmin, tar, tape archive