Archiv der Kategorie: Dateien & Verzeichnisse

Baloo

Dienst zur Dateiindizierung (wird z. B. von Dolphin verwendet).

Verwendung

In der Datenbank gespeicherte Informationen zu einer Datei:

balooshow [OPTIONEN] Datei

Suchen auf der Kommandozeile:

baloosearch //?query=EIGENSCHAFT:SUCHBEGRIFF

Beispiele:

#Suche nach einem STICHWORT, das z. B. in Dolphin der Datei hinzugefügt wurde:
baloosearch //?query=tag:STICHWORT

#Suche nach STICHWORT und Breite
baloosearch //?query=tag:STICHWORT AND width:100

#Suche nach mehreren Stichworten
baloosearch //?query=tag:STICHWORT1 AND tag:STICHWORT2

#Suche nach Künstler (mit Wildcard "*") UND STICHWORT
baloosearch //?query=artist:John* AND tag:STICHWORT

#Suche nach Künstler und Genre
baloosearch //?query=artist:A* AND genre:Hörbuch

Konfiguration

Die Konfiguration erfolgt über balooctl

balooctl [Optionen] ARGUMENTE 
ARGUMENTEBeschreibung
statusStatus der Indizierung
enableDatei-Indizierung aktivieren
disableDatei-Indizierung deaktivieren
purgeDatenbank löschen
suspendDatei-Indizierung pausieren
resumeDatei-Indizierung wieder starten
checkNach nicht indizierten Dateien suchen und indizieren
indexAngegebene Dateien indizieren
clearAngegebene Dateien nicht mehr indizieren
configBaloo-Einstellungen bearbeiten (siehe unten)
monitorEchtzeitüberwachung starten
indexSizeVerwendeten Speicherplatz anzeigen
failedDateien mit fehlgeschlagener Indizierung auflisten
balooctl config
BefehlBeschreibungBeispiel
addFügt den Wert eines Einrichtungs-Parameters hinzu. Im Beispiel wird der Pfad /var/log indiziert.balooctl config add includeFolders /var/log/
rm | removeEntfernt den Wert eines Einrichtungs-Parameters. Im Beispiel wird der obige Eintrag wieder entfernt.balooctl config remove includeFolders /var/log
list | ls | showZeigt den Wert eines Einrichtungs-Parametersbalooctl config ls includeFolders
setSetzt den Wert eines Einrichtungs-Parameters. Im Beispiel wird die Indizierung versteckter Orte erlaubt.balooctl config set hidden true

maybe

Mit maybe lassen sich Befehle testen, ohne sie wirklich auszuführen.
So kann man riskante Aktionen, wie dd zunächst einmal testen und nach erfolgreichem Test wirklich ausführen.
Man installiert maybe wie folgt: Zunächst brauchen wir die Python Paketverwaltung sudo apt-get install python-pip. Über die Python-Paketverwaltung lässt sich nun maybe installieren sudo pip install maybe.

maybe dd if=image.iso of=/dev/sda1 führt den Schreibvorgang nicht wirklich aus, sondern zeigt nur an, was gemacht werden würde:

maybe has prevented dd if=image.iso of=/dev/sda1 from performing 1 file system operations:

truncate file /dev/sda1

Do you want to rerun dd if=image.iso of=/dev/sda1 and permit these operations? [y/N]

Papierkorb bei eingehängter NTFS-Partition benutzten

Unter Linux muss man eine NTFS-Partition(Windows-Partition) wie folgt einhängen, dass man auch hier den Papierkorb benutzten kann.

Mounteintrag in der /etc/fstab:

UUID=XXXXXXXXXXXXXXXX /mnt/windowsdaten ntfs-3g rw,uid=1000 0 0

rsync

rsync synchronisiert immer nur in einer Richtung. Für einen gegenseitigen Abgleich müssen also zwei Aufrufe erfolgen:

  •  rsync /verzeichnis1/ /verzeichnis2 
  •  rsync /verzeichnis2/ /verzeichnis1

Der / nach der 1. Pfadangabe verhindert, dass der letzte Ordner des 1. Pfads als neuer Ordner unter dem 2. Pfad angelegt wird. Somit bedeuten folgende Aufrufe genau das gleiche:

Weiterlesen

awk

. Bawk Ausdruck { Anweisungen } Datei

Ausdruck

Der erste Parameter ist ein regulärer Ausdruck.

Anweisungen

Den zweiten Parameter stellen die awk-Anweisungen (anzugeben in geschweiften Klammern) dar. Diese Anweisungen legen fest, welche Manipulationen am Input-Stream durchgeführt werden sollen.

Datei

Der Parameter Datei legt die Datei fest, aus der der Input-Stream gelesen werden soll. Ohne Angabe liest awk von der Standardeingabe oder aus einer Pipe.

Beispiele

Beispiel 1: 2. Spalte ausgeben (z. B. Prozess-ID bei grep)

ps aux | grep suchstring | awk '{print $2}'

Beispiel 2: alle Zeilen einer Datei mit dem Buchstaben „n“ ausgeben:

awk '/n/' /etc/group

Hotcopy

Download unter: http://www.idera.com/ProductsSolutions/FreeTools/SBLinuxHotCopy.aspx

Einrichtung:

  1. Programm installieren
  2. sudo hcp-setup --get-module

Hotcopy kann unmittelbar und online Snapshots von jedem gemounteten Device erzeugen. Die Snapshots sind les- und schreibbar, lasen sich aber auch read-only anlegen. Sie brauchen im Unterschied zu LVM keinen vorher reservierten Platz und sind sehr schnell. Einen Snapshot der Partition /dev/sda5 erzeugt beispielsweise:
sudo hcp --read-only /dev/sda5
Das erzeugt augenblicklich eine Kopie der Daten unter dem virtuellen Device /dev/hcp1. Ein normales Backup von diesem Device wird automatisch zur Online-Sicherung, die sich nicht mehr um offene Files zu scheren braucht. Danach kann man den Snapshot mit
sudo hcp -r /dev/hcp1
wieder verwerfen. Will man ein riskantes Skript testen, legt man sich zunächst wieder einen Snapshot seiner Systempartition an, der automatisch an /var/hotcopy/Devicename gemountet wird:
# hcp /dev/sda5
Nun setzt man den Snapshot temporär als neues Root-Directory ein
# chroot /var/hotcopy/sda5
In dieser Umgebung lässt sich jetzt gefahrlos das Skript testen, das einem nicht geheuer war.
# diff --recursive / /var/hotcopy/sda5
zeigt anschließend, was das Skript geändert hätte.

Meta-Zeichen (in Dateinamen)

Bei der Angabe von Dateinamen können eine Reihe von Meta-Zeichen verwendet werden:

 * Eine Folge von keinem, einem oder mehreren Zeichen
 ? Ein einzelnes Zeichen
 [abc] Übereinstimmung mit einem beliebigen Zeichen in der Klammer
 [a-q] Übereinstimmung mit einem beliebigen Zeichen aus dem angegebenen Bereich
 [!abc] Übereinstimmung mit einem beliebigen Zeichen, das nicht in der Klammer ist
 ~ Home-Verzeichnis des aktuellen Benutzers
 ~name Home-Verzeichnis des Benutzers name
 ~+ Aktuelles Verzeichnis
 ~- Vorheriges Verzeichnis

test […]

Der Befehl test dient zum Überprüfen von Dateitypen bzw. Vorhandensein von Dateien und zum Vergleichen von Werten. Der Aufruf erfolgt mit test Vergleich wobei Vergleich die Prüfung bzw. den Vergleich enthält. Als Ergebnis gibt test 0 für Wahr (true) und 1 für Falsch (false) zurück. Der Rückgabewert wird mit Hilfe der Shelleigenen Variablen $? ermittelt. Es gibt Vergleiche für Dateien, Zeichenketten und Integer-Zahlen.

Anstatt des Befehls test kann die Bedingung auch in eckige Klammern gesetzt werden. Hierbei ist darauf zu achten, dass zwischen den Klammern und dem Vergleich jeweils ein ein Leerzeichen steht:  [ Vergleich ]
Weiterlesen

umask

umask ergibt die Zugriffsrechte für neue Dateien
Als root kann in der Datei /etc/profile ein umask-Wert eingetragen werden. Der Wert 0077 lässt für neue Dateien nur deren Besitzer zu.

chmod

Zugriffsrechte ändern

chmod +x Datei  macht eine Datei ausführbar

chmod u=rwx, g=rx, o=r Datei  macht die Datei für den Besitzer schreib-, les- und ausführbar, für die Gruppe les- und ausführbar und für alle anderen lesbar

chmod g=rwx tausch/  macht das Verzeichnis tausch für die Gruppe les-, schreib- und ausführbar

chmod 0754 filename  gibt dem Eigentümer alle Rechte, die Gruppe darf lesen und ausführen, alle anderen nur lesen (r = 4, w = 2, x = 1).

Durch die Angabe von „=“ werden die Rechte hart gesetzt: chmod u=rx setzt für den Besitzer „r“ und „x“ und löscht „w“. Die Angabe von „+“ und „-“ hingegen setzt oder löscht einzelne Rechte ohne die anderen zu verändern: chmod u+x setzt für den Benutzer zusätzlich die Berechtigung auszuführen.

find pfad -type f -exec chmod a-x "{}" ";"  ändert nur Dateien, keine Ordner.

Die Werte können auch mit Oktalzahlen angegeben werden.

df

zeigt die Belegung aller gemounteten Medien an
df -h .; echo; du -m --max-depth=1 . 2>/dev/null | sort -nr | head -10 zeigt den freien Platz auf der aktuellen Partition plus die zehn vollsten Unterverzeichnisse des aktuellen Verzeichnisses

tar

tar -xzvf Datei.tar.gz entpackt die Datei
tar -czvf backup.tar.gz /home /etc sichert die Verzeichnisse /home und /etc in das Archiv backup Dateibäume in ein Archiv schreiben

Dateien mit Rechten kopieren:
cd quelle tar cf - . | (cd ziel;tar xvf -) 

Kopie über das Netzwerk:
tar -cz * | ssh server "cat - > /backups/backup.tgz" 

Aufteilen auf mehrere Disketten:
tar cMvf /dev/fd0 *  sichert alle Dateien im Verzeichnis auf mehrere Disketten und
tar xMvf /dev/fd0 *  packt diese wieder aus

Archive mit mehr als 1 GB:
tar cvf - quelle | gzip > archiv.tar.gz 
tar xzvf archiv.tar.gz

Parameterübersicht:

-c Ein neues Archiv erzeugen.
-d Dateien im Archiv und im Dateisystem miteinander vergleichen.
-f Archiv in angegebene Datei schreiben. / Daten aus angegebener Datei lesen.
-j Archiv zusätzlich mit bzip2 (de)komprimieren.
-J Archiv zusätzlich mit xz (de)komprimieren.
-k Das Überschreiben existierender Dateien beim Extrahieren aus einem Archiv verhindern.
-p Zugriffsrechte beim Extrahieren erhalten.
-r Dateien an ein bestehendes Archiv anhängen. (nur bei nicht gepackten Archiven!)
-t Inhalt eines Archivs anzeigen.
-u Nur Dateien anhängen, die jünger sind als ihre Archiv-Version.
-v Ausführliche Ausgabe aktivieren. Hierbei ist zu beachten, dass man dies möglichst an den Anfang des Befehls anhängt, wenn mehrere Optionen kombiniert werden. z.B. -cfv würde zu einer Fehlermeldung führen. Korrekt wäre -vcf
-w Jede Aktion bestätigen.
-x Dateien aus einem Archiv extrahieren.
-z Archiv zusätzlich mit gzip (de)komprimieren.
-Z Archiv zusätzlich mit compress (de)komprimieren.
-A Inhalt eines bestehenden Archivs in ein anderes Archiv kopieren.
-M Mehrteiliges Archiv anlegen/anzeigen/extrahieren.
-L Medium wechseln, wenn ZAHL KBytes geschrieben sind.
-W Archiv nach dem Schreiben prüfen.

split

Große Dateien aufteilen: split -b 1440k QuellDatei BasisName
Mit -b gibt man an, dass die Datei nicht zeilenweise sondern byteweise betrachtet werden soll.
1440k bestimmt die Größe der einzelnen aufgeteilten Dateien.
QuellName ist natürlich der Name der aufzuteilenden Datei und
BasisName ist der Name der als ,Basis‘ für die Namen der erzeugten kleineren Dateien verwendet wird. Um eine derart aufgeteilte Datei später wieder zusammenzusetzen verwendet man den ,cat‘ Befehl: cat BasisName* > NamederZieldatei

recode

ändert die Zeichenkodierung des Dateinamens
recode quellcode..zielcode datei
recode ibmpc..lat1 datei konvertiert von DOS nach UNIX
Zeichensätze:

  • ISO-8859-1 ohne Euro
  • ISO-8859-15 mit Euro
  • UTF8 universeller Zeichensatz
  • windows-1252
  • cp1252
  • cp850
  • codepage=850

Der Dateininhalt wird mit iconv konvertiert

tr

Zeichen in Dateien ersetzen

Option Bedeutung
-d Entfernt die Zeichen in Satz1 aus der Zeichenfolge
-s Entfernt mehrfache Vorkommen der Zeichen in Satz1
-c Ersetzt die Zeichen, die nicht in Satz1 vorkommen

Beispiele:
cat file1 | tr altes_Wort neues_Wort > NeueDatei

tr -d ':' < /etc/passwd 
liest /etc/passwd und entfernt aus diesem Zeichenstrom alle Doppelpunkte.

tr -s '\n' 
ersetzt doppelte oder mehrfache Leerzeilen durch eine einzige.

tr "\n" " " < dateiname > neue_datei 
löscht alle Zeilenumbrüche

tr [:lower:] [:upper:]
ersetzt alle Kleinbuchstaben aus der Standardeingabe durch Großbuchstaben und gibt das Ergebnis auf der Standardausgabe aus.

diff

diff datei1 datei2 Vergleichen von zwei Textdateien
sdiff datei1 datei2 Vergleichen von zwei Textdateien nebeneinander
diff -r /verzeichnis1/ /verzeichnis2/ vergleicht zwei Verzeichnisse rekursiv
diff -rq /verzeichnis1/ /verzeichnis2/ vergleicht zwei Verzeichnisse rekursiv und gibt nur die Verzeichnisnamen aus

sed

sed verwendet reguläre Ausdrücke

Suchen und ersetzen von Text in Dateien: sed 's/Suchtext/Ersetztext/g' quelldatei.txt > zieldatei.txt Ist im zu bearbeitenden Text ein Slash / , so muss dieser mit  \/  angegeben werden.
Leerzeichen in Dateinamen in Unterstriche umwandeln: for a in *; do mv "$a" "$(echo $a | sed 's/ /_/g')"; done

grep

grep -r haus documents/texte/ sucht rekursiv in texte nach dem Wort haus
grep -l -r suchwort /home/stefan/bin/* durchsucht ab dem Verzeichnis /bin/ alle Dateien rekursiv (-r) nach dem Inhalt „Suchwort“ und gibt nur die Dateinamen aus (-l)
grep -i ROot /etc/passwd  sucht nach „root“ ohne Beachtung der Groß- und Kleinschreibung

Weiterlesen

find

find -name Datei sucht nach der Datei

find . -name bild.jpg sucht nach bild.jpg. Der Punkt weist find an, alle Ordner ab dem aktuellen Verzeichnis zu durchsuchen.

find /mnt/cdrom/bilder -name bild.jpg Dieser Befehl durchsucht das Verzeichnis bilder einer nach /mnt/cdrom gemounteten CD.

Weiterlesen

convmv

convmv --upper --notest -r . konvertiert rekursiv alle Dateinamen in Großschreibung
convmv --lower --notest -r . konvertiert rekursiv alle Dateinamen in Kleinschreibung
convmv -f iso-8859-15 -t utf-8 -r . konvertiert rekursiv alle Dateinamen in von iso-8859-15 nach utf-8

cp

cp Quelle Ziel kopiert Dateien
Schalter:

  • -d Links bleiben als Links erhalten
  • -f existierende Zieldateien werden überschrieben
  • -i Nachfrage vor Überschreiben
  • -r Dateien werden rekursiv kopiert
  • -R Ordner werden rekursiv kopiert
  • -u existierende Zieldateien werden überschrieben, wenn Quelldatei neuer ist
  • -p erhält die Dateiattribute

du

schätzt Platzverbrauch von Dateien

  • du -h Anzeige „human-readable“ in Kilo, Mega, Gigabyte
  • du -s ohne Unterverzeichnisse
  • du -c bildet am Ende eine Gesamtsumme
  • du -L folgt symolischen Links
  • du --max-depth=1 -h . | sort -rn | less
    Verzeichnisse mit Platzverbrauch geordnet anzeigen
  • du -Lhd0 <Ordner>
    gibt die Gesamtgröße des Ordners aus, auch wenn dieser ein symbolischer Link ist

ls

ls -lh listet den Inhalt des aktuellen Verzeichnisses auf (wie dir ).

  • -a zeige alle Dateien und Verzeichnisse an; auch die versteckten, deren Namen mit einem Punkt beginnen.
  • -A wie -a, nur ohne die Einträge . und …
  • -B Keine Dateien, die auf ~ enden, anzeigen.
  • -R rekursiv alle Unterverzeichnisse anzeigen.
  • -i zeige auch die Inode-Nummern an.
  • -l langes Format: Es werden neben dem Dateinamen auch Größe, Besitzer, Gruppe und Zugriffsrechte angezeigt.
  • -f wie -l, aber ohne Gruppen-Informationen.
  • -s zeigt nur Dateinamen und Größen in Kilobyte an.
  • –color farbige Ausgabe nur Unterscheidung verschiedener Dateitypen.
  • -F hänge an bestimmte Dateien ein zusätzliches Zeichen an, um auf den Dateityp hinzuweisen (z.B.: / für Verzeichnisse; * für ausführbare Dateien, @ für symbolische Links)
  • –full-time vollständige Zeitangaben ausgeben (nur zusammen mit -l)
  • -n User- und Gruppen-IDs anstelle der Namen ausgeben.
  • -S sortiert der Größe nach

ls -lR | sort +4nr listet Dateien der Größe nach sortiert auf.
ls --sort=size -lhr ergibt die Größe eines einzelnen Verzeichnisses

tail

Die letzten 10 Zeilen einer Datei auf Standardausgabe ausgeben
tail -f datei verfolgt die Änderungen in einer Datei (gut für Log-Files)
tail -n xx datei gibt die letzten xx-Zeilen aus

cat

Dateianzeige ohne Unterbrechungen cat datei*.txt > datei.txt
cat kopiert eine Reihe von als Parameter übergegebenen Dateien in die Standard-Ausgabe. Mit Hilfe einer Umleitung »>« können Sie so mehrere Dateien zusammenkopieren:
Beispiel: cat Teil1 Teil2 Teil3 > Gesamt
Werden gar keine Dateinamen angegeben, so wird die Standard-Eingabe verwendet. Es folgen einige nützliche Optionen:

  • -b In ASCII-Dateien wird jede (nicht-leere) Zeile mit einer Zeilennummer versehen.
  • -n In ASCII-Dateien wird jede Zeile mit einer Zeilennummer versehen.
  • -E Zeige in ASCII-Dateien ein »$«-Zeichen am Ende jeder Zeile an (so können Sie Leerzeichen am Ende einer Zeile erkennen).

Navigation & Pfadangaben

Man kann sehr schnell durch Pfade navigieren, wenn man die Autovervollständigung durch die TAB-Taste nutzt. Es genügt, den Anfang eines Pfades anzugeben und dann vervollständigt die TAB-Taste automatisch. Ebenso kann man sich die History der Shell zunutze machen. Mit der „Pfeil-nach-oben-Taste“ holt man vergangene Befehle wieder. Mit der „Bild-nach-oben-Taste“ holt man vergangene Befehle wieder, von denen man den Anfang wieder getippt hat. (siehe Eingabe-History aktivieren)

Die Angabe von ~ bewirkt den Sprung ins eigene Homeverzeichnis.

Die Angabe eines Punktes symbolisiert das aktuelle Verzeichnis.

Die Angabe von zwei Punkten verweist auf das übergeordnete Verzeichnis.

cd

cd               wechselt ins Home-Verzeichnis
cd ~User    wechselt ins Home-Verzeichnis von User
cd ..      wechselt ins übergeordnete Verzeichnis
cd -       wechselt ins letzte Verzeichnis