Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So führen Sie Dateien unter Linux aus

So führen Sie Dateien unter Linux aus

藏色散人
藏色散人Original
2019-11-13 10:03:0512388Durchsuche

So führen Sie Dateien unter Linux aus

So führen Sie eine .sh-Datei unter Linux aus

So führen Sie eine .sh-Datei unter Linux aus

1. Die .sh-Datei ist eine Textdatei. Wenn Sie sie ausführen möchten, müssen Sie chmod a+x xxx.sh verwenden, um ausführbare Berechtigungen zu erteilen.

Handelt es sich um ein Bash-Skript

Sie können touch test.sh # verwenden, um die test.sh-Datei zu erstellen

vi test.sh # Bearbeiten Sie die Datei test.sh

Inhalt hinzufügen

#! /bin/bash
mkdir test

Speichern und beenden.

chmod a+x test.sh #Ausführbare Berechtigungen für test.sh erteilen

Beispielsweise befindet sich die Datei test,sh unter der Datei /home/work

Ausführen

Methode 1: Führen Sie

in einem eigenen Verzeichnis aus. Geben Sie die Datei cd /home/workwen

ein und führen Sie ./test.sh

aus

Der Befehl befindet sich im aktuellen Verzeichnis. Erstellen Sie ein „Test“-Verzeichnis unter dem Verzeichnis.

Methode 2: Mit absoluter Kraft laufen

/home/work/test.sh ausführen

Methode 3: Im Eigenen laufen Verzeichnis

sh test.sh

Letzter Vorschlag: Verwenden Sie

C-Code

1.man sh

man sh Werfen wir einen Blick auf die Einführung von sh~

Empfohlen: „Linux-Tutorial

Linux .sh-Syntax

Einführung:

1 Anfang

Das Programm muss mit der folgenden Zeile beginnen (muss in der ersten Zeile der Datei platziert werden). ):

# !/bin/sh

Das Symbol #! wird verwendet, um dem System mitzuteilen, dass die Parameter dahinter die Programme sind, die zum Ausführen der Datei verwendet werden. In diesem Beispiel verwenden wir /bin/sh, um das Programm auszuführen.

Wenn das Schreiben des Skripts abgeschlossen ist und Sie das Skript ausführen möchten, müssen Sie es auch ausführbar machen.

Um das Skript ausführbar zu machen:

Kompilieren Sie chmod +x Dateiname, sodass Sie ./Dateiname zum Ausführen verwenden können.

2 Hinweise

Shell-Programmierung durchführen Wenn ein mit # beginnender Satz einen Kommentar bis zum Ende der Zeile darstellt. Wir empfehlen dringend, Kommentare in Ihren Programmen zu verwenden.

Wenn Sie Kommentare verwenden, können Sie die Funktion und das Arbeitsprinzip des Skripts in kurzer Zeit verstehen, auch wenn Sie das Skript längere Zeit nicht verwendet haben.

3 Variablen

In anderen Programmiersprachen muss man Variablen verwenden. Bei der Shell-Programmierung bestehen alle Variablen aus Zeichenfolgen und Sie müssen keine Variablen deklarieren. Um einer Variablen einen Wert zuzuweisen, können Sie schreiben:

#!/bin/sh

#Einen Wert einer Variablen zuweisen:

a="hello world"

# Geben Sie nun den Inhalt der Variablen a aus:

echo „A ist:“

echo $a

Manchmal werden Variablennamen leicht mit anderen verwechselt Text, wie zum Beispiel:

num=2

echo „this is the $numnd“

Dies gibt nicht „this is the 2nd“ aus, sondern nur „ Dies ist „ , da die Shell nach dem Wert der Variablen numnd sucht, diese Variable jedoch keinen Wert hat. Sie können geschweifte Klammern verwenden, um der Shell mitzuteilen, dass wir die Num-Variable drucken möchten:

num=2

echo „this is the ${num}nd“

Dies wird gedruckt: Dies ist die 2.

4 Umgebungsvariable

Die vom Schlüsselwort export verarbeiteten Variablen werden Umgebungsvariablen genannt. Wir werden nicht auf Umgebungsvariablen eingehen, da diese normalerweise nur in Anmeldeskripts verwendet werden.

5 Shell-Befehle und Prozesssteuerung

Drei Arten von Befehlen können in Shell-Skripten verwendet werden:

1) Unix-Befehle:

Obwohl in Shell-Skripten Sie können jeden Unix-Befehl verwenden, es gibt jedoch einige relativ häufig verwendete Befehle. Diese Befehle werden normalerweise für Datei- und Textoperationen verwendet.

Allgemeine Befehlssyntax und Funktionen

echo „some text“: Textinhalt auf dem Bildschirm ausgeben

ls: Dateiliste

wc –l file wc -w file wc -c file: Zählt die Anzahl der Zeilen in der Datei; zählt die Anzahl der Zeichen in der Datei

cp sourcefile destfile: Kopiert die Datei

mv alter Name neuer Name: wiederholen Sie die Datei 'searchstring' file.txt

cut -b colnum file: Geben Sie den Bereich der anzuzeigenden Dateiinhalte an und geben Sie diese auf dem Standardausgabegerät aus. Beispiel: Geben Sie das 5. bis 9. Zeichen jeder Zeile aus. b5-9 file.txt. Verwechseln Sie es nicht mit dem Befehl cat

Dies sind zwei völlig unterschiedliche Befehle

cat file.txt: Geben Sie den Dateiinhalt auf dem Standardausgabegerät (Bildschirm) aus )

file somefile: Den Dateityp abrufen

read var: Den Benutzer zur Eingabe auffordern und die Eingabe der Variablen zuweisen

sort file.txt: Die Zeilen sortieren die Datei „file.txt“

uniq: die Textdatei löschen. Doppelte Zeilen, die angezeigt werden, wie zum Beispiel: „sort file.txt |“. 2 „+“ 3

finden: Suche nach Dateien wie: basierend auf Dateiname Suche find -name Dateiname -print

tee: Daten auf das Standardausgabegerät (Bildschirm) und die Datei ausgeben. Beispiel: somecommand |. tee outfile

Basisname Datei: Gibt den Dateinamen ohne Pfad zurück gibt tux

dirname file: Gibt den Pfad der Datei zurück. Beispiel: dirname /bin/tux gibt /bin zurück

head file: Gibt die ersten paar Zeilen der Textdatei aus

tail file: Druckt die Textdatei. Die letzten paar Zeilen

sed: Sed ist ein einfaches Such- und Ersetzungsprogramm. Sie können Text aus der Standardeingabe (z. B. einer Befehlspipe) lesen und

Ergebnisse in der Standardausgabe (Bildschirm) ausgeben. Dieser Befehl verwendet für die Suche reguläre Ausdrücke (siehe Referenz). Nicht zu verwechseln mit Wildcards in der Shell. Beispiel: Ersetzen Sie linuxfocus durch LinuxFocus: cat text.file |. sed ’s/linuxfocus/LinuxFocus/’ >newtext.file

awk: awk wird zum Extrahieren von Feldern aus Textdateien verwendet. Standardmäßig ist das Feldtrennzeichen ein Leerzeichen. Sie können -F verwenden, um andere Trennzeichen anzugeben.

cat file.txt |. awk -F, „{print $1“, „$3}“ Hier verwenden wir als Feldtrennzeichen, um das erste und dritte Feld gleichzeitig zu drucken. Wenn der Dateiinhalt wie folgt lautet: Adam Bor, 34, IndiaKerryMiller, 22, USA, lautet die Befehlsausgabe: Adam Bor, IndiaKerry Miller, USA

2) Konzept: Pipeline, Umleitung und Backtick

Dies sind keine Systembefehle, aber sie sind wirklich wichtig.

Pipe (|) übernimmt die Ausgabe eines Befehls als Eingabe eines anderen Befehls.

grep "hello" file.txt |. wc -l

Suchen Sie nach Zeilen, die „hello“ in file.txt enthalten, und zählen Sie die Anzahl der Zeilen.

Hier wird die Ausgabe des grep-Befehls als Eingabe des wc-Befehls verwendet. Natürlich können Sie mehrere Befehle verwenden.

Umleitung: Geben Sie die Ergebnisse des Befehls in eine Datei statt in die Standardausgabe (Bildschirm) aus.

> In die Datei schreiben und die alte Datei überschreiben

>>

Backslash

Verwenden Sie den Backslash, um die Ausgabe eines Befehls als Befehlszeilenparameter eines anderen Befehls zu verwenden.

Befehl:

find . -mtime -1 -type f -print

wird verwendet, um Änderungen in den letzten 24 Stunden zu finden (-mtime -2 bedeutet die letzten 48). Stunden) vergangene Dateien. Wenn Sie alle gefundenen Dateien in ein Paket packen möchten, können Sie das folgende Linux-Skript verwenden:

#!/bin/sh

# Die Häkchen sind Backticks (`), keine normalen Anführungszeichen ( '):

tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`

3) Prozesssteuerung

1.if

„if“-Ausdruck führt den Teil danach aus, wenn die Bedingung wahr ist:

if ….; then

….

elif ….; then

….

else

….

fi

In den meisten Fällen können Sie Testbefehle verwenden, um die Bedingungen zu testen prüfen. Sie können beispielsweise Zeichenfolgen vergleichen, feststellen, ob eine Datei vorhanden und lesbar ist usw.

Normalerweise wird „[ ]“ verwendet, um bedingte Tests darzustellen. Beachten Sie, dass die Leerzeichen hier wichtig sind. Stellen Sie sicher, dass zwischen den eckigen Klammern Leerzeichen stehen.

[ -f "somefile" ] : Bestimmen Sie, ob es sich um eine Datei handelt

[ -x "/bin/ls" ] : Bestimmen Sie, ob /bin/ls vorhanden ist und über ausführbare Berechtigungen verfügt

[ -n "$var" ]: Bestimmen Sie, ob die Variable $var einen Wert hat

[ "$a" = "$b" ]: Bestimmen Sie, ob $a und $b gleich sind

Führen Sie den Man-Test aus, um alle Typen anzuzeigen, die anhand von Testausdrücken verglichen und beurteilt werden können.

Führen Sie direkt das folgende Skript aus:

#!/bin/sh

if [ "$SHELL" = "/bin/bash" ]; then

echo „Ihre Login-Shell ist die Bash (Bourne Again Shell)“

else

echo „Ihre Login-Shell ist nicht Bash, sondern $SHELL“

fi

Die Variable $SHELL enthält den Namen der Login-Shell, den wir mit /bin/bash verglichen haben.

Verknüpfungsoperatoren

Freunden, die mit der Sprache C vertraut sind, könnte der folgende Ausdruck gefallen:

[ -f "/etc/shadow" ] && echo „Dieser Computer verwendet Shadow Passwörter“

Hier ist && ein Abkürzungsoperator. Wenn der Ausdruck auf der linken Seite wahr ist, wird die Anweisung auf der rechten Seite ausgeführt.

Sie können es sich auch als UND-Verknüpfung in logischen Operationen vorstellen. Das obige Beispiel zeigt, dass, wenn die Datei /etc/shadow vorhanden ist, „Dieser Computer verwendet Shadow-Passwörter“ gedruckt wird. Die gleiche ODER-Operation (||) ist auch in der Shell-Programmierung verfügbar. Hier ist ein Beispiel:

#!/bin/sh

mailfolder=/var/spool/mail/james

[ -r "$mailfolder" ]' '{ echo „$mailfolder kann nicht gelesen werden“ ; Exit 1; echo „$mailfolder has mail from:“

grep „^From“ $mailfolder

Das Skript zuerst Stellen Sie fest, ob der Mailordner lesbar ist. Wenn lesbar, drucken Sie die Zeile „Von“ in der Datei aus. Wenn es nicht lesbar ist, wird die ODER-Verknüpfung wirksam und das Skript wird beendet, nachdem eine Fehlermeldung ausgegeben wurde. Hier liegt ein Problem vor, das heißt, wir müssen zwei Befehle haben:

◆Fehlermeldung drucken

◆Programm beenden

Wir verwenden geschweifte Klammern, um zwei Befehle zu einem Befehl in Form einer anonymen Funktion zusammenzufassen. Allgemeine Funktionen werden unten aufgeführt.

Ohne die AND- und or-Operatoren können wir auch if-Ausdrücke verwenden, um alles zu tun, aber es ist viel bequemer, die AND- oder or-Operatoren zu verwenden.

Das obige ist der detaillierte Inhalt vonSo führen Sie Dateien unter Linux aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn