GNU/Linux Tutorial
Erste Schritte mit GNU / Linux
Suche…
Hallo Welt
Geben Sie den folgenden Code in Ihr Terminal ein und drücken Sie die Eingabetaste :
echo "Hello World"
Dies wird die folgende Ausgabe erzeugen:
Hello World
Dateibearbeitung
Dateien und Verzeichnisse (ein anderer Name für Ordner) sind das Herzstück von Linux. Daher ist das Erstellen, Anzeigen, Verschieben und Löschen über die Befehlszeile sehr wichtig und sehr leistungsfähig. Mit diesen Dateibearbeitungsbefehlen können Sie dieselben Aufgaben ausführen, die ein grafischer Dateiexplorer ausführen würde.
Erstellen Sie eine leere Textdatei mit dem Namen myFile
:
touch myFile
myFile
myFirstFile
myFile
in myFirstFile
:
mv myFile myFirstFile
Anzeigen des Inhalts einer Datei:
cat myFirstFile
Anzeigen des Inhalts einer Datei mit Pager (jeweils eine Bildschirmseite):
less myFirstFile
Sehen Sie sich die ersten Zeilen einer Datei an:
head myFirstFile
Sehen Sie sich die letzten Zeilen einer Datei an:
tail myFirstFile
Bearbeiten Sie eine Datei:
vi myFirstFile
Sehen Sie, welche Dateien sich in Ihrem aktuellen Arbeitsverzeichnis befinden:
ls
Erstellen Sie ein leeres Verzeichnis namens myFirstDirectory
:
mkdir myFirstDirectory
Mehrpfadverzeichnis erstellen: (erstellt zwei Verzeichnisse, src und myFirstDirectory)
mkdir -p src/myFirstDirectory
Verschieben Sie die Datei in das Verzeichnis:
mv myFirstFile myFirstDirectory/
Sie können die Datei auch umbenennen:
user@linux-computer:~$ mv myFirstFile secondFileName
Ändern Sie das aktuelle Arbeitsverzeichnis in myFirstDirectory
:
cd myFirstDirectory
Eine Datei löschen:
rm myFirstFile
Wechseln Sie in das übergeordnete Verzeichnis (das als ..
):
cd ..
Löschen Sie ein leeres Verzeichnis:
rmdir myFirstDirectory
Löschen Sie ein nicht leeres Verzeichnis (dh enthält Dateien und / oder andere Verzeichnisse):
rm -rf myFirstDirectory
Beachten Sie, dass Sie beim Löschen von Verzeichnissen das. ./
Not /
löschen, das Ihr gesamtes Dateisystem löscht.
Datei- / Verzeichnisdetails
Der Befehl ls
hat mehrere Optionen, die zusammen verwendet werden können, um weitere Informationen anzuzeigen.
Details / Rechte
Die Option l
zeigt die Dateiberechtigungen, die Größe und das Datum der letzten Änderung an. Wenn das Stammverzeichnis also ein Verzeichnis mit dem Namen test
und eine Datei someFile
enthält, someFile
der Befehl:
user@linux-computer:~$ ls -l
Würde so etwas ausgeben
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
Die Berechtigungen haben das Format von drwxrwxrwx
. Das erste Zeichen steht für den Dateityp d
wenn es sich um ein Verzeichnis handelt -
ansonsten. Die nächsten drei rwx
sind die Berechtigungen, die der Benutzer über die Datei hat, die nächsten drei sind die Berechtigungen, die die Gruppe über die Datei hat, und die letzten drei sind die Berechtigungen, die jeder andere Benutzer über die Datei hat.
Das r
von rwx
steht dafür, ob eine Datei gelesen werden kann, das w
steht für die Änderung der Datei und das x
für die Ausführung der Datei. Falls eine Genehmigung nicht erteilt wird ein -
wird anstelle von seiner r
, w
oder x
.
Von oben aus kann der user
someFile.txt
lesen und ändern, aber die Gruppe hat nur someFile.txt
.
Um die Rechte zu ändern, können Sie den Befehl chmod ### fileName
wenn Sie über Sudo-Rechte verfügen. r
wird durch einen Wert von 4 dargestellt, w
wird durch 2 dargestellt, und x
wird durch eine 1 dargestellt. Wenn Sie also nur den Inhalt des test
ändern möchten
Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5
Der ganze Befehl ist also
chmod 755 test
ls -l
nun ein ls -l
würde das ungefähr so aussehen
drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
Lesbare Größe
In Verbindung mit der Option l
zeigt die Option h
Benutzer lesbaren Dateigrößen. Laufen
user@linux-computer:~$ ls -lh
Würde ausgeben:
total 4166
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
Versteckt
Um zu sehen , versteckte Dateien , die verwenden a
Option. Zum Beispiel
user@linux-computer:~$ ls -a
Könnte auflisten
.profile
someFile.txt
test
Gesamtverzeichnisgröße
Um die Größe des aktuellen Verzeichnisses anzuzeigen, verwenden Sie die Option s
(die Option h
kann auch verwendet werden, um die Größe lesbarer zu machen).
user@linux-computer:~$ ls -s
Ausgänge
total 4166
someFile.txt test
Rekursive Ansicht
Sagen wir test
hatte eine Datei anotherFile
und man wollte es aus dem Stammordner , um zu sehen, könnten Sie die verwenden R
- Option , die die rekursive Baumliste würde.
user@linux-computer:~$ ls -R
Ausgänge
.:
someFile.txt test
./test:
anotherFile
Grundlegende Linux-Dienstprogramme
Linux hat einen Befehl für fast alle Aufgaben und die meisten von ihnen sind intuitiv und leicht zu interpretieren.
Hilfe in Linux erhalten
Befehl | Verwendbarkeit |
---|---|
man <name> | Lesen Sie die Handbuchseite von <Name>. |
man <section> <name> | Lesen Sie die Handbuchseite von <Name>, die sich auf den angegebenen Abschnitt bezieht. |
man -k <editor> | Alle Software ausgeben, deren Manpages das Schlüsselwort <editor> enthalten. |
man -K <keyword> | Gibt alle Manpages aus, die <keyword> enthalten. |
apropos <editor> | Output alle Anwendungen , deren eine Zeile Beschreibung stimmt mit dem Wort - Editor. Wenn Sie den Namen der Anwendung nicht abrufen können, verwenden Sie diesen Befehl. |
help | In der Bash-Shell zeigt dies die Liste aller verfügbaren Bash-Befehle an. |
help <name> | In der Bash-Shell werden hier die Informationen zum Bash-Befehl <Name> angezeigt. |
info <name> | Alle Informationen zu <Name> anzeigen. |
dpkg -l | Eine Liste aller installierten Pakete auf einem Debian-basierten System ausgeben. |
dpkg -L packageName | Listet die installierten Dateien und Pfadangaben für ein bestimmtes Paket unter Debian auf. |
dpkg -l | grep -i <edit> | Geben Sie alle installierten .deb-Pakete unabhängig von den Fällen mit <edit> zurück. |
less /var/lib/dpkg/available | Beschreibungen aller verfügbaren Pakete zurückgeben. |
whatis vim | Listen Sie eine einzeilige Beschreibung von vim auf. |
<command-name> --help | Zeigt Informationen zur Verwendung des <Werkzeugnamens> an. Manchmal funktioniert auch command -h , aber nicht für alle Befehle. |
Benutzeridentifikation und wer ist wer in der Linux-Welt
Befehl | Verwendbarkeit |
---|---|
hostname | Zeigt den Hostnamen des Systems an. |
hostname -f | Zeigt den vollständig qualifizierten Domänennamen (FQDN) des Systems an. |
passwd | Passwort des aktuellen Benutzers ändern. |
whoami | Benutzername der am Terminal angemeldeten Benutzer. |
who | Liste aller Benutzer, die aktuell als Benutzer angemeldet sind. |
w | Aktuellen Systemstatus, Zeit, Dauer, Liste der aktuell im System angemeldeten Benutzer und andere Benutzerinformationen anzeigen. |
last | Wer hat das System kürzlich genutzt? |
last root | Wann war root das letzte Mal als Benutzer angemeldet? |
lastb | Zeigt alle fehlerhaften Anmeldeversuche im System an. |
chmod | Berechtigungen ändern - Lesen, Schreiben, Ausführen einer Datei oder eines Verzeichnisses. |
Prozessbezogene Informationen
Befehl | Verwendbarkeit |
---|---|
top | Listen Sie alle Prozesse nach ihrer aktuellen Nutzung der Systemressourcen auf. Zeigt eine ständig aktualisierte Anzeige von Prozessen an (Standardeinstellung 3 Sekunden). Benutzen Sie die q Taste, um den oberen Bereich zu verlassen. |
ps | Listet Prozesse auf, die aktuell in der aktuellen Shell-Sitzung ausgeführt werden |
ps -u root | Listen Sie alle Prozesse und Befehle auf, die root ausgeführt wird |
ps aux | Alle Prozesse aller Benutzer des aktuellen Systems auflisten |
Dateiverwaltungsbefehle
Linux verwendet einige Konventionen für vorhandene und übergeordnete Verzeichnisse. Dies kann für Anfänger etwas verwirrend sein.
Wenn Sie sich unter Linux in einem Terminal befinden, befinden Sie sich in dem sogenannten Arbeitsverzeichnis . Oft zeigt Ihre Eingabeaufforderung entweder das vollständige Arbeitsverzeichnis oder nur den letzten Teil dieses Verzeichnisses an. Ihre Eingabeaufforderung könnte wie folgt aussehen:
user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $
Das besagt, dass Ihr aktuelles Arbeitsverzeichnis /home/user/somedir
.
In Linux steht ..
für das übergeordnete Verzeichnis und .
repräsentiert das aktuelle Verzeichnis.
Wenn das aktuelle Verzeichnis /home/user/somedir
, cd ../somedir
das Arbeitsverzeichnis daher nicht.
In der folgenden Tabelle sind einige der am häufigsten verwendeten Dateiverwaltungsbefehle aufgeführt
Verzeichnisnavigation
Befehl | Nützlichkeit |
---|---|
pwd | Rufen Sie den vollständigen Pfad des aktuellen Arbeitsverzeichnisses ab. |
cd - | Navigieren Sie zum letzten Verzeichnis, in dem Sie gearbeitet haben. |
cd ~ oder nur cd | Navigieren Sie zum Heimatverzeichnis des aktuellen Benutzers. |
cd .. | Wechseln Sie in das übergeordnete Verzeichnis des aktuellen Verzeichnisses (beachten Sie den Abstand zwischen cd und .. ) |
Dateien in einem Verzeichnis auflisten
Befehl | Nützlichkeit |
---|---|
ls -l | Listen Sie die Dateien und Verzeichnisse im aktuellen Verzeichnis im langen Format (Tabelle) auf (Es wird empfohlen, -l mit ls zu verwenden, um die Lesbarkeit zu verbessern). |
ls -ld dir-name | Liste Informationen über das Verzeichnis dir-name anstelle seines Inhalts. |
ls -a | Listen Sie alle Dateien auf, einschließlich der versteckten (Dateinamen, die mit einem . Beginnen, sind versteckte Dateien in Linux). |
ls -F | Hängt ein Symbol am Ende eines Dateinamens an, um den Typ anzugeben ( * bedeutet ausführbar, / bedeutet Verzeichnis, @ bedeutet symbolischer Link, = bedeutet Socket, | bedeutet named pipe, > bedeutet Tür). |
ls -lt | Listen Sie die Dateien nach der zuletzt geänderten Zeit sortiert auf, wobei die zuletzt geänderten Dateien oben angezeigt werden (Die Option -l ermöglicht die Verwendung des langen Formats, das die Lesbarkeit verbessert). |
ls -lh | Listen Sie die Dateigrößen in einem für Menschen lesbaren Format auf. |
ls -lR | Zeigt alle Unterverzeichnisse rekursiv an. |
tree | Erzeugt eine Baumdarstellung des Dateisystems ab dem aktuellen Verzeichnis. |
Datei / Verzeichnis erstellen, kopieren und entfernen
Befehl | Nützlichkeit |
---|---|
cp -p source destination | Kopiert die Datei von der source zum Ziel . -p steht für die Erhaltung. Die ursprünglichen Attribute der Datei werden beim Kopieren wie Eigentümer, Zeitstempel, Gruppe, Berechtigungen usw. beibehalten. |
cp -R source_dir destination_dir | Kopiert das Quellverzeichnis rekursiv an das angegebene Ziel. |
mv file1 file2 | In Linux gibt es keinen Umbenennungsbefehl . Daher verschiebt / benennt mv die Datei1 in Datei2. |
rm -i filename | Bittet Sie vor jeder Dateientfernung um Bestätigung. Wenn Sie ein neuer Benutzer der LINUX COMMAND LINE sind, sollten Sie immer rm -i . Sie können mehrere Dateien angeben. |
rm -R dir-name | Wird das Verzeichnis entfernen dir-name rekursiv. |
rm -rf dir-name | Wird entfernen Sie das Verzeichnis dir rekursiv, ignoriert nicht vorhandene Dateien und wird nie für irgendetwas veranlassen . VORSICHTIGER VERWENDUNG DIESES BEFEHLS! Sie können mehrere Verzeichnisse angeben. |
rmdir dir-name | Wird das Verzeichnis entfernen dir-name , wenn es leer ist. Dieser Befehl kann nur leere Verzeichnisse entfernen. |
mkdir dir-name | Erstellen Sie ein Verzeichnis dir-name . |
mkdir -p dir-name/dir-name | Erstellen Sie eine Verzeichnishierarchie. Erstellen Sie nach Bedarf übergeordnete Verzeichnisse, falls diese nicht vorhanden sind. Sie können mehrere Verzeichnisse angeben. |
touch filename | Erstellen Sie einen filename , falls dieser nicht vorhanden ist. Andernfalls ändern Sie den Zeitstempel der Datei auf den aktuellen Zeitpunkt. |
Datei- / Verzeichnisberechtigungen und Gruppen
Befehl | Nützlichkeit |
---|---|
chmod <specification> filename | Ändern Sie die Dateiberechtigungen. Spezifikationen = u Benutzer, g Gruppe, o andere, + Berechtigung hinzufügen, - entfernen, r lesen, w schreiben, x ausführen. |
chmod -R <specification> dir-name | Ändern Sie die Berechtigungen eines Verzeichnisses rekursiv. Verwenden Sie diesen Befehl, um die Berechtigung eines Verzeichnisses und aller Elemente in diesem Verzeichnis zu ändern. |
chmod go=+r myfile | Fügen Sie Leseberechtigung für den Eigentümer und die Gruppe hinzu. |
chmod a +rwx myfile | Erlauben Sie allen Benutzern, myfile zu lesen, zu schreiben oder auszuführen. |
chmod go -r myfile | Entfernen Sie die Leseberechtigung von der Gruppe und anderen. |
chown owner1 filename | Ändern Sie den Besitz einer Datei in user owner1 . |
chgrp grp_owner filename | Ändern Sie den primären Gruppeninhalt der Datei filename in Gruppe grp_owner . |
chgrp -R grp_owner dir-name | Ändern Sie primäre Gruppenzugehörigkeit des Verzeichnisses dir-name zu einer Gruppe grp_owner rekursiv. Verwenden Sie diesen Befehl, um den Gruppeneigentum eines Verzeichnisses und aller Elemente in diesem Verzeichnis zu ändern. |
Nützliche Verknüpfungen
Das Terminal verwenden
Bei den Beispielen in diesem Dokument wird davon ausgegangen, dass Sie eine POSIX-kompatible Shell (z. B. bash , sh , zsh , ksh ) verwenden.
Große Teile der GNU / Linux-Funktionalität werden mit dem Terminal erzielt. Die meisten Linux-Distributionen enthalten Terminalemulatoren, mit denen Benutzer mit einer Shell von ihrer Desktop-Umgebung aus interagieren können. Eine Shell ist ein Befehlszeileninterpreter, der vom Benutzer eingegebene Befehle ausführt. Bash (Bourne Again SHell) ist eine übliche Standardshell unter vielen Linux-Distributionen und die Standardshell für macOS.
Diese Verknüpfungen funktionieren, wenn Sie Bash mit den Emacs- Tastenkombinationen verwenden (standardmäßig eingestellt):
Terminal öffnen
- Strg + Alt + T oder Super + T
Cursorbewegung
- Strg + A Geht zum Anfang der Zeile, in der Sie gerade schreiben.
- Strg + E Geht zum Ende der Zeile, in der Sie gerade schreiben.
- Strg + XX Zwischen dem Zeilenanfang und der aktuellen Position des Cursors wechseln.
- Alt + F Bewegt den Cursor ein Wort in der aktuellen Zeile vor.
- Alt + B Bewegt den Cursor ein Wort in der aktuellen Zeile zurück.
- Strg + F Bewegt den Cursor in der aktuellen Zeile um ein Zeichen vorwärts.
- Strg + B Bewegt den Cursor ein Zeichen in der aktuellen Zeile zurück.
Textmanipulation
- Strg + U Schneidet die Linie von der aktuellen Position bis zum Anfang der Zeile aus und fügt sie der Zwischenablage hinzu. Wenn Sie sich am Ende der Zeile befinden, schneiden Sie die gesamte Zeile ab.
- Strg + K Schneidet die Linie von der aktuellen Position bis zum Ende der Linie aus und fügt sie der Zwischenablage hinzu. Wenn Sie sich am Anfang der Zeile befinden, schneiden Sie die gesamte Zeile aus.
- Strg + W Löscht das Wort vor dem Cursor und fügt es der Zwischenablage hinzu.
- Strg + Y Fügen Sie das letzte aus der Zwischenablage zuletzt ausgeschnittene Objekt ein (machen Sie den letzten Löschvorgang an der aktuellen Cursorposition rückgängig).
- Alt + T Tausche die letzten beiden Wörter vor dem Cursor aus.
- Alt + L Kleinbuchstaben vom Cursor bis zum Wortende verwenden.
- Alt + U Großbuchstaben vom Cursor bis zum Wortende verwenden.
- Alt + C Groß- / Kleinschreibung bis zum Wortende beginnend am Cursor (ganzes Wort, wenn sich der Cursor am Wortanfang befindet).
- Alt + D Löscht bis zum Wortende, beginnend am Cursor (ganzes Wort, wenn sich der Cursor am Wortanfang befindet).
- Alt +. Gibt das letzte Wort aus, das im vorherigen Befehl geschrieben wurde.
- Strg + T Tausche die letzten beiden Zeichen vor dem Cursor.
Verlaufszugriff
- Strg + R Ermöglicht das Durchsuchen zuvor verwendeter Befehle.
- Strg + G Verlässt den Verlaufssuchmodus, ohne einen Befehl auszuführen.
- Strg + J Ermöglicht Ihnen, den aktuell übereinstimmenden Befehl in die Befehlszeile zu kopieren, ohne ihn auszuführen, sodass Sie vor dem Ausführen des Befehls Änderungen vornehmen können.
- Alt + R Alle Änderungen an einem Befehl, den Sie aus Ihrem Verlauf gezogen haben, werden wiederhergestellt, wenn Sie ihn bearbeitet haben.
- Strg + P Zeigt den zuletzt ausgeführten Befehl an, dh durch den Befehlsverlauf zurückgehen (Ähnlich wie der Aufwärtspfeil).
- Strg + N Zeigt den nächsten ausgeführten Befehl an, dh vorwärts durch den Befehlsverlauf (ähnlicher Pfeil wie der Pfeil nach unten).
Terminalsteuerung
- Strg + L Löscht den Bildschirm, ähnlich dem Befehl zum Löschen.
- Strg + S Stoppt alle Ausgaben auf dem Bildschirm. Dies ist nützlich, wenn Befehle mit vielen langen Ausgaben ausgeführt werden. Der laufende Befehl wird dadurch jedoch nicht angehalten.
- Strg + Q Setzen Sie die Ausgabe auf dem Bildschirm fort, nachdem Sie sie mit Strg + S angehalten haben.
- Strg + C Beendet den aktuell laufenden Prozess und gibt die Eingabeaufforderung zurück.
- Strg + D Melden Sie sich von der aktuellen Shell-Sitzung ab, ähnlich wie der Befehl exit oder logout. Dient in einigen Befehlen als Signal für das Dateiende, um anzuzeigen, dass ein Dateiende erreicht wurde.
- Strg + Z Unterbricht (Pause) den aktuell ausgeführten Vordergrundprozess, wodurch die Shell-Eingabeaufforderung zurückgegeben wird. Sie können dann den Befehl
bg
damit dieser Prozess im Hintergrund ausgeführt werden kann. Um diesen Prozess wieder in den Vordergrund zu bringen, verwenden Sie den Befehlfg
. Verwenden Sie den Befehljobs
, um alle Hintergrundprozesse anzuzeigen. - Registerkarte Autovervollständigen Dateien und Verzeichnisnamen.
- Tab Tab Zeigt alle Möglichkeiten, wenn eingegebene Zeichen nicht eindeutig mit einem Datei- oder Verzeichnisnamen übereinstimmen.
Spezielle Charaktere
- Strg + H Entspricht der Rücktaste.
- Strg + J Wie Rückgabe (historisch Zeilenvorschub).
- Strg + M Entspricht der Rückgabe (historisch Wagenrücklauf).
- Strg + I Wie Tab.
- Strg + G Klingelzeichen.
- Strg + @ Nullzeichen.
- Esc Deadkey entspricht dem Alt- Modifizierer.
Terminal schließen
- Strg + Umschalt + W Um die Registerkarte "Terminal" zu schließen.
- Strg + Umschalt + Q Um das gesamte Terminal zu schließen.
Alternativ können Sie mit set -o vi
zu den vi- Tastenkombinationen in bash wechseln. Verwenden Sie set -o emacs
, um zurück zu den emacs- Tastenkombinationen zu wechseln.
Suchen nach Dateien anhand von Mustern in Name / Inhalt
Eine häufige Aufgabe eines Benutzers, der die Linux-Befehlszeile (Shell) verwendet, ist die Suche nach Dateien / Verzeichnissen mit einem bestimmten Namen oder mit einem bestimmten Text. Es gibt zwei Befehle, mit denen Sie sich vertraut machen sollten, um dies zu erreichen:
Dateien nach Namen suchen
find /var/www -name '*.css'
Dadurch wird der vollständige Pfad / Dateiname für alle Dateien unter /var/www
, die auf .css
enden. Beispielausgabe:
/var/www/html/text-cursor.css
/var/www/html/style.css
Für mehr Information:
man find
Finden Sie Dateien, die Text enthalten
grep font /var/www/html/style.css
Dadurch werden alle Zeilen drucken Sie das Muster enthält font
in der angegebenen Datei. Beispielausgabe:
font-weight: bold;
font-family: monospace;
Ein anderes Beispiel:
grep font /var/www/html/
Das funktioniert nicht so, wie Sie gehofft haben. Du kriegst:
grep: /var/www/html/: Is a directory
Sie müssen rekursiv grep
machen, damit es funktioniert, indem Sie die Option -R
:
grep -R font /var/www/html/
Hey schön! Schauen Sie sich die Ausgabe von diesem an:
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
Beachten Sie, dass wenn grep
mit mehreren Dateien übereinstimmt, den übereinstimmenden Zeilen die Dateinamen vorangestellt werden. Sie können die Option -h
, um das zu löschen, wenn Sie möchten.
Für mehr Information:
man grep