


Vertiefendes Verständnis der Bedeutung von 2>&1 in der Linux-Shell (die umfassendste im gesamten Netzwerk, Sie werden es verstehen, nachdem Sie es gelesen haben)
Wofür stehen 1 und 2 unter Linux?
Im Linux-System ist 0 1 2 ein Dateideskriptor
Wie Sie der obigen Tabelle entnehmen können, ist das
echo "hello" > t.log
Wir verwenden normalerweise is eigentlich. Es kann auch geschrieben werden als
echo "hello" 1> t.log
Über die Bedeutung von 2>&1
Ich werde in diesem Artikel nicht näher auf die Eingabe-/Ausgabeumleitung eingehen
含义:将标准错误输出重定向到标准输出 符号>&是一个整体,不可分开,分开后就不是上述含义了。 比如有些人可能会这么想:2是标准错误输入,1是标准输出,>是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"2>1"就行了?是这样吗? 如果是尝试过,你就知道2>1的写法其实是将标准错误输出重定向到名为"1"的文件里去了 写成2&>1也是不可以的
为什么2>&1要放在后面
考虑如下一条shell命令
nohup java -jar app.jar >log 2>&1 &
(最后一个&表示把条命令放到后台执行,不是本文重点,不懂的可以自行Google)
为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log中?
我们不妨把1和2都理解是一个指针,然后来看上面的语句就是这样的:
本来1----->屏幕 (1指向屏幕) 执行>log后, 1----->log (1指向log) 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log) `` 再来分析下
nohup java -jar app.jar 2>&1 >log &
本来1----->屏幕 (1指向屏幕) 执行2>&1后, 2----->1 (2指向1,而1指向屏幕,因此2也指向了屏幕) 执行>log后, 1----->log (1指向log,2还是指向屏幕)
所以这就不是我们想要的结果。
搜索公众号GitHub猿后台回复“打飞机”,获取一份惊喜礼包。
简单做个试验测试下上面的想法:
java代码如下:
public class Htest { public static void main(String[] args) { System.out.println("out1"); System.err.println("error1"); } }
javac编译后运行下面指令:
java Htest 2>&1 > log
你会在终端上看到只输出了"error1",log文件中则只有"out1"
每次都写">log 2>&1"太麻烦,能简写吗?
有以下两种简写方式
&>log >&log
比如上面小节中的写法就可以简写为:
nohup java -jar app.jar &>log &
上面两种方式都和">log 2>&1"一个语义。
那么 上面两种方式中&>和>&有区别吗?
语义上是没有任何区别的,但是第一中方式是最佳选择,一般使用第一种。
Das obige ist der detaillierte Inhalt vonVertiefendes Verständnis der Bedeutung von 2>&1 in der Linux-Shell (die umfassendste im gesamten Netzwerk, Sie werden es verstehen, nachdem Sie es gelesen haben). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In dem Artikel wird erläutert, wie reguläre Ausdrücke (REGEX) unter Linux für Musteranpassung, Dateisuche und Textmanipulation, Detailsyntax, Befehle und Tools wie Grep, SED und awk detailliert werden.

In dem Artikel werden die Leistung von Top, HTOP und VMSTAT zur Überwachung der Systemleistung der Linux -Systeme erläutert und deren eindeutige Funktionen und Anpassungsoptionen für eine effektive Systemverwaltung beschrieben.

Der Artikel enthält eine Anleitung zum Einrichten der Zwei-Faktor-Authentifizierung (2FA) für SSH unter Linux unter Verwendung von Google Authenticator, Detaillierung der Installations-, Konfigurations- und Fehlerbehebungsschritte. Es unterstreicht die Sicherheitsvorteile von 2FA, wie z. B. die verstärkte SEC

In Artikel werden die Verwaltung von Softwarepaketen unter Linux mithilfe von APT, YUM und DNF besprochen, wobei die Installation, Updates und Entfernungen behandelt werden. Es vergleicht ihre Funktionen und Eignung für verschiedene Verteilungen.

In dem Artikel wird erläutert, wie die Sudo -Privilegien in Linux verwaltet werden, einschließlich Gewährung, Widerruf und Best Practices für Sicherheitsvorschriften. Der Hauptaugenmerk liegt auf der sicheren Bearbeitung /etc /sudoers und der Begrenzung des Zugangs. Charakterzahl: 159

Linux -Anfänger sollten grundlegende Vorgänge wie Dateiverwaltung, Benutzerverwaltung und Netzwerkkonfiguration beherrschen. 1) Dateiverwaltung: Verwenden Sie MKDIR-, Touch-, LS-, RM-, MV- und CP -Befehle. 2) Benutzerverwaltung: Verwenden Sie die Befehle von UserAdd-, PassWD-, UserDel- und UsMod -Befehlen. 3) Netzwerkkonfiguration: Verwenden Sie IFConfig-, Echo- und UFW -Befehle. Diese Vorgänge sind die Grundlage für das Linux -Systemmanagement, und das Beherrschen kann das System effektiv verwalten.

Die fünf Säulen des Linux -Systems sind: 1. Kernel, 2. Systembibliothek, 3. Shell, 4. Dateisystem, 5. Systemwerkzeuge. Der Kernel verwaltet Hardware -Ressourcen und bietet grundlegende Dienste an. Die Systembibliothek bietet vorkompilierte Funktionen für Anwendungen. Die Shell ist die Schnittstelle, in der Benutzer mit dem System interagieren können. Das Dateisystem organisiert und speichert Daten. und Systemwerkzeuge werden für das Systemmanagement und die Wartung verwendet.

In diesem Artikel werden verschiedene Methoden eingeführt, um die OpenSSL -Konfiguration des Debian -Systems zu überprüfen, um den Sicherheitsstatus des Systems schnell zu erfassen. 1. Bestätigen Sie zuerst die OpenSSL -Version und stellen Sie sicher, ob OpenSSL installiert wurde und Versionsinformationen. Geben Sie den folgenden Befehl in das Terminal ein: Wenn OpenSslversion nicht installiert ist, fordert das System einen Fehler auf. 2. Zeigen Sie die Konfigurationsdatei an. Die Hauptkonfigurationsdatei von OpenSSL befindet sich normalerweise in /etc/ssl/opensl.cnf. Sie können einen Texteditor (z. B. Nano) verwenden: Sudonano/etc/ssl/openSSL.cnf Diese Datei enthält wichtige Konfigurationsinformationen wie Schlüssel-, Zertifikatpfad- und Verschlüsselungsalgorithmus. 3.. Verwenden Sie OPE
