Standardbefehlsoptionen ändern

15

Wenn ich einen Befehl eingebe

ls

Ich sehe eine Liste von Dateien und Verzeichnissen im aktuellen Verzeichnis, die angezeigte Liste ist ziemlich ärgerlich.

Vielmehr möchte ich den Befehl ls mit der Option -1 wie ausführen

ls -1

Meine Frage ist, wie man das Standardverhalten des Befehls ls so ändert, dass er immer mit der Option -1 ausgeführt wird. dh wie man Dateien und Verzeichnisse in einer Spalte mit dem Befehl ls anzeigt.

Vielen Dank.

hrishikeshp19
quelle

Antworten:

14

Eine Möglichkeit wäre, einen Alias ​​in Ihrer ~/.bashrcDatei zu erstellen:

alias l1='ls -1'

dann durch Eingabe l1, ls -1wird ausgeführt

Zetah
quelle
Wie finden Sie die ~ / .bashrc-Datei? Ich habe die Anwendung "bash" in "Computer \ bin" gefunden, aber keine Textdatei mit dem von Ihnen angegebenen Namen.
AlainD
@AlainD Die .bashrc-Datei befindet sich in Ihrem Ausgangsverzeichnis, nicht in / bin. Das ~ wird in bash zu Ihrem Home-Verzeichnis erweitert, sodass der Pfad um 04:46 Uhr so ​​etwas wie /home/user/.bashrc
Jishnu
Ich benutze den Alias ​​lsl = "ls -l", da ich nicht aus der Startzeile wechseln muss, um ihn zu betreten.
DVNKISS
4

Öffnen Sie in Ihrem Basisverzeichnis die Datei .bashrc im Editor und fügen Sie den Alias ​​ls = 'ls -1' hinzu .

Öffnen Sie zuerst das Terminal ( Drücken Sie ControlAltT) und geben Sie ein gedit ./.bashrc, um Ihre .bashrc-Datei im Editor zu öffnen.

Suchen Sie den Abschnitt, der einige Aliase für ls enthält. In meinem (Lager 11.10) sieht es so aus:

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

Fügen Sie nach den ls-Aliasnamen die folgende Zeile ein:

alias ls='ls -1'

Speichern Sie die Datei, beenden Sie gedit und das Terminal und starten Sie es neu. Jetzt sollte der Befehl ls standardmäßig ls -1 ausführen.

James
quelle
1
Dadurch wird "ls" neu definiert, sodass dieser Benutzer standardmäßig "ls -1" verwendet. Wenn Sie lieber einen neuen Befehl verwenden möchten, deckt @zetah answer dies ab.
James
In meinem Home-Verzeichnis auf uBuntu 14.04 LTS sehe ich nur ein paar Ordner und keine .bashrc-Datei.
AlainD
1

Zetahs Antwort ist die beste. Ausarbeiten:

Aliase eignen sich am besten für kurze, einfache und häufig verwendete Änderungen von Befehlsstandardparametern. Sie werden im Speicher abgelegt (nachdem sie aus ihrer Quelldatei gelesen wurden), um die Leistung zu verbessern oder eine wiederholte Verwendung zu ermöglichen.

Funktionen sind für komplexere Aktivitäten geeignet, die häufig verwendet werden und auch im Speicher gespeichert sind.

Skripte eignen sich für die komplexesten und am seltensten verwendeten Befehle.

Sehen Sie diese Frage und Antworten auf Unix Stack - erklärt den Unterschied in bestem Gebrauch zwischen Aliase, Funktionen und Skripten.

RobDavenport
quelle
1

Nur um etwas zu klären, um @RobDavenport zu beantworten. Sie können keine Funktion verwenden, um einen Befehl mit demselben Namen zu überschreiben.

Zum Beispiel lskönnen Sie dem Befehl einen Standardparameter hinzufügen :

alias ls='ls -1 $@'

Dadurch wird ein neuer Aliasname hinzugefügt, der lsanstelle des ursprünglichen Befehls aufgerufen wird. Es wird die -1Option hinzugefügt und jeder Parameter $@an den ursprünglichen lsBefehl weitergeleitet.

Das könntest du auch tun

function ls_column () {
  ls -1 $@
}

Dies hätte den gleichen Effekt, aber Sie müssen einen anderen Namen für Ihre Funktion verwenden. Sonst ruft es sich immer wieder auf.

Tim
quelle