c18f9eb4ea
Change-Id: I9b30ae27658a40b85c67a4c30aaea2b4bf9507f9
180 lines
17 KiB
HTML
180 lines
17 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
|
||
<head>
|
||
<!--
|
||
*
|
||
* Copyright 2010-2018, Haiku. All rights reserved.
|
||
* Distributed under the terms of the MIT License.
|
||
*
|
||
* Authors:
|
||
* Humdinger <humdingerb@gmail.com>
|
||
* Translators:
|
||
* Humdinger
|
||
* taos
|
||
*
|
||
-->
|
||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||
<meta name="robots" content="all" />
|
||
<title>Konsolenprogramme</title>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<link rel="stylesheet" type="text/css" href="../../Haiku-doc.css" />
|
||
</head>
|
||
<body>
|
||
|
||
<div id="banner">
|
||
<div><span>User Guide</span></div>
|
||
</div>
|
||
|
||
<div class="nav">
|
||
<div class="inner">
|
||
<ul class="lang-menu">
|
||
<li class="now">Deutsch <span class="dropdown-caret">▼</span></li>
|
||
<li><a href="../../id/applications/cli-apps.html">Bahasa Indonesia</a></li>
|
||
<li><a href="../../ca/applications/cli-apps.html">Català</a></li>
|
||
<li><a href="../../en/applications/cli-apps.html">English</a></li>
|
||
<li><a href="../../es/applications/cli-apps.html">Español</a></li>
|
||
<li><a href="../../eo/applications/cli-apps.html">Esperanto</a></li>
|
||
<li><a href="../../fr/applications/cli-apps.html">Français</a></li>
|
||
<li><a href="../../fur/applications/cli-apps.html">Furlan</a></li>
|
||
<li><a href="../../it/applications/cli-apps.html">Italiano</a></li>
|
||
<li><a href="../../hu/applications/cli-apps.html">Magyar</a></li>
|
||
<li><a href="../../pl/applications/cli-apps.html">Polski</a></li>
|
||
<li><a href="../../pt_PT/applications/cli-apps.html">Português</a></li>
|
||
<li><a href="../../pt_BR/applications/cli-apps.html">Português (Brazil)</a></li>
|
||
<li><a href="../../ro/applications/cli-apps.html">Română</a></li>
|
||
<li><a href="../../sk/applications/cli-apps.html">Slovenčina</a></li>
|
||
<li><a href="../../fi/applications/cli-apps.html">Suomi</a></li>
|
||
<li><a href="../../sv_SE/applications/cli-apps.html">Svenska</a></li>
|
||
<li><a href="../../tr/applications/cli-apps.html">Türkçe</a></li>
|
||
<li><a href="../../zh_CN/applications/cli-apps.html"> 中文 [中文]</a></li>
|
||
<li><a href="../../ru/applications/cli-apps.html">Русский</a></li>
|
||
<li><a href="../../uk/applications/cli-apps.html">Українська</a></li>
|
||
<li><a href="../../jp/applications/cli-apps.html">日本語</a></li>
|
||
</ul>
|
||
|
||
<span>
|
||
« <a href="list-cli-apps.html">List of commands</a>
|
||
:: <a href="../applications.html#cli-apps" class="uplink">Applications</a>
|
||
</span></div>
|
||
</div>
|
||
|
||
<div id="content">
|
||
<div>
|
||
|
||
<h2><img src="../../images/apps-images/cli-app-icon_64.png" alt="cli-app-icon_64.png" width="64" height="64" />Haiku-spezifische Konsolenprogramme</h2>
|
||
<table summary="layout" border="0" cellspacing="0" cellpadding="2">
|
||
<tr><td>Ort:</td><td style="width:15px;"></td><td><span class="path">/boot/system/bin/</span><br />
|
||
<span class="path">/boot/system/non-packaged/bin/</span><br /><span class="path">~/config/bin/</span><br /><span class="path">~/config/non-packaged/bin/</span></td></tr>
|
||
</table>
|
||
<p><br /></p>
|
||
<p>Alle Konsolenprogramme, die zusammen mit Haiku installiert werden, befinden sich in <span class="path">/boot/system/bin</span>. Eigene oder zusätzliche Konsolenprogramme erscheinen falls sie aus einem .hpkg Paket stammen entweder auch dort oder in <span class="path">~/config/bin/</span>. Ansonsten werden sie in <span class="path">/boot/system/non-packaged/bin/</span> oder <span class="path">~/config/non-packaged/bin/</span> abgelegt. Diese Orte sind alle Teil der PATH Variable und werden daher automatisch gefunden.<br />
|
||
Die folgende Liste an Haiku-spezifischen Programmen ist natürlich nicht vollständig; sie beschreibt nur einige der nützlichsten um auf den Geschmack zu kommen. Es ist empfehlenswert die <span class="path">bin/</span> Verzeichnisse selbst etwas zu erkunden. Wird ein Konsolenprogramm mit dem Parameter <tt>--help</tt> aufgerufen, wird der Gebrauch des Befehls mit sämtlichen Optionen angezeigt.</p>
|
||
|
||
<h3><a href="#"><img src="../../images/up.png" style="border:none;float:right" alt="index" /></a>
|
||
<a id="cli-attributes" name="cli-attributes">Attribute betreffend: <span class="cli">listattr</span>, <span class="cli">catattr</span>, <span class="cli">addattr</span>, <span class="cli">rmattr</span>, <span class="cli">copyattr</span></a></h3>
|
||
<p>Diese Befehle werden benutzt, um Attribute einer Datei aufzulisten, anzuzeigen, hinzuzufügen, zu entfernen und zu kopieren. Diese Metadaten werden momentan nur auf BFS formatierten Medien unterstützt. Schiebt man die Dateien auf andere Dateisysteme, gehen alle Attribute verloren!<br />
|
||
All diese Befehle sind im Kapitel <a href="../attributes.html#attributes-terminal">Attribute im Terminal</a> beschrieben.</p>
|
||
|
||
<h3><a href="#"><img src="../../images/up.png" style="border:none;float:right" alt="index" /></a>
|
||
<a id="cli-index" name="cli-index">Index betreffend: <span class="cli">lsindex</span>, <span class="cli">mkindex</span>, <span class="cli">reindex</span>, <span class="cli">rmindex</span></a></h3>
|
||
<p>Mit diesen Befehlen lassen sich Attribute in BFS' Index auflisten, hinzufügen, re-indizieren und entfernen. Werden Dateien zwischen Partitionen ausgetauscht, sollte man daran denken, dass jede Partition ihren eigenen Index hat.<br />
|
||
Die Befehle sind im Kapitel <a href="../index.html">Index</a> beschrieben.</p>
|
||
|
||
<h3><a href="#"><img src="../../images/up.png" style="border:none;float:right" alt="index" /></a>
|
||
<a id="cli-pkg" name="cli-pkg">Paketmanagement betreffend: <span class="cli">package</span>, <span class="cli">pkgman</span></a></h3>
|
||
<p>Mit dem <span class="cli">package</span> Befehl werden HPKG Pakete verwaltet. Der Artikel <a href="https://www.haiku-os.org/guides/daily-tasks/install-applications">Installing applications</a> zeigt die grundsätzliche Anwendung. Normalerweise wird das Tool <a href="https://github.com/haikuports/haikuports/wiki">haikuporter</a> benutzt, um automatisiert Pakete aus sogenannten "Recipes" ("Rezepten") zu erstellen.</p>
|
||
<p>Mit <span class="cli">pkgman</span> lassen sich Pakete suchen, installieren, aktualisieren und deinstallieren. Paket-Repositories können hinzugefügt, entfernt und deren Paketlisten aktualisiert werden. Eine besondere Art des Updates ist der Parameter <tt>full-sync</tt>: Er geht aggressiver zu Werke und ersetzt wenn nötig auch eine Software mit einer älteren Version, oder entfernt Pakete komplett.<br />
|
||
Mehr Details zu einzelnen Parametern erhält man durch Anhängen von "--help", beispielsweise <tt>pkgman search --help</tt>.</p>
|
||
|
||
<h3><a href="#"><img src="../../images/up.png" style="border:none;float:right" alt="index" /></a>
|
||
<a id="cli-scripting" name="cli-scripting">Nützliche Skript-Befehle</a></h3>
|
||
<p>Hier einige Konsolenprogramme, die besonders beim Skripten interessant sind (siehe auch <a href="../bash-scripting.html">Bash und Skripten</a>).</p>
|
||
<table summary="scripting cli tools" border="0" cellpadding="2" cellspacing="0">
|
||
<tr><td><p><span class="cli">alert</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">alert</span> erzeugt das typische Hinweis-Fenster mit einem vordefinierten Symbol, erklärenden Text und bis zu drei Buttons. Als Rückgabewert dient der Titel des geklickten Buttons, bzw. ein Exitstatus, beginnend mit 0). Zum Beispiel:</p>
|
||
<pre class="terminal">alert --idea "SpitzenApp(tm) wurde erfolgreich installiert! \
|
||
Soll eine Verknüpfung erstellt werden?" "Auf dem Desktop" "In der Deskbar" "Nein Danke"</pre>
|
||
<p><img src="../images/apps-images/cli-alert.png" alt="cli-alert.png" /></p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">filepanel</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">filepanel</span> öffnet einen Öffnen- oder Speicher-Dialog, in dem der Benutzer eine Datei oder Verzeichnis auswählen kann. Der Rückgabewert ist der gewählte Datei- oder Ordnerpfad. Es stehen diverse Parameter zur Verfügung, um beispielsweise einen Startordner oder einen Fenstertitel zu setzen, oder einen Dateinamen beim Speichern vorzugeben oder erlaubte Dateitypen einzuschränken. Zum Beispiel:</p>
|
||
<pre class="terminal">filepanel -s -t "Logdatei speichern" -d ~/config/settings -n Spitzen.log</pre>
|
||
<p><img src="../images/apps-images/cli-filepanel.png" alt="cli-filepanel.png" /></p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">hey</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">hey</span> ist ein kleines tool das BMessages an Anwendungen sendet und deren Antwort ausgibt. Es kann zum Skripten von Anwendungen benutzt werden, also zum "Fernsteuern" von Programmen mittels Skripts oder von der Kommandozeile aus. Das ist leider etwas kompliziert... <a href="https://www.haiku-os.org/blog/humdinger/2017-11-05_scripting_the_gui_with_hey/">Humdingers Blogpost</a> ist eine gute Einführung, und Dank Scot Hacker's BeOS Bible gibt es ein schönes <a href="http://www.birdhouse.org/beos/bible/bos/ch_scripting6.html">hey Tutorial</a> von Chris Herborth.</p></td></tr>
|
||
<tr><td><p><span class="cli">notify</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">notify</span> zeigt eine Benachrichtigung. Mit <span class="cli">notify --help</span> erhält man eine Beschreibung aller möglichen Parameter. Eine Benachrichtigung kann auch zur Fortschrittsanzeige eines Vorgangs benutzt werden. Dann ist es wichtig eine <i>messageID</i> zu vergeben, die man bei jeder Aktualisierung des Fortschritts (eine Zahl zwischen 0.0 und 1.0, die als Prozent ausgegeben wird) angibt. Sonst sieht man womöglich mehrere Benachrichtigungen gleichzeitig, wenn man schneller aktualisiert als der gesetzte Timeout die Fenster verschwinden lässt.<br />
|
||
Ein Beispiel:</p>
|
||
<pre class="terminal">notify --type progress --group "--group" --title "--title" --icon /boot/home/bebook.hvif \
|
||
--messageID MeineMessageID --progress .75 "Bitte warten"</pre>
|
||
<p><img src="../images/apps-images/cli-notification.png" alt="cli-notification.png" /></p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">query</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">query</span> ist die Konsolen-Variante des Find Panels. Um eine Suchformel bequem zu generieren lässt sich übrigens sehr gut eben dieses Find Panel benutzen: Einfach dort die entsprechende Suche zusammenklicken, dann umschalten zum "<span class="menu">by formula</span>" Mode, Anführungszeichen (<tt>"</tt>) an Anfang und Ende und anschließend das Ganze hinter den <span class="cli">query</span> Befehl ins Terminal oder Skript einfügen.</p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">waitfor</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p>Mittels <span class="cli">waitfor</span> lässt sich auf den Start bzw. die Beendigung eines bestimmten Threads oder einer Anwendung warten.</p>
|
||
</td></tr></table>
|
||
|
||
<h3><a href="#"><img src="../../images/up.png" style="border:none;float:right" alt="index" /></a>
|
||
<a id="cli-other" name="cli-other">Weitere Befehle</a></h3>
|
||
|
||
<table summary="scripting cli tools" border="0" cellpadding="2" cellspacing="0">
|
||
<tr><td><p><span class="cli">checkfs</span></p></td><td style="width:10px;"> </td>
|
||
<td><p><span class="cli">checkfs</span> ist ein wichtiges Tool um das Dateisystem zu überprüfen. Es wird einfach ein Partitionsname, beispielsweise <span class="path">/Haiku</span> oder ein Device-Pfad übergeben, um dort alle Dateien durchzusehen und Inkonsistenzen zu beheben, sofern möglich.</p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">desklink</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p>Mit <span class="cli">desklink</span> kann im Deskbar Tray ein Icon für jedwede Datei, Ordner, Query oder Anwendung installiert werden. Dabei gibt es die Möglichkeit bei einem Rechtsklick auf das entsprechende Icon ein Kontextmenü mit besonderen Funktionen anzubieten. Folgendes Beispiel macht das mit dem Konsolenprogramm <span class="app">screenshot</span> (das "<tt>\</tt>" in der ersten Zeile dient nur einem Zeilenumbruch im Terminal):</p>
|
||
<pre class="terminal">desklink "cmd=Aktives Fenster (2s):/bin/screenshot --window --border --delay 2" \
|
||
"cmd=Replicant entfernen:desklink --remove=screenshot" /bin/screenshot
|
||
</pre>
|
||
<p><img src="../images/apps-images/cli-desklink.png" alt="cli-alert.png" /></p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">diskimage</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p>Mittels <span class="cli">diskimage</span> können normale Dateien als "Disk" angemeldet werden. So lässt dich beispielsweise ein Haiku Anyboot Image anmelden. Anschließend kann es per Tracker eingehängt werden, um Dateien darauf zu kopieren, zu ändern oder zu löschen, bevor man es als Quelle für den Installer benutzt.</p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">launch_roster</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p>Der launch_daemon startet beim Hochfahren verschiedene Dienste und Anwendungen. Einige werden bei ihrer Beendigung automatisch neu gestartet. Soll das nicht geschehen – vielleicht will man einen veränderten Tracker ausprobieren – kann man per <span class="cli">launch_roster stop</span> den Neustart der Anwendung verhindern, bevor man sie beendet. Mittels <tt>start</tt> lässt sich der automatische Neustart wieder einschalten, <tt>info</tt> gibt zusätzliche Informationen aus. Mit <tt>log</tt> werden alle den launch_daemon betreffenden Ereignisse ausgegeben.<br />
|
||
Ohne Parameter zeigt <span class="cli">launch_roster</span> alle Anwendungen/Dienste an, die so gesteuert werden können.<br />
|
||
So lässt sich zum Beispiel der Neustart der Deskbar anhalten:</p>
|
||
<pre class="terminal">launch_roster stop x-vnd.be-tskb</pre></td></tr>
|
||
<tr><td><p><span class="cli">mountvolume</span><br /><span class="cli">mount</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">mountvolume</span> ist der allgemein bevorzugte Befehl zum Einhängen lokaler Partitionen und Disks, weil er so simpel zu benutzen ist: einfach mit dem Namen der Partition aufrufen und fertig. <tt>--help</tt> zeigt die weiteren Optionen.</p>
|
||
<p><span class="cli">mount</span> kann zusätzlich auch nicht-lokale Disks per Netzwerk-Dateisystemen wie NFS4 einhängen. Das zu benutzende Dateisystem wird mit dem <tt>-t</tt> Parameter übergeben, die Zieladresse mit dem <tt>-p</tt> Parameter. Als Dateisystem können alle unter <span class="path">/system/add-ons/kernel/file_system</span> (bzw. dessen Entsprechungen unter <span class="path">~/config</span> oder "<span class="path">non-packaged</span>") gelisteten benutzt werden. Außerdem muss ein Verzeichnis als Einhängepunkt angelegt werden. Ein Beispiel:</p>
|
||
<pre class="terminal">mkdir -p /DiskStation
|
||
mount -t nfs4 -p "192.168.178.3:volume1" /DiskStation</pre></td></tr>
|
||
<tr><td><p><span class="cli">open</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p><span class="cli">open</span> ist ein nützliches kleines Tool. Es öffnet jedwede Datei mit ihrer bevorzugten Anwendung oder startet eine bestimmte Anwendung anhand ihrer Signatur ohne ihren genauen Pfad kennen zu müssen. Das funktioniert auch mit URLs und sogar den "virtuellen" Verzeichnissen, <tt>.</tt> für das aktuelle Verzeichnis und <tt>..</tt> für das übergeordnete, die dann im Tracker geöffnet werden.</p>
|
||
</td></tr>
|
||
<tr><td><p><span class="cli">ramdisk</span></p></td><td style="width:10px;"> </td>
|
||
<td valign="top"><p>Eine Ramdisk lässt sich als eine Art Festplatte verstehen die ausschließlich im Speicher des Rechners läuft. Dadurch ist sehr schnell, aber auch vergänglich, da ihr Inhalt verschwindet sobald der Rechner ausgeschaltet wird, er abstürzt oder der Strom ausfällt.<br />
|
||
Um eine Ramdisk mit 1 GiB Größe zu erzeugen, sie auf den Namen "RAMses" zu formatieren und einzuhängen, tippt man folgendes ins Terminal, bzw. macht ein Skript daraus:</p>
|
||
<pre class="terminal">ramdisk create -s 1gb
|
||
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMses
|
||
mountvolume RAMses</pre>
|
||
<p>Achtung: Erzeugt man eine Ramdisk, gibt der <span class="cli">ramdisk</span> Befehl deren Pfad aus. Erzeugt man mehrere Ramdisks, ändert sich der Pfad <span class="path">/dev/disk/virtual/ram/0/raw</span> !</p>
|
||
<p>Um den Inhalt zu behalten, zumindest sofern kein Unglück wie ein Stromausfall geschieht, lässt sich eine Ramdisk auch so einrichten, dass sie eine Imagedatei auf der Festplatte benutzt. Dazu muss man eine Datei mit einer entsprechenden Größe zur Verfügung stellen, von der bei jedem Start der Ramdisk gelesen und beim Aushängen geschrieben wird. So erzeugt man eine 500 MiB große Datei "RAMimage" und formatiert sie:</p>
|
||
<pre class="terminal">dd if=/dev/zero of=RAMimage bs=500M count=1
|
||
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMimage</pre>
|
||
<p>Ab jetzt lässt sich diese Ramdisk so starten:</p>
|
||
<pre class="terminal">ramdisk create RAMimage
|
||
mountvolume RAMimage</pre>
|
||
<p>Dabei ist es äußerst wichtig die Ramdisk immer sauber auszuhängen, entweder im Tracker oder per <span class="cli">unmount /RAMimage</span>. Ansonsten werden die Änderungen nicht zurück in die Imagedatei geschrieben!</p>
|
||
</td></tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="nav">
|
||
<div class="inner"><span>
|
||
« <a href="list-cli-apps.html">Liste aller Konsolenprogramme</a>
|
||
:: <a href="../applications.html#cli-apps" class="uplink">Anwendungen</a>
|
||
</span></div>
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|