Die wichtigsten Linux Befehle: Unterschied zwischen den Versionen
(→scp) |
|||
| (10 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | == Links == | ||
| + | http://cb.vu/unixtoolbox.xhtml | ||
| + | |||
| + | == Shell auf all-inkl == | ||
| + | Bei all-inkl stehen nur einige Befehle zur Verfügung: | ||
| + | <pre> | ||
| + | DATEIEN UND VERZEICHNISSE | ||
| + | cat gibt den Inhalt einer Datei aus cat <file> | ||
| + | cd in ein Verzeichnis wechseln cd <directory> | ||
| + | chmod Zugriffsrechte einer Datei ändern chmod -R 777 <directory> | ||
| + | cmp zwei Dateien vergleichen cmp <file1> <file2> | ||
| + | cp kopieren von Dateien/Verzeichnissen cp <file1> <file2> | ||
| + | diff zwei Textdateien/Verzeichnisse vergleichen diff <file1> <file2> | ||
| + | du Speicherbedarf von Dateien/Verzeichnissen ermitteln du --max-depth=1 -h | ||
| + | egrep, fgrep, grep in Dateien suchen grep -i <text> <file> | ||
| + | file Dateityp ermitteln file -i <file> | ||
| + | find nach Dateien suchen find -name "<file>" | ||
| + | head gibt die Anfangszeilen einer Datei aus head <file> | ||
| + | join Dateien zusammenführen | ||
| + | less, more gibt den Inhalt einer Datei seitenweise aus more <file> | ||
| + | ln setzt einen Link auf eine Datei/ein Verzeichnis ln -s <file1> <file2> | ||
| + | ls Dateien/Verzeichnisse auflisten ls -al | ||
| + | mc Midnight Commander mc | ||
| + | md5sum, sha1sum, sum ermitteln der Prüfsumme einer Datei md5sum <file> | ||
| + | mkdir erstellt ein neues Verzeichnis mkdir <directory> | ||
| + | mv umbenennen/verschieben von Dateien/Verzeichnissen mv <file1> <file2> | ||
| + | nl gibt den Inhalt einer Datei mit Zeilennummern aus nl <file> | ||
| + | pwd gibt das aktuelle Verzeichnis aus pwd | ||
| + | rm löschen von Dateien/Verzeichnissen rm <file> | ||
| + | tail gibt den Inhalt einer Datei ab einer bestimmter Zeile aus tail -n 3 <file> | ||
| + | touch Zeitstempel einer Datei ändern touch <file> | ||
| + | wc Anzeige der Anzahl der Zeilen, Wörter und Zeichen in einer Datei wc <file> | ||
| + | KOMPRIMIEREN UND ARCHIVIEREN | ||
| + | bzip2/bunzip2 Dateien mit bzip2 (de-)komprimieren bunzip2 <file> | ||
| + | gzip/gunzip Dateien mit gzip (de-)komprimieren gunzip <file> | ||
| + | tar Dateien oder Dateibäume archivieren tar cfvz backup.tar.gz <directory> | ||
| + | zcat, zless, zmore Inhalt von gzip-Archiven ausgeben zcat <file> | ||
| + | zip, unzip Dateien mit zip (de-)komprimieren unzip <file> | ||
| + | EDITOREN | ||
| + | joe, mcedit, vi, nano editieren von Dateien mcedit <file> | ||
| + | NETZWERK | ||
| + | ftp herstellen einer FTP-Verbindung ftp <hostname> | ||
| + | scp Dateien sicher über das Netzerk kopieren scp <user>@<hostname> . | ||
| + | ssh eine sichere Verbindung mit einem anderen Rechner herstellen ssh <user>@<hostname> | ||
| + | wget herunterladen von Dateien per HTTP/FTP wget <hostname>/<file> | ||
| + | SCRIPTSPRACHEN | ||
| + | php PHP Interpreter php <file> | ||
| + | pear Pear | ||
| + | perl Perl perl <file> | ||
| + | MYSQL | ||
| + | mysqldump Erstellen einer Datenbanksicherung mysqldump -u LOGIN -p'PASSWORT' LOGIN > dumpDATUM.sql | ||
| + | mysql Aufbau einer MySQL Verbindung z.b. zum Einspielen einer Datenbanksicherung mysql -u LOGIN -p'PASSWORT' LOGIN < dumpDATUM.sql | ||
| + | VERSIONSVERWALTUNG | ||
| + | bzr Versionsverwaltung | ||
| + | git Fast Version Control System | ||
| + | svn Subversion-Client | ||
| + | TERMINAL, SHELL, HINTERGRUNDPROZESSE | ||
| + | < Eingabeumleitung <command> < <file> | ||
| + | > Ausgabe in eine Datei umleiten <command> > <file> | ||
| + | >> Ausgabe an eine Datei anhängen <command> >> <file> | ||
| + | | Ausgabe umleiten find | grep <file> | ||
| + | ., source lesen und ausführen von Befehlen aus einer Datei | ||
| + | & starten von Prozessen im Hintergrund <command> & | ||
| + | 2> umleiten der Fehlerausgabe <command> 2> <file> | ||
| + | alias Kurznamen für einen Befehl setzen alias ll='ls -al' | ||
| + | bg Prozesse im Hintergrund fortsetzen | ||
| + | clear löschen des Bildschirminhaltes clear | ||
| + | export exportieren von Umgebungsvariablen export <var> | ||
| + | fg Prozesse im Vordergrund fortsetzen | ||
| + | jobs angehaltene Prozesse/Hintergrundprozesse auflisten jobs | ||
| + | printenv, set anzeigen/ändern der Umgebungsvariablen printenv | ||
| + | reset wiederherstellen der Terminalzeichensatzes reset | ||
| + | sleep schlafen legen eines Prozesses | ||
| + | [Strg] + c bricht den aktuellen Vorgang in der Shell ab | ||
| + | [Strg] + z hält den aktuellen Vorgang in der Shell an | ||
| + | stty Terminaleinstellungen setzen/abfragen stty | ||
| + | unalias Kurznamen für einen Befehl löschen unalias ll | ||
| + | watch Befehl periodisch ausführen und Ausgabe anzeigen | ||
| + | SONSTIGES | ||
| + | csplit, split Dateien zerteilen | ||
| + | cut Spalten oder Feldern aus Dateien herausschneiden | ||
| + | date Datum und Uhrzeit anzeigen date | ||
| + | echo Text ausgeben echo "Hallo Welt!" | ||
| + | exit, logout beenden der aktuellen Sitzung exit | ||
| + | expand umwandeln von Tabulatoren in Leerzeichen | ||
| + | hostname eigenen Hostnamen ermitteln hostname | ||
| + | iconv, recode konvertieren von Zeichensätzen | ||
| + | id eigene Benutzer-/Gruppenkennung ermittelen id | ||
| + | kill Signale an Prozesse senden | ||
| + | sed transformieren von Zeichenketten | ||
| + | time Zeitmessungen von Prozessen durchführen time <command> | ||
| + | tr ersetzen von Zeichen | ||
| + | uname anzeigen von Systeminformationen uname -a | ||
| + | uniq Identische, aufeinander folgende Zeilen nur einmal ausgeben | ||
| + | whoami eigenen Loginnamen ermittelen whoami | ||
| + | </pre> | ||
| + | |||
| + | == Die wichtigsten LINUX Befehle auf der Kommandozeile == | ||
| + | |||
<TABLE BORDER="1"> | <TABLE BORDER="1"> | ||
| − | |||
| Zeile 373: | Zeile 471: | ||
</TABLE> | </TABLE> | ||
| + | == Suchen und Finden == | ||
| + | [[Linux - grep]] | ||
== Weitere Befehle == | == Weitere Befehle == | ||
| + | |||
=== diff und patch === | === diff und patch === | ||
| + | |||
| + | Siehe auch: [[Typo3 - Patch einspielen]] | ||
| + | |||
| + | [[Programmieren - Patch und Diff]] | ||
Ein "diff" erzeugen mit dem GNU Programm diff | Ein "diff" erzeugen mit dem GNU Programm diff | ||
| Zeile 451: | Zeile 556: | ||
patch -p1 < patchdatei.diff | patch -p1 < patchdatei.diff | ||
| − | |||
== wget, scp und curl == | == wget, scp und curl == | ||
| Zeile 466: | Zeile 570: | ||
=== curl === | === curl === | ||
| − | curl - | + | curl - Tool zum Transfer von Daten von und zu einem Server. Diverse Protokolle möglich: (HTTP, HTTPS, FTP, FTPS, GOPHER, DICT, TELNET, LDAP or FILE) |
| − | + | ||
| + | curl kann ohne Benutzerinteraktion z.B. über Skripte ausgeführ werden. | ||
| − | |||
<pre> | <pre> | ||
# curl [options] [URL...] | # curl [options] [URL...] | ||
</pre> | </pre> | ||
| − | |||
| − | + | Es gibt sehr viele Optionen. | |
| + | |||
| + | Beispiele | ||
| − | + | Eine Webseite holen und auf der Standardausgabe (stdout) ausgeben: | |
# curl http://www.domain.com | # curl http://www.domain.com | ||
| − | + | Eine Webseite holen und in eine Datei speichern: | |
# curl http://www.domain.com -o "file1.txt" | # curl http://www.domain.com -o "file1.txt" | ||
| − | + | Mehrere Dokumente holen und variable Ersetzungen mit dem aktuellen String der zu holenden URL durchführen: | |
# curl http://{one,two}.site.com -o "file_#1.txt" | # curl http://{one,two}.site.com -o "file_#1.txt" | ||
| Zeile 494: | Zeile 599: | ||
(Quelle: http://www.coolcommands.com/index.php?option=com_cccat&task=display&id=341 Zugriff am 26.1.) | (Quelle: http://www.coolcommands.com/index.php?option=com_cccat&task=display&id=341 Zugriff am 26.1.) | ||
| − | curl -u username sftp://shell.example.com/deepdir/foo.txt | + | Einfacher Download: |
| + | # curl -C - -O http://www.mirror.com/path/to/NeoOffice-Patch.dmg | ||
| + | |||
| + | Download mit Passwort | ||
| + | # curl -u username sftp://shell.example.com/deepdir/foo.txt | ||
oder | oder | ||
curl -u username:password sftp://shell.example.com/deepdir/foo.txt | curl -u username:password sftp://shell.example.com/deepdir/foo.txt | ||
| Zeile 501: | Zeile 610: | ||
=== scp === | === scp === | ||
| + | http://www.linuxtutorialblog.com/post/ssh-and-scp-howto-tips-tricks | ||
| + | |||
| + | Kopiert wird immer ''von nach'', der erste Server ist also der Quellserver | ||
| + | |||
| + | Es kann der Quell und der Zielserver oder beide ein Remoteserver sein. Im letzten Fall werden die Dateien direkt zwischen Quelle und Ziel transferiert. | ||
| + | |||
| + | '''Remote''' zu '''Lokal''' | ||
scp user@domain.com:/path/to/remote/file /path/to/local/file | scp user@domain.com:/path/to/remote/file /path/to/local/file | ||
| + | |||
| + | Lokal zu Remote mit '''Passwort''' und User für Remote | ||
| + | scp examplefile yourusername@yourserver:/home/yourusername/ | ||
| + | |||
| + | Von Remote '''zu aktuellem Verzeichnis''' auf Lokalem Server | ||
| + | scp yourusername@yourserver:/home/yourusername/examplefile . | ||
| + | |||
| + | '''Zwei Remote''' Server | ||
| + | scp yourusername@yourserver:/home/yourusername/examplefile yourusername2@yourserver2:/home/yourusername2/ | ||
| + | |||
| + | '''Alle Dateien''' in einem Verzeichnis kopieren | ||
| + | scp yourusername@yourserver:/home/yourusername/* . | ||
| + | |||
| + | Verzeichnis '''rekursiv''' kopieren | ||
| + | scp -r yourusername@yourserver:/home/yourusername/ . | ||
| + | |||
| + | Mit '''Bandbreitenlimit''' kopieren (für langsame Internetverbindungen) bandwidthlimit wird in kB/s angegeben) | ||
| + | scp -l bandwidthlimit yourusername@yourserver:/home/yourusername/* . | ||
Aktuelle Version vom 11. April 2019, 07:30 Uhr
Links[Bearbeiten]
http://cb.vu/unixtoolbox.xhtml
Shell auf all-inkl[Bearbeiten]
Bei all-inkl stehen nur einige Befehle zur Verfügung:
DATEIEN UND VERZEICHNISSE cat gibt den Inhalt einer Datei aus cat <file> cd in ein Verzeichnis wechseln cd <directory> chmod Zugriffsrechte einer Datei ändern chmod -R 777 <directory> cmp zwei Dateien vergleichen cmp <file1> <file2> cp kopieren von Dateien/Verzeichnissen cp <file1> <file2> diff zwei Textdateien/Verzeichnisse vergleichen diff <file1> <file2> du Speicherbedarf von Dateien/Verzeichnissen ermitteln du --max-depth=1 -h egrep, fgrep, grep in Dateien suchen grep -i <text> <file> file Dateityp ermitteln file -i <file> find nach Dateien suchen find -name "<file>" head gibt die Anfangszeilen einer Datei aus head <file> join Dateien zusammenführen less, more gibt den Inhalt einer Datei seitenweise aus more <file> ln setzt einen Link auf eine Datei/ein Verzeichnis ln -s <file1> <file2> ls Dateien/Verzeichnisse auflisten ls -al mc Midnight Commander mc md5sum, sha1sum, sum ermitteln der Prüfsumme einer Datei md5sum <file> mkdir erstellt ein neues Verzeichnis mkdir <directory> mv umbenennen/verschieben von Dateien/Verzeichnissen mv <file1> <file2> nl gibt den Inhalt einer Datei mit Zeilennummern aus nl <file> pwd gibt das aktuelle Verzeichnis aus pwd rm löschen von Dateien/Verzeichnissen rm <file> tail gibt den Inhalt einer Datei ab einer bestimmter Zeile aus tail -n 3 <file> touch Zeitstempel einer Datei ändern touch <file> wc Anzeige der Anzahl der Zeilen, Wörter und Zeichen in einer Datei wc <file> KOMPRIMIEREN UND ARCHIVIEREN bzip2/bunzip2 Dateien mit bzip2 (de-)komprimieren bunzip2 <file> gzip/gunzip Dateien mit gzip (de-)komprimieren gunzip <file> tar Dateien oder Dateibäume archivieren tar cfvz backup.tar.gz <directory> zcat, zless, zmore Inhalt von gzip-Archiven ausgeben zcat <file> zip, unzip Dateien mit zip (de-)komprimieren unzip <file> EDITOREN joe, mcedit, vi, nano editieren von Dateien mcedit <file> NETZWERK ftp herstellen einer FTP-Verbindung ftp <hostname> scp Dateien sicher über das Netzerk kopieren scp <user>@<hostname> . ssh eine sichere Verbindung mit einem anderen Rechner herstellen ssh <user>@<hostname> wget herunterladen von Dateien per HTTP/FTP wget <hostname>/<file> SCRIPTSPRACHEN php PHP Interpreter php <file> pear Pear perl Perl perl <file> MYSQL mysqldump Erstellen einer Datenbanksicherung mysqldump -u LOGIN -p'PASSWORT' LOGIN > dumpDATUM.sql mysql Aufbau einer MySQL Verbindung z.b. zum Einspielen einer Datenbanksicherung mysql -u LOGIN -p'PASSWORT' LOGIN < dumpDATUM.sql VERSIONSVERWALTUNG bzr Versionsverwaltung git Fast Version Control System svn Subversion-Client TERMINAL, SHELL, HINTERGRUNDPROZESSE < Eingabeumleitung <command> < <file> > Ausgabe in eine Datei umleiten <command> > <file> >> Ausgabe an eine Datei anhängen <command> >> <file> | Ausgabe umleiten find | grep <file> ., source lesen und ausführen von Befehlen aus einer Datei & starten von Prozessen im Hintergrund <command> & 2> umleiten der Fehlerausgabe <command> 2> <file> alias Kurznamen für einen Befehl setzen alias ll='ls -al' bg Prozesse im Hintergrund fortsetzen clear löschen des Bildschirminhaltes clear export exportieren von Umgebungsvariablen export <var> fg Prozesse im Vordergrund fortsetzen jobs angehaltene Prozesse/Hintergrundprozesse auflisten jobs printenv, set anzeigen/ändern der Umgebungsvariablen printenv reset wiederherstellen der Terminalzeichensatzes reset sleep schlafen legen eines Prozesses [Strg] + c bricht den aktuellen Vorgang in der Shell ab [Strg] + z hält den aktuellen Vorgang in der Shell an stty Terminaleinstellungen setzen/abfragen stty unalias Kurznamen für einen Befehl löschen unalias ll watch Befehl periodisch ausführen und Ausgabe anzeigen SONSTIGES csplit, split Dateien zerteilen cut Spalten oder Feldern aus Dateien herausschneiden date Datum und Uhrzeit anzeigen date echo Text ausgeben echo "Hallo Welt!" exit, logout beenden der aktuellen Sitzung exit expand umwandeln von Tabulatoren in Leerzeichen hostname eigenen Hostnamen ermitteln hostname iconv, recode konvertieren von Zeichensätzen id eigene Benutzer-/Gruppenkennung ermittelen id kill Signale an Prozesse senden sed transformieren von Zeichenketten time Zeitmessungen von Prozessen durchführen time <command> tr ersetzen von Zeichen uname anzeigen von Systeminformationen uname -a uniq Identische, aufeinander folgende Zeilen nur einmal ausgeben whoami eigenen Loginnamen ermittelen whoami
Die wichtigsten LINUX Befehle auf der Kommandozeile[Bearbeiten]
| Basics | |
| startx | startet das X-Window-System und eine grafische Benutzeroberfläche |
| logout | ordnungsgemäßes Abmelden von der Konsole |
| [BEFEHL] --help | gibt einen kurzen Hilfetext zum [BEFEHL] aus |
| man [BEFEHL] | zeigt die Manual-Page zum [BEFEHL] an |
| info [BEFEHL] | zeigt Dokument zu [BEFEHL] im Info-System an |
| shutdown -r now | Rechner neustarten |
| shutdown -h now | Rechner herunterfahren |
| Suchen | |
| whereis [PROGRAMM] | sucht in den Verzeichnissen der Umgebungsvariablen PATH nach [PROGRAMM] |
| find . | grep [DATEI] | sucht ausgehend vom aktuellen Verzeichnis nach [DATEI] |
| grep [SUCHSTRING] [DATEI] | durchsucht DATEI nach dem Suchbegriff [SUCHSTRING] |
| locate [DATEI] | durchsucht die Locate-Datenbank nach [DATEI] |
| Programme starten | |
| [PROG] | Programm [PROG], welches sich im Pfad befindet, starten |
| ./[PROG] | Programm [PROG], welches sich im aktuellen Verzeichnis befindet, starten |
| [PFAD]/[PROG] | Programm [PROG], welches sich im Verzeichnis [PFAD] befindet, starten |
| Navigation im Dateisystem | |
| pwd | gibt das aktuelle Verzeichnis aus |
| cd / | wechselt ins Hauptverzeichnis |
| cd .. | wechselt in das übergeordnete Verzeichnis |
| cd [VERZ] | wechselt ins Verzeichnis [VERZ] |
| cd - | wechselt in das vorherige Verzeichnis |
| cd | wechselt ins Home-Verzeichnis des Benutzers |
| Dateien | |
| cat [DATEI] | zeigt den Inhalt der Datei [DATEI] auf dem Bildschirm an |
| more [DATEI] | zeigt den Inhalt der Datei [DATEI] seitenweise an |
| less [DATEI] | wie more, man kann aber auch nach oben blättern |
| cp [DATEI1] [DATEI2] | kopiert Datei [DATEI1] in Datei [DATEI2] |
| mv [DATEI1] [DATEI2] | benennt Datei [DATEI1] in [DATEI2] um |
| mv [DATEI] [VERZ] | verschiebt Datei [DATEI] ins Verzeichnis [VERZ] |
| rm [DATEI] | löscht die Datei [DATEI] |
| touch [DATEI] | erzeugt die leere Datei [DATEI] |
| Verzeichnisse | |
| ls | kurze Liste des Verzeichnisinhaltes |
| ls -l | ausführliche Liste des Verzeichnisinhaltes |
| ls -la | alle Dateien des Verzeichnisses ausführlich auflisten |
| mkdir [VERZ] | neues Verzeichnis [VERZ] erstellen |
| rmdir [VERZ] | das leere Verzeichnis [VERZ] löschen |
| rm -rf [VERZ] | alle Dateien/Verzeichnisse unterhalb des Verzeichnisses [VERZ] löschen |
| Geräte partitionieren, formatieren, überprüfen, mounten | |
| fdisk [DEVICE] | Partitionierung der Festplatte [DEVICE] |
| mke2fs [DEVICE] | Anlegen eines ext2-Dateisystems auf dem Gerät [DEVICE] |
| fsck [DEVICE] | Gerät [DEVICE] auf Fehler überprüfen |
| mount /mnt/cdrom | bindet eine eingelegte CD-ROM in das Dateisystem ein |
| umount /mnt/cdrom | entfernt eine CD-ROM aus dem Dateisystem |
| Zugriffsrechte | |
| chmod [OPTIONEN] [DATEI] | ändert die Zugriffsrechte der Datei [DATEI] |
| chgrp [GRUPPE] [DATEI] | ändert die Gruppe der Datei [DATEI] in [GRUPPE] |
| chown [OWNER] [DATEI] | ändert den Eigentümer der Datei [DATEI] in [OWNER] |
| Systeminformationen | |
| mount | Ausgabe aller gemounteter Partitionen/Geräte |
| df | Ausgabe der Nutzung der gemounteten Geräte |
| date | Anzeige von Datum und Uhrzeit |
| free | gibt die Nutzung des Arbeitsspeichers aus |
| uptime | zeigt die Prozessorauslastung und -laufzeit an |
| top | zeigt die höchsten Ressourcenverbraucher an |
| ps ax | zeigt Informationen über laufende Prozesse an |
| kill [PID] | beendet den Prozess mit der Prozess-ID [PID] |
| killall [PROZESSNAME] | beendet alle Prozesse mit dem Namen [PROZESSNAME] (z. B. mozilla) |
| uname -a | gibt Kernel-Informationen aus |
| arch | zeigt die Prozessorfamilie an |
| Benutzerverwaltung | |
| id | gibt deinen Benutzernamen und die Gruppenmitgliedschaften aus |
| whoami | Wer bin ich? Ausgabe des Benutzernamens |
| who | Wer ist alles eingeloggt? Ausgabe der Benutzernamen, des Terminals und der Login-Zeit. |
| passwd | ändert das Passwort des aktuellen Benutzers |
| useradd -m [USERNAME] | legt den neuen Benutzer [USERNAME] an und erzeugt ein Homeverzeichnis |
| passwd [USERNAME] | ändert das Passwort des Benutzers [USERNAME] (nur als root) |
| userdel -r [USERNAME] | löscht den Benutzer [USERNAME] und sein Homeverzeichnis |
| groupadd [GRUPPE] | erzeugt eine neue Gruppe [GRUPPE] |
| groupdel [GRUPPE] | löscht die Gruppe [GRUPPE] |
| screen | |
| screen -S [name] | Erzeugt einen "Screen" den sich ein anderer Benutzer "holen" kann um die Aktionen zu beobachten |
| screen -x [name] | Hole dir den Screen "name" |
| STRG+D+A | Deattached den Screen (um wieder zur Konsole zu gelangen) |
| STRG+A+SPACE | Wechselt zwischen mehreren Screens |
| exit | Killt den Screen |
| screen -ls | Listet alle Screens |
Suchen und Finden[Bearbeiten]
Weitere Befehle[Bearbeiten]
diff und patch[Bearbeiten]
Siehe auch: Typo3 - Patch einspielen
Programmieren - Patch und Diff
Ein "diff" erzeugen mit dem GNU Programm diff
Syntax:
diff [-optionen ] dateiname1.php dateiname2.php
Beschreibung:
Diff vergleicht die beiden angegebenen Dateien und gibt auf die Standardausgabe aus, welche Zeilen wie geändert werden müssen. Ein "diff" kann dann unter Verwendung des GNU Programmes patch wieder in eine andere original Datei eingefügt werden, man nennt das auch Patchen. Das Programm patch weiß anhand der Informationen welche diff erzeugt hat, ganz genau an welcher Stelle (Zeile) was geändert werden muss.
Es besteht auch die Möglichkeit aus den Unterschieden von 2 Verzeichnissen ein "diff" zu erzeugen.
Wir erstellen erst mal ein "unified diff" mit Parameter -u (vereinheitlicht) aus zwei verschiedenen Dateien, diese Variante wird meistens angewendet bzw. gebraucht.
Die Ausgabe von diff wird dabei einfach mit > in eine neue Datei umgeleitet:
diff -u original.php gaenderte.php > meinpatch.diff
Wir erstellen nun ein "unified diff" aus zwei Verzeichnissen.
Entscheidend hierfür ist der Parameter -r (Vergleiche jegliche Unterverzeichnisse rekursiv).:
diff -ru originalverzeichnis/ gaendertverzeichnis/ > meindirpatch.diff
Einen Patch einspielen mit dem GNU Programm patch
Syntax:
patch [-optionen] < name_des_Patch.diff
Beschreibung:
Das Unixprogram patch manipuliert Quelltext anhand eines Patches. Es ist somit das Gegenstück zu dem Programm diff, das Patches erzeugt.
Zum Testen kann der Parameter --dry-run (Keine änderungen an Dateien, nur die Ausgabe was währe wenn ...) verwendet werden. Weiter ist eventuell auch noch der Parameter -b oder --backup zu empfehlen, da hiermit automatisch Sicherheitskopien der betreffenden Dateien gemacht werden.
Der Parameter -p1 bringt patch dazu, die Änderungen der Dateien, die in dem Patch angegeben sind, anzuwenden und den ersten Teil des Pfades zu den Dateien zu überspringen. Patches werden oft so erstellt, dass das Hauptverzeichnis des Quellcode-Baumes in dem Patch enthalten ist, sollen die Dateien aber von innerhalb des Hauptverzeichnisses gepatcht werden, muss patch der Parameter -p1 übergeben werden.
Zum Beispiel unter der Annahme der Dateiname in der Patchdatei war:
/u/howard/src/blurfl/blurfl.c
Ein setzen des Parameters -p0 würde die Datei nicht modifizieren,
Paramenter -p1 würde daraus u/howard/src/blurfl/blurfl.c ohne den führenden "/" machen ,
Parameter -p4 würde daraus blurfl/blurfl.c machen
und ohne -p würde es blurfl.c sein.
Mit dem Parameter -R kann man Änderungen eines einmal angewendeten Patches zurücknehmen.
patch -p1 < patchdatei.diff
wget, scp und curl[Bearbeiten]
Mit wget kann man Dateien von einem Server holen.
curl kann das gleiche und zusätzlich auch Dateien auf einen Server spielen. Außerdem kann es wenn richtig konfiguriert auch sftp und andere Protokolle.
scp ermöglicht ssh downloads
wget[Bearbeiten]
wget -> siehe auch z.B. im Kapitel Typo3 Installation unter Linux
curl[Bearbeiten]
curl - Tool zum Transfer von Daten von und zu einem Server. Diverse Protokolle möglich: (HTTP, HTTPS, FTP, FTPS, GOPHER, DICT, TELNET, LDAP or FILE)
curl kann ohne Benutzerinteraktion z.B. über Skripte ausgeführ werden.
# curl [options] [URL...]
Es gibt sehr viele Optionen.
Beispiele
Eine Webseite holen und auf der Standardausgabe (stdout) ausgeben:
# curl http://www.domain.com
Eine Webseite holen und in eine Datei speichern:
# curl http://www.domain.com -o "file1.txt"
Mehrere Dokumente holen und variable Ersetzungen mit dem aktuellen String der zu holenden URL durchführen:
# curl http://{one,two}.site.com -o "file_#1.txt"
To download go to http://curl.haxx.se Author: Daniel Stenberg
(Quelle: http://www.coolcommands.com/index.php?option=com_cccat&task=display&id=341 Zugriff am 26.1.)
Einfacher Download:
# curl -C - -O http://www.mirror.com/path/to/NeoOffice-Patch.dmg
Download mit Passwort
# curl -u username sftp://shell.example.com/deepdir/foo.txt
oder
curl -u username:password sftp://shell.example.com/deepdir/foo.txt
http://curl.netmirror.org/docs/manual.html
scp[Bearbeiten]
http://www.linuxtutorialblog.com/post/ssh-and-scp-howto-tips-tricks
Kopiert wird immer von nach, der erste Server ist also der Quellserver
Es kann der Quell und der Zielserver oder beide ein Remoteserver sein. Im letzten Fall werden die Dateien direkt zwischen Quelle und Ziel transferiert.
Remote zu Lokal
scp user@domain.com:/path/to/remote/file /path/to/local/file
Lokal zu Remote mit Passwort und User für Remote
scp examplefile yourusername@yourserver:/home/yourusername/
Von Remote zu aktuellem Verzeichnis auf Lokalem Server
scp yourusername@yourserver:/home/yourusername/examplefile .
Zwei Remote Server
scp yourusername@yourserver:/home/yourusername/examplefile yourusername2@yourserver2:/home/yourusername2/
Alle Dateien in einem Verzeichnis kopieren
scp yourusername@yourserver:/home/yourusername/* .
Verzeichnis rekursiv kopieren
scp -r yourusername@yourserver:/home/yourusername/ .
Mit Bandbreitenlimit kopieren (für langsame Internetverbindungen) bandwidthlimit wird in kB/s angegeben)
scp -l bandwidthlimit yourusername@yourserver:/home/yourusername/* .