Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 6

Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 6

In diesem Artikel sehen wir uns an, einige grundlegende Hardware-, System- und Betriebssystemkonfigurationsinformationen direkt aus der Eingabeaufforderung in Ihrem Terminal zu erhalten. Diese Informationen zu haben und zu wissen, wo man sie findet, hilft häufig bei der Konfiguration eines Systems, der Erforschung optimaler Hardware- und Softwarelösungen und im Allgemeinen die Kontrolle des Linux -Systems, das Sie besitzen oder verwalten.

Wir werden uns hauptsächlich auf tägliche Informationen konzentrieren, die regelmäßig erforderlich ist. Es erfordert oft ein paar Online-Suchanfragen, um die Ausrichtung zuerst besser zu definieren, und erfordert dann häufig zusätzliche Fähigkeiten, um die Ergebnisse oder die gezeigten Ausgabe zu interpretieren.

Zum Beispiel werden wir die Ausgabe von nicht betrachten vmstat, Obwohl wir herausfinden, wie wir herausfinden können, welche CPU in Ihrem System ist, ohne die Motorhaube zu öffnen. Wir werden uns auch einige grundlegende Ressourcengrenzvariablen und umgebende Bedenken ansehen. Die Zielgruppe für diesen Artikel ist somit Anfänger bis mittlerer Fortgeschrittene.

Dieser Artikel ist Teil der nützlichen Bash -Befehlszeilen -Tipps und Tricks -Serien.

In diesem Tutorial lernen Sie:

  • Nützliche Bash -Befehlszeilen -Tipps, Tricks und Methoden
  • So interagieren Sie mit der Bash -Befehlszeile fortschrittlich
  • So schärfen Sie Ihre Bash -Fähigkeiten insgesamt und werden zu einem kompetenteren Bash -Benutzer
Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 6

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Linux-Verteilungsunabhängige
Software BASH -Befehlszeile, Linux -basiertes System
Andere Jedes Dienstprogramm, das standardmäßig nicht in der Bash -Shell enthalten ist sudo apt-Get Installieren Sie den Dienstprogramm (oder yum install Für Redhat -basierte Systeme)
Konventionen # - Erfordert, dass Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden sudo Befehl
$-erfordert, dass Linux-Commands als regulärer nicht privilegierter Benutzer ausgeführt werden

Beispiel 1: Welche CPU ist in Ihrem System??

Oft möchten wir schnell herausfinden, was CPU im System ist, ohne die Box zu öffnen. Das Öffnen des physischen Computers ist auch etwas schwierig, wenn Sie einen Server auf der anderen Seite des Planeten verwalten. Das Finden der CPU -Details ist einfach und unkompliziert:

$ cat /proc /cpuinfo | Grep 'Modellname' | Kopf -N1 -Modellname: Intel (R) Core (TM) I9-9900K CPU @ 3.60 GHz $ CAT /Proc /CPUInfo | Grep 'Modellname' | WC -l 16 

Im ersten Befehl haben wir die Dynamik gefragt /proc/cpuinfo Datei, in der die aktuelle CPU aufgeführt ist, wie vom Betriebssystem erkannt. Es gibt 16 Zeilen (wie im zweiten Befehl zu sehen) von genau derselben Ausgabe, daher listen wir nur die erste Zeile mit dem auf Kopf -n1 Befehl. Beachten Sie, dass wir diese Befehle auch wie folgt schreiben könnten:

$ Grep 'Modellname' /Proc /CPUInfo | Kopf -N1 -Modellname: Intel (R) Core (TM) I9-9900K CPU @ 3.60 GHz $ Grep 'Modellname' /Proc /CpuInfo | WC -l 16 


Möglicherweise möchten Sie jedoch die verwenden Katze Methode zur Erforschung der vollständigen Ausgabe (Katze /Proc /cpuinfo) Da gibt es viele interessante Informationen über Ihren Prozessor. Die 16 -Zählung ist darauf zurückzuführen, dass in dieser speziellen CPU 16 Threads vorhanden sind.

Finden Sie Ihr Betriebssystem und veröffentlichen Sie heraus

Bei der Verwaltung eines Remote -Servers möchten wir häufig sicherstellen. Um mehr herauszufinden, welches Betriebssystem Ihr Computer verwendet und welche Überarbeitung es ist, führen Sie einfach aus Katze /etc /*Release*:

$ cat /etc /* Release* Distrib_id = Ubuntu Distrib_Release = 20.04 Distrib_Codename = Focal Distal Distript_description = "Ubuntu 20.04.1 LTS "name =" Ubuntu "Version =" 20.04.1 LTS (fokale Fossa) "id = ubuntu id_like = debian hübsch_name =" ubuntu 20.04.1 LTS "Version_id =" 20.04 "home_url =" https: // www.Ubuntu.com/"support_url =" https: // help.Ubuntu.com/"bug_report_url =" https: // bugs.Launchpad.net/ubuntu/"privacy_policy_url =" https: // www.Ubuntu.com/legal/nation-and-policies/Privatsphäre-Policy "Version_Codename = Focal Ubuntu_Codename = Focal 

Um zu vergleichen, finden Sie hier die Ausgabe aus demselben Befehl auf einem hebiischen Raspberry Pi 4:

$ CAT/ETC/* Release* Pretty_name = "raspbian gnu/linux 10 (buster)" name = "raspbian gnu/linux" Version_ID = "10" Version = "10 (Buster)" Version_Codename = Buster id = raspbian id_like = debian Home_url = "http: // www.Raspbian.org/"support_url =" http: // www.Raspbian.org/raspbianforums "bug_report_url =" http: // www.Raspbian.org/raspbianbugs " 


Sobald Sie sich an diese Abkürzung erinnern, werden Sie sie bald viele Situationen verwenden. Die hier gezeigten tatsächlichen Dateien, zumindest auf Ubuntu, sind: /etc/LSB-Release Und /etc/os-Release. Auf raspbianer gibt es nur /etc/os-Release.

Betrieb von Systemgrenzen operieren

In Linux werden standardmäßig viele Betriebssystemgrenzen implementiert. Sie sind schlau eingerichtet, da Sie sie oft erst treffen, wenn Sie ein DevOps oder einen ähnlichen Ingenieur sind, der den Durchsatz einer Reihe von Remote -Servern maximiert.

Das Ändern dieser Betriebssystemvariablen erfordert einige Kenntnisse über jede dieser.

Eine weitere Überlegung hier ist, dass Systemgrenzwerte lange bevor ein Betriebssystem konfiguriertes Limit betroffen ist, und dies insbesondere dann zutreffend ist, wenn Sie solche Betriebssystemgrenzen auf eine sehr hohe Zahl einstellen. Dies ist auch der Grund dafür.

Das Ändern eines operativssystembasierten Grenzwerts ist daher mit verschiedenen Risiken verbunden. Es ist nicht nur ziemlich einfach, sie zu groß zu setzen, was dazu führt, dass das Betriebssystem häufig die Kontrolle über bestimmte Ressourcen verliert, sondern das Ändern einiger Variablen wird auch einige Sicherheitsrisiken mit sich bringen.

Nehmen wir zum Beispiel an, dass ein Hacker eine Gabelbombe in das System werfen würde. Eine Gabelbombe ist keine echte Bombe, sondern ein Software -basierter Exploit, der dazu führt. Wenn die Anzahl der erlaubten Forks durch Ändern einer oder mehrerer Systemvariablen irgendwie geändert worden wäre, könnte dem System bald die CPU-Ressourcen ausgehen, die versuchen, die Till-Till-Infinity zu gabelten.

Ein weiterer Aspekt, der hier berücksichtigt werden muss. Wenn es sich in einer DMZ -Zone in einem Rechenzentrum befindet, ansonsten von anderen Servern isoliert und nur für Aufgaben mit geringer Privilegien verwendet wird (wie das Testen), ist es möglicherweise recht akzeptabel, ziemlich hohe Grenzen zu setzen. Wenn derselbe Server den Produktionscode vorangetrieben hat und Releasepakete unterzeichnet, wird eine viel mehr sorgfältigere Systemressourcenverwaltung beraten.

Sie können sehen, wie das Ändern dieser Variablen etwas Fachwissen und Erfahrung erfordert. Dennoch sind die meisten leicht zu verstehen und haben gemeinsame englische Namen.

Die häufigsten sind in festgelegt /etc/Sicherheit/Grenzen.Conf. Um beispielsweise die maximale Anzahl offener Dateien auf 300000 erheblich zu erhöhen, können Sie die folgenden Zeilen hinzufügen /etc/Sicherheit/Grenzen.Conf:

* Weiches NoFile 300000 * Hartes NoFile 300000 


Dadurch werden 300k -Dateien gleichzeitig geöffnet. Das Maximum, das für diese Variablen festgelegt werden kann, ist 1048576.

Beachten Sie, dass es einen Unterschied zwischen "weich" und "harten" Grenzen gibt: Harte Grenzen können nur weiter angehoben werden Wurzel Levelzugriff, während jeder Prozess die Grenze senken kann. Dies ist für Sicherheitszwecke großartig, da keine Wurzelprozesse in der Lage sein, eine Grenze zu überschreiten. Eine weiche Grenze kann jederzeit durch einen bestimmten Prozess geändert werden.

Es gibt viele andere ähnliche Einstellungen, die in dieser Datei aus geändert werden können. Um eine breite Idee zu bekommen, können Sie verwenden Ulimit -a Um die für Ihr System anwendbaren Grenzen zu diesem Zeitpunkt zu sehen.

Die nächste bekannteste Datei, wenn es um das Tuning -System -Ressourcen geht /etc/sysctl.Conf. In dieser Datei ist es möglich, viele Kernel -Parameter zu beenden. So setzen schränkt den Austausch erheblich ein), Sie können Folgendes hinzufügen /etc/sysctl.Conf:

Kernel.PID_MAX = 500000 VM.Swappiness = 5 

Wir empfehlen nicht, eine der oben gezeigten Einstellungen ohne weitere Forschung zu implementieren und dann speziell auf Ihr System abzustimmen. Oft wird eine Variable zu einer höheren Umgebung angehoben, es sei denn.

Abschluss

In diesem Artikel haben wir uns untersucht, wie unser Betriebssystem die Ressourcen unter Kontrolle hält und welche Hauptkonfigurationsdateien diesbezüglich damit sind. Wir haben auch festgestellt. Wenn man diese grundlegenden Dinge kennt, kann man sich weiter in bestimmte Einstellungen untersuchen /etc/Sicherheit/Grenzen.Conf Und /etc/sysctl.Conf und linux -basierte Systeme sicherer verwalten. Genießen!

Verwandte Linux -Tutorials:

  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 1
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 2
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 4
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 5
  • Dinge zu installieren auf Ubuntu 20.04
  • Ubuntu 20.04 Leitfaden
  • Mastering -Bash -Skriptschleifen beherrschen