#####################################################
The |vector_edition| Filesystem and How to Find Files
#####################################################
Introduction
============
|vector_edition|, as with most other Linux distributions, tries to adhere to
the `Linux Filesystem Hierarchy
Standard. `_ This standard is necessary to
enable developers and users to install, move, place and find files in
locations that make sense and are consistent between distributions. This
document will not discuss the details of the Linux FHS as you can read
such details at the above website. What we wish to point out here are
the important directories and file locations for those configuration
files and directories which are particularly relevant or unique to
|vector_edition|. It is hoped this will enable newcomers to navigate the many
Linux directories more effectively and to know where to find files to
fix any problems that may arise. Secondly, we briefly discuss some of
the Linux utilities that will help you locate files/directories.
It also needs to be known that |vector_edition| is based upon the Slackware
Linux distribution. Slackware Linux uses the BSD-style file layout for
its system initialization script files. Consequently Slackware and Linux
do not use System V init scripts. This is an important fact if you wish
to navigate or edit the init configuration scripts. If interested, you
can `read about the
difference `_
between BSD and System V init scripts.
|vector_edition| provides *VasmCC* the "Vector Administration and Services
Menu" system administration utility amongst other utilities, plus a
fully configured Linux system for most common hardware. Thus it should
generally be unnecessary for newcomers to have to manually edit any of
the configuration files or init scripts.
Important Configuration Files
=============================
Most system configuration files are located in the */etc* directory.
Most user-specific configuration files are in the appropriate home
directory as a "hidden" "rc" file, e.g. *~/.bashrc* or within a
directory specific to the application, e.g. *~/.config/xfce4* (where ~
is a shortcut to your home directory). Navigate to the */etc* directory
in your favourite file manager application and we will analyze the most
important system config files:
- */etc/lilo.conf* : the lilo boot loader configuration file
- */boot/grub/menu.lst* : the grub bootloader configuration file - if
you use grub as your bootloader.
- */etc/fstab* : the block device (drives) system mounting file;
controls which drives are mounted at bootup.
- */etc/inittab* : configuration file for the prime "init" script;
determines bootlevel
- */etc/passwd* : user and password configuration file
- */etc/X11/xorg.conf* : the X config file; controls keyboard, mouse,
video card and monitor
- */etc/slapt-get/slapt-getrc* : config file for slapt-get - the VL
packaging tools
- */etc/modules.conf* : config file for loading kernel modules
- */etc/resolv.conf* : config file for network nameservers - set
automatically if your ISP uses DHCP (most do).
- */etc/samba/smb.conf* : Samba config file
- */etc/skel* : "Skeleton" desktop environment base config files,
copies to each users /home directory upon installation
The important BSD-style system initialization scripts which the
knowledgeable user may at some time wish to edit are:
- */etc/rc.d* : config DIRECTORY containing most of the Slackware-style
startup scripts
- */etc/rc.d/README* : please do if you want to learn more!
- */etc/rc.d/rc.S* : one of the first boot scripts to run to prepare
your system at boot time.
- */etc/rc.d/rc.modules* : modules to be loaded at boot time
- */etc/rc.d/rc.inet1* : config file for eth0, you primary network
card.
- */etc/rc.d/rc.local* : local bootup customization script. Put your
additions here.
Now the most important user config files (where ~ denotes your home
directory) are listed below. Note that almost every application you use
will probably create a *~/.application* file or directory where it
stores your preference settings.
- *~/.bashrc* : config file for nonlogin, interactive bash shells
- *~/.Xdefaults* : config file for terminal console programs such as
xterm, mrxvt
- *~/.kde* : kde preferences and autostart directories
- *~/.config* : directory for xfce4 and lxde config files
- *~/.jwmrc* : the jwm window manager config file (if JWM installed)
- *~/.jwm* : the jwm window manager directory (if JWM installed)
- *~/.fluxbox* : directory for the fluxbox window manager's config
files (if fluxbox installed)
- *~/.icewm* : directory for the IceWM window manager's config files
(if IceWM installed)
And lastly here are some other important log files and other files which
you may need to refer to at some stage:
- */var/log/packages* : directory containing description files for
every Slackware/VL package installed on your system
- */var/log/removed\_packages* : directory containing description files
for every Slackware/VL package removed from your system
- */home/ftp/pub/veclinux-6.0/packages* : directory containing all
packages downloaded using gslapt or slapt-get. Also contains mirror
package info.
How To Find Files
=================
GUI Tools
---------
Although not as efficient and fast as the command line tools listed
below some users will feel more comfortable using a GUI application to
help them find specific files. Depending upon the version of VL you have
installed look for one or more of these applications:
- kfind: if KDE is loaded
- gtkfind: if xfce loaded
slocate or locate
-----------------
``slocate`` or ``locate`` commands provides a super fast, secure way to
search an indexed database of every file on your system. However, you
must first of all create the database and keep it up-to-date by running
``updatedb`` as root. You can place updatedb in your weekly crontab
file. slocate is much faster and easier than using ``find``.
Examples of using slocate:
- ``slocate *.pdf`` will search the slocate database for every pdf file
on your system.
- ``slocate kde | grep rc`` will search the slocate database (whose
location is */var/lib/slocate/slocate.db*) for all files containing
kde which also contain the phrase "rc".
- ``slocate .png | less`` searches for all instances of files ending
.png and sends the output to the less pager so that you can browse
the list easily.
If you want to know where all the files were placed when you installed a
Vector Linux .tgz package then slocate is your best bet. You can also
browse this information at /var/log/packages.
mc (Midnight Commander)
-----------------------
``mc``, *Midnight Commander* is one of the most useful applications in
Linux. It is a very fast, text-based file manager, much more powerful
than many of the GUI file managers if learned properly - the only thing
you can't do is drag and drop. Quite frankly, you will double your
computing efficiency if you master this application. Playing with mc is
the quickest way to learn your way around the VL filesystem. Press F1
for extensive help and read ``man mc``.
find
----
``find`` is a very powerful, but newbie-unfriendly command line program
for finding files. Extensive options but a steep learning curve. If you
want learn more `read this
HOWTO. `_
Some examples:
- ``find . -name 'a*'`` : will find all files beginning with the letter
a in the current directory
- ``find /etc -mtime -1`` : will find all files in the /etc directory
modified within the past day
- ``find . \( -name temp -o -name tmp \) -print -exec rm {} \;`` : will
display and then delete all files in the current directory named temp
or tmp.
whereis
-------
The ``whereis`` command locates the binary, source and manual pages for
a command, e.g.:
``whereis sort`` returns the output:
sort: /usr/bin/sort /usr/man/man1/sort.1.gz /usr/man/man3/sort.3.gz
/usr/share/man/man1/sort.1.gz /usr/share/man/man3/sort.3.gz
apropos
-------
The ``apropos`` command searches a database of all the manual (man)
pages and returns those page names for the string you provide, e.g.:
``apropos pdf`` returns:
::
docbook2pdf [jw] (1) - (Jade Wrapper) converts SGML files to other formats
dvipdf (1) - Convert TeX DVI file to PDF using ghostscript and dvips
gs (1) - Ghostscript (PostScript and PDF language interpreter and previewer)
gsnd (1) - Run ghostscript (PostScript and PDF engine) without display
pdf2dsc (1) - generate a PostScript page list of a PDF document
pdf2ps (1) - Ghostscript PDF to PostScript translator
pdfopt (1) - Ghostscript PDF Optimizer
ps2ascii (1) - Ghostscript translator from PostScript or PDF to ASCII
ps2pdf (1) - Convert PostScript to PDF using ghostscript
ps2pdf12 [ps2pdf] (1) - Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible) using ghostscript
ps2pdf13 [ps2pdf] (1) - Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible) using ghostscript
ps2pdfwr (1) - Convert PostScript to PDF without specifying CompatibilityLevel, using ghostscript
texi2dvi4a2ps (1) - Compile Texinfo and LaTeX files to DVI or PDF
tiff2pdf (1) - convert a TIFF image to a PDF document
The above output shows all the commands and a brief description from the
man page title of what they do.
which
-----
The ``which`` command searches the directories in the PATH variable and
displays the absolute pathname of the first file it finds whose simple
filename is the same as the command, e.g.: ``which sort`` returns:
*/usr/bin/sort*
whatis
------
The ``whatis`` command searches a set of database files containing short
descriptions of system commands for keywords and displays the result on
the standard output. Only complete word matches are displayed. Requires
that the "whatis database" is up to date. To do that run the command
"makewhatis" as root.