it-swarm.com.de

So greifen Sie von überall im Terminal auf eine Textdatei zu

Ich habe zwei Dateien. file1 ist ausführbar und file2 ist nur eine Textdatei und ich verwende sie häufig, muss aber jedes Mal cd ausführen, um auf das Verzeichnis zuzugreifen.

Wie kann ich file1 im Terminal universell ausführbar machen und wie kann ich auf den Inhalt von file2 zugreifen, unabhängig von meinem Standort im Terminal. Ist es möglich, den Inhalt von file2 in man page einzufügen, so dass ich nur man file2 ausführen kann?.

Ich denke, das kann mit /etc/environment gemacht werden, aber ich möchte wissen, wie man das richtig macht.

4
Rahul

Ich habe dieses Problem mithilfe des von @Zanna bereitgestellten Links gelöst.

Für file1:

Sudo ln -s /full/path/to/my/file1 /usr/local/bin/name_of_new_command

Und für file2 habe ich eine Funktion in ~/.bashrc file als geschrieben.

file2 () {
 pwd=$PWD
 cd /full/path/to/my/file2_directory
 if [ "$1" == "more" ] || [ "$1" == "less" ]; then
    $1 file2
    cd $pwd
 else
    $1 file2 &
    cd $pwd
 fi 
}

Auf diese Weise kann ich Datei2 in less, more, gedit oder einem anderen Editor öffnen, indem ich ein zusätzliches Argument übergebe wie:

file2 less
file2 more
file2 gedit
2
Rahul

Die Umgebungsvariable PATH ist für diesen Zweck vorgesehen. Verzeichnisse hinzufügen enthält file1 und file2 zu PATH, dann können Sie nur über den Dateinamen darauf zugreifen.

Um das Verzeichnis /opt/myapp zur Umgebungsvariablen PATH hinzuzufügen, gehen Sie wie folgt vor:

PATH=/opt/myapp:"$PATH"

Sie können den obigen Befehl zu ~/.bashrc hinzufügen, um ihn dauerhaft zu ändern. Führen Sie source .bashrc aus, um .bashrc für das aktuelle Terminal neu zu laden.

Eine andere Möglichkeit besteht darin, eine weiche Verknüpfung von file1 und files zum Verzeichnis /usr/bin herzustellen.

2
J.Franks

Sie haben die Lösung, wie Sie eine ausführbare Datei ausführen können, ohne bereits den vollständigen Pfad einzugeben. Also werde ich eine Lösung für das zweite Problem vorschlagen.

Ich vermute, dass Sie eine oder nur einige spezielle Dateien haben, auf die Sie direkt zugreifen möchten. Ich schlage vor, dass Sie sie mit weniger (das auch für Manpages verwendet wird) anzeigen. Ich vermute auch, dass Ihre Dateien andere Namen als ausführbare Programme haben. Andernfalls sollten Sie sie umbenennen, um Verwirrung zu vermeiden. (Zum Beispiel ist es eine schlechte Idee, mit dieser Methode auf eine Datei namens Sudo zuzugreifen.)

Sie können einen Alias erstellen und diesen Alias ​​in Ihrer Datei ~/.bashrc speichern

alias file2='less /path/to/file2'

hier ersetzen Sie/path/to/durch den tatsächlichen Verzeichnispfad.

Lauf

file2

und überprüfen Sie, ob es funktioniert. Wenn es funktioniert, können Sie die Alias-Befehlszeile in Ihre ~/.bashrc-Datei in der Nähe der anderen Aliase einfügen. Lauf

source ~/.bashrc

um es in bereits geöffneten Terminalfenstern zu aktivieren. Wenn Sie sich das nächste Mal anmelden, steht es Ihnen zur Verfügung.

2
sudodus