Als ich die Szene zum ersten Mal betrat, war ich vom schwarzen Bildschirm des Terminals beeindruckt, aber jetzt ist es die längste Zeit, die ich gesehen habe.
Es ist anderthalb Jahre her, seit ich mit dem Programmieren angefangen habe, und ich habe die Linux-basierten Befehlstechniken zusammengefasst, die ich fast jeden Tag verwende!
Wenn dies unterdrückt wird, sollten junge Ingenieure überleben können, auch wenn sie vorerst ins Feld geworfen werden!
ls Abkürzung für "Liste". Die Dateien und Ordner werden unter dem Verzeichnis angezeigt, in das Sie den Befehl eingegeben haben.
> ls
pwd Abkürzung für "Arbeitsverzeichnis drucken". Es zeigt den Speicherort des aktuellen Verzeichnisses.
> pwd
→ /Users/hoge/path
cd Abkürzung für "Verzeichnis wechseln". Sie können das Verzeichnis verschieben. Sie können in das Ausgangsverzeichnis wechseln, indem Sie "cd" eingeben, ohne etwas hinzuzufügen, und in das vorherige Verzeichnis, indem Sie "cd-" eingeben.
> cd path/to/hoge
→ Zum Hoge-Verzeichnis wechseln
mv Abkürzung für "move". Sie können Dateien und Verzeichnisse verschieben. Ich benutze dies auch, wenn ich eine Datei umbenennen möchte.
Dateien verschieben. hoge.txt einige_In Verzeichnis wechseln
> mv hoge.txt some_directory
Benennen Sie die Datei um. hoge.txt zu fuga.In txt umbenennen
> mv hoge.txt fuga.txt
cp
Abkürzung für "Kopie".
cp 1. Argument 2. Argument
kopiert die Datei von 1. Argument
in 2. Argument
.
hoge.txt einige_Fuga im Verzeichnis.Kopieren Sie mit dem Namen txt
> cp hoge.txt some_directory/fuga.txt
find Wie der Name schon sagt, handelt es sich um einen Befehl zum Suchen von Dateien und Verzeichnissen. Es ist etwas kompliziert und schwierig, aber es ist sehr praktisch, wenn man sich daran gewöhnt.
Die Erweiterung ist`md`Suchen Sie die Datei im aktuellen Verzeichnis
(Wenn Sie es im Stammverzeichnis ausführen, werden alle Verzeichnisse durchsucht, sodass die Suchergebnisse hässlich sind.)
> find . -name "*.md"
grep Abkürzung für "Global Regular Expression Print". Es ist ein Befehl, der eine Datei aus dem Verzeichnis unter dem Befehl liest und nach Text sucht.
> grep hoge
→
hoge.md
17:hogehoge/fugafuga
fuga.md
25:→ /Users/hoge/path
33:> cd path/to/hoge
34:→ Zum Hoge-Verzeichnis wechseln
hogefuga.md
27:/Users/hoge
Übrigens gibt es eine weiterentwickelte Version (eine Variante?) Von grep namens ripgrep, und ripgrep ist überwältigend schneller, daher empfehle ich dies.
cat Abkürzung für "verketten". Ich bin keine Katze. Sie können den Inhalt der angegebenen Datei durchsuchen.
> cat hoge.txt
→
hogehogehogeho
hogehogehogeho
hogehogehogeho
more
Sie können den Inhalt der angegebenen Datei durchsuchen. Im Gegensatz zu "cat" wird der Inhalt der Datei nach und nach angezeigt. Daher ist es praktisch, ihn zu verwenden, wenn die Datei viele Zeilen enthält. Nachdem Sie mehr eingegeben haben, drücken Sie q
, um zum ursprünglichen Bildschirm zurückzukehren.
> more hoge.txt
less Es ist ein Befehl wie eine weiterentwickelte Version von "more". Dieses Mal habe ich sowohl "mehr" als auch "weniger" eingeführt, aber im Grunde ist es in Ordnung, wenn Sie nur eine davon verwenden können!
Wenn Sie den Befehl wie mehr drücken, wechselt er in den Suchmodus und drückt q
, um zum ursprünglichen Bildschirm zurückzukehren.
Der folgende Artikel ist ebenfalls hilfreich. Schauen Sie sich ihn also unbedingt an.
11 weniger Befehlstipps, die Ingenieure kennen sollten
> less hoge.txt
head Es wird nur die Zeile ○ oben in der angegebenen Datei angezeigt. Wenn Sie "head -10" und die Nummer angeben, können Sie etwa ** 10 Zeilen ** vom Anfang der Datei aus ausführen.
head -10 hoge.txt
→
(hoge.Die oberen 10 Zeilen von txt werden angezeigt)
tail
Im Gegensatz zu head
wird die angegebene Datei nur in der Zeile ○ von unten angezeigt. Wie bei head
können Sie, wenn Sie tail -10
und die Nummer angeben, nur ** 10 Zeilen ** am Ende der Datei anzeigen.
tail -10 fuga.txt
→
(fuga.Die unteren 10 Zeilen von txt werden angezeigt)
echo Wenn ein Argument angewendet wird, wird der Inhalt dieses Arguments ausgegeben. Dies ist ein Befehl, den Sie häufig beim Erstellen einer Umgebung sehen.
> echo $PATH
→
/Users/sukebeeeeei/.tfenv/bin:/Users/sukebeeeeei/node_modules:/Users/sukebeeeeei/.nodenv/bin:/Users/sukebeeeeei/.nodenv/shims:/usr/local/opt/[email protected]/bin:/Users/sukebeeeeei/go/bin:/Users/sukebeeeeei/.goenv/shims:/Users/sukebeeeeei/.goenv/bin:/Users/sukebeeeeei/.pyenv/shims:/Users/sukebeeeeei/.pyenv/bin:/Users/sukebeeeeei/.rbenv/shims:/Users/sukebeeeeei/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/opt/X11/bin:/usr/local/texlive/2018/bin/x86_64-darwin/:/Users/sukebeeeeei/dotfiles
(PFAD wird angezeigt)
touch Aktualisiert den Zeitstempel der Datei auf die aktuelle Zeit. Wenn die Datei nicht vorhanden ist, erstellen Sie eine leere Datei. Warum heißt es "Touch"? Lass es mich wissen, bitte.
# hoge.Wenn Sie txt haben
> touch hoge.txt
→
(Der Zeitstempel der Datei wird aktualisiert)
# hoge.Wenn es keinen txt gibt
> touch hoge.txt
→
(Hoge mit leerem Inhalt.txt wird erstellt)
Sie können vi ・ vim
öffnen. Es wird verwendet, wenn es schwierig ist, einen Editor wie ** vscode oder atom ** zu öffnen.
Wenn Sie danach "vim hoge.txt" ausführen, wird eine Datei generiert, wenn "hoge.txt" nicht vorhanden ist
--Erstellen Sie eine Datei
In diesem Fall handelt es sich um einen häufigen Befehl. Was vi und vim betrifft, sollten alle Ingenieure die grundlegenden Befehle beherrschen. Wenn Sie sie also noch nie verwendet haben, üben Sie sie bitte zu diesem Zeitpunkt.
> vim hoge.txt
mkdir Abkürzung für ** make directory **. Wie der Name schon sagt, handelt es sich um einen Befehl zum Erstellen eines Verzeichnisses.
> mkdir hoge
→
(Hoge-Verzeichnis wird erstellt)
rm Abkürzung für "entfernen". Mit diesem Befehl wird eine Datei gelöscht. Wenn Sie bei der Verwendung einen Fehler machen, wird dieser ** ruiniert **. Verwenden Sie ihn daher systematisch.
rm ~ Löschen Sie Verzeichnisse und Dateien
> rm hoge.txt
→
hoge.txt wird gelöscht
rmdir Abkürzung für "Verzeichnis entfernen". Mit diesem Befehl wird ein Verzeichnis gelöscht. Sie können nur leere Verzeichnisse löschen. Daher benutze ich es selten w (wie in diesem Artikel vorgestellt)
Wenn Sie das Verzeichnis löschen möchten, in dem sich die Datei befindet, können Sie normalerweise > rm -rf hoge_directory
ausführen.
> rmdir hoge_empty_directory
→
(hoge_empty_Verzeichnis löschen)
ln Abkürzung für "Link". Sie können symbolische Links erstellen. Was ist eine symbolische Verbindung? Bitte lesen Sie den folgenden Artikel für diejenigen, die sagen.
So stellen Sie eine symbolische Verknüpfung ein
> ln -s ~/dotfiles/vimrc/_vimrc ~/.vimrc
man Abkürzung für "Handbuch". Dies ist ein (verwirrender) Befehl, der eine Beschreibung des Befehls anzeigt. ** "Ah, wie benutzt man diesen Befehl?" ** oder ** "Was sind die Optionen für diesen Befehl?" **.
> man ls
→
(Die Anweisungen für den Befehl ls werden angezeigt.)
sudo Abkürzung für "Superuser do". Ich habe es oft als ** Sudu ** oder ** Mr. Sudo ** gelesen.
Verwenden Sie diese Option, wenn Sie Befehle mit Administratorrechten ausführen möchten. Wenn Sie "sudo" hinzufügen, werden Sie nach dem Drücken des Befehls nach dem Kennwort gefragt. Geben Sie es ein, um den Befehl auszuführen.
> sudo vim hoge.txt
→Password:
(Geben Sie das Passwort ein und drücken Sie die Eingabetaste, um den Befehl auszuführen)
history Wie der Name schon sagt, wird der Verlauf der bisher eingegebenen Befehle angezeigt.
> history
→
...
11879 less must_cover_linux_commands.md
11880 tail must_cover_linux_commands.md
11881 more must_cover_linux_commands.md
11882 head must_cover_linux_commands.md
11883 more must_cover_linux_commands.md -n 100
11884 more must_cover_linux_commands.md -n 3
...
Hier sind einige Techniken, die ** große Fortschritte ** bei der Arbeit mit der Befehlszeile machen. Es ist eine Selbstverständlichkeit für diejenigen, die es wissen, aber nicht jeder weiß es. Ich habe es einige Monate nach dem ersten Betreten der Website zum ersten Mal erfahren, und als ich zum ersten Mal davon erfuhr, war ich sehr beeindruckt.
“< > >>” Ich denke, es ist einfacher zu verstehen, wenn Sie ein Beispiel geben, als es zu erklären, also gebe ich Ihnen ein Referenzbeispiel.
> ruby calculate.rb < input_data.txt
(calculate.Führen Sie rb aus und geben Sie es als Daten ein_data.Geben Sie txt an.)
> ruby calculate.rb > output_data.txt
(calculate.Führen Sie rb aus und geben Sie das Ausgabeergebnis aus_data.Ausgabe an txt. Ausgabe_data.Wenn txt nicht vorhanden ist, wird die Datei ohne Erlaubnis erstellt. Ausgabe_data.Wenn txt vorhanden ist, wird der Inhalt der Datei mit dem Ausgabeergebnis überschrieben.
> ruby calculate.rb >> output_data.txt
(cdalculate.Führen Sie rb aus und geben Sie das Ausgabeergebnis aus_data.Fügen Sie es am Ende von txt hinzu.> output_data.Im Gegensatz zu txt besteht der Punkt darin, dass der Inhalt der Datei nicht überschrieben wird.
> ruby calculate.rb < input_data.txt > output_data.txt
(<Wann>,und>>は組み合わせるこWannができます。↑では、calculate.Führen Sie rb aus und geben Sie die zur Ausführung verwendeten Daten ein_data.Geben Sie den Inhalt von txt und das Ausführungsergebnis aus_data.Ausgabe an txt)
pipe (|) Sie können Befehle miteinander verbinden. ** Ich benutze es oft. ** ** **
> cat hoge.txt | grep fuga
(hoge.Suchen Sie die Position in txt, die die Zeichenfolge fuga enthält)
$(), `` Es führt den Befehl in den Klammern von $ () aus und gibt das Ergebnis zurück. Ich denke jedoch nicht, dass dies allein Sinn macht, deshalb gebe ich Ihnen ein Beispiel.
> cat $(ls)
(Zuerst$(ls)Wird ausgeführt und das Ergebnis ist das Argument von cat. Infolgedessen wird der gesamte Inhalt der Dateien in dem Verzeichnis angezeigt, in dem der Befehl ↑ ausgeführt wird. )
Mit dem Befehl "grep" können Sie beispielsweise reguläre Ausdrücke wie "*", "+" und "." Verwenden. Grep ist ursprünglich eine Abkürzung für "Global Regular Expression Print". Daher können natürlich reguläre Ausdrücke verwendet werden.
*
und +
sind Wiederholungen desselben Zeichens (* enthält leere Zeichen, während + ein oder mehrere Zeichen sind). .
Ist ein beliebiger Charakter, nicht wahr?
> grep .*hoge
(Suche nach Sätzen, die hoge enthalten)
Kombinieren wir nun die bisher eingeführten Befehle und Techniken!
Sie können frühere Befehle mit Strg + r durchsuchen, aber Sie können dasselbe mit dem Befehl ↓ tun.
> history | grep command_name
> ls -lat ~/Downloads | head -10
total 3408200
drwxr-xr-x+ 112 keisuke staff 3584 1 18 21:49 ..
drwx------@ 569 keisuke staff 18208 1 18 18:54 .
-rw-r--r--@ 1 keisuke staff 65540 1 18 18:54 .DS_Store
-rw-r--r--@ 1 keisuke staff 254894 1 18 18:54 finished.zip
-rw-r--r--@ 1 keisuke staff 1692 1 17 22:53 dupSSHkey.pem
-rw-r--r--@ 1 keisuke staff 128909 1 13 10:19 assignment-2-problem.zip
-rw-r--r--@ 1 keisuke staff 129247 1 12 11:43 01-start.zip
-rw-r--r--@ 1 keisuke staff 26651 1 12 11:43 learning-card.pdf
-rw-r--r--@ 1 keisuke staff 236506 1 12 11:25 forms-03-finished.zip
tail -f log/development.log
Dieser Befehl wird verwendet, wenn Sie das Protokoll anzeigen möchten. Beim Schreiben von Rails drücke ich normalerweise diesen Befehl, um eine Gruppe von Terminals zum Überprüfen von Protokollen zuzuweisen.
tail -f log/development.log | grep "Die Zeichenfolge, nach der Sie suchen möchten"
Oder
cat log/development.log | grep "Die Zeichenfolge, nach der Sie suchen möchten"
Ich verwende diesen Befehl, wenn ich das Debuggen von Drucken durchführen möchte.
Dies ist ein Befehl, den Sie häufig beim Erstellen einer Umgebung sehen. Der Befehl besteht darin, den Inhalt von '' mit echo auszugeben und das Ausgabeergebnis in ~ / .zshrc einzufügen.
echo 'export PATH=">HOME/.nodenv/bin:>PATH"' >> ~/.zshrc
Dieser Befehl prüft, ob ein Prozess namens grep ausgeführt wird.
> ps aux | grep grep
sukebeeeeei 80328 0.0 0.0 4268280 656 s012 S+ 9:52PM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn grep
Angenommen, Sie haben ein Verzeichnis mit einer Struktur wie ↓ (das Verzeichnis, in dem die Artikel gespeichert werden, die in meine Qiita hochgeladen werden sollen).
> qiita-outputs git:(master) ✗ tree
.
├── README.md
├── alfred_techniques.md
├── articles
│ └── nukistagram_release.md
├── english_acronym.md
├── env_and_env_fetch
│ └── sample.rb
├── favorite_english_site.md
├── must_cover_linux_commands.md
├── must_gem_list.md
├── path_understanding.md
├── peco_intro.md
├── really_good_software.md
└── software_engineer_general_knowlegde.md
2 directories, 12 files
(Versuchen Sie es mit regulären Ausdrücken. Sie können die Struktur des Verzeichnisses in mehreren Ebenen sehen.)
> qiita-outputs git:(master) ✗ ls *
README.md must_gem_list.md
alfred_techniques.md path_understanding.md
english_acronym.md peco_intro.md
favorite_english_site.md really_good_software.md
must_cover_linux_commands.md software_engineer_general_knowlegde.md
articles:
nukistagram_release.md
env_and_env_fetch:
sample.rb
(Überprüfen Sie die Dateien im Verzeichnis zwei unten)
> qiita-outputs git:(master) ✗ ls */*
articles/nukistagram_release.md env_and_env_fetch/sample.rb
> ls */* | head -10
> ls */* | less
> docker rmi $(docker images -q)
Oder
> docker rmi `docker images -q`
Eine Liste der Docker-Bilder finden Sie unter "Docker-Bilder". Durch Hinzufügen von "-q" als Option wird nur die Bild-ID angezeigt.
Verarbeiten Sie es zuerst mit $ (Docker-Images -q) und führen Sie Docker rmi für den Rückgabewert aus. (Rmi: Bild entfernen)
Als Referenz. Wenn Sie nur die ersten 5 der Docker-Bilder sehen möchten.
> ~ docker images | head -5
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 8769696a985d 4 days ago 910MB
<none> <none> 694f9395f0e7 4 days ago 1.04GB
<none> <none> 8ff2255c3c50 4 days ago 995MB
<none> <none> a1457d2c753d 2 weeks ago 995MB
<none> <none> 788141cacfc5 2 weeks ago 998MB
Wenn Sie nur die ersten 5 Bild-IDs von Docker-Bildern sehen möchten
> ~ docker images -q | head -5
8769696a985d
694f9395f0e7
8ff2255c3c50
a1457d2c753d
788141cacfc5
> grep hoge > hoge_search_result.txt
Mit dem Befehl sed (kurz für Stream Editor)
können Sie Text ersetzen und viele technische und interessante Dinge tun.
> echo abcabc | sed s/ca/12/g
→ ab12bc
grep -Sie können auch n Zeilen vor und nach dem Match mit C n anzeigen
> grep -C 3 "search_word" search_file
Angenommen, Sie möchten wissen, wie reguläre Ausdrücke mit dem Befehl find behandelt werden und ob Optionen hinzugefügt werden sollen. In einem solchen Fall ist dies.
Zeigen Sie ein Handbuch zum Befehl find und in diesem Handbuch an"regular expression"Zeigen Sie den passenden Teil an, einschließlich der 3 Zeilen davor und danach
> man find | grep -C 3 "regular expression"
The options are as follows:
-E Interpret regular expressions followed by -regex and -iregex pri-
maries as extended (modern) regular expressions rather than basic
regular expressions (BRE's). The re_format(7) manual page fully
describes both formats.
-H Cause the file information and file type (see stat(2)) returned
--
--
-regex pattern
True if the whole path of the file matches pattern using regular
expression. To match a file named ``./foo/xyzzy'', you can use
the regular expression ``.*/[xyz]*'' or ``.*/foo/.*'', but not
``xyzzy'' or ``/foo/''.
-samefile name
Die oben eingeführten Befehle und Techniken sind in Kombination mit Shell-Skripten und Aliasnamen ebenfalls ** leistungsfähiger, aber ich habe aufgegeben, weil sie von diesem Artikel abweichen **. Wenn dieser Artikel summt, möchte ich einen Artikel schreiben, der den Bereich erklärt.
Wenn Sie nützliche Tipps wie "Wai verwendet diesen Befehl!" Haben, kommentieren Sie bitte! Bitte melden Sie Fehler oder Tippfehler!
Ich summe, also mache ich plötzlich eine Werbung w Dies ist ein Artikel, den ich mit viel Energie geschrieben habe. Es ist eine selbstbewusste Arbeit, also lesen Sie sie bitte!
Die Geschichte, dass der Terminalbetrieb mit peco dramatisch optimiert wurde
Linux-Befehle werden vertraut, wenn Sie die Bedeutung von Wörtern verstehen
[Versuchen und verstehen] Wie Linux funktioniert - Grundkenntnisse über Betriebssystem und Hardware, die durch Experimente und Illustrationen erlernt wurden Affiliate3203-22 & creative = 1211 & linkCode = as2 & creativeASIN = 477419607X & linkId = cd8945dcad25f265404e69f7ef8f0efb)
Die Idee von UNIX - sein Designkonzept und seine Philosophie
Ich habe meinen eigenen Blog mit Gatsby.js gemacht. Ich werde verschiedene Artikel posten! http://keisukee.com/
Recommended Posts