Ich bin neu in Linux und als Legastheniker empfinde ich das Arbeiten von der Kommandozeile aus als Herausforderung. Welche Hilfsmittel oder Ratschläge helfen bei der Lösung dieses Problems?
Ich bin neu in Linux und als Legastheniker empfinde ich das Arbeiten von der Kommandozeile aus als Herausforderung. Welche Hilfsmittel oder Ratschläge helfen bei der Lösung dieses Problems?
Antworten:
Sie können ein paar Dinge versuchen, um Ihre Erfahrung mit der Befehlszeile zu verbessern.
mkdir
gefolgt von cd
).history
Sie, Sie können den Befehlsverlauf anzeigen und dann die Nummer des Verlaufsbefehls verwenden, um den Befehl erneut auszuführen (z. B. Befehl # 352 wiederholen mit !352
). Alias es einfach h
für den schnellen und einfachen Zugriff.ls
den Inhalt eines Verzeichnisses auflisten, werden die Unterverzeichnisse in Blau und die Dateinamen in Weiß gedruckt, um die Unterscheidung zu erleichtern. Schauen Sie sich für andere Beispiele die vielen Personalisierungen an, die von Menschen geteilt wurden. Einige sind es sicher wert, "wie sie sind" auszuprobieren. Ein guter Ausgangspunkt ist das beliebte Awesome-Dotfiles- Repository.!352
statt history 352
, innit sein?
Ich werde eine umfassende Antwort versuchen. Wenn ich etwas ausgelassen habe, bitte kommentieren und ich werde es hinzufügen.
Das Ausfüllen von Registerkarten ist hier Ihre größte Hilfe. Durch Drücken von Tabwird der Befehl abgeschlossen, soweit dies eindeutig identifizierbar ist. Durch Tabzweimaliges Drücken wird eine Liste mit Optionen angezeigt. Wenn Sie genügend Zeichen eingeben, um die gewünschte Option zu identifizieren, und Taberneut drücken , wird die Eingabe abgeschlossen. Dies funktioniert auch mit Pfad- / Dateinamen.
Nehmen wir zum Beispiel an, ich habe einen Benutzer namens Paul, der die Dateien text123.txt und text124.txt in seinem Download-Ordner hat:
Ich könnte / h tippen Tabund bash wird mir geben /home/
. Dann tippe P Tabund erhalte /home/Paul/
. Und mache so weiter, bis ich die komplette Datei und den Pfad habe.
Die automatische Vervollständigung akzeptiert auch Platzhalter *
und ?
. ?
Stimmt mit einem einzelnen Zeichen *
überein und stimmt mit allen Zeichen überein (oder mit keinem). Mit dem obigen Beispiel könnte ich Folgendes eingeben:
/h*/P*/Dow*/t*4*
dann Tabund bash wird mir geben /home/Paul/Downloads/text124.txt
. Wenn ich sicher bin, dass ich mit der richtigen Datei übereinstimme, kann ich einfach drücken Enter, um den Befehl auszuführen, ohne ihn zuerst zu erweitern.
Einige häufig verwendete Verzeichnisreferenzen sind:
~
für Ihr Home-Verzeichnis...
übergeordnetes Verzeichnis.
Aktuelles Verzeichnis; falls du absolut sicher sein willst, dass bash im richtigen verzeichnis aussieht.Mit den Aufwärts- ↑und Abwärtspfeiltasten ↓können Sie durch eine Liste der zuletzt verwendeten Befehle navigieren. Drücken Sie Ctrl+ Gzu entkommen aus der Geschichte Suchmodus. Alt+ .wiederholt das letzte Argument des vorherigen Befehls.
Mit Bash können Sie Aliase angeben. Wenn Sie feststellen, dass Sie einen Befehl häufig auf dieselbe Weise falsch eingeben, können Sie benutzerdefinierte Aliase ~/.bashrc
hinzufügen, indem Sie die folgenden Zeilen bearbeiten und hinzufügen:
alias agi='apt-get install'
alias mkdri='mkdir'
Dann melden Sie sich erneut an, um sie zu aktivieren.
~
ist keinealias
, sondern wird erweitert um bash
wie in EXPANSION / Tilde Expansion in beschriebenman bash
- ~
wird beispielsweise zu $HOME
, ~+
nach $PWD
und ~-
nach erweitert $OLDPWD
. Sie können z. B. tatsächlich festlegen, alias ~='cd ~'
und es ist sehr nützlich, schnell zum Ausgangsverzeichnis zurückzukehren, aber das unterscheidet sich grundlegend von der Erweiterung (und schadet ihr nicht).
man bash
hat einen ganzen Abschnitt EXPANSION
... Sie haben bereits ein wenig über die Erweiterung der Pfadnamen gesprochen.
..
und .
; Entfernt beispielsweise cd ..
tatsächlich das letzte Pfadsegment aus dem aktuellen Arbeitsverzeichnis, anstatt ein ..
Segment hinzuzufügen .
Die Zsh-Shell (oder zumindest die Version, die ich verwende, Oh-my-ZSH ) verfügt über eine Funktion, die Sie korrigiert, wenn Sie kleine Tippfehler in Befehls- und Dateinamen machen:
$ pyhton scirpt.py
zsh: correct 'pyhton' to 'python' [nyae]? y
zsh: correct 'scirpt.py' to 'script.py' [nyae]? y
...
Sie können es mit der folgenden Zeile in Ihrem aktivieren .zshrc
:
# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"
mr fr- ./ -oe--rvoeorrpne-st
->zsh: automatically correcting to rm -rf / --no-preserve-root
mv file1 file1.old
, weil es den zweiten Dateinamen zum ersten korrigieren würde, was es zu einem No-Op macht.
Sie können versuchen, die offene Legastheniker-Schriftart in Ihrem Terminal zu verwenden. Es könnte beim Lesen des Textes helfen. Dies setzt voraus, dass Sie das Standard-Ubuntu-Terminal verwenden, das hoffentlich mit dem GNOME-Terminal identisch ist.
sudo apt install fonts-opendyslexic
.
Um die Antwort von @pomsky zu vervollständigen, möchte ich einige Punkte hinzufügen:
Erfahren Sie, wie Sie Dinge automatisieren, insbesondere, wie for
Schleifen funktionieren, wie sie read
funktionieren, wie sie if
funktionieren, was sie sind, [ ]
und [[ ]]
verwenden Sie den inoffiziellen Bash-Strict-Modus , denn sobald ein Skript gültig ist, ist es einfacher, keine Fehler zu machen.
Wenn Sie können, installieren Sie das Bash-Completion-Paket (kann je nach Version unterschiedliche Namen haben).
Verwenden Sie rm
den -i
Schalter in gefährlichen Situationen (z. B. mit sudo
), oder installieren und verwenden Sie ihn rmtrash
(der Müll wird in den Papierkorb geworfen).
Verwenden Sie cp
mit dem -n
Schalter, der vorhandene Dateien beim Kopieren nicht überschreibt. (Nützlicher beim rekursiven Kopieren)
Erfahren Sie, wie Sie die ~/.bashrc
Datei verwenden. Dadurch wird die $PS1
Variable für Sie klarer.
Und vielleicht am schwierigsten, wenn Sie jung sind:
Versuchen Sie, die neuesten und gebräuchlichsten Werkzeuge Ihrer Arbeit ein wenig besser zu kennen.
$CXXFLAGS
in Ihrem ~/.bashrc
. (Zum Beispiel: export CXXFLAGS=" -std=c++17 -fmax-errors=1 -Wall -Wextra -pedantic -Werror "
entsprechend Ihrer C ++ - Version, also denke ich, C ++ 11 für Ubuntu), dann kompilieren Sie mit make main.cpp
und Ihre Optionen werden übernommen. Beachten Sie, dass dieser Optionssatz ziemlich hart ist: Alles, was korrekt und standart ist, wird als Fehler angesehen und verhindert, dass Sie kompilieren.Probieren Sie "FISH" Friendly Interactive Shell. Erhältlich in den Repos.
Ich kämpfte mit der Befehlszeile mit BASH. Fisch merkt sich alle letzten Befehle und bietet Abschluss. sudo apt installiere fish dann in bash type; Fisch. Wenn es Ihnen gefällt, lesen Sie die Anweisungen, wie Sie es zu Ihrer Standard-Shell machen. Es gibt andere Muscheln zur Verfügung; Fisch ist meine Wahl. Wenn Sie erst einmal angefangen haben, wird es Ihnen vielleicht gefallen.
Ich habe gelernt, dass ich Legastheniker bin, nachdem ich viele Jahre als Unix-Ingenieur und kompetenter Shell-Benutzer auf vielen verschiedenen Plattformen (Linux, AIX und Solaris) gearbeitet habe.
Legasthenie betrifft verschiedene Menschen in unterschiedlichem Maße, so dass die Annahme, dass "wir die Dinge in Unordnung sehen", eine übermäßige Vereinfachung und Frustration sein kann, wenn es Sie nicht so betrifft - ich finde die Standardschriftart für Terminals mit fester Breite extrem lesbar ( weiß auf schwarz scheint mir nett zu sein)
Muscheln sind mit vielen Akronymen und nicht intuitiven Navigationskonventionen schwer zu lernen, was es Menschen, die einfache Wörter mit regelmäßigen Mustern mögen, oft schwer macht, sie zu lernen.
Ich verstehe jetzt, dass die meisten Legastheniker aus eigener Erfahrung lernen und sich diese merken. Wir sind sehr schlecht darin, eine Menge wortreicher Theorie zu lernen oder zu konsumieren. Sobald wir die Theorie durch Anwendung verdaut haben, bleibt sie jedoch in der Regel mit einem tiefen intrinsischen Verständnis bestehen. Konzentrieren Sie sich zu diesem Zweck darauf, Shell-Beispiele zu finden und auszuprobieren, indem Sie sie von Hand eingeben und die Funktionen der einzelnen Zeilen verstehen. Experimentieren Sie, brechen Sie Dinge, bleiben Sie die ganze Nacht wach und reparieren Sie sie.
Mit der Zeit werden Sie sich immer mehr Befehle und Muster merken, wie Entwickler ihre Programme implementiert haben, die auf den nächsten Befehl angewendet werden können. Da jedoch nicht alle Befehle bei der Übergabe von Argumenten / Parametern denselben Konventionen folgen, wird es eine Weile dauern, bis Sie die Befehle kennen, die ähnlich sind.
Wie jeder andere wird es nach ein paar Jahren zur zweiten Natur werden. Im Laufe der Zeit können Sie jedoch den Vorteil einer Legasthenie gewinnen, dass Sie intuitiv wissen, wie man Lösungen löst und komplexe Ursachenanalysen durchführt, indem Sie Ihre 6. sinnvolle Fähigkeit nutzen, Muster oder Brüche in Mustern zu erkennen.
Mit Ausnahme der Tab-Vervollständigung und der wichtigsten Tipps, finde ich, dass die meisten Antworten das Erlebnis nur noch überwältigender machen werden. Ignoriere sie. Vereinfachung ist der Schlüssel
Es gibt ein Werkzeug, das zwischen einem Witz und einem unschätzbaren Helfer steht.
https://github.com/nvbn/thefuck
Sie können es zusätzlich zu anderen Empfehlungen in diesem Thread versuchen. Die Hauptidee ist, dass wenn Sie etwas schreiben und den unbekannten Befehl oder was auch immer erhalten, dieses Tool ihn korrigiert und erneut ausführt.
Es ist keine Wunderwaffe, aber es kann sich lohnen, es zu versuchen.