ACC SHELL

Path : /usr/share/doc/manual/opensuse-manuals_en/manual/
File Upload :
Current File : //usr/share/doc/manual/opensuse-manuals_en/manual/cha.suse.html

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 18. Special System Features</title><link rel="stylesheet" href="susebooks.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="Documentation"><link rel="up" href="part.reference.system.html" title="Part IV. System"><link rel="prev" href="cha.grub.html" title="Chapter 17. The Boot Loader GRUB"><link rel="next" href="cha.udev.html" title="Chapter 19. Dynamic Kernel Device Management with udev"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> &gt; </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> &gt; </span><a href="part.reference.system.html">System</a><span class="breadcrumbs-sep"> &gt; </span><strong><a accesskey="p" title="Chapter 17. The Boot Loader GRUB" href="cha.grub.html"><span>&#9664;</span></a>  <a accesskey="n" title="Chapter 19. Dynamic Kernel Device Management with udev" href="cha.udev.html"><span>&#9654;</span></a></strong></p></div></td></tr></table></div><div class="chapter" title="Chapter 18. Special System Features"><div class="titlepage"><div><div><h2 class="title"><a name="cha.suse"></a>Chapter 18. Special System Features<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#cha.suse">¶</a></span></h2></div></div></div><div class="toc"><p><b>Contents</b></p><dl><dt><span class="sect1"><a href="cha.suse.html#sec.suse.packages">18.1. Information about Special Software Packages</a></span></dt><dt><span class="sect1"><a href="cha.suse.html#sec.suse.virt.konsolen">18.2. Virtual Consoles</a></span></dt><dt><span class="sect1"><a href="cha.suse.html#sec.suse.kb">18.3. Keyboard Mapping</a></span></dt><dt><span class="sect1"><a href="cha.suse.html#sec.suse.l10n">18.4. Language and Country-Specific Settings</a></span></dt></dl></div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>
   This chapter starts with information about various software packages, the
   virtual consoles and the keyboard layout. We talk about software
   components like <code class="systemitem">bash</code>,
   <code class="systemitem">cron</code> and
   <code class="systemitem">logrotate</code>, because they were
   changed or enhanced during the last release cycles. Even if they are
   small or considered of minor importance, users may want to change their
   default behavior, because these components are often closely coupled with
   the system. The chapter concludes with a section about language and
   country-specific settings (I18N and L10N).
  </p></div><div class="sect1" title="18.1. Information about Special Software Packages"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.suse.packages"></a>18.1. Information about Special Software Packages<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.packages">¶</a></span></h2></div></div></div><p>
  The programs <code class="systemitem">bash</code>,
  <code class="systemitem">cron</code>,
  <code class="systemitem">logrotate</code>,
  <code class="systemitem">locate</code>,
  <code class="systemitem">ulimit</code> and
  <code class="systemitem">free</code> are very important for
  system administrators and many users. Man pages and info pages are two
  useful sources of information about commands, but both are not always
  available. GNU Emacs is a popular and very configurable text editor.
 </p><div class="sect2" title="18.1.1. The bash Package and /etc/profile"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.packages.bash"></a>18.1.1. The bash Package and /etc/profile<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.packages.bash">¶</a></span></h3></div></div></div><a class="indexterm" name="id466369"></a><a class="indexterm" name="id466378"></a><p>
   Bash is the default system shell. When used as a login shell, it reads
   several initialization files. Bash processes them in the order they
   appear in this list:
  </p><div class="orderedlist"><ol class="orderedlist" type="1"><li><p>
     <code class="filename">/etc/profile</code>
    </p></li><li><p>
     <code class="filename">~/.profile</code>
    </p></li><li><p>
     <code class="filename">/etc/bash.bashrc</code>
    </p></li><li><p>
     <code class="filename">~/.bashrc</code>
    </p></li></ol></div><a class="indexterm" name="id466445"></a><a class="indexterm" name="id466453"></a><a class="indexterm" name="id466462"></a><a class="indexterm" name="id466470"></a><p>
   Make custom settings in <code class="filename">~/.profile</code> or
   <code class="filename">~/.bashrc</code>. To ensure the correct processing of these
   files, it is necessary to copy the basic settings from
   <code class="filename">/etc/skel/.profile</code> or
   <code class="filename">/etc/skel/.bashrc</code> into the home directory of the
   user. It is recommended to copy the settings from
   <code class="filename">/etc/skel</code> after an update. Execute the following
   shell commands to prevent the loss of personal adjustments:
  </p><pre class="screen">mv ~/.bashrc ~/.bashrc.old
cp /etc/skel/.bashrc ~/.bashrc
mv ~/.profile ~/.profile.old
cp /etc/skel/.profile ~/.profile</pre><p>
   Then copy personal adjustments back from the <code class="literal">*.old</code>
   files.

  </p></div><div class="sect2" title="18.1.2. The cron Package"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.packages.cron"></a>18.1.2. The cron Package<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.packages.cron">¶</a></span></h3></div></div></div><a class="indexterm" name="id466527"></a><a class="indexterm" name="id466532"></a><p>
   If you want to run commands regularly and automatically in the background
   at predefined times, cron is the tool to use. cron is driven by specially
   formatted time tables. Some of of them come with the system and users can
   write their own tables if needed.
  </p><p>
   The cron tables are located in <code class="filename">/var/spool/cron/tabs</code>.
   <code class="filename">/etc/crontab</code> serves as a systemwide cron table.
   Enter the username to run the command directly after the time table and
   before the command. In <a class="xref" href="cha.suse.html#ex.suse.packages.cron" title="Example 18.1. Entry in /etc/crontab">Example 18.1, &#8220;Entry in /etc/crontab&#8221;</a>,
   <code class="systemitem">root</code> is entered.
   Package-specific tables, located in <code class="filename">/etc/cron.d</code>,
   have the same format. See the <span class="command"><strong>cron</strong></span> man page
   (<span class="command"><strong>man cron</strong></span>).
  </p><div class="example"><a name="ex.suse.packages.cron"></a><p class="title"><b>Example 18.1. Entry in /etc/crontab</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#ex.suse.packages.cron">¶</a></span></p><div class="example-contents"><pre class="screen">1-59/5 * * * *   root   test -x /usr/sbin/atrun &amp;&amp; /usr/sbin/atrun
</pre></div></div><br class="example-break"><p>
   You cannot edit <code class="filename">/etc/crontab</code> by calling the command
   <span class="command"><strong>crontab -e</strong></span>. This file must be loaded directly into an
   editor, then modified and saved.
  </p><p>
   A number of packages install shell scripts to the directories
   <code class="filename">/etc/cron.hourly</code>,
   <code class="filename">/etc/cron.daily</code>,
   <code class="filename">/etc/cron.weekly</code> and
   <code class="filename">/etc/cron.monthly</code>, whose execution is controlled by
   <code class="filename">/usr/lib/cron/run-crons</code>.
   <code class="filename">/usr/lib/cron/run-crons</code> is run every 15 minutes from
   the main table (<code class="filename">/etc/crontab</code>). This guarantees that
   processes that may have been neglected can be run at the proper time.
  </p><p>
   To run the <code class="filename">hourly</code>, <code class="filename">daily</code> or
   other periodic maintenance scripts at custom times, remove the time stamp
   files regularly using <code class="filename">/etc/crontab</code> entries (see
   <a class="xref" href="cha.suse.html#ex.suse.packages.cron.time" title="Example 18.2. /etc/crontab: Remove Time Stamp Files">Example 18.2, &#8220;/etc/crontab: Remove Time Stamp Files&#8221;</a>, which removes the
   <code class="filename">hourly</code> one before every full hour, the
   <code class="filename">daily</code> one once a day at 2:14 a.m., etc.).
  </p><div class="example"><a name="ex.suse.packages.cron.time"></a><p class="title"><b>Example 18.2. /etc/crontab: Remove Time Stamp Files</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#ex.suse.packages.cron.time">¶</a></span></p><div class="example-contents"><pre class="screen">59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 2  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 2  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 2  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly</pre></div></div><br class="example-break"><p>
   Or you can set <code class="literal">DAILY_TIME</code> in
   <code class="filename">/etc/sysconfig/cron</code> to the time at which
   <code class="filename">cron.daily</code> should start. The setting of
   <code class="literal">MAX_NOT_RUN</code> ensures that the daily tasks get triggered
   to run, even if the user did not turn on the computer at the specified
   <code class="literal">DAILY_TIME</code> for a longer period of time. The maximum
   value of <code class="literal">MAX_NOT_RUN</code> is 14 days.
  </p><p>
   The daily system maintenance jobs are distributed to various scripts for
   reasons of clarity. They are contained in the package
   <code class="systemitem">aaa_base</code>.
   <code class="filename">/etc/cron.daily</code> contains, for example, the
   components <code class="filename">suse.de-backup-rpmdb</code>,
   <code class="filename">suse.de-clean-tmp</code> or
   <code class="filename">suse.de-cron-local</code>.
   
  </p></div><div class="sect2" title="18.1.3. Log Files: Package logrotate"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.log"></a>18.1.3. Log Files: Package logrotate<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.log">¶</a></span></h3></div></div></div><a class="indexterm" name="id466758"></a><a class="indexterm" name="id466763"></a><p>
  There are a number of system services (<span class="emphasis"><em>daemons</em></span>) that,
  along with the kernel itself, regularly record the system status and
  specific events onto log files. This way, the administrator can regularly
  check the status of the system at a certain point in time, recognize
  errors or faulty functions and troubleshoot them with pinpoint precision.
  These log files are normally stored in <code class="filename">/var/log</code> as
  specified by FHS and grow on a daily basis. The
  <code class="systemitem">logrotate</code> package helps control the growth of
  these files.
 </p><p>
  Configure logrotate with the file <a class="indexterm" name="id466790"></a> <code class="filename">/etc/logrotate.conf</code>. In particular, the
  <code class="systemitem">include</code> specification primarily configures the
  additional files to read. Programs that produce log files install
  individual configuration files in <code class="filename">/etc/logrotate.d</code>.
  For example, such files ship with the packages, e.g.
  <code class="systemitem">apache2</code>
  (<code class="filename">/etc/logrotate.d/apache2</code>) and
  <code class="systemitem">syslogd</code>
  (<code class="filename">/etc/logrotate.d/syslog</code>).
 </p><div class="example"><a name="dat.suse.logrotate.conf"></a><p class="title"><b>Example 18.3. Example for /etc/logrotate.conf</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#dat.suse.logrotate.conf">¶</a></span></p><div class="example-contents"><pre class="screen"># see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own lastlog or wtmp - we'll rotate them here
#/var/log/wtmp {
#    monthly
#    create 0664 root utmp
#    rotate 1
#}

# system-specific logs may be also be configured here.</pre></div></div><br class="example-break"><p>
  logrotate is controlled through cron and is called daily by
  <code class="filename">/etc/cron.daily/logrotate</code>.
 </p><div class="important"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Important"><tr class="head"><td width="32"><img alt="[Important]" src="admon/important.png"></td><th align="left"></th></tr><tr><td colspan="2" align="left" valign="top"><p>
   <a class="indexterm" name="id466862"></a> The <code class="systemitem">create</code> option reads all
   settings made by the administrator in
   <code class="filename">/etc/permissions*</code>. Ensure that no conflicts arise
   from any personal modifications.
  </p></td></tr></table></div></div><div class="sect2" title="18.1.4. The locate Command"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.locate"></a>18.1.4. The locate Command<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.locate">¶</a></span></h3></div></div></div><a class="indexterm" name="id466895"></a><a class="indexterm" name="id466904"></a><p>
   <span class="command"><strong>locate</strong></span>, a command for quickly finding files, is not
   included in the standard scope of installed software. If desired, install
   the package <code class="systemitem">findutils-locate</code>. The updatedb
   process is started automatically every night or about 15 minutes
   after booting the system.
  </p></div><div class="sect2" title="18.1.5. The ulimit Command"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.ulimit"></a>18.1.5. The ulimit Command<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.ulimit">¶</a></span></h3></div></div></div><a class="indexterm" name="id466932"></a><a class="indexterm" name="id466937"></a><a class="indexterm" name="id466942"></a><p>
   With the <span class="command"><strong>ulimit</strong></span> (<span class="emphasis"><em>user limits</em></span>)
   command, it is possible to set limits for the use of system resources and
   to have these displayed. <span class="command"><strong>ulimit</strong></span> is especially useful
   for limiting available memory for applications. With this, an application
   can be prevented from co-opting too much of the system resources and
   slowing or even hanging up the operating system.
  </p><p>
   <span class="command"><strong>ulimit</strong></span> can be used with various options. To limit
   memory usage, use the options listed in
   <a class="xref" href="cha.suse.html#tab.suse.packages.ulimit" title="Table 18.1. ulimit: Setting Resources for the User">Table 18.1, &#8220;<span class="command">ulimit</span>: Setting Resources for the User&#8221;</a>.
  </p><a class="indexterm" name="id466981"></a><div class="table"><a name="tab.suse.packages.ulimit"></a><p class="title"><b>Table 18.1. <span class="command">ulimit</span>: Setting Resources for the User</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#tab.suse.packages.ulimit">¶</a></span></p><div class="table-contents"><table summary="ulimit: Setting Resources for the User" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
       <p>
        <code class="option">-m</code>
       </p>
      </td><td>
       <p>
        The maximum resident set size
       </p>
      </td></tr><tr><td>
       <p>
        <code class="option">-v</code>
       </p>
      </td><td>
       <p>
        The maximum amount of virtual memory available to the shell
       </p>
      </td></tr><tr><td>
       <p>
        <code class="option">-s</code>
       </p>
      </td><td>
       <p>
        The maximum size of the stack
       </p>
      </td></tr><tr><td>
       <p>
        <code class="option">-c</code>
       </p>
      </td><td>
       <p>
        The maximum size of core files created
       </p>
      </td></tr><tr><td>
       <p>
        <code class="option">-a</code>
       </p>
      </td><td>
       <p>
        All current limits are reported
       </p>
      </td></tr></tbody></table></div></div><br class="table-break"><a class="indexterm" name="id467127"></a><p>
   Systemwide entries can be made in <code class="filename">/etc/profile</code>.
   There, enable creation of core files (needed by programmers for
   <span class="emphasis"><em>debugging</em></span>). A normal user cannot increase the values
   specified in <code class="filename">/etc/profile</code> by the system
   administrator, but can make special entries in
   <code class="filename">~/.bashrc</code>.
  </p><a class="indexterm" name="id467155"></a><div class="example"><a name="ex.u.ulimit.bashrc"></a><p class="title"><b>Example 18.4. ulimit: Settings in ~/.bashrc</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#ex.u.ulimit.bashrc">¶</a></span></p><div class="example-contents"><pre class="screen"># Limits maximum resident set size (physical memory):
ulimit -m 98304
 
# Limits of virtual memory:
ulimit -v 98304</pre></div></div><br class="example-break"><p>
   Memory allocations must be specified in KB. For more detailed
   information, see <span class="command"><strong>man bash</strong></span>.
  </p><div class="important"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Important"><tr class="head"><td width="32"><img alt="[Important]" src="admon/important.png"></td><th align="left"></th></tr><tr><td colspan="2" align="left" valign="top"><p>
    Not all shells support <span class="command"><strong>ulimit</strong></span> directives. PAM (for
    instance, <code class="literal">pam_limits</code>) offers comprehensive adjustment
    possibilities if you depend on encompassing settings for these
    restrictions.
   </p></td></tr></table></div></div><div class="sect2" title="18.1.6. The free Command"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.free"></a>18.1.6. The free Command<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.free">¶</a></span></h3></div></div></div><a class="indexterm" name="id467215"></a><a class="indexterm" name="id467223"></a><p>
   The <span class="command"><strong>free</strong></span> command is somewhat misleading if your goal
   is to find out how much RAM is currently being used. That information can
   be found in <code class="filename">/proc/meminfo</code>. These days, users with
   access to a modern operating systems, such as Linux, should not really
   need to worry much about memory. The concept of <span class="emphasis"><em>available
   RAM</em></span> dates back to before the days of unified memory
   management. The slogan <span class="emphasis"><em>free memory is bad memory</em></span>
   applies well to Linux. As a result, Linux has always made the effort to
   balance out caches without actually allowing free or unused memory.
  </p><p>
   Basically, the kernel does not have direct knowledge of any applications
   or user data. Instead, it manages applications and user data in a
   <span class="emphasis"><em>page cache</em></span>. If memory runs short, parts of it are
   written to the swap partition or to files, from which they can initially
   be read with the help of the <span class="command"><strong>mmap</strong></span> command (see
   <span class="command"><strong>man mmap</strong></span>).
  </p><a class="indexterm" name="id467272"></a><p>
   The kernel also contains other caches, such as the <span class="emphasis"><em>slab
   cache</em></span>, where the caches used for network access are stored.
   This may explain the differences between the counters in
   <code class="filename">/proc/meminfo</code>. Most, but not all, of them can be
   accessed via <code class="filename">/proc/slabinfo</code>.
  </p></div><div class="sect2" title="18.1.7. Man Pages and Info Pages"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.manpages"></a>18.1.7. Man Pages and Info Pages<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.manpages">¶</a></span></h3></div></div></div><a class="indexterm" name="id467308"></a><a class="indexterm" name="id467312"></a><a class="indexterm" name="id467317"></a><a class="indexterm" name="id467326"></a><p>
   For some GNU applications (such as tar), the man pages are no longer
   maintained. For these commands, use the <code class="option">--help</code> option to
   get a quick overview of the info pages, which provide more in-depth
   instructions. Info

   is GNU's hypertext system. Read an introduction to this system by
   entering <span class="command"><strong>info</strong></span> <code class="option">info</code>. Info pages can be
   viewed with Emacs by entering <span class="command"><strong>emacs <code class="option">-f
   info</code></strong></span> or directly in a console with
   <span class="command"><strong>info</strong></span>. You can also use tkinfo, xinfo or the help
   system to view info pages.
  </p></div><div class="sect2" title="18.1.8. Selecting Man Pages Using the man Command"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.packages.man"></a>18.1.8. Selecting Man Pages Using the <span class="command"><strong>man</strong></span> Command<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.packages.man">¶</a></span></h3></div></div></div><p>
   With <span class="command"><strong>man <em class="replaceable"><code>man_page</code></em></strong></span> you
   normally display a man page for instant reading. Now, if a man page with
   the same name exists in different sections, <span class="command"><strong>man</strong></span>
   prompts the user, the page from which section shall be made visible. The
   user is then expected to type the section as the answer.
  </p><p>
   If you want to return to the previous behavior, set
   <code class="literal">MAN_POSIXLY_CORRECT=1</code> in a shell initialization file
   such as <code class="filename">~/.bashrc</code>.
  </p></div><div class="sect2" title="18.1.9. Settings for GNU Emacs"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.emacs"></a>18.1.9. Settings for GNU Emacs<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.emacs">¶</a></span></h3></div></div></div><a class="indexterm" name="idx.Emacs"></a><a class="indexterm" name="idx.editors_Emacs"></a><p>
  GNU Emacs is a complex work environment. The following sections cover the
  configuration files processed when GNU Emacs is started. More information
  is available at <a class="ulink" href="http://www.gnu.org/software/emacs/" target="_top">http://www.gnu.org/software/emacs/</a>.
 </p><p>
  On start-up, Emacs reads several files containing the settings of the
  user, system administrator and distributor for customization or
  preconfiguration. The initialization file <code class="filename">~/.emacs</code> is
  installed to the home directories of the individual users from
  <code class="filename">/etc/skel</code>. <code class="filename">.emacs</code>, in turn,
  reads the file <code class="filename">/etc/skel/.gnu-emacs</code>. To customize the
  program, copy <code class="filename">.gnu-emacs</code> to the home directory (with
  <span class="command"><strong>cp /etc/skel/.gnu-emacs ~/.gnu-emacs</strong></span>) and make the
  desired settings there.
 </p><a class="indexterm" name="id467488"></a><a class="indexterm" name="id467497"></a><p>
  <code class="filename">.gnu-emacs</code> defines the file
  <code class="filename">~/.gnu-emacs-custom</code> as
  <code class="literal">custom-file</code>. If users make settings with the
  <code class="literal">customize</code> options in Emacs, the settings are saved to
  <code class="filename">~/.gnu-emacs-custom</code>.
 </p><p>
  With openSUSE, the <code class="systemitem">emacs</code>
  package installs the file <code class="filename">site-start.el</code> in the
  directory <code class="filename">/usr/share/emacs/site-lisp</code>. The file
  <code class="filename">site-start.el</code> is loaded before the initialization
  file <code class="filename">~/.emacs</code>. Among other things,
  <code class="filename">site-start.el</code> ensures that special configuration
  files distributed with Emacs add-on packages, such as
  <code class="systemitem">psgml</code>, are loaded automatically.
  Configuration files of this type are located in
  <code class="filename">/usr/share/emacs/site-lisp</code>, too, and always begin
  with <code class="filename">suse-start-</code>. The local system administrator can
  specify systemwide settings in <code class="filename">default.el</code>.
 </p><a class="indexterm" name="id467579"></a><p>
  More information about these files is available in the Emacs info file
  under <span class="emphasis"><em>Init File</em></span>: <a class="ulink" href="info:/emacs/InitFile" target="_top">info:/emacs/InitFile</a>.
  Information about how to disable the loading of these files (if necessary)
  is also provided at this location.
 </p><p>
  The components of Emacs are divided into several packages:
 </p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
    The base package <code class="systemitem">emacs</code>.
   </p></li><li class="listitem" style="list-style-type: disc"><p>
    <code class="systemitem">emacs-x11</code> (usually installed):
    the program <span class="emphasis"><em>with</em></span> X11 support.
   </p></li><li class="listitem" style="list-style-type: disc"><p>
    <code class="systemitem">emacs-nox</code>: the program
    <span class="emphasis"><em>without</em></span> X11 support.
   </p></li><li class="listitem" style="list-style-type: disc"><p>
    <code class="systemitem">emacs-info</code>: online
    documentation in info format.
   </p></li><li class="listitem" style="list-style-type: disc"><p>
    <code class="systemitem">emacs-el</code>: the uncompiled
    library files in Emacs Lisp. These are not required at runtime.
   </p></li><li class="listitem" style="list-style-type: disc"><p>
    Numerous add-on packages can be installed if needed:
    <code class="systemitem">emacs-auctex</code> (LaTeX),
    <code class="systemitem">psgml</code> (SGML and XML),
    <code class="systemitem">gnuserv</code> (client and server
    operation) and others.
   </p></li></ul></div><a class="indexterm" name="id467715"></a><a class="indexterm" name="id467721"></a></div></div><div class="sect1" title="18.2. Virtual Consoles"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.suse.virt.konsolen"></a>18.2. Virtual Consoles<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.virt.konsolen">¶</a></span></h2></div></div></div><a class="indexterm" name="id467750"></a><p>
  Linux is a multiuser and multitasking system. The advantages of these
  features can be appreciated even on a stand-alone PC system. In text mode,
  there are six virtual consoles available. Switch between them using
  <span class="keycap">Alt</span>+<span class="keycap">F1</span> through
  <span class="keycap">Alt</span>+<span class="keycap">F6</span>. The
  seventh console is reserved for X and the tenth console shows kernel
  messages. More or fewer consoles can be assigned by modifying the file
  <code class="filename">/etc/inittab</code>.
 </p><a class="indexterm" name="id467792"></a><a class="indexterm" name="id467800"></a><p>
  To switch to a console from X without shutting it down, use <span class="keycap">Ctrl</span>+<span class="keycap">Alt</span>+<span class="keycap">F1</span>
  to <span class="keycap">Ctrl</span>+<span class="keycap">Alt</span>+<span class="keycap">F6</span>. To return to X, press <span class="keycap">Alt</span>+<span class="keycap">F7</span>.
 </p></div><div class="sect1" title="18.3. Keyboard Mapping"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.suse.kb"></a>18.3. Keyboard Mapping<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.kb">¶</a></span></h2></div></div></div><a class="indexterm" name="id467875"></a><a class="indexterm" name="id467884"></a><p>
  To standardize the keyboard mapping of programs, changes were made to the
  following files:
 </p><pre class="screen">/etc/inputrc
/etc/X11/Xmodmap
/etc/skel/.emacs
/etc/skel/.gnu-emacs
/etc/skel/.vimrc
/etc/csh.cshrc
/etc/termcap
/usr/share/terminfo/x/xterm
/usr/share/X11/app-defaults/XTerm
/usr/share/emacs/<em class="replaceable"><code>VERSION</code></em>/site-lisp/term/*.el</pre><a class="indexterm" name="id467906"></a><a class="indexterm" name="id467914"></a><p>
  These changes only affect applications that use
  <span class="command"><strong>terminfo</strong></span> entries or whose configuration files are
  changed directly (<span class="command"><strong>vi</strong></span>, <span class="command"><strong>emacs</strong></span>, etc.).
  Applications not shipped with the system should be adapted to these
  defaults.
 </p><a class="indexterm" name="id467939"></a><a class="indexterm" name="id467951"></a><p>
  Under X, the compose key (multikey) can be enabled as explained in
  <code class="filename">/etc/X11/Xmodmap</code>.
 </p><a class="indexterm" name="id467971"></a><a class="indexterm" name="id467980"></a><a class="indexterm" name="id467988"></a><a class="indexterm" name="id467997"></a><p>
  Further settings are possible using the X Keyboard Extension (XKB). This
  extension is also used by the desktop environments GNOME (gswitchit) and
  KDE (kxkb).
 </p><div class="tip"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Tip: For More Information"><tr class="head"><td width="32"><img alt="[Tip]" src="admon/tip.png"></td><th align="left">For More Information</th></tr><tr><td colspan="2" align="left" valign="top"><p>
   Information about XKB is available in the documents listed in
   <code class="filename">/usr/share/doc/packages/xkeyboard-config</code> (part of
   the <code class="systemitem">xkeyboard-config</code> package).
  </p></td></tr></table></div></div><div class="sect1" title="18.4. Language and Country-Specific Settings"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.suse.l10n"></a>18.4. Language and Country-Specific Settings<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.l10n">¶</a></span></h2></div></div></div><a class="indexterm" name="id468051"></a><a class="indexterm" name="id468060"></a><a class="indexterm" name="id468064"></a><a class="indexterm" name="id468069"></a><a class="indexterm" name="id468074"></a><p>
  The system is, to a very large extent, internationalized and can be
  flexibly modified for local needs. In other words, internationalization
  (<span class="emphasis"><em>I18N</em></span>) allows specific localizations
  (<span class="emphasis"><em>L10N</em></span>). The abbreviations I18N and L10N are derived
  from the first and last letters of the words and, in between, the number
  of letters omitted.
 </p><p>
  Settings are made with <code class="systemitem">LC_</code> variables defined in
  the file <code class="filename">/etc/sysconfig/language</code>. This refers not
  only to <span class="emphasis"><em>native language support</em></span>, but also to the
  categories <span class="emphasis"><em>Messages</em></span> (Language), <span class="emphasis"><em>Character
  Set</em></span>, <span class="emphasis"><em>Sort Order</em></span>, <span class="emphasis"><em>Time and
  Date</em></span>, <span class="emphasis"><em>Numbers</em></span> and
  <span class="emphasis"><em>Money</em></span>. Each of these categories can be defined
  directly with its own variable or indirectly with a master variable in the
  file <code class="filename">language</code> (see the <span class="command"><strong>locale</strong></span> man
  page). <a class="indexterm" name="id468139"></a>
 </p><div class="variablelist"><dl><dt><span class="term"><code class="systemitem">RC_LC_MESSAGES</code>,
    <code class="systemitem">RC_LC_CTYPE</code>,
    <code class="systemitem">RC_LC_COLLATE</code>,
    <code class="systemitem">RC_LC_TIME</code>,
    <code class="systemitem">RC_LC_NUMERIC</code>,
    <code class="systemitem">RC_LC_MONETARY</code><a class="indexterm" name="id468178"></a>
   </span></dt><dd><p>
     These variables are passed to the shell without the
     <code class="systemitem">RC_</code> prefix and represent the listed
     categories. The shell profiles concerned are listed below. The current
     setting can be shown with the command <span class="command"><strong>locale</strong></span>.
    </p></dd><dt><span class="term"><code class="systemitem">RC_LC_ALL</code>
   </span></dt><dd><p>
     This variable, if set, overwrites the values of the variables already
     mentioned.
    </p></dd><dt><span class="term"><code class="systemitem">RC_LANG</code>
   </span></dt><dd><p>
     If none of the previous variables are set, this is the fallback. By
     default, only <code class="systemitem">RC_LANG</code> is set. This makes it
     easier for users to enter their own values.
    </p></dd><dt><span class="term"><code class="systemitem">ROOT_USES_LANG</code>
   </span></dt><dd><p>
     A <code class="literal">yes</code> or <code class="literal">no</code> variable. If set to
     <code class="literal">no</code>, <code class="systemitem">root</code>
     always works in the POSIX environment.
    </p></dd></dl></div><p>
  The variables can be set with the YaST sysconfig editor (see
  <a class="xref" href="cha.boot.html#sec.boot.sysconfig.edit" title="16.3.1. Changing the System Configuration Using the YaST sysconfig Editor">Section 16.3.1, &#8220;Changing the System Configuration Using the YaST sysconfig Editor&#8221;</a>). The value of such a variable
  contains the language code, country code, encoding and modifier. The
  individual components are connected by special characters:
 </p><pre class="screen">
  LANG=&lt;language&gt;[[_&lt;COUNTRY&gt;].&lt;Encoding&gt;[@&lt;Modifier&gt;]]
</pre><div class="sect2" title="18.4.1. Some Examples"><div class="titlepage"><div><div><h3 class="title"><a name="id468298"></a>18.4.1. Some Examples<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#id468298">¶</a></span></h3></div></div></div><p>
   You should always set the language and country codes together. Language
   settings follow the standard ISO 639 available at
   <a class="ulink" href="http://www.evertype.com/standards/iso639/iso639-en.html" target="_top">http://www.evertype.com/standards/iso639/iso639-en.html</a>
   and <a class="ulink" href="http://www.loc.gov/standards/iso639-2/" target="_top">http://www.loc.gov/standards/iso639-2/</a>. Country codes
   are listed in ISO 3166 available at
   <a class="ulink" href="http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html" target="_top">http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html</a>.
  </p><p>
   It only makes sense to set values for which usable description files can
   be found in <code class="filename">/usr/lib/locale</code>. Additional description
   files can be created from the files in
   <code class="filename">/usr/share/i18n</code> using the command
   <span class="command"><strong>localedef</strong></span>. The description files are part of the
   <code class="systemitem">glibc-i18ndata</code> package. A description file for
   <code class="literal">en_US.UTF-8</code> (for English and United States) can be
   created with:
  </p><pre class="screen">
localedef -i en_US -f UTF-8 en_US.UTF-8
</pre><div class="variablelist"><dl><dt><span class="term">
<code class="systemitem">LANG=en_US.UTF-8</code>
    </span></dt><dd><p>
      This is the default setting if American English is selected during
      installation. If you selected another language, that language is
      enabled but still with UTF-8 as the character encoding.
     </p></dd><dt><span class="term">
<code class="systemitem">LANG=en_US.ISO-8859-1</code><a class="indexterm" name="id468382"></a>
    </span></dt><dd><p>
      This sets the language to English, country to United States and the
      character set to <code class="literal">ISO-8859-1</code>. This character set
      does not support the Euro sign, but it can be useful sometimes for
      programs that have not been updated to support
      <code class="literal">UTF-8</code>. The string defining the charset
      (<code class="literal">ISO-8859-1</code> in this case) is then evaluated by
      programs like Emacs.
     </p></dd><dt><span class="term"><code class="systemitem">LANG=en_IE@euro</code>
    </span></dt><dd><p>
      The above example explicitly includes the Euro sign in a language
      setting. This setting is basically obsolete now, as UTF-8 also covers
      the Euro symbol. It is only useful if an application supports
      ISO-8859-15 and not UTF-8.
     </p></dd></dl></div><p>
   SuSEconfig reads the variables in
   <code class="filename">/etc/sysconfig/language</code> and writes the necessary
   changes to <code class="filename">/etc/SuSEconfig/profile</code> and
   <code class="filename">/etc/SuSEconfig/csh.cshrc</code>.
   <code class="filename">/etc/SuSEconfig/profile</code> is read or
   <span class="emphasis"><em>sourced</em></span> by <code class="filename">/etc/profile</code>.
   <code class="filename">/etc/SuSEconfig/csh.cshrc</code> is sourced by
   <code class="filename">/etc/csh.cshrc</code>. This makes the settings available
   systemwide. <a class="indexterm" name="id468470"></a> <a class="indexterm" name="id468481"></a> <a class="indexterm" name="id468492"></a>
  </p><p>
   Users can override the system defaults by editing their
   <code class="filename">~/.bashrc</code> accordingly. For instance, if you do not
   want to use the systemwide <code class="literal">en_US</code> for program messages,
   include <code class="systemitem">LC_MESSAGES=es_ES</code> so that messages are
   displayed in Spanish instead.
  </p></div><div class="sect2" title="18.4.2. Locale Settings in ~/.i18n"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.l10n.dot.i18n"></a>18.4.2. Locale Settings in <code class="filename">~/.i18n</code><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.l10n.dot.i18n">¶</a></span></h3></div></div></div><p>
   If you are not satisfied with locale system defaults, change the settings
   in <code class="filename">~/.i18n</code> according to the Bash scripting syntax.
   Entries in <code class="filename">~/.i18n</code> override system defaults from
   <code class="filename">/etc/sysconfig/language</code>. Use the same variable names
   but without the <code class="literal">RC_</code> namespace prefixes. For example,
   use <code class="literal">LANG</code> instead of <code class="literal">RC_LANG</code>:
  </p><pre class="screen">LANG=cs_CZ.UTF-8
LC_COLLATE=C
</pre></div><div class="sect2" title="18.4.3. Settings for Language Support"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.l10n.fallback"></a>18.4.3. Settings for Language Support<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.l10n.fallback">¶</a></span></h3></div></div></div><p>
   Files in the category <span class="emphasis"><em>Messages</em></span> are, as a rule, only
   stored in the corresponding language directory (like
   <code class="filename">en</code>) to have a fallback. If you set
   <code class="systemitem">LANG</code> to <code class="literal">en_US</code> and the message
   file in <code class="filename">/usr/share/locale/en_US/LC_MESSAGES</code> does not
   exist, it falls back to
   <code class="filename">/usr/share/locale/en/LC_MESSAGES</code>.
  </p><p>
   A fallback chain can also be defined, for example, for Breton to French
   or for Galician to Spanish to Portuguese:
  </p><p>
   <code class="systemitem">LANGUAGE="br_FR:fr_FR"</code>
  </p><p>
   <code class="systemitem">LANGUAGE="gl_ES:es_ES:pt_PT"</code>
  </p><p>
   If desired, use the Norwegian variants Nynorsk and Bokmål instead (with
   additional fallback to <code class="literal">no</code>):
  </p><p>
   <code class="systemitem">LANG="nn_NO"</code>
  </p><p>
   <code class="systemitem">LANGUAGE="nn_NO:nb_NO:no"</code>
  </p><p>
   or
  </p><p>
   <code class="systemitem">LANG="nb_NO"</code>
  </p><p>
   <code class="systemitem">LANGUAGE="nb_NO:nn_NO:no"</code>
  </p><p>
   Note that in Norwegian, <code class="systemitem">LC_TIME</code> is also treated
   differently.
  </p><p>
   One problem that can arise is a separator used to delimit groups of
   digits not being recognized properly. This occurs if
   <code class="systemitem">LANG</code> is set to only a two-letter language code
   like <code class="literal">de</code>, but the definition file glibc uses is located
   in <code class="filename">/usr/share/lib/de_DE/LC_NUMERIC</code>. Thus
   <code class="systemitem">LC_NUMERIC</code> must be set to
   <code class="literal">de_DE</code> to make the separator definition visible to the
   system.
  </p></div><div class="sect2" title="18.4.4. For More Information"><div class="titlepage"><div><div><h3 class="title"><a name="sec.suse.l10n.info"></a>18.4.4. For More Information<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.suse.l10n.info">¶</a></span></h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
     <span class="emphasis"><em>The GNU C Library Reference Manual</em></span>, Chapter
     <span class="quote">&#8220;<span class="quote">Locales and Internationalization</span>&#8221;</span>. It is included in
     <code class="systemitem">glibc-info</code>.
    </p></li><li class="listitem" style="list-style-type: disc"><p>
     Markus Kuhn, <span class="emphasis"><em>UTF-8 and Unicode FAQ for Unix/Linux</em></span>,
     currently at
     <a class="ulink" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">http://www.cl.cam.ac.uk/~mgk25/unicode.html</a>.
    </p></li><li class="listitem" style="list-style-type: disc"><p>
     <span class="emphasis"><em>Unicode-Howto</em></span>, by Bruno Haible:
     <code class="filename">/usr/share/doc/howto/en/txt/Unicode-HOWTO.gz</code>
     (package <code class="systemitem">howto</code>).
    </p></li></ul></div></div></div></div><div class="navfooter"><table width="100%" summary="Navigation footer" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> &gt; </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> &gt; </span><a href="part.reference.system.html">System</a><span class="breadcrumbs-sep"> &gt; </span><strong><a accesskey="p" title="Chapter 17. The Boot Loader GRUB" href="cha.grub.html"><span>&#9664;</span></a>  <a accesskey="n" title="Chapter 19. Dynamic Kernel Device Management with udev" href="cha.udev.html"><span>&#9654;</span></a></strong></p></div></td></tr></table></div></body></html>

ACC SHELL 2018