Fatmawati Achmad Zaenuri / Shutterstock.com
install
ist ein vielseitiger Befehl zum Kopieren von Dateien unter Linux und MacOS. Es ist perfekt für Power-User, die Effizienz suchen. Lesen Sie diesen Artikel, um herauszufinden, wie Sie intelligenter arbeiten können – nicht härter.
Warten Sie – es ist nicht für die Installation von Software?
Das install
Der Befehl hat möglicherweise den irreführendsten Namen aller Linux-Befehle. Es wird keine Software installiert. Wenn Sie versuchen, ein Softwarepaket über die Befehlszeile in Ubuntu oder einer anderen Debian-basierten Distribution zu installieren, verwenden Sie die apt-get
Befehl. Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution, z. dnf
auf Fedora oder zypper
auf openSUSE.
Was macht die Installation?
In einer Nussschale install
kombiniert Elemente aus dem cp
((Kopieren), chown
((Besitzer wechseln), chmod
((Modus ändern), mkdir
((Verzeichnis erstellen), und strip
((Streifensymbole) Befehle. Damit können Sie Funktionen aus allen Funktionen in einer einzigen Aktion verwenden.
Das install
Befehl kann:
- Kopieren Sie Dateien wie die
cp
Befehl.
- Wählen Sie aus, ob vorhandene Dateien überschrieben werden sollen.
- Erstellen Sie das Zielverzeichnis, wenn es nicht vorhanden ist, wie z
mkdir
.
- Setzen Sie die Benutzerberechtigungsflags der Dateien genau wie die
chmod
Befehl.
- Legen Sie den Eigentümer der Dateien fest, genau wie beim
chown
Befehl.
- Entfernen Sie nicht unbedingt erforderliches Gepäck aus ausführbaren Dateien, genau wie das
strip
Befehl.
Trotz all dieser Funktionalität ist die install
Befehl hat nicht auch viele Optionen mit zu kämpfen.

Wann würden Sie es verwenden
Das install
Befehl wird wahrscheinlich nicht jeden Tag verwendet. Es ist nützlich, aber nur für bestimmte Situationen. Ein Szenario wo install
kommt zur Geltung ist die Softwareentwicklung. Angenommen, Sie programmieren ein neues Dienstprogramm. Sie müssen Tests außerhalb der Entwicklungsumgebung durchführen. Dazu müssen Sie die neuen Programmdateien in ein Testverzeichnis kopieren. Das Testverzeichnis muss möglicherweise erstellt werden, und Sie müssen die richtigen Berechtigungen und den richtigen Besitz für die Dateien festlegen.
Da die Entwicklung eine iterative Aktivität ist, können Sie diese Abfolge von Aktionen viele, viele Male ausführen. Das install
Befehl erledigt das ganze schwere Heben für Sie. Wenn Ihr neues Dienstprogramm zur Bereitstellung bereit ist, können Sie es schließlich verwenden install
um es mit den richtigen Berechtigungen an seinen endgültigen Arbeitsort zu kopieren.
Ein Beispiel
Ein Programmierer arbeitet an einem solchen neuen Dienstprogramm namens ana
. Es besteht aus einer ausführbaren Binärdatei und einer Datenbank. Nach dem Testen muss es kopiert werden /usr/local/bin
um es allen Benutzern des Linux-Systems zur Verfügung zu stellen. Sie müssen die Dateinamen und Verzeichnispfade in unserem Beispiel durch die Dateien und Pfade ersetzen, die Sie bei der Verwendung auf Ihrem Computer verwenden install
.
Bis es zur Veröffentlichung bereit ist, wird es in einem Verzeichnis namens getestet ~/test/ana
. Mitglieder von geek
Die Gruppe verfügt über Lese- und Ausführungsberechtigungen. Andere Benutzer haben ebenfalls Lese- und Ausführungsberechtigungen. Das install
Befehl verwendet die gleiche numerische Darstellung für Berechtigungen wie chmod
tut. Unser Programmierer hat entschieden, dass die Berechtigungen wie folgt festgelegt werden müssen:
- Besitzer: Lesen, schreiben und ausführen.
- Gruppe: Lesen und ausführen.
- Andere: Nur ausführen.
Wie man das benutzt install
Befehl
Das Arbeitsverzeichnis unseres fiktiven Programmierers ist ~/work
. Er hat das Programm geschrieben, kompiliert und eine Binärdatei namens erstellt ana
. Er hat bereits die Datenbankdatei erstellt, die ana
arbeitet mit, Words.db
. Beide Dateien sind also zum Testen bereit. Schauen wir sie uns an:
ls -l ana Words.db

Das ana
Das Dienstprogramm, das er gerade geschrieben hat, erstellt Anagramme aus einer Phrase, die in der Befehlszeile angegeben ist. Überprüfungstests sind recht einfach.

Unser Programmierer hat aufgerufen ana
mit der Phrase „Keks“ und alles scheint gut. Er möchte nun diese beiden Dateien in die kopieren ~/test/ana
Verzeichnis, um festzustellen, ob das neue Dienstprogramm außerhalb der Entwicklungsumgebung ordnungsgemäß funktioniert. Er gibt den folgenden Befehl aus:
install -D -v ana Words.db -t ~/test/ana

Die in der Befehlszeile verwendeten Optionen waren:
- D.: Erstellen Sie bei Bedarf Verzeichnisse, einschließlich übergeordneter Verzeichnisse.
- v: Verbose, liste jedes Verzeichnis auf, während es erstellt wird, und jede Dateikopie, während es ausgeführt wird.
- t: Zielverzeichnis.
Wir können das sehen install
schafft die ~/test
Verzeichnis und erstellt dann die ~/test/ana
Verzeichnis. Die Dateien werden einzeln aufgelistet, wenn sie in das Zielverzeichnis kopiert werden.
Auflisten der Dateien in ~/test/ana
bestätigt, dass sie korrekt kopiert wurden.
ls -l

Der nächste Schritt ist das Testen der ana
Dienstprogramm durch Aufrufen in der ~/test/ana
Verzeichnis.

Das Dienstprogramm funktioniert wie erwartet, was großartig ist. Die Berechtigungen sind jedoch nicht korrekt. Die Anforderung besteht darin, Mitglieder der Gruppe festzulegen geek
Lese- und Ausführungsberechtigungen haben und nur für andere Benutzer ausgeführt werden.
Wir können diese beiden Probleme ganz einfach mit dem folgenden Befehl lösen. Beachten Sie die Verwendung von sudo
um den Befehl mit Root-Berechtigungen auszuführen. Das -o
und -g
und Optionen erfordern dies. Wir werden nach unserem Passwort gefragt, wenn wir den Befehl erteilen.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

- Das
-b
Die Option (Sicherung) erstellt Sicherungen der Dateien, bevor sie überschrieben werden.
- Das
-S
Die Option (Suffix) definiert das Suffix für die Sicherungsdateien. Wenn Sie kein Suffix angeben a ~
(Tilde) wird verwendet. Wir fragen install
ein Suffix von verwenden .bak
.
- Wir setzen den Besitzer der Datei auf
dave
Verwendung der -o
(Eigentümer) Option.
- Das
-g
Die Option (Gruppe) erfordert den Namen einer Gruppe. Dies wird zur Eigentümergruppe der Dateien. Die Gruppe, die wir verwenden werden, heißt geek
.
- Das
-m
Mit der Option (Modus) werden die Dateimodi für die Dateien unter Verwendung des Standards festgelegt chmod
numerische Syntax.
Wir brauchen das nicht mehr zu benutzen -D
Option (Verzeichnisse erstellen), da wir wissen, dass das Testverzeichnis bereits vorhanden ist. Wir haben auch das weggelassen -v
(ausführliche) Option. Auflistung der Dateien in unserem ~/test/ana
Verzeichnis zeigt uns die Dateidetails:
ls -l

Dies bestätigt, dass alle unsere Anforderungen erfüllt wurden.
- Die Dateien wurden in das Testverzeichnis kopiert.
- Die Berechtigungen wurden korrekt festgelegt.
dave
ist der Besitzer der Dateien.
- Das
geek
Gruppe ist die Eigentümergruppe der beiden Dateien.
- Von jeder Datei mit den Namen ana.bak und Words.db.bak wurden Sicherungskopien erstellt.
All dies wurde mit einem Befehl erreicht. Ordentlich.
Unser Programmierer nimmt einige letzte Änderungen am Dienstprogramm vor und kompiliert sie neu. Die geänderten Dateien müssen in die kopiert werden ~/test/ana
Verzeichnis aus dem ~/work
Verzeichnis. Wir können dies tun, indem wir das verwenden -C
(Vergleichs-) Option. Wenn die Quelldatei und die Zieldatei identisch sind, wird die Quelldatei nicht kopiert.
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

Das Auflisten der Dateien im Zielverzeichnis zeigt uns, dass die Dateigröße des ana
Datei hat sich geändert. Es ist größer als das ana.bak
Datei. Der Zeitstempel auf ana
hat sich auch geändert. Diese Änderungen sind darauf zurückzuführen, dass die neue Version der Datei hier kopiert wurde.
ls -l

Die Dateigröße und der Zeitstempel des Words.db
Datei haben sich nicht geändert. Es wurden keine Änderungen an der vorgenommen Words.db
Datei, so wurde es nicht kopiert. Bei einem Projekt mit vielen Dateien die -C
Die Option (Vergleichen) kann viel Zeit und Festplattenabwanderung sparen, indem nur die geänderten Dateien kopiert werden.
Der Programmierer hat erneut getestet, dass die ana
Dienstprogramm weiterhin in Betrieb.
Es ist Zeit zu verwenden install
um die Dateien in die zu kopieren /usr/local/bin
Verzeichnis. Dadurch wird das neue Dienstprogramm für alle Benutzer dieses Linux-Computers verfügbar. Wir wissen das /usr/local/bin
existiert, so dass wir dieses Verzeichnis nicht erstellen müssen. Wir können eine modifizierte Version unseres letzten Befehls verwenden.
Wir haben das Zielverzeichnis geändert /usr/local/bin
. Wir haben das entfernt -C
Option (Vergleichen), da sich noch keine Kopien dieser Dateien im Zielverzeichnis befinden und daher nichts zum Vergleichen vorhanden ist. Ebenso gibt es nichts zu sichern, so dass wir die entfernen können -b
(Backup) Option und die -S
Option (Suffix).
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

Wir können auflisten, dass die Dateien angekommen sind /usr/local/bin
::
ls -l

Und als letzten Test wechseln wir das Verzeichnis in unser Ausgangsverzeichnis und prüfen, ob wir von dort aus unser neues Dienstprogramm aufrufen können.

Beachten Sie, dass wir das nicht vorwegnehmen mussten ana
Befehl mit ./
was bedeutet, dass es von läuft /usr/local/bin
. Mission erfüllt.
Wir haben erwähnt, dass durch die Installation redundante Symboltabellen und anderes Gepäck aus der Binärdatei entfernt werden können, um die Größe zu verringern. Lass uns das jetzt machen. Beachten Sie, dass der folgende Befehl Words.db nicht enthält. Dies liegt daran, dass Words.db eine Datenbankdatei und keine ausführbare Binärdatei ist. Kopieren und Verkleinern der Binärdatei ana
Wir können den folgenden Befehl verwenden. Wir haben die Option -s (Verkleinern) mit einem Kleinbuchstaben „s“ hinzugefügt. Wir haben die Option -b (Backup) und die Option -S (Suffix) mit einem Großbuchstaben „S“ hinzugefügt.
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

Auflisten der Dateien in /usr/local/bin
ermöglicht es uns, die Größe der zu vergleichen ana
Datei mit ihrer Backup-Version. Das ana
Die Datei wurde auf fast 60% ihrer vorherigen Größe reduziert.
ls -l /usr/local/bin

In Summe
Die … Die install
Befehl richtet sich an eine hübsche Nischenverwendung. Für viele Menschen wird es nicht Tag für Tag oder möglicherweise von Monat zu Monat verwendet. Trotzdem ist die install
Befehl ist ein gutes Werkzeug, um vertraut zu sein und in Ihrem Arsenal an Tricks zu haben. In den Fällen, in denen Sie es benötigen, belohnt es Ihre Lernkurve mit Effizienzsteigerungen, Einfachheit und einfach weniger Tastenanschlägen.