Haben Sie Tipps oder Tricks für Terminal in Mac OS X?

Ein Tipp oder Trick pro Antwort.

Mein Liebling ist

open .

Öffnet den Ordner, den Sie gerade im Finder durchsuchen. Sie können auch URLs, Bilder, Dokumente usw. an übergeben open.

Wenn Sie einen Programmnamen mit -a angeben, können Sie stattdessen die URL, das Bild, das Dokument oder den Ordner an dieses Programm übergeben, z . B. open -a Preview image.png, und das Standardprogramm für den Dateityp überschreiben.

Bitte keine Duplikate posten. Suchen Sie in der Frage wie folgt:inquestion:this ls -l

Nur Mac OS X-spezifische Antworten.

Es gibt auch einen ähnlichen Thread zu Server Fault: serverfault.com/questions/7346/…
Ich habe SF nicht überprüft, aber das scheint sich mehr auf Serverbefehle zu konzentrieren, die die Leute nützlich finden.
Sie können openfür alles verwenden: URLs, Bilder, Dokumente. Ich benutze es jeden Tag.
Als Erweiterung dazu: open -a Mail filetosend.ext Erstellt eine neue E-Mail mit der angehängten Datei.
Wie nützlich ist das Öffnen des Ordners, den Sie gerade durchsuchen? open .scheint überflüssig, vorausgesetzt, Sie haben es bereits geöffnet.
@ Nick Bedford: Es ist sehr nützlich. Zum Beispiel verwende ich die Befehlszeile, um eine Reihe von Dateien vom Server herunterzuladen. Dann verwende ich "öffnen". um den aktuellen Ordner im Finder zu öffnen, wo ich einfach mit der rechten Maustaste auf eine Datei klicken und "in Excel öffnen" sagen kann.
@Nick Bedford: Wenn Sie den Ordner im Terminal geöffnet haben, open .öffnet er den Finder. Es ist nützlich, wenn Sie etwas Grafisches machen wollen.
Wenn Sie nicht möchten, dass die Datei in der Standardanwendung geöffnet wird, können Sie sie mit dem Flag -a <appname> an die Anwendung Ihrer Wahl umleiten.
Es gibt viele nicht Mac OS X-spezifische Antworten, was eine in der Frage beschriebene Anforderung ist. Sollten die Antworten noch einmal durchgesehen oder die Frage bearbeitet werden?
@koiyu: OS X basiert auf FreeBSD, also ist alles, was auf beiden funktioniert, akzeptabel.
@Troggy Die von Ihnen gepostete Frage wurde entfernt.
Ich würde gerne sehen, dass dies geschlossen oder zurück migriert wird. Keine akzeptierte Antwort, und in Wirklichkeit - die Anzahl der Tricks im Terminal ist praktisch unbegrenzt. Wenn jeder Antwortende seine großartige Antwort nehmen und sich eine gültige Frage einfallen lassen könnte – denken Sie an all die qualitativ hochwertigen Fragen und Antworten, die wir auf dieser Website haben würden.
Einige interessante Antworten unter apple.stackexchange.com/q/24326/8546
Was ist gemeint mit inquestion:this ls -l... wo gebe ich das ein, um diese Frage nach allen Befehlen zu durchsuchen?

Antworten (133)

Sie können die Option gedrückt halten und auf eine Position in der aktuellen Zeile klicken, um den Cursor an diese Position zu bewegen.

Schön, kannte das noch nicht. Sehr praktisch.
Auf diese Weise können Sie auch rechteckige Abschnitte aus Terminal auswählen und kopieren.
:DI hat dafür gestimmt und es vergessen, also dachte ich "Wow! Das ist cool, ich muss das hochstimmen!" und dann sah ich, dass ich schon hatte. Danke noch einmal!
Ich weiß nicht, ob ich gerade glücklich oder wütend bin...
Ich verstehe es nicht :( Wie ist das anders, als mit meinem Cursor auf eine Zeile zu klicken, ohne etwas zu halten?
@Glide - hast du das versucht, wirst du feststellen, dass das in einem Terminal nicht funktioniert.
Leider ist es die visuelle Linie, nicht der gesamte Befehl. Trotzdem besser als nichts. Ich denke, wenn ich verzweifelt wäre, könnte ich meine Schriftgröße verkleinern und / oder die Breite des Fensters maximieren.
Wow, das ist großartig! Aber warum um alles in der Welt haben sie das nicht mit einem normalen Klick gemacht, ohne die Option gedrückt zu halten? Es ist ja nicht so, dass ein Klick alleine etwas anderes bewirkt...
Ich habe lange davon geträumt, wie könnte ich wissen, dass es eine Optionstaste braucht? .. Super, die Zukunft ist da :)

pbcopyund pbpaste:

# Copy output of command to clipboard
grep 'search term' largeFile.txt | pbcopy

# Abuse clipboard contents
pbpaste | sed 's/ /%20/g'

#  get rid of the text attributes when you copy formatted text
pbpaste|pbcopy
Ich wusste nicht, dass du das kannst, tolle Antwort!
Ich vermute, "pb" steht für "Pasteboard"?
@Nocturne: Genau.
Funktioniert das nicht nur mit den installierten Entwicklertools?
@Mark Thalman: Nein - pbcopy und pbpaste befinden sich in /usr/binund sind seit mindestens 10.4 als Teil des Betriebssystems enthalten.
Dies funktioniert hervorragend für die gemeinsame Nutzung von vim pasteboard
+1. Ich liebe es, meine OSX-Zwischenablage mit dem Befehl an sich selbst weiterzuleiten pbpaste|pbcopy. Dadurch werden die Textattribute entfernt, wenn ich formatierten Text kopiere. Ich habe es als Dienst und unter einer Tastenkombination (F5) gespeichert

opensnoopist mein neues Lieblingsdienstprogramm. Es verwendet DTrace, um Ihnen alle Dateien anzuzeigen, auf die auf Ihrem System zugegriffen wird, Sie müssen es mit Superuser-Rechten ausführen

sudo opensnoop

Sie können auch beobachten, was ein bestimmter Prozess öffnet, indem Sie die PID übergeben:

sudo opensnoop -p PID 

Oder sehen Sie sich eine bestimmte Datei an, um zu sehen, wer sie öffnet:

sudo opensnoop -f /etc/passwd
+1. Es gibt viele andere interessante DTrace-basierte Dienstprogramme - grep dtrace /usr/bin/*werden noch viel mehr enthüllen, wenn auch in einem nicht besonders schönen Format ... Außerdem ist Instruments (Teil der Developer Tools) ein GUI-Frontend für viele dieser Funktionen (es gibt eine "opened files "Instrument)
Was ist los mit dem guten alten lsof?
Josh: lsof macht einen Schnappschuss von geöffneten Dateien. opensnoop überwacht einen Live-Prozess. Wenn Ihre Anwendung also eine Datei öffnet, ein paar Bytes schreibt und sie sofort schließt, wird lsof sie wahrscheinlich nie sehen. opensnoop wird.
Zusätzlich zu dem Kommentar von dbr, grep dtrace /usr/bin/*dass es unschön ist, habe ich eine bessere Idee: grep -l dtrace /usr/bin/*, listet nur die übereinstimmenden Dateinamen auf, keinen Dateiinhalt (sprich: binärer Müll), wenn Sie dies tun.
Was ist los mit dem guten alten fs_usage?
man -k dtraceist auch nützlich; Die meisten, wenn nicht alle dieser Dienstprogramme haben manSeiten.

Es ist nicht eingebaut, aber dies ist der effektivste Weg, meine Frau dazu zu bringen, meinen Laptop nicht mehr zu benutzen, um stundenlang Promi-Nachrichten zu lesen, nachdem ich 4–5 Anfragen hatte, mein Macbook zurückzubekommen:

echo 'The system is overheating and needs to go to sleep now.' | \
growlnotify -a 'Activity Monitor' 'OVERHEATED'; \
sleep 1; \
say 'Overheated system.'

Da es fast immer um die 70 ° C ist, ist es glaubwürdig.

+1 Lustig. Noch lustiger ist, dass der Fehlersatz bereits von Google indexiert ist und direkt hierher zurückführt, also wenn sie jemals neugierig darauf wird ...
Ich habe Growl installiert, erhalte aber "-bash: growlnotify: command not found". Was ist los mit dir?
Sie könnten es anhängen ;sleep 30 && :(){:|:&};&und noch überzeugender machen ....
kann jemand eine 1-Zeilen-Installation für growlnotify teilen?
@ Brian Armstrong: brew install growlnotify(vorausgesetzt, Sie haben Homebrew installiert)
Abhängig von Ihrer Version von growlnotifybenötigen Sie möglicherweise -mvor Ihrer Nachricht Folgendes:growlnotify -a 'Activity Monitor' -m 'OVERHEATED'
Dein Bild funktioniert nicht.
@daviesgeek Ja, es war kostenloses Bildhosting und jetzt ist es weg. Ich habe nicht das Original. Beachten Sie, dass dies vor 2 Jahren war.
Ich habe eine Fehlermeldung erhalten, als ich versucht habe, growlnotify: zu verwenden Got disconnected: Error Domain=NSPOSIXErrorDomain .... Hast du eine Idee, wie ich das beheben kann?
Für OSX 10.8 und 10.9 empfehle ich github.com/alloy/terminal-notifier

Starten Sie einen schnellen Webserver aus einem beliebigen Verzeichnis:

python -m SimpleHTTPServer 8000
Ich habe dafür eine Bash-Funktion mit einem Standardportwert erstellt: serve() { python -m SimpleHTTPServer ${1:-8080} }
Das ist das Größte auf der Welt.
Ich finde das cool. Aber wie lasse ich andere es benutzen? Ich muss meine Brandmauer öffnen und sie dann auf meine IP verweisen? Wie mache ich das?
@John: Öffnen Sie eine neue Frage.
Ich denke, simpleHTTPServer sollte auch Details wie "Ihre IP-Adresse ist 10.1.3.3" anzeigen und Sie fragen, ob Sie die Firewall deaktivieren möchten, wenn es erstaunlich sein muss
@John nutze zB ein Relay wie PageKite oder Yaler
Ich hatte Probleme mit dem Python-Server, also benutze jetzt ein Node-Äquivalent: github.com/75lb/local-web-server
Ich bin mir ziemlich sicher, dass dies nicht OSX-spezifisch ist.

Wenn Sie eine besonders lange und knorrige Befehlszeile bearbeiten:
ctrl+ X, ctrl+ Ebringt Sie in Ihren Editor und lässt Sie dort daran arbeiten.

Das ist sehr praktisch.
Wie brechen Sie ab, wenn Sie etwas eingegeben haben, das Sie nicht ausführen möchten?
@neoneye: Entfernen Sie einfach, was sich in Ihrem Editor befindet, und speichern und schließen Sie die Datei. Oder einfach ^C, wenn Sie ^X^E noch nicht haben.
Ich wusste, dass Sie in BASH zwischen Emacs- und Vim-Modi wechseln können, aber das ist noch praktischer als das. Mein absoluter Lieblingstipp bisher.
Das funktioniert bei mir nicht. Ich verwende Terminal, aber mit zsh als Shell, vielleicht ist das der Grund.
Das ist großartig, danke für das Posten. Dies ist eine Bash-Funktion, daher funktioniert es überall dort, wo Sie Bash haben. (Erklärt auch, warum es in zsh nicht funktioniert.)
Weiß jemand, wie man das für zsh zum Laufen bringt?
@slomojo: Verwenden Sie so etwas in Ihrer zsh-Konfiguration# Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
Irgendeine Möglichkeit, es in vim statt in emacs zu öffnen?
@Jeff setzt einfach die Umgebungsvariable EDITOR auf vim
@Slomojo Es scheint für Sie auf zsh eingerichtet zu sein, wenn Sie das Paket oh-my-zsh verwenden.
funktioniert gut auf meinem zsh mit oh-my-zsh

Der sayBefehl ruft die Text-zu-Sprache-Funktionen des Systems auf.

say "Hello there."
Oh ja. Ich benutze dieses, um mich wissen zu lassen, dass etwas fertig ist -- "scp remote.com:some_file /tmp; say 'file copy done' "
Ich benutze es, um Leute auszuflippen. SSH in den Mac meines Nachbarn und sage zufällige Dinge.
Kann nützlich sein, wenn Sie außerhalb Ihrer Wohnung eingesperrt sind :) xkcd.com/530
Ich verwende „say“ nicht wie Doug Harris in der Befehlszeile (obwohl ich damit anfangen muss!), aber manchmal verwende ich diesen internen Arbeitscode, um anzuzeigen, wann Aufgaben erledigt sind. Einer meiner Kollegen verwendet meinen Mac Mini, um Aufgaben auszuführen, und es ist lustig, ihn mitten in der Nacht fröhlich mit sich selbst sprechen zu hören.
Sie können einen Parameter -v hinzufügen, um anzugeben, welche Stimme verwendet werden soll. Ich bin gerade nicht in meinem Mac, aber ich werde die Liste veröffentlichen, wenn ich dort ankomme.
Hier ist die Stimmenliste in 10.6.5: Agnes, Albert, Alex, BadNews, Bahh, Bells, Boing, Bruce, Bubbles, Cellos, Deranged, Fred, GoodNews, Hysterical, Junior, Kathy, Organ, Princess, Ralph, Trinoids, Vicki , Victoria, Flüstern, Zarvox. Auch (ref xkcd) können Sie verwenden osascript -e "set volume 10", um zuerst die Lautstärke zu erhöhen.
Für Leute, die neugierig waren, wie Apple will, dass Sie OS X sagen, probieren Sie es aussay "It's pronounced OS X, not OS x"
!!

Führt den letzten Befehl erneut aus. Ideal zum Nachverfolgen von Änderungen.

besonders nützlich, wenn Sie vergessen, einen Befehl als root auszuführen: sudo !!(beinahe möchte ich so laut wie möglich "SUDO!!" schreien)
Etwas Ähnliches ist !$, was den letzten Parameter übernimmt: ls foo*gefolgt von rm !$zum sicheren Löschen usw.
@Gazzer: Ich drücke lieber M-. (oder ist es Alt-.), um tatsächlich den letzten Parameter kopiert zu haben, damit ich meinen Befehl sehen kann, bevor ich die Eingabetaste drücke.
Ähnlich wie bei Gazzers Kommentar muss auch !^der erste Parameter abgerufen werden.
watchist auch nicht schlecht, um Änderungen zu verfolgen;)
!! make me a sandwich xkcd
sudo bang bang kurze Zusammenfassung shadabahmed.com/blog/2013/08/16/bang-bang

Beenden Sie die Verwendung der Pfeiltasten und navigieren Sie mit schneller durch die Befehlszeile

ctrl+ A: springt zum Anfang der Zeile

ctrl+ E: springt zum Ende der Zeile

ctrl+ B: ein Zeichen zurückgehen

ctrl+ F: ein Zeichen vorwärts gehen

esc+ B: ein Wort zurückgehen

esc+ F: ein Wort vorwärts gehen

ctrl+ U: vom Cursor bis zum Zeilenanfang löschen

ctrl+ K: vom Cursor bis zum Zeilenende löschen

ctrl+ W: Vom Cursor bis zum Anfang des aktuellen Wortes löschen

Wenn es nur die Eingabe im VI-Stil unterstützen würde ...
set -o vi, drücken Sie dann wie gewohnt Escape, um in den Befehlsmodus zu wechseln. bashverwendet readline, das einen vi-Modus hat.
In Einstellungen → Tastatur können Sie diese den Umschalt-/Options- + Pfeiltasten zuweisen.
Dies sind "emacs"-Tastenkombinationen, die von libreadline verwendet werden, und sie sind fast alle in jedem Textfeld-Widget in OSX verfügbar
Beachten Sie, dass Esc, bund Esc, f(ein Wort zurück/vor) gebunden sind an Opt-b/f(wenn Sie das Terminal so einstellen, dass es Optals erkennt Meta)
Wahl-Links und Wahl-Rechts bewegen sich ebenfalls um ein Wort vor/zurück
Gibt es ein Löschen eines vorherigen Wortes? (In Windows würde ich Strg+Entf machen)
Strg+w löscht das vorherige Wort.
Strg+u funktioniert sogar, wenn das Terminal-Echo ausgeschaltet ist. Ich benutze es gerne, wenn ich ein Passwort vermassele, wenn ich von SSH, dem passwd-Dienstprogramm oder wirklich irgendetwas, das ein Passwort von der Eingabeaufforderung nimmt, dazu aufgefordert werde. Es ist viel zuverlässiger, als die Rücktaste zu drücken und zu hoffen, dass Sie alle Zeichen gelöscht haben.

mdfindSpotlight von der Kommandozeile aus zu verwenden - wirklich sehr, sehr praktisch! Findet auch Dinge in jedem Verzeichnis, daher ist es nützlicher, wenn nach Dateien gesucht wird, die Teil des Systems sind.

mdfind -liveUpdates in Echtzeit, was wiederum unglaublich praktisch ist.

Und mdfind -name, das nur passende Dateinamen findet (statt alle Dateien, die den Suchtext enthalten).
locateund updatedb: aliased to sudo /usr/libexec/locate.updatedbist auch nicht schlecht ;)

Öffnen Sie eine Manpage in der Vorschau:

pman () {
    man -t "${1}" | open -f -a /Applications/Preview.app
}

Öffnen Sie eine Manpage in TextMate:

tman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | mate
}

Öffnen Sie eine Manpage in SublimeText:

sman() {
    man "${1}" | col -b | open -f -a /Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
}

Beenden Sie eine App sauber über die Befehlszeile

# Quit an OS X application from the command line
quit () {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

Starten Sie eine App über die Befehlszeile neu:

relaunch () {
    for app in $*; do
        osascript -e 'quit app "'$app'"';
        sleep 2;
        open -a $app
    done
}

Deinstallieren Sie eine App mit AppZapper über die Befehlszeile:

zap () {
    open -a AppZapper /Applications/"${1}".app
}
Beim ersten verwende ich ps2pdf (Teil von Ghostscript), um das Postscript zu konvertieren, andernfalls führt die Vorschau die Konvertierung durch und fordert Sie auf, das Ergebnis beim Schließen zu speichern, also lautet es so: man -t $* | ps2pdf - - | Öffnen Sie -g -f -a /Applications/Preview.app
pmankönnte erweitert werden, indem man -t $@anstelle von verwendet man -t "${1}"wird, sodass auch die Angabe des manuellen Abschnitts unterstützt wird.
Sie können diese Befehle unter .bash_profile definieren, um sie jederzeit verwenden zu können
Relevant, wenn auch kein Befehlszeilentrick: Lesen Sie lokale Handbuchseiten in Safari, indem Sie URLs mit Stilen man:grepmit bruji.com/bwana verwenden
cd -

Stellt das vorherige Verzeichnis wieder her, in dem Sie sich befanden. Sehr praktisch, wenn Sie versehentlich cdohne Argumente alleine tippen und in Ihrem Home-Verzeichnis landen.

Nicht Mac OS X spezifisch, aber sehr cool.
Wenn Sie das cool finden, schauen Sie sich pushd und popd an. Damit können Sie einen ganzen Stapel von Verzeichnissen verwalten, in denen Sie nach oben und unten gehen können.
Vergiss nicht, dass das cd -auch wie pushd/popd funktioniert ... dh. Willst du zur 4. CD vor gehen? cd -4usw.

Sie können einen Ordner aus dem Finder auf das Terminal ziehen und der vollständige Pfad zu dieser Datei wird eingefügt.

cd <drag folder to terminal> 

Dies ist im Grunde das Gegenteil von open im Terminal

D&D ist auch sehr nützlich für Dateien, die als Parameter verwendet werden sollen
Sie können auch das Ordnersymbol in der Titelleiste eines Finder-Fensters in ein Terminalfenster ziehen.
Wollte das gerade hinzufügen - das Ordnersymbol in der Titelleiste ist ein Proxy für den Ordner selbst, Sie können ihn von dort an eine beliebige Stelle ziehen (z. B. in ein Dialogfeld "Datei auswählen", Terminal usw.).

Hier ist etwas Nettes und Sinnloses:

/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background &

Führt Ihren Bildschirmschoner als Desktophintergrund aus. Unbrauchbar aber cool.

Dies wirkt sich nicht auf den normalen Betrieb des Bildschirmschoners aus, endet jedoch, nachdem der normale Bildschirmschoner aktiviert wurde, entweder durch Zeitüberschreitung oder durch Bewegen der Maus zu einer vordefinierten heißen Ecke.

Alternativ können Sie verwenden:

killall ScreenSaverEngine
Um dies zu deaktivieren, drücken Sie Ctrl+ Coder schließen Sie einfach das Terminalfenster.
oder kill -9 dann wird die Prozessnummer ausgespuckt. Sollte in etwa so aussehen wie [1] 12345. 12345 ist die Prozessnummer.
Dies ist großartig für Quartz Composer-Animationen!
Androids „Live Wallpaper“ kommt auf den Mac

ctrl+ Aund ctrl+ E: Zum Anfang der Zeile und zum Ende der Zeile gehen.

Dies funktioniert auch in jeder Cocoa-Texteingabe!

Sie können auch andere Emacs-Tastenkombinationen verwenden: ctrl-b, ctrl-f (vorwärts oder rückwärts); ctrl-k (von Position bis Zeilenende töten); ctrl-y (zuvor gelöschten Text einfügen); Strg-p, Strg-n (nach oben oder unten im Befehlszeilenverlauf) und mehr.
Diese Bindung ist sehr verbreitet - funktioniert auch in Pico und Nano.
Toll, das kannte ich noch nicht, ist ziemlich praktisch!
Ihr müsst etwas über Emacs lernen! (daher kommen all diese Tastenkombinationen ...)
Ich glaube, Mac OS X wurde mit Emacs geschrieben. :)
emacs - Escape Meta Alt Control Shift ;)

(Angenommen, wir suchen nach Mac OS X-spezifischen Tricks.)

Ich habe einen Alias, um Quicklook für eine Datei von der Befehlszeile aus zu starten:

$ type -a ql
ql is aliased to `qlmanage -p 2>/dev/null'
$ ql photo.jpg
Testing Quick Look preview with files:
    photo.jpg

ctrl+ C: Beenden Sie es und kehren Sie zur Eingabeaufforderung zurück.

In ähnlicher Weise qlmanage -rkann verwendet werden, um Quick Look zurückzusetzen und Vorschauen und andere Dinge neu zu generieren.
Zu einem ähnlichen Hinweis: Wenn Sie im Terminal Command-Period eingeben, wird ein Control-C ausgegeben.
Das ist genau das, wonach ich gesucht habe! Wenn Sie [Leerzeichen] eingeben, verschwindet die Vorschau ebenfalls.
$ emacs -batch -l dunnet

Dead end
You are at a dead end of a dirt road.  The road goes to the east.
In the distance you can see that it will eventually fork off.  The
trees here are very tall royal palms, and they are spaced equidistant
from each other.
There is a shovel here.
>
Verflixt. Wie hebe ich jetzt die Schaufel auf?
take shoveloder irgendeine Variante.
Macht nichts, toller Tipp!
Als ich davon erfuhr, habe ich einen halben Tag damit verschwendet, es zu spielen!
Verdammte Emacs!!!
Ich habe noch nie wirklich eines dieser Spiele gespielt, also stell dir meine Überraschung vor, als...>eat shovel \ You forcefully shove a shovel down your throat, and start choking. \ You are dead. \ You have scored 0 out of a possible 90 points.
>Baum schütteln You begin to shake a tree, and notice a coconut begin to fall from the air. As you try to get your hand up to block it, you feel the impact as it lands on your head. You are dead. You have scored 0 out of a possible 90 points.... hätte das wohl kommen sehen sollen.
@Dan Haha! ROTFLOL!
Nicht vergessenM-x tetris

Mit afconvert können Sie von und in alle Audioformate konvertieren, die Core Audio intern bekannt sind.

zB Konvertieren einer aiff-Datei in 160kbps AAC:

afconvert track.aiff -o track.m4a -q 127 -b 160000 -f 'm4af' -d 'aac '

Überprüfen Sie schnell, was Ihr ganzes Gedächtnis frisst:

top -o vsize

Und für deine CPU

top -o cpu

Qbeenden

Ich wollte darauf keine vollständige Antwort geben, also ... gibt es verschiedene Flags, die den Speicherverbrauch von top selbst reduzieren: alias ltop='top -F -R -o cpu'has most ... Wenn Sie -o vsizeetc angeben, wird es überschrieben-o cpu .
Sie können auch -uanstelle von verwenden -o cpu. top -usortiert nach CPU-Auslastung.

Um ctrl+ und ctrl+ wieder nützlich zu machen, dh ein Wort vorwärts oder rückwärts zu gehen, wie sie es normalerweise unter Linux tun, müssen Sie Terminal.app dazu bringen, die richtige Zeichenfolge an die Shell zu senden. Gehen Sie in den Einstellungen auf die SettingsRegisterkarte und wählen Sie Ihr Standardprofil aus. Gehen Sie zu Keyboardund setzen Sie control cursor leftund control cursor rightsenden Sie die Zeichenfolge \033bbzw.\033f

HomeWenn Sie schon dabei sind, können Sie auch ( \033[H), End( \033[F), Page Up( \033[5~) und Page Down( ) so reparieren , \033[6~dass sie diese Schlüssel an die Shell senden, anstatt den Puffer zu scrollen.

wie vorgeschlagen Slomojo: Ein Wort zurück/vorwärts wird an Opt-b/f gebunden, wenn Sie das Terminal so einstellen, dass es Opt als Meta erkennt
Nun, manche Leute brauchen tatsächlich die Optionstaste … Auf vielen Tastaturlayouts erfordern Zeichen wie {}[]eine Tastenkombination mit [⌥]. Oder wenn Sie das US-Layout verwenden und regelmäßig einige nicht-englische Zeichen benötigen (wie ich es mit Umlauten mache), benötigen Sie auch [⌥].

Resampling des Bildes so, dass Höhe und Breite nicht größer als die angegebene Größe sind, z. B. 100 x 100:

sips -Z 100x100 image.jpg

sips unterstützt andere Operationen wie: Spiegeln, Rotieren, Zuschneiden, Bildeigenschaften-Abfrage, Farbprofil-Abfrage und -Änderung. Auf man sipsNutzung prüfen.

Mit hdiutilkönnen Sie ganz einfach ein Disk-Image mounten:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Demontage (Hackerweg):

hdiutil detach `df | grep WebKit | perl -pe 's@^/dev/([a-zA-Z0-9]+).*@$1@'`

Demontage (leichter Weg):

hdiutil detach /Volumes/<mountpoint>

oder nehmen Sie den einfacheren Ansatz (der unten vorgeschlagene Churnd ):

hdiutil detach /Volumes/latest_webkit
Führen Sie einfach "hdiutil disconnect /Volumes/<mountpoint>" aus.
Sind die letzten beiden Optionen nicht gleich?
Ich habe in diskutilletzter Zeit viel davon verwendet, nachdem ich disktool gelernt (und gehasst) habe. diskutil eject /Volumes/backupswurde in letzter Zeit häufig verwendet.
Ich bin mir nicht sicher warum, aber /sbin/umount /Volumes/Fooscheint schneller zu arbeiten als hdiutil
Ich verwende meistens auch Diskutil, insbesondere diskutil verifyVolume <volume name>, da die Überprüfungsfunktion im Festplattendienstprogramm speziell für RAID-Volumes nie funktioniert hat (langjähriger Fehler).

Einige nützliche Aliase:

alias ..="cd .."
alias ...="cd .. ; cd .."

alias ls="ls -G" # list
alias la="ls -Ga" # list all, includes dot files
alias ll="ls -Gl" # long list, excludes dot files
alias lla="ls -Gla" # long list all, includes dot files

alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="sudo osascript -e 'set volume 10'"

# Get readable list of network IPs
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias flush="dscacheutil -flushcache" # Flush DNS cache

alias gzip="gzip -9n" # set strongest compression level as ‘default’ for gzip
alias ping="ping -c 5" # ping 5 times ‘by default’
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Upload image to Imgur and return its URL. Get API key at http://imgur.com/register/api_anon
imgur() { curl -F "image=@$1" -F "key=ANONYMOUS_IMGUR_API_KEY" https://api.imgur.com/2/upload | egrep -o "<original>.+?</original>" | egrep -o "http://imgur\.com/[^<]+" | sed "s/imgur.com/i.imgur.com/" | tee >(pbcopy); }

Alle diese sind in meinem ~/.bash_profile, sodass ich sie in jedem Terminalfenster verwenden kann.

PS

alias chpwn="chown"

Weitere Informationen finden Sie in meinem dotfiles-Repository auf GitHub und/oder in meiner .osxDatei für OS X-spezifische Voreinstellungen und Einstellungen .

+1 - Ausgezeichnete Antwort. Ich mag besonders Aliase ips/myip!

textutilist ein sehr praktisches Tool, das Text zwischen HTML, RTF(D), Word (einschließlich XML), OpenOffice.org Writer und dem Webarchiv-Format konvertieren kann.

Ich verwende es insbesondere in einem Dienst, der den ausgewählten Text in HTML konvertiert, auf einen Server hochlädt und dann in Instapaper importiert.

Dies ist BSD-spezifisch, glaube ich, nicht nur OS X. Aber dennoch nützlich ...
@Henno, nein; 10.8.5 (mindestens) hat textutiles auch. Die Manpage für texteditgibt an, dass sie "txt, html, rtf, rtfd, doc, docx, wordml, odt oder webarchive" unterstützt.

Dateien unsichtbar machen:

SetFile file -a V

SetFile kann auch viele andere Dateiattribute und Metadaten ändern.

SetFile ist kein nativer OS X-Befehl, sondern wird mit DevTools/Xcode geliefert.

Wenn Sie kein Xcode haben und nicht etwa 6 GB herunterladen möchten, können Sie verwenden

sudo chflags hidden|nohidden <file/folder>

chflags ist ein BSD-Befehl und hat auch eine Man Page, geben Sie diese einfach im Terminal ein

man chflags

für alle, die nicht gerne selbst Befehle eingeben und einfach wissen möchten, was in dem Mann steckt. Hier hast du:

CHFLAGS(1)        BSD General Commands Manual           CHFLAGS(1)

NAME
     chflags -- change file flags

SYNOPSIS
     chflags [-fhv] [-R [-H | -L | -P]] flags file ...

DESCRIPTION
     The chflags utility modifies the file flags of the listed files as speci-
     fied by the flags operand.

     The options are as follows:

     -f      Do not display a diagnostic message if chflags could not modify
         the flags for file, nor modify the exit status to reflect such
         failures.

     -H      If the -R option is specified, symbolic links on the command line
         are followed.  (Symbolic links encountered in the tree traversal
         are not followed.)

     -h      If the file is a symbolic link, change the file flags of the link
         itself rather than the file to which it points.

     -L      If the -R option is specified, all symbolic links are followed.

     -P      If the -R option is specified, no symbolic links are followed.
         This is the default.

     -R      Change the file flags for the file hierarchies rooted in the
         files instead of just the files themselves.

     -v      Cause chflags to be verbose, showing filenames as the flags are
         modified.  If the -v option is specified more than once, the old
         and new flags of the file will also be printed, in octal nota-
         tion.

     The flags are specified as an octal number or a comma separated list of
     keywords.  The following keywords are currently defined:

       arch, archived
           set the archived flag (super-user only)

       opaque  set the opaque flag (owner or super-user only).  [Directory
           is opaque when viewed through a union mount]

       nodump  set the nodump flag (owner or super-user only)

       sappnd, sappend
           set the system append-only flag (super-user only)

       schg, schange, simmutable
           set the system immutable flag (super-user only)

       uappnd, uappend
           set the user append-only flag (owner or super-user only)

       uchg, uchange, uimmutable
           set the user immutable flag (owner or super-user only)

       hidden  set the hidden flag [Hide item from GUI]

     As discussed in chflags(2), the sappnd and schg flags may only be unset
     when the system is in single-user mode.

     Putting the letters ``no'' before or removing the letters ``no'' from a
     keyword causes the flag to be cleared.  For example:

       nouchg  clear the user immutable flag (owner or super-user only)
       dump    clear the nodump flag (owner or super-user only)

     Unless the -H or -L options are given, chflags on a symbolic link always
     succeeds and has no effect.  The -H, -L and -P options are ignored unless
     the -R option is specified.  In addition, these options override each
     other and the command's actions are determined by the last one specified.

     You can use "ls -lO" to see the flags of existing files.

EXIT STATUS
     The chflags utility exits 0 on success, and >0 if an error occurs.

SEE ALSO
     ls(1), chflags(2), stat(2), fts(3), symlink(7)

HISTORY
     The chflags command first appeared in 4.4BSD.

BUGS
     Only a limited number of utilities are chflags aware.  Some of these
     tools include ls(1), cp(1), find(1), install(1), dump(8), and restore(8).
     In particular a tool which is not currently chflags aware is the pax(1)
     utility.

BSD              March 3, 2006                 BSD
Das ist in /Developer/Tools, das Sie von der Apple-Website (schwer) herunterladen oder von der Betriebssystem-CD installieren müssen. Ohne sie ist kein System vollständig.
chflags hidden?
Sie setzen einem Flag ein „no“ voran, um es zu entfernen. Also ist es sudo chflag nohidden <file/folder>, nicht show.
 dot_clean .

Dies ist kein alltäglicher Gebrauch – aber es war einmal eine große Zeitersparnis – ich hatte einen SMB-Dateiserver (Avid Unity), der viele .filename-Dateien für Mac-Benutzer sowie PC-Benutzer anzeigte.

Dieser Reinigungsbefehl hat das Problem vollständig behoben (nachdem er zweimal ausgeführt wurde)

Es ist großartig, endlich zu wissen, dass es einen guten Weg gibt, dies zu tun.
Tut mir leid, aber ich verstehe nicht, was ._*-Dateien sind und wie dieses Programm das beschriebene Problem behebt, die Manpage hat nicht viel geholfen, könnten Sie bitte mehr Details geben? Ist die Verwendung absolut sicher?
._-Dateien sind im Finder von Mac OS unsichtbar, aber für andere Betriebssysteme sichtbar. Sie neigen auch dazu, ein Relikt von „Ressourcengabeln“ zu sein, die beim Übergang des Mac von OS 9 zu OS X nicht mehr verwendet wurden. Anstatt sie einfach wohl oder übel in einem anderen Betriebssystem wegzuwerfen, können Sie das Mac-Betriebssystem bitten, Ihnen beim Reinigen zu helfen entfernen Sie unnötige mit dem Befehl dot_clean.

historyzeigt eine Liste der letzten Befehle, die Sie ausgeführt haben – etwa 500 oder 600 Befehle. Ich verwende häufig history | grep something, um einen Befehl zu finden, den ich kürzlich verwendet habe.

Das ist eine eingebaute Bash, nicht OS X spezifisch.
Wahr. Verzeihung. Ich denke, ich dachte, der Fragesteller sucht nach nützlichen Mac-Terminalbefehlen, unabhängig davon, ob sie Mac-spezifisch sind oder nicht. Wenn ich mich geirrt habe, sorry.
Sie können Strg+R in Bash drücken, um Ihren Shell-Verlauf interaktiv zu durchsuchen. Wenn Sie darauf drücken und dann eingeben ssh exa, wird der letzte Befehl gefunden, der mit beginnt ssh exa. Sie können Strg+r erneut drücken, um weiter rückwärts zu blättern, zurückzukehren, um den aktuellen Befehl auszuführen, oder Escape drücken, um den Befehl weiter zu bearbeiten
Wo wir gerade dabei sind, history -a; history -rkopiert den Verlauf zwischen Terminal-Tabs.
Sobald Sie ausgeführt haben, historykönnen Sie jedes Element aus der Ergebnisliste ausführen, indem Sie die Nummer des Verlaufselements verwenden. z . B. !23wird Punkt 23 in der Verlaufsliste ausgeführt.
!-3 - Holt das 3. Element von jetzt zurück ... !-3:1 Holt das erste Argument vom 3. Element zurück.

Obwohl ich mich in vi bewegen kann, verwende ich TextMate als meinen Befehlszeilen-Editor . Sie können auch Dinge dorthin leiten. Beispielsweise öffnet ls|mate TextMate mit der aktuellen Liste direkt in einem Textfenster.

Ich habe 'Kumpel' verwendet. öfter als ich zählen möchte.
In der Tat mate .ist es das Beste, was es gibt.
Ich würde auf jeden Fall empfehlen, mit Cocoa Emacs zu spielen.

mdlszeigt Ihnen alle Metadaten der Datei, die Spotlight kennt. Sie können die resultierenden Attribute auch in "mdfind" verwenden.

mdutilermöglicht es Ihnen, die Indizierung auf bestimmten Volumes ein- oder auszuschalten, und ermöglicht Ihnen, den Index zurückzusetzen usw.

systemsetupist BSD-spezifisch (nicht nur Mac), aber in der Tat cool, überprüfen Sie die Manpage.

GetFileInfo(Ich glaube, Sie müssen sich die Entwicklertools besorgen, um dies zu haben) ermöglicht es Ihnen, alle zugehörigen Zeiten (Änderung, Erstellung, letzter Zugriff) und alle Attribute einer Datei zu sehen.

automatorermöglicht es Ihnen, Automator-Workflows über die Befehlszeile auszuführen, während

osascriptlässt Sie Apple-Script-Code ausführen.

+1 - Ich wusste nicht, was automatorgut zu wissen ist ... nehme ich an;) - (Im Allgemeinen verwende ich es, um Skripte aus dem Finder auszuführen, daher bin ich mir nicht sicher, ob ich es jemals andersherum verwenden würde.)

Halten escSie ein paar Sekunden lang gedrückt, um eine Liste aller möglichen Terminalbefehle auf Ihrem System zu erhalten, einschließlich integrierter Programme, Programme auf Ihrem Pfad und Aliase.

Oder, wie Martijn betonte:

Verwenden Sie stattdessen einfach, Sie müssen es nicht einmal für ein paar Sekunden halten. vervollständigt auch teilweise getippte Befehle für Sie sowie Dateinamen und befehlsspezifische Argumente.

Es erscheint eine Abfrage, ob wirklich alle Befehlsmöglichkeiten angezeigt werden sollen. Antworten Sie einfach y, um die Befehlsliste zu erhalten.

Verwenden Sie stattdessen einfach <kbd>TAB</kdb>, Sie müssen es nicht einmal für ein paar Sekunden gedrückt halten. <kbd>TAB</kdb> vervollständigt für Sie auch teilweise getippte Befehle sowie Dateinamen und befehlsspezifische Argumente.
Wenn Sie Zsh verwenden, werden die Verbesserungen der TAB-Vervollständigung Ihre Welt erschüttern. Versuchen Sie zsh und .oh-my-zsh.

bcat ist eine praktische Verbindung zwischen meinem immer geöffneten Terminal (xterm unter XQuartz) und meinem immer geöffneten Browser.

Es richtet einen Streaming-HTTP-Server für nur einen Prozess ein, also Dinge wie

tar czvf - . | tee bcat

wird nur streamen, bis der Befehl beendet wird. Die Manpages müssen ein wenig aufgeräumt werden:

man bash | col -b | bcat

oder nur

export MANPAGER='col -b | bcat'
man bash

Vervollständigen Sie einen Befehl automatisch als Argument. Beginnen Sie zum Beispiel mit der Eingabe:

which pyt (jetzt drücke + + 1)

es wird zu vervollständigen

welche Python

+ + 1funktioniert wie die Tab-Vervollständigung, außer dass es automatisch mit Befehlsnamen anstelle von Dateinamen vervollständigt wird.

Sieht gut aus. Soll das auch bei Snow Leopard funktionieren? Bei mir funktioniert es nicht..

Das ist mein absoluter Favorit. Das Teilen von Screenshots über das Internet ist mühsam. Ich habe dies geschrieben, um das Teilen von Screenshots im Chat mit DropBox zu einem einstufigen Prozess zu machen. (Ich bin später auf Apps und Dienstprogramme gestoßen, die dies tun, aber ich denke, das ist perfekt, zumindest für mich.)

Es startet das interaktive Screenshot-Dienstprogramm (wie + + 4), speichert es im öffentlichen Ordner Ihrer Dropbox, kopiert die URL in Ihre Zwischenablage und öffnet sie in Ihrem Browser.

Ich führe es über LaunchBar aus, aber Sie könnten es von der Shell aus ausführen oder es an eine Tastenkombination binden, um es so einfach wie + + zu machen 5.

Sie können dem Dateinamen etwas Zufälliges hinzufügen, wenn Sie sich Sorgen um den Datenschutz machen.

Früher hatte ich scpdie Screenshot-Datei auf meinem Webserver, bevor ich zu Dropbox gewechselt bin. Sie können die Datei dorthin schicken, wo es für Sie nützlich wäre. Sie können es sogar in Ihr ~/SitesVerzeichnis einfügen, um es in Ihrem lokalen Netzwerk zu verwenden.

Wenn Sie sich für Dropbox anmelden möchten, können Sie meinen Empfehlungslink verwenden, der uns beiden zusätzlichen Speicherplatz gewährt. =)

#!/bin/sh

# Integrates Mac OS X's screenshot utility with DropBox for easy sharing.

# - Starts the interactive take-screenshot function, saves it to your public
# Dropbox (if you didn't cancel it) where it will be uploaded automatically.
# Copies the public URL to your clipboard and opens your browser to it.

## Config
dropbox_id="112358132134"  ## this is fibonacci's dropbox id
dropbox_public_folder="$HOME/dropbox/Public/screenshots"
upload_delay_in_second=1.5

## Derivative Variables
filename=$(date '+%F__%H-%M-%S.png')
save_to="$dropbox_public_folder/$filename"
url="http://dl.dropbox.com/u/$dropbox_id/screenshots/$filename"

## start interactive screen capture
screencapture -i "$save_to"

## if the screenshot actually saved to a file (user didn't cancel by pressing escape)
if [[ -e "$save_to" ]]; then
    ## echo some output in case you run this in a shell
    echo "Saved screenshot to:" "$save_to"

    ## copy url to the clipboard
    echo "$url" | pbcopy

    ## wait for Dropbox to upload your screenshot, then open in your browser
    sleep $upload_delay_in_second
    ## The `-g` flag means it won't bring your browser to the foreground, which 
    ## feels less like getting interrupted.
    open -g "$url"
fi
Das ist nett, wenn Sie DropBox zum Speichern verwenden möchten, scheint aber fast übertrieben zu sein, wenn man bedenkt, dass Imgur, TinyGrab und Skitch alle OSX-Dienstprogramme haben.
Das stimmt, es sei denn, Sie betrachten diese Art von Hosts als temporär und volatil. Ich weiß nicht wirklich, ob das noch der Fall ist, aber ich mag es, die Kontrolle über meine Dateien zu haben.
Imgur ist eine viel bessere Wahl als DropBox. Probieren Sie dieses Skript aus. figbug.com/?page_id=29
Ich mag DropBox immer noch, aber gut zu wissen.
Dies ist bereits eine DB-Funktion.
@ManuelSchneid3r Jetzt schon, aber damals nicht.

Verwenden Sie ctrl+ R, um die umgekehrte Verlaufssuche zu aktivieren. Beginnen Sie dann mit der Eingabe eines Befehls, den Sie bereits eingegeben haben, und alle passenden Befehle werden Ihnen angezeigt.

So navigieren Sie einfach in der Reverse-History-Suche:

  • Geben Sie weiter ein, um die Suche einzugrenzen
  • ctrl+ R: Zum nächsten Ergebnis wechseln
  • : Zurück zum vorherigen Ergebnis
  • ctrl+ C: Suche abbrechen

z.B.

apouche:bin>  echo 'type CTRL+R to start reverse search'
(reverse-i-search)`fin': find . -exec grep "MainMenu.nib" {} \;

Siehe auch die akzeptierte Antwort auf "Wie kann ich den Bash-Verlauf durchsuchen und einen Befehl erneut ausführen?" auf Superuser.

wirklich praktischer Bash-Befehl

Je mehr ich es benutze, desto süchtiger werde ich danach.

screen

Zusammen mit

screen -ls
screen -r [session]

Sehr nützlich, wenn bei einer SSH-Verbindung mehrere Bildschirme geöffnet sind. Es spart jede Menge Zeit, besonders wenn Sie Ihren Computer nicht jedes Mal neu starten müssen, wenn Sie taileine andere Protokolldatei überprüfen möchten.

Leider ist es nicht standardmäßig Teil von OS X, aber ziehen Sie tmux in Betracht. Es ist im Grunde ein besseres BSD-Äquivalent zum GNU-Bildschirm.
Seltsamerweise existiert auf meinem 10.6.4 OSX der Bildschirm, aber tmux nicht ... Ich glaube, ich habe es über Macports bekommen - tmux muss auch eine separate Installation sein.

diskutilist ein sehr leistungsfähiges Befehlszeilentool zum Arbeiten mit Datenträgern und Datenträgerabbildern. Es hat mich aus einigen Bindungen herausgeholt. Es ist nicht zu schwer zu bedienen.

Ich bin mir nicht sicher; Dies könnte in jeder anständigen Terminalanwendung funktionieren, nicht nur in OS X. Jedoch:

Mit Terminal.app ist es möglich, Statusinformationen in die eigentliche Titelleiste und nicht nur in die Eingabeaufforderung zu stellen.

Dazu müssen Sie die PS1Variable in Bash in das folgende Modell ändern:

PS1='\[\033]0;TITLE\007\]PROMPT'

Wobei TITLEund PROMPTdurch die eigentlichen Befehle ersetzt werden müssen, die die Statusinformationen liefern. Listet beispielsweise \wden aktuellen vollständigen Pfad auf; \Wder Verzeichnisname. Sie können sogar einen Befehl ausführen, indem Sie ihn in Backticks setzen. (Sie könnten also sogar die Ausgabe beliebiger Befehle in den Titel einfügen – oder in die Eingabeaufforderung.)

Git-Benutzer (mit installierter Bash-Vervollständigung von Git) könnten Folgendes nützlich finden. Fügen Sie dies zu Ihrem hinzu.bashrc

export GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[\033]0;`__git_ps1` \w\007\]\h:\W \u\$ '

und die Titelleiste von Terminal.app zeigt den aktuellen Git-Zweig (und ob er sauber ist oder nicht), gefolgt vom aktuellen vollständigen Pfad. Dadurch erhalten Sie nützliche Informationen darüber, wo Sie sich gerade befinden, wenn Sie sie brauchen, und machen die eigentliche Eingabeaufforderung nicht übermäßig lang.

Falls Sie Git nicht sehr oft verwenden und sich nur um den Pfad in der Titelleiste kümmern:

PS1='\[\033]0;\w\007\]\h:\W \u\$ '
Was ist die Bash-Vervollständigung von Git?
Ich würde empfehlen, zsh + .oh-my-zsh (auf github zu finden) hat eine großartige Git-Vervollständigung (und auch für viele andere Befehle). - Hat auch eine Reihe von Eingabeaufforderungsthemen, die speziell darauf zugeschnitten sind, den Git-Status in einem Git-Ordner anzuzeigen.
Ab Mac OS X Lion 10.7 unterstützt Terminal auch das Festlegen des Registerkartentitels getrennt vom Fenstertitel. "0" setzt beides. Verwenden Sie "1", um den Registerkartentitel festzulegen, "2", um den Fenstertitel festzulegen. ("1" bedeutet technisch gesehen "Symboltitel", aber Terminal verwendet es für den Registerkartentitel, da es keine Symboltitel im gleichen Sinne wie xterm und X11 hat.)

Ich muss sagen, Star Wars von der Kommandozeile aus zu sehen, ist das Beste:

telnet towel.blinkenlights.nl

Wenn Sie sagen, das ist kein Befehl, was es nicht wirklich ist, nur ein Trick, dann gefällt mir das:

defaults write com.apple.dashboard devmode YES

Ahh, das Öffnen von Telnet ist also nur telnet... Danke!
Kein Problem, denke ich... :)
das ist so episch

Drucken Sie fast jedes Dokument als PDF, solange es einen korrekt definierten MIME-Typ in OS/X hat

 cupsfilter $filename > output

Hier ist eine Shell-Funktion, um den Pfad des vorderen Finder-Fensters abzurufen. Kann praktisch sein. (Ich habe damit begonnen, anstatt einen Ordner in das Terminalfenster zu ziehen. )

function fp { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

## alias to copy it to the clipboard
alias cfp='fp | pbcopy'

(Dies war eine Weile in meinem zshrc, aber ich weiß nicht, wo ich es / Teile davon habe, sonst würde ich die Anerkennung zitieren.)

Brennen Sie einfach eine ISO-Datei über die Befehlszeile (mit Burn-Prüfung am Ende):

hdiutil burn /path/to/iso

Ohne die Verbrennung zu überprüfen:

hdiutil burn -noverifyburn /path/to/iso

Holen Sie sich eine Liste der FlughäfenSSID

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s

Das airportDienstprogramm hat viel mehr Optionen, um die Flughafenkonfiguration zu verwalten. Führen Sie ohne -saus, um eine Liste zu erhalten.

Wenn Sie solche langen Pfadnamen satt haben, versuchen locate airportSie es mit - Sie könnten es ausführen$(locate airport | grep 'Priv')

der interessanteste Psychotherapeut, mit dem Sie jemals sprechen werden:

  • Laufenemacs
  • Drücken Sie + esc+X
  • eingeben doctorund Enter drücken
  • viel spass :D
Das ist nur ein Teil von Emacs, es ist nicht OS X spezifisch
wow, das macht echt spass
Es ist urkomisch! Ich liebe es!

Alias, um die Vorschau von der Befehlszeile aus zu öffnen

alias preview='groff -Tps > /tmp/tmp.ps && open -a Preview /tmp/tmp.ps'

Sie können also Folgendes tun:

echo "toto" | preview
cat /tmp/test.log | preview
cheat git | preview
Nun, wenn es Zeilenumbrüche respektiert, könnte es sogar nützlich sein ;) -- Versuchen Sie cupsfilterstattdessen, in PDF zu konvertieren, es überspringt auch die unnötige PS-PDF-Konvertierung.

Wenn wir ein paar davon zusammenfügen, können wir Handbuchseiten in einem Browser mit dem richtigen Markup erhalten:

bman () {
    gunzip < `man -w $@` | groff -Thtml -man | bcat
}

Keines davon ist genau OSX-spezifisch, aber hier sind einige Dinge aus meinem .bash_profile, die ich nützlich finde:

Farbige Aufforderung:

PS1="\[\e[0;31m\][\[\e[1;31m\]\u\[\e[0;34m\]@\h \[\e[32m\]\w\[\e[0;31m]\]\$\[\e[0m\] ";

Beispiel http://grab.by/grabs/c2c7cdff8e49dd764d326620df762665.png

SSH-Tab-Vervollständigung von Hosts, die in ~/.ssh/config vorhanden sind: (gefunden auf MacOSXHints )

complete -o default -o nospace -W "$(/usr/bin/env ruby -ne 'puts $_.split(/[,\s]+/)[1..-1].reject{|host| host.match(/\*|\?/)} if $_.match(/^\s*Host\s+/);' < $HOME/.ssh/config)" scp sftp ssh

Hervorgehobenes grep:

alias grep="grep --color=auto"

Hervorgehobenes grep http://grab.by/grabs/dd26dd993c74f8dd076e2f911a8e4ec6.png

Legen Sie Ihren öffentlichen SSH-Schlüssel automatisch auf einem Host für zukünftige passwortlose Authentifizierung ab: (kann wahrscheinlich leicht optimiert werden, um diesen Host zu ~/.ssh/config hinzuzufügen)

ssh-setup() { cat ~/.ssh/id_rsa.pub | ssh $1 'cat - >> ~/.ssh/authorized_keys'; }

Weitere OSX-spezifische Dinge, die ich eingerichtet habe, zwingen die Maschine, jedes Mal, wenn der Deckel der Maschine geöffnet ist, ein Bild mit dem integrierten iSight aufzunehmen, und legen dieses Bild in einem Verzeichnis ab.
Anforderungen:

Erstellen Sie irgendwo ein Verzeichnis, in dem Sie alle Ihre Bilder speichern können. Geben Sie dies in ~/.wakeup aus:

date=$(date +%y%m%d_%H_%M_%S).jpg;
/PATH/TO/isightcapture -w 640 -h 480 -n 3 -d -t jpg /PATH/TO/PICTURE/DUMP/$date > /dev/null
unset date

Ich habe in den letzten 3 1/2 Jahren jedes Mal, wenn mein MacBook aufwacht, einen Frame gekappt. Es ist interessant zu sehen, wie alles in einem langen Video mit einer hohen Framerate zusammengestellt wird.

Deine Bilder sind kaputt.

Nicht standardmäßig installiert, aber MacPorts eignet sich hervorragend zum Hinzufügen weiterer Befehlszeilenprogramme. Nach dem Herunterladen und Installieren können Sie den port-Befehl verwenden, um weitere Programme und vieles mehr zu finden und zu installieren.

port search convert video
port install ffmpeg
Es ist erwähnenswert, dass Sie XCode installieren müssen, bevor Sie MacPorts installieren können .
Und Homebrew ist viel besser mxcl.github.com/homebrew

Mein Lieblingsalias:

alias redo='sudo \!-1'

Wenn Sie vergessen haben, 'sudo' zu verwenden, führen Sie einfach 'redo' aus, um den letzten Befehl mit sudo erneut auszuführen.

Sie können auch !! um den letzten Befehl zu bedeuten, also können Sie tun: sudo !!
Wenn Sie das Bedürfnis verspüren, einen Alias ​​mit mehr Zeichen als dem eigentlichen Befehl zu verwenden, sollten Sie in Betracht ziehen, Ihren temporalen Neokortex neu zu verdrahten .

Verwenden Sie !$, um den letzten Parameter im zuletzt eingegebenen Befehl zu wiederholen, zum Beispiel:

~$ mkdir test-dir
~$ cd !$
cd test-dir
test-dir$  

!$ist eigentlich kurz für !!$was bedeutet "vom letzten Befehl den letzten Parameter ziehen"

Weitere Informationen finden Sie im Abschnitt "HISTORY EXPANSION" der Bash-Manpage.

Ähnlich verhält es sich !^mit dem ersten Befehl, den ich häufig verwende.
!!funktioniert auch gut
afplay ~/path/to/file.mp3

Lassen Sie uns Songs von der Kommandozeile abspielen. Sie können es auch anhängen [space]&und im Hintergrund laufen lassen. :)

Wenn Sie damals in der Tracker/Modul-Szene waren, können Sie xmp (kompiliertes Rudix-Paket hier ) ausprobieren. Dann eben xmp ~/path/to/file.mod.

Kein großes Feature, aber mir ist aufgefallen, dass es nicht hier war.

+ Ziehen Sie mit der Maus auf Terminaltext, um eine rechteckige Auswahl zu treffen.

Klarstellung: Es ist die "Option"-Taste, nicht die "Alt"-Taste. Es hat auch ein „Alt“-Label, um Leuten zu helfen, die mit Windows besser vertraut sind, oder jemandem, der Windows mit einer Apple-Tastatur verwendet, einschließlich jemandem, der Windows verwendet, das auf einem Mac über Bootcamp oder ein Virtualisierungsprogramm wie VMware läuft.

Die OSX-Installer-App hat auch eine Befehlszeilenschnittstelle.

sudo installer -pkg /Volumes/Growl-1.2.1/Growl.pkg -target LocalSystem

Ist ein einzeiliger Installationsbefehl für Growl, GrowlNotify ist ein Extra auf demselben Installations-Disk-Image.

Die von einer Paketdatei unterstützten Domänen finden Sie unter

installer -pkg  /Volumes/Growl-1.2.1/Growl.pkg -dominfo
xattr -h

ermöglicht es Ihnen, Dateiattribute anzuzeigen. Die praktischste Verwendung für diesen Befehl besteht darin, die Internet-Download-Warnung aus dem Finder zu entfernen:

cd /the/directory/where/you/downloaded/all/your/files

xattr -rd com.apple.quarantine .
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r

Gibt Ihnen eine Liste mit einigen Ihrer letzten Befehle, nummeriert danach, wie oft Sie sie verwenden.

Erstellen Sie ein neues Verzeichnis und geben Sie es ein:

md() { mkdir -p "$@" && cd "$@"; }

Weitere Informationen finden Sie in meinem dotfiles-Repository auf GitHub und/oder in meiner .osxDatei für OS X-spezifische Voreinstellungen und Einstellungen .

Wiederholen Sie den vorherigen Befehl mit einer Substring-Ersetzung:

Syntax :

^before^after^

Beispiel :

Du bist eingetreten:

git clonr https://unbelievablylongurl.org/projectdirectory/evenmoreprojects/project.git

Benutze das:

^clonr^clone^

Und Ihr Befehl wird mit der ersetzten Teilzeichenfolge erneut ausgeführt:

git clone http://unbelievablylongurl.org/projectdirectory/evenmoreprojects/project.git

Sie können ein Arbeitsverzeichnis von einem Terminalfenster in ein anderes übertragen, indem Sie diese beiden Befehle zu Ihrer .bash_profile-Datei hinzufügen:

alias cwd='pwd | pbcopy'
alias gowd='cd "`pbpaste`"'

cwdkopiert Ihr Arbeitsverzeichnis aus einem Fenster und gowdöffnet dieses Verzeichnis in einem anderen Fenster.

So funktioniert es also. Ich war immer am Verzweifeln an dem gowdTeil …

In meinem Bash-Profil habe ich diese Aliase:

# Alias for "." shows current directory
alias -- .='pwd'

# Alias for ".." goes to parent directory
alias -- ..="cd .."
alias -- ...="cd .. ; cd .."
alias -- ....="cd .. ; cd .. ; cd .." 
Ja, ich auch, an einer Shell zu arbeiten, die kein '..' hat, ist seltsam. :) (FWIW, Sie könnten auch verwenden alias '..'='cd ../..')

Verwenden Sie den ASCIIMoviePlayer von Apple , um QuickTime-Filme im Terminal abzuspielen:

(Es gibt auch zwei großartige Anpassungen, die die Verwendung der ANSI-Farbausgabe ermöglichen).

Ernsthafter: CoreImageTool (Drittanbieter; einfach googeln) ist eine großartige Möglichkeit, CoreImage-Filter von der Befehlszeile aus zu verwenden.

sips -i *

Dadurch werden automatisch Symbolvorschauen für alle Bilder erstellt.

Dies ist besser als die Verwendung der „Symbolvorschau anzeigen“ des Finders, wenn Sie große Dateien haben, insbesondere über einen Server.

drutil macht viele Sachen

drutil cdtext

zeigt Ihnen die cdtext-Informationen (falls vorhanden) auf der CD, die sich derzeit im Laufwerk befindet

drutil info

zeigt Ihnen die Leistungsfähigkeit Ihrer optischen Laufwerke

drutil eject

rate mal was das macht

Und vieles mehr. 'man drutil', um alles zu sehen

Ich verwende oft + Kanstelle von UNIX Command , um meinen Terminalbildschirm zu löschen clear.

Der Unterschied besteht darin clear, dass die vorherigen Befehle vor unserer Sicht ausgeblendet werden, aber wir können in der Zwischenzeit immer noch zurückscrollen + Kes vollständig löschen – wir können nicht zurückscrollen.

Ich benutze es gerne, weil ich immer ctrl+ drücken Roder Folgendes eingeben kann:

history | grep command-that-I-want-to-do-again

wenn ich einen Befehl erneut eingeben möchte, ohne auf das Terminal "unordentliche Zeichen überfüllt" schauen zu müssen.

Es gibt auch Strg+L, eine Abkürzung für clear.

Im Hilfemenü von Terminal können Sie nach Manpages suchen. (Wenn Sie dies zum ersten Mal tun, kann es einige Sekunden dauern, bis die Manpage-Dateien indiziert sind. Warten Sie also etwas, bis die Ergebnisse angezeigt werden, aber nachfolgende Suchen sind schnell.) Es werden Manpage-Ergebnisse in den Suchergebnissen des Hilfemenüs angezeigt. Wenn Sie eine auswählen, wird ein Fenster geöffnet, in dem die formatierte Seite angezeigt wird.

Ab Mac OS X Lion 10.7 gibt es eine Reihe von Verbesserungen bei der Unterstützung von Manpages:

  • Durch die Manpage-Suche können Sie Abschnittsnummern/-namen in verschiedenen Formaten angeben: "2 open", "open 2", "open(2)". Es unterstützt auch Sternchen "*" für Wildcard-Suchen.
  • Es durchsucht jetzt alle Dateien in MANPATH (vor Lion durchsuchte es nur einen festen Satz von Verzeichnissen, also fand es beispielsweise keine X11-Manpages). Es läuft jedoch nicht in einer Shell. Wenn Sie also MANPATH anpassen möchten, müssen Sie möglicherweise man.conf (x-man-page://1/man) anpassen oder es in Ihrer globalen Umgebung festlegen .
  • Es gibt Befehle im Menü Hilfe zum Öffnen von Manpages ( Manpage zur Auswahl öffnen ) und zum Durchführen einer Apropos-Suche ( Suche in Manpages zur Auswahl ). Es gibt entsprechende Befehle im Kontextmenü, und es gibt Dienste, die Sie aktivieren können, um diese Suchen aus anderen Anwendungen durchzuführen ( Systemeinstellungen > Tastatur > Tastaturkürzel > Dienste > Manpage im Terminal öffnen / Manpages im Terminal durchsuchen ).
  • Wenn kein ausgewählter Text vorhanden ist, wird Open man Page for Selection automatisch den Text links vom Cursor betrachten. Das bedeutet, dass Sie einen Befehlsnamen eingeben und dann diesen Befehl verwenden können, um die Manpage zu öffnen, bevor Sie Befehlsargumente eingeben. Leerzeichen werden übersprungen. Es versteht auch Manpage-Referenzen "open(2)" und URLs "x-man-page://2/open". (Wenn Sie explizit Text auswählen, versteht dieser auch „2 offen“ und „öffnen 2“.)
  • Manpage-Fenster verwenden das Einstellungsprofil „Manpage“. Sie können dies anpassen, um das Erscheinungsbild von Manpages zu ändern, die mit diesen Befehlen angezeigt werden. Es merkt sich auch die Position von Handbuchseitenfenstern getrennt von anderen Fenstern, sodass Sie Handbuchseiten jedes Mal an der gleichen Stelle auf dem Bildschirm erscheinen lassen können, unabhängig davon, wo Sie andere Terminalfenster platzieren.
  • + Doppelklick öffnet Manpage-Referenzen "open(2)", was es Ihnen ermöglicht, Referenzen von einer Manpage zu einer anderen zu navigieren. ( + Doppelklick öffnet auch alle erkannten URLs oder sogar einige Muster wie E-Mail-Adressen – erstellt eine neue E-Mail-Nachricht – und Domänennamen – werden in Safari geöffnet.)
  • Beim Anzeigen eines Manpage-Fensters (oder eines beliebigen Terminals, dessen Befehle alle abgeschlossen/beendet wurden) unterstützt Terminal einige „weniger“ kompatible Pager-Befehle: space= Page Down, + space= Page Up, F= Page Down(„vorwärts“), B= Page Up(„zurück“), = Eine Zeile nach unten blättern, / = Eine Zeile nach oben/unten blättern.

Ich habe die folgenden Aliase und Funktionen in ~/.bash_profile:

alias ..="cd .."
alias ...="cd .. ; cd .."
alias ls="ls -G" # list
alias la="ls -Ga" # list all, includes dot files
alias ll="ls -Gl" # long list, excludes dot files
alias lla="ls -Gla" # long list all, includes dot files
alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="sudo osascript -e 'set volume 10'"
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias flush="dscacheutil -flushcache"
alias gzip="gzip -9n"
alias ping="ping -c 5"
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Create a new directory and enter it
md() { mkdir -p "$@" && cd "$@"; }

# Define a term using Google
define() { local y="$@"; curl -sA "Opera" "http://www.google.com/search?q=define:${y// /+}" | grep -Po '(?<=<li>)[^<]+'|nl|perl -MHTML::Entities -pe 'decode_entities($_)' 2>/dev/null; }

# gzip a file with strongest compression settings
ubergzip() { gzip -9n < "$@" > "$@".gz; }

# Open a man page in Preview.app
pman() { man -t "${1}" | open -f -a /Applications/Preview.app; }

# Open a man page in TextMate.app
tman() { MANWIDTH=160 MANPAGER='col -bx' man $@ | mate; }

# Quit an app cleanly
quit() {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

# Relaunch an app
relaunch() {
    for app in $*; do
        osascript -e 'quit app "'$app'"';
        sleep 2;
        open -a $app
    done
}

# Uninstall an app with AppZapper
zap() { open -a AppZapper /Applications/"${1}".app; }

Weitere Informationen finden Sie in meinem dotfiles-Repository auf GitHub und/oder in meiner .osxDatei für OS X-spezifische Voreinstellungen und Einstellungen .

net rpc shutdown --server=<servername> --username=<username>

Dadurch werden Windows-Boxen heruntergefahren.

Dies ist Teil der Samba-Suite, also nicht OS X-spezifisch.

Befehlszeilen-Shortcuts zum Umschalten der Sichtbarkeit versteckter Dateien im Finder:

alias show_hidden="defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder"
alias hide_hidden="defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder"

Hier ist ein Skript, das den/die Pfad(e) zu der/den aktuellen Auswahl(en) im Finder abruft:

#!/bin/sh

osascript` << EOT

tell application "Finder"       
        set theFiles to selection
        set theList to ""
        repeat with aFile in theFiles
                set theList to theList & POSIX path of (aFile as alias) & " "
        end repeat
        theList
end tell

EOT

Wie ich es benutze:

$ cat `selected`

Ok, definitiv nicht Mac-spezifisch, aber die TAB-Vervollständigung in zshist so gut, dass ich denke, dass es eine besondere Erwähnung verdient.

Sie erhalten Vervollständigung von Optionen, zB

find . -d[TAB]

wird Ihnen -daystart -delete -depthmögliche Vervollständigungen geben.

Auch die Pfadvervollständigung ist gegenüber der Bash-Vervollständigung verbessert, zum Beispiel habe ich ein Volume namens Wubly und darin video/tv/comedy, also tippe ich:

cd /v/w/v/t/co[TAB] 

wird erweitern.

cd /Volumes/Wubly/Video/TV/Comedy

(Beachten Sie, dass auch die Groß-/Kleinschreibung nicht beachtet wird.)

Wenn es mehrere Pfade gibt, die diesem Muster entsprechen, werden sie angezeigt.

Die Vervollständigung ist auch interaktiv, sodass Sie sich mit den Cursorsteuerungen durch die verfügbaren Optionen bewegen können.

Ab Mac OS X Lion 10.7 öffnet Terminal ein neues Fenster, wenn Sie einen Ordner (oder einen Textpfadnamen) auf das Anwendungssymbol ziehen. Wenn Sie auf die Registerkartenleiste eines vorhandenen Fensters ziehen, wird in diesem Fenster eine neue Registerkarte erstellt.

Sie können dies auch über die Befehlszeile oder ein Shell-Skript tun:

open -a Terminal /some/path/

Dies ist das Befehlszeilenäquivalent zum Ziehen eines Ordners auf das Terminal-Anwendungssymbol und öffnet ein neues Terminalfenster unter "/some/path".

Terminal unterstützt jetzt auch Dienste zum Öffnen eines Terminals in einem ausgewählten Ordner (z. B. im Finder) oder einem Textpfadnamen über das Kontextmenü. Sie können sie aktivieren

Systemeinstellungen > Tastatur > Tastenkombinationen > Dienste

Suchen Sie nach New Terminal at Folder und New Terminal Tab at Folder . Sie können ihnen sogar Befehlstasten zuweisen, wenn Sie möchten.

Wenn Sie schließlich einen Ordner oder Pfadnamen auf eine vorhandene Registerkarte (dh die Registerkarte in der Registerkartenleiste) ziehen und der Vordergrundprozess die Shell ist, wird ein „cd“-Befehl in einem Schritt ausgeführt. Wie in früheren Versionen wird beim Ziehen eines Ordners auf die Terminalanzeige der Pfadname in den Ordner eingefügt.

iTerm unterstützt das Ziehen von Ordnern auf das Symbol in 10.6.
Terminal hat dies schon vor langer Zeit unterstützt
@Slomojo antwortest du auf Fake Name oder versuchst du, meine Aussage zu korrigieren, dass Terminal dies ab 10.7 unterstützt? (Oder hast du nicht gemerkt, dass ich das geschrieben habe?)
@ChrisPage Terminal hat dies von mehreren Versionen vor 10.7 aus getan, obwohl ich es derzeit vor 10.6 nicht aus erster Hand überprüfen kann (da ich keine Box habe, auf der ältere Versionen ausgeführt werden) - FYI Cmd-c für eine Datei / einen Ordner in Finder und Cmd- v in Terminal fügt auch den vollständigen Pfad ein (gleicher OSX-Versionsverlauf.)
@Slomojo Ich habe bestätigt, dass es erst am 10.7.
@ChrisPage ... müssen Sie das zurückziehen, hat es in mindestens 10.5 für eine Referenz gesorgt? Hier gehen Sie reduser.net/forum/archive/index.php/t-17024.html Finden Sie David Didatos Kommentar vom 10.08.2008 (10.6 wurde '09 veröffentlicht) - Ich habe es auch persönlich in Tiger verwendet (veröffentlicht '05 ) und es wurde mir von jemandem beigebracht, der es in früheren Versionen (10.2 IIRC) verwendet hatte - Ganz zu schweigen davon, dass ich in 10.6 einen Live-Test durchgeführt habe, als ich meinen vorherigen Kommentar gepostet habe.
@Slomojo Sie beziehen sich anscheinend auf das Ziehen (oder Kopieren und Einfügen) von Dateien aus dem Finder in ein Terminalfenster, um den Pfadnamen einzufügen, als ob er vom Benutzer eingegeben worden wäre. In diesem Tipp/Antwort geht es um das Öffnen neuer Terminalfenster/Tabs an einem bestimmten Verzeichnisort, der in 10.7 eingeführt wurde.
@ChrisPage ja, darauf habe ich mich bezogen, ich habe mich offensichtlich sehr beschämt und den ersten Kommentar falsch gelesen (ich hatte Ihren Tipp nicht wirklich gelesen und ihn nur überflogen) - Angenommen, der Kommentar bezog sich auf den Drag-Drop-Dateinamen /path-Funktion. Ich gehe jetzt zurück in meine Kiste und entschuldige mich.

Leeren Sie den DNS-Cache, wenn Sie /etc/hostsviel bearbeiten, um Staging-Server so zu testen, dass sie wie Produktionsserver aussehen.

dscacheutil -flushcache
Verwenden Sie es die ganze Zeit!

Wenn Sie als Root-Benutzer ein Finder-Fenster öffnen müssen, können Sie Folgendes vom Terminal aus ausführen:

In 10.5 und darunter:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Unter 10.6:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Öffnen Sie dann ein neues Finder-Fenster. Sie werden sehen, dass das neue Finder-Fenster mit Root-Berechtigungen geöffnet wird.

Wann ist es sinnvoll, ein Finder-Fenster als Root-Benutzer zu öffnen?

Wenn Sie wie ich sind, haben Sie mehrere Terminal.app-Registerkarten gleichzeitig geöffnet.

Wenn Sie nun drei Registerkarten gleichzeitig öffnen, dann einige Befehle in jede von ihnen eingeben und sie dann alle schließen, merkt sich die Bash-Shell, die Terminal.app verwendet, nur den Befehlsverlauf für die letzte Registerkarte, die Sie schließen. Der Befehlsverlauf der anderen beiden Registerkarten geht also verloren.

Wenn Sie Ihren Befehlsverlauf in keinem Tab verlieren möchten, fügen Sie dies zu Ihrer ~/.bash_profile(oder jeder anderen Datei, die beim Öffnen eines neuen Terminal-Tabs bezogen wird) hinzu:

# Append to the Bash history file, rather than overwriting it
shopt -s histappend

cdEine der nützlichsten Funktionen beim Lesen ist die Tab-Vervollständigung .

Anstatt beispielsweise einzugeben, können Sie gefolgt von cd FooBarBazBaxeingeben . Die Tab-Vervollständigung funktioniert, solange der eingegebene Teil des Pfads oder Dateinamens nicht mehrdeutig ist.cd FooBTab

Wenn Sie jedoch cd foobgefolgt von Tabeingeben würden, würde die Vervollständigung nicht funktionieren, da der Ordnername mit einem großen F. Glücklicherweise können Sie die Tab-Vervollständigung noch nützlicher machen, indem Sie die Groß- und Kleinschreibung von Dateinamen ignorieren.

Fügen Sie dies Ihrer ~/.inputrcDatei hinzu (erstellen Sie die Datei, wenn Sie sie noch nicht haben):

# Make Tab autocomplete regardless of filename case
set completion-ignore-case on

Auf diese Weise würde cd foobgefolgt von Tabes zu vervollständigen cd FooBarBazBax, vorausgesetzt, es gibt einen Ordner mit diesem Namen im aktuellen Arbeitsverzeichnis.

Tipp einfach

purge

und es wird inaktiven Speicher wieder frei machen. Mac OS X behält Apps nach dem Schließen noch eine Weile im Speicher, sodass sie schnell geöffnet werden, wenn Sie sie erneut öffnen. Purge entfernt sie aus dem Speicher und gibt Ihren freien Speicher zurück.

Dies ist eher ein Terminal-Meta-Hinweis - den Sie verwenden können

Cmd-Shift-{Left arrow, Right Arrow} 

(Befehl Shift kombiniert mit Links- oder Rechtspfeil), um schnell zwischen geöffneten Terminal.app-Fenstern zu wechseln.

Auf meinem Snow Leopard (belgische Tastatur) ist es Cmd-Shift-Pfeil, nicht nur Cmd-Pfeil.

Simulieren Sie die Eingabe von Befehlstaste-F, um ein Video von der Befehlszeile aus im Vollbildmodus anzuzeigen. Nützlich beim Starten eines Films in mPlayer von ssh.

osascript <<END
tell application "System Events" to keystroke "f" using {command down}
END

Natürlich können Sie mit diesem Trick auch jedes andere „Schreiben“ simulieren.

FYI - iTerm2 hat eine sofortige Wiedergabefunktion, sehr nützlich für die Erstellung von Screencasts.

wie wäre es mit

cat somefile.txt | say

den Inhalt einer Textdatei sagen... oder...

cat someFile.txt | say -o someAudioFile

Nehmen Sie Ihre Textdatei und konvertieren Sie sie in .aiff

sial.org/howto/shell/useless-cat Tun Sie es say -o < somefile.txtstattdessen

Dies ist nicht OSX-spezifisch ( mansagt, dass es von 4.0BSD stammt), aber ich liebe es trotzdem:

sudo shutdown -h +45

Im obigen Beispiel shutdownfährt Ihr Computer in 45 Minuten ab jetzt herunter (wie man vermuten könnte).

Es ist großartig, wenn Sie "nur ein bisschen Zeit" an Ihrem Computer verbringen möchten, bevor Sie ins Bett gehen / den Abwasch machen / joggen gehen / was auch immer. Aber wenn man auch tief im Inneren weiß, dass es nicht "nur ein bisschen Zeit" sein wird...

Prost!

Liebe shutdown!

Sie können die Systemlautstärke auch automatisch einstellen und den Bildschirmprozess anschließend beenden:

screen
(hit enter)
sleep 300; osascript -e "set Volume 10"; say "I am feeling fabulous"; open "http://www.youtube.com/watch?v=dQw4w9WgXcQ"; killall SCREEN
Ctrl-a-d
(detaches)
Warum wurde das abgelehnt – nicht lustig oder nicht angemessen? Leute, habt Humor!
Welches Video war das? Es wurde von Youtube entfernt.
So genial!!!!!

Textdatei in eine Audiodatei

say -o “audiofile.aiff” -f “textfile.rtf”

mehr Syntax hier

Wenn Sie Subversion verwenden, öffnet FileMerge für lokal ausgecheckte Dateien, die geändert wurden.

Erfordert die Installation von fmscripts:

cd ~/Downloads && svn co http://soft.vub.ac.be/svn-gen/bdefrain/fmscripts && cd fmscripts
sudo make

alias sfmdiff='svn diff --diff-cmd fmdiff'

Dann in einem ausgecheckten Verzeichnis:

sfmdiff . 

(oder ein bestimmtes Verzeichnis oder eine Datei)

Ich füge alle meine Favoriten hier ein: http://rustyisageek.blogspot.com

Beispiel:

Stellen Sie die Lautstärke auf 10 und sagen Sie etwas

sudo osascript -e "set Volume 10" | say "hello World"

Warten Sie, bis das Netzwerk in einem Skript bereit ist

/usr/sbin/networksetup -detectnewhardware

ctrl- Rermöglicht es Ihnen, eine Rückwärtssuche in Ihrer Bash-Shell durchzuführen. Es ist wie eine interaktive Form von history.

Duplikat einer anderen Antwort

gzip eine Datei mit den stärksten Komprimierungseinstellungen:

ubergzip() { gzip -9n < "$@" > "$@".gz; }

Weitere Informationen finden Sie in meinem dotfiles-Repository auf GitHub und/oder in meiner .osxDatei für OS X-spezifische Voreinstellungen und Einstellungen .

Definieren Sie einen Begriff mit Google:

define() { local y="$@"; curl -sA "Opera" "http://www.google.com/search?q=define:${y// /+}" | grep -Po '(?<=<li>)[^<]+'|nl|perl -MHTML::Entities -pe 'decode_entities($_)' 2>/dev/null; }

Weitere Informationen finden Sie in meinem dotfiles-Repository auf GitHub und/oder in meiner .osxDatei für OS X-spezifische Voreinstellungen und Einstellungen .

Ein relevanter Befehl für Terminal.app unter Mac OS X ist das Starten der Softwareaktualisierung über die CLI:

sudo softwareupdate -i -a

Der Bonus ist, dass Sie nicht nörgeln müssen, wenn Sie auf Fenster klicken müssen. Ich führe dies als Teil eines Update-Skripts aus, das ungefähr jede Woche ausgeführt wird (damit ich das Feedback nicht verpasse, da es passieren kann, wenn dies automatisch geschieht).

Was bewirkt dies, wenn ein Update einen Neustart erfordert?
@JasonSalaz Es druckt nur eine Meldung, die vorschlägt, das Betriebssystem neu zu starten (erzwingt aber keinen Neustart oder so).
Die Verwendung von 'softwareupdate -l' ist auch großartig, um auch eine Liste zu erhalten. Der Mac App Store in ML zeigt nicht immer die Größe der Downloads an, aber die Verwendung dieses Tools tut es.

Wechseln Sie in das Verzeichnis, das im obersten Finder-Fenster angezeigt wird:

cdf () {
   currFolderPath=$( /usr/bin/osascript <<-EOT
       tell application "Finder"
           try
               set currFolder to (folder of the front window as alias)
           on error
               set currFolder to (path to desktop folder as alias)
           end try
           POSIX path of currFolder
       end tell
       EOT
   )
   echo "cd to \"$currFolderPath\""
   cd "$currFolderPath"
}

Andere Version:

f() {
    cd "$(osascript -e 'try
tell app "Finder" to (target of Finder window 1) as text
POSIX path of result
on error
    (system attribute "HOME") & "/Desktop"
end')"
}
Beachten Sie, dass Terminal in Mac OS X Lion 10.7 und höher einen Dienst „Neues Terminal im Ordner“ bereitstellt, mit dem Sie ein Terminal öffnen können, indem Sie einen Ordner auswählen und den Befehl aus dem Menü „Finder“ > „Dienste“ auswählen oder indem Sie bei gedrückter Strg-Taste klicken und auswählen es aus dem Kontextmenü. (Sie müssen den Dienst in Systemeinstellungen > Tastatur > Tastenkombinationen > Dienste aktivieren.) Sie können auch einen Ordner auf das Terminal-Anwendungssymbol im Dock oder in eine Registerkartenleiste ziehen, um eine neue Registerkarte in einem vorhandenen Fenster zu erstellen .

Quick Look ist eine der besten Funktionen von OS X. Sie müssen nur die Leertaste in einer ausgewählten Datei drücken, und Sie sehen eine Vorschau dieser Datei, ohne eine App öffnen zu müssen. Es ist großartig, aber Sie können keinen Text auswählen, wenn Sie sich in der Vorschau befinden. Sie können diese Funktion mit einem Terminal-Befehl hinzufügen:

defaults write com.apple.finder QLEnableTextSelection -bool true 
killall Finder

Verwenden Sie die Schnellansicht, wählen Sie den gewünschten Text aus und kopieren Sie ihn jetzt.

Mounten Sie die iDisk über die Befehlszeile:

osascript <<END
tell application "Finder"
mount volume "http://idisk.mac.com/john.doe/" as user name "john.doe" with password "StR0NGP455"
end tell
END

Funktion zum Erstellen eines Verzeichnisses und einer CD mit einem einzigen Befehl:

function take {
    mkdir $1
    cd $1
}
Besser: mkdir -p $1, da hierdurch verschachtelte neue Verzeichnisse erstellt werden können. Und das Setzen von a &&zwischen den Befehlen wird nur ausgeführt, cdwenn der Ordner erfolgreich erstellt wurde.
Sie können auch "cd !!:1" wo !! ist der vorherige Befehl und :1 nimmt seine (nullbasierte) Argumentnummer. Nehmen wir an, Sie machen "mv file1 file2" und stellen fest, dass Sie das Gegenteil wollten: "mv !!:2 !!:1". Dies ist natürlich nur bei komplexen Namen sinnvoll.

alle Ergebnisse von find in einem einzigen Textmate-Fenster öffnen:

find . -name "pattern"|xargs mate

funktioniert auch mit mdfind (spotlight):

mdfind -name models.py |xargs mate
Sie brauchen dafür keine xargs, Mate akzeptiert STDIN.

Laden Sie mit curl eine URL zum aktuellen Verzeichnis herunter.

curl -O http://growl.cachefly.net/Growl-1.2.1.dmg

Besonders gut zum Herunterladen von Quell-Tarballs, die Safari für Sie dekomprimieren möchte.

Eine Alternative ist wget.

Lassen Sie das Terminal im zuletzt besuchten Ordner öffnen:

Ich habe mich danach gesehnt, das Terminal im zuletzt besuchten Ordner zu öffnen, und am Ende habe ich einen kleinen Bash-Befehl erstellt, der dies bewerkstelligt. Es erlaubt außerdem, in eine Datei zu "cd", was sehr hilfreich ist, wenn Sie Ihr Verzeichnis in das einer bestimmten Finder-Datei ändern möchten. Schreiben Sie einfach cd und ziehen Sie die Datei auf das Terminal und schon sind Sie da.

Fügen Sie Ihrer .bashrc- oder .alias-Datei Folgendes hinzu

alias cd=mycd

mycd(){ 
  if [ -f "$*" ]
  then
   \cd  "`dirname $*`"
  else 
    \cd "$*";
  fi

  echo "\cd \""`pwd`\""" > ~/.todir  ; 
  PS1='\[\033]0;`pwd | xargs basename`\007\]\e[31m\w:\e[0m
'
}

Schließlich müssen Sie Ihre Terminaleinstellungen ändern:

Lassen Sie in terminal:settings:shell die Shell den folgenden Befehl ausführen:

source ~/.todir; clear

Wenn Sie Ihr Terminal das nächste Mal starten – Sie werden automatisch zu Ihrem zuletzt geöffneten Verzeichnis umgeleitet – ändert sich der Titel des Terminals, wenn Sie den cd -Alias ​​verwenden, und Ihre Eingabeaufforderung zeigt den vollständigen Verzeichnispfad an.

LAME codiert .wav in .mp3

Dies ist der ursprüngliche Einzeiler, den ich verwendet habe, um diesen praktischen Befehl zu erstellen .

find ./ -name "*.wav" -execdir lame -V 3 -q 0 {} \;
  • Konvertiert 20 MB .wav (bei den höchsten Qualitätseinstellungen) in .mp3 in 3 Sekunden!
  • Installieren Sie einfach die LAME-Binärdatei und Sie sind goldrichtig.

In deiner~/.bash_profile

export PS1="\[\e]2;\h - \w\a\e[32;1m\]%\[\e[0m\] "

Dadurch werden der Name Ihres Computers und das aktuelle Verzeichnis in der Titelleiste des Terminals angezeigt, sodass Sie verfolgen können, wo Sie sich gerade befinden. Dies zeigt auch die Daten im Windows-Verzeichnis.

Sie können den Verlauf durchsuchen und durchsuchen, indem Sie nach dem Hinzufügen die Cursortasten verwenden

bind '"\e[A": history-search-backward'

bind '"\e[B": history-search-forward'

zu deinem .profile.

Ab Mac OS X Lion 10.7 unterstützt Terminal einige "weniger" kompatible Pager-Befehle, wenn in einem Terminal keine Prozesse ausgeführt werden. Dies ist nützlich, um durch Text zu blättern und ihn zu lesen, nachdem Befehle abgeschlossen/beendet wurden. Unterstützte Schlüssel sind:

space: Bild nach unten
+ Space: Bild nach oben
: Eine Zeile nach unten blättern
/ : Eine Zeile nach oben/unten blättern
F: Bild nach unten ("vor")
B: Bild nach oben ("zurück")
<: Home (nach oben scrollen)
>: Ende (zum Ende scrollen)

Terminal verfügt über Befehle zum Suchen und Anzeigen von Manpages, für deren Anzeige diese Tasten unerlässlich sind. Siehe Hilfemenü und Kontextmenüs. Es unterstützt auch Dienste zum Öffnen von Manpages aus anderen Anwendungen (aktivieren Sie sie in
System Preferences > Keyboard > Keyboard Shortcuts > Services ).

Silence Idiom - Bringt einen Shell-Befehl zum Schweigen

Mit diesem Shell-Idiom können Sie die Standardausgabe eines ausführlichen Befehls eliminieren.

Die Redewendung lautet:

>&-

und du verwendest es so:

noisycmd >&-

Der Befehl wird ausgeführt, aber es wird nichts an den Standardausgabestrom ausgegeben.

Senden Sie Audio über den Befehl /usr/bin/say an ein Apple TV/Airplay-Gerät

/usr/bin/say -r160 -a "AirPlay" "hello world"

-r160 ist die zu verwendende Sprechgeschwindigkeit in Wörtern pro Minute

-a gefolgt von Gerätename oder -nummer .

Dann dein Text.

Um Ihr verfügbares Audiogerät aufzulisten

/usr/bin/say -a?
   39 AirPlay
   47 Built-in Output
  209 Soundflower (2ch)
   74 Soundflower (64ch)

Die Verwendung der Nummern funktioniert genauso gut anstelle des Gerätenamens.

/usr/bin/say -r160 -a 39 "Hover over a Method";say -r160 -a "Built-in Output" "I am back"

Sie können auch die Option -f verwenden, um eine Textdatei als Sprachtext zu verwenden.

 /usr/bin/say -f ~/Music/foo.txt -r160 -a 39 

Wie Sie feststellen werden, kann say Tilde-Dateipfade erweitern


Mit say können Sie viel mehr tun, z. B. Sprachtext direkt in einer Audiodatei speichern.

 /usr/bin/say  -o ~/Music/hi.aac Hello, World.

-o Dateipfad ausgeben. dh ~/Musik/Hallo

.aac -Dateiformat

Dadurch wird eine .acc -Datei mit dem Namen hi.aac im Musikverzeichnis gespeichert.

Verzeichnispfade MÜSSEN vorhanden sein, bevor der Befehl ausgeführt wird. Die Datei muss nicht zuerst im Verzeichnis vorhanden sein, und wenn doch, wird sie höchstwahrscheinlich überschrieben.

Es gibt andere Formate, die Sie verwenden können.

Die Manpage say zeigt Ihnen die vollständige Liste der Optionen.

Ich wollte das Gegenteil von "offen". Befehl, wo ich in das vordere Finder-Fenster wechseln konnte, also habe ich das für mein .bash_profile zusammengeschustert:

alias fw='cd "$(osascript -e "Tell application \"Finder\" to POSIX path of (folder of window 1 as string)")"'

Jetzt setzt der Befehl "fw" mein aktuelles Verzeichnis auf das vordere Fenster (für den fw-Namen).

Beachten Sie, dass Sie "cd " eingeben und dann das vordere Fenster zum Terminal ziehen können, um seinen Pfad einzufügen, dann zum Terminal wechseln und die Eingabetaste drücken. Ich denke, das ist einfacher. ;)

Command-Drag gibt den gesamten cdBefehl ohne Eingabe aus.

Einfache Handhabung von bzip/tar zum Komprimieren ganzer Verzeichnisse:

# lsZ -- list contents of compressed tar archive
function lsZ() {
    tar tvzf "$1"
}

# deZ -- silently extract contents of compressed tar archive
function deZ() {
    # extract bzip2 compressed tars as well
    if [[ $(file "$1") == *bzip2* ]]; then
        bunzip2 -c "$1" | tar xf -
    else
        tar xzf "$1"
    fi
}

# enZ -- build compressed tar archive
function enZ() {
    tar cZf "${2:-$1.tar.Z}" "$1"
}

# enG -- build compressed tar archive (with gzip)
function enG() {
    tar czf "${2:-$1.tar.gz}" "$1"
}

# enB -- build compressed tar archive (with bzip2)
function enB() {
    tar cf - "$1" | bzip2 > "${2:-$1.tar.bz2}"
}

# lsB -- list contents of bzip2 compressed tar archive
function lsB() {
    bunzip2 -c "$1" | tar tvf -
}

# deB -- silently extract contents of bzip2 compressed tar archive
function deB() {
    bunzip2 -c "$1" | tar xf -
}

Alle Links in Safari als neue Tabs öffnen

Neue Fenster, baaad. Neue Tabs, gut. Im Allgemeinen sind die Tab-Steuerelemente von Safari wunderbar, aber ein Fehler macht uns verrückt: Bestimmte Links dürfen Ihre Präferenz zum Öffnen neuer Webseiten in Tabs außer Kraft setzen, was die Anwendung im Wesentlichen dazu zwingt, ein neues Fenster zu öffnen. Um dies in Zukunft zu verhindern, führen Sie diesen Befehl aus: defaults write com.apple.Safari TargetedClicksCreateTabs -bool TRUE.


Versteckte Dateien im Finder anzeigen

Die Namen versteckter Dateien beginnen immer mit einem Punkt – denken Sie daran, bevor Sie eine Datei löschen oder bearbeiten, die Ihnen nicht bekannt vorkommt. Ob Sie es glauben oder nicht, die Dateien, die Sie auf Ihrem Desktop im Finder aufgelistet sehen, stellen nicht alle Dateien dar, die in Ihrem Desktop-Ordner enthalten sind. In fast jedem Ordner versteckt das Betriebssystem Systemdateien, die Apple für zu wichtig hält, als dass wir uns damit anlegen könnten (oder zu banal, um sich damit zu beschäftigen). Hin und wieder ist es jedoch sinnvoll, sich diese Dateien anzusehen. Um den vollständigen Inhalt aller Ordner im Finder anzuzeigen, führen Sie Folgendes aus: defaults write com.apple.finder AppleShowAllFiles TRUE.


Deaktivieren Sie das Dashboard

Wenn das Dashboard auf unserem Desktop erscheint, liegt das normalerweise daran, dass wir die Löschtaste verpasst und stattdessen F12 gedrückt haben. Theoretisch hat uns das Dashboard schon immer gefallen – gelegentlich haben wir sogar Widgets dafür heruntergeladen. Leider kommen wir nie dazu, sie zu verwenden, und unser alternder Mac-Laptop könnte den zusätzlichen RAM verwenden, um echte Apps auszuführen. Wenn Sie im selben Boot sitzen, geben Sie etwas Systemspeicher frei, indem Sie das Dashboard mit zwei schnellen Terminalbefehlen beenden. Stellen Sie zunächst die Standardeinstellung auf Aus ein, indem Sie Folgendes ausführen: defaults write com.apple.dashboard mcx-disabled -boolean YES. Zweitens beenden und starten Sie das Dashboard und Dock mit diesem Befehl neu: killall Dock.


Vieles mehr auf dieser Website: Klicken Sie HIER

pg ohne Argumente pingen Sie die IP 8.8.8.8 (nützlich für grundlegende Internetverbindungstests), andernfalls pingen Sie die angegebene IP. Wenn die IP unvollständig ist, wird sie mit dem Standardpräfix 192.168.1 verknüpft, was ein einfaches lokales Ping ermöglicht (z. B. Ping 3.12 => 192.168.3.12).

function pg() {
    ip4regex='^[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+$'
    ip3regex='^[0-9]+[.][0-9]+[.][0-9]+$'
    ip2regex='^[0-9]+[.][0-9]+$'
    ip1regex='^[0-9]+$'
    host=$@
    if [[ $# == 0 ]]; then
        host="8.8.8.8"
    elif [[ $@ =~ $ip4regex ]]; then
        host="$@"
    elif [[ $@ =~ $ip3regex ]]; then
        host="192.$@"
    elif [[ $@ =~ $ip2regex ]]; then
        host="192.168.$@"
    elif [[ $@ =~ $ip1regex ]]; then
        host="192.168.1.$@"
    fi
    ping $host
}
Hier ist der entsprechende Kern: gist.github.com/MartinDelille/9386306

Fügen Sie Ihrem Home-Verzeichnis eine Datei mit dem Namen "-i" hinzu. Wenn Sie jetzt versehentlich Folgendes eingeben:

rm -rf *

es wird erweitert zu:

rm -rf -i your other files

und Sie werden aufgefordert, das Entfernen des gesamten Verzeichnisses zu bestätigen oder abzulehnen. Es ist ziemlich abgehackt, aber es hat mir schon mal den Hintern gerettet.

alias rm einfach rm -i :alias rm='rm -i'

BBEdit-Version zum Anzeigen von Manpages:

bbman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | bbedit --clean
}

Aktualisieren Sie automatisch den Titel des Terminal.app-Fensters, um Ihren Benutzernamen, Host und das aktuelle Verzeichnis anzuzeigen.

Wenn ich folgendes mache:

cd ~/Developer

Ich möchte, dass der Titel des Terminalfensters wie folgt aktualisiert wird:

jason@rocksteady:~/Developer

Stellen Sie dazu sicher, dass die Variable PROMPT_COMMAND in Ihrem ~/.bash_profile gesetzt ist:

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'

Natürlich können Sie alles ersetzen, was Ihrem Geschmack entspricht.

Ab Mac OS X Lion 10.7 unterstützt Terminal das separate Festlegen der Titel von Fenstern und Registerkarten (Symbolen). "0" setzt sie beide. Verwenden Sie "1", um den Registerkartentitel festzulegen, "2", um den Fenstertitel festzulegen.

Stellen Sie bash so ein, dass ein Skript bei jedem Fehler sofort beendet wird.

set -o errexit

Immer eine gute Idee beim Entwickeln von Bash-Skripten, insbesondere destruktiven.

Eine einfachere Möglichkeit zum Öffnen und Schließen von DMGs ist:

open <My disk image>.dmg

Dann um es zu schließen:

umount /Volumes/<My disk image>
Wenn Sie umount so verwenden, lassen Sie den /Volumes/<My disk image>Ordner herumliegen. Verwenden Sie diskutil eject /Volumes/<My disk image>stattdessen, es wird hinter Ihnen aufräumen.

Um eine Verbindung zu einem Netzwerkvolume herzustellen, könnten Sie mkdir; mountund umount; rmdiretc, etc ... aber das ist langwierig und es gibt eine bessere Mac-spezifische alternative Methode ...

Sie können eine Freigabe öffnen:

open afp://user:pass@server/sharepointname

und auswerfen mit:

diskutil eject /Volumes/sharepointname

Übrigens können Sie auch einen Dialog öffnen, um aus einer Liste aller Sharepoints auf einem Server auszuwählen, indem Sie Folgendes tun.

open afp://user:pass@server/

Lassen Sie den Benutzer/das Kennwort weg, um in der GUI zur Eingabe von Anmeldeinformationen aufzufordern.

user42053 erwähnt das Hinzufügen einer Datei -izu jedem Ordner. Wird ein bisschen haarig, wenn man -iüberall sonst in jedem Ordner sieht. Einfachere Methode wäre

alias rm="rm -i"
Dies ist eine baaaaad Idee, da Sie sich zu sehr daran gewöhnen werden, was ist, wenn Sie auf einem System ohne es sind und es unvorsichtig machen rm -rf?

Alle Verzeichnisse allein in einem Verzeichnis auflisten - ähm - Ordner in einem Ordner.

ls -la | grep '^d'

Finden Sie die Größen des angegebenen Verzeichnisses - wieder - äh - Ordners.

du -s dirname

Ziehen Sie das Proxy-Symbol eines Finder-Fensters, um einen Escape-Pfad zu erhalten; besonders nützlich nach dem Tippencd

oder ziehen Sie es und tun Sie esC-a cd RETURN
Unter Mac OS X Lion 10.7 und höher können Sie einen Ordner (oder ein Proxy-Symbol oder einen im Text ausgewählten Pfadnamen) auf das Symbol der Terminalanwendung ziehen, um an dieser Stelle ein neues Terminalfenster zu erstellen. Es gibt auch die Dienste „Neues Terminal im Ordner“ und „Neuer Terminal-Tab im Ordner“, die Sie aktivieren können (in den Systemeinstellungen), die im Kontextmenü angezeigt werden, wenn Sie Ordner oder Pfadnamen auswählen. Sie können auch auf einen vorhandenen Terminal-Tab ziehen um automatisch einen cd-Befehl auszugeben, und Sie können auf den leeren Bereich der Registerkartenleiste ziehen, um eine neue Registerkarte in diesem Ordner zu erstellen.

Ich habe einen Alias ​​namens dirstat erstellt, der nach einem ähnlichen Dienstprogramm benannt ist. Es hilft festzustellen, wo der gesamte Festplattenspeicher verwendet wird. Fügen Sie es Ihrem /etc/bashrcoder als Bash-Skript hinzu.

du -s ./* | sort -n| cut -f 2-|xargs -i du -sh {}

Ich habe die folgenden Zeilen zu meiner ~/.bash_profileDatei hinzugefügt.

Mit dem sehen Sie den Effekt, indem Sie einen Befehl/Pfad starten und einige Male drücken.

Ändern Sie die Funktion von , um durch die Autovervollständigungsoptionen zu blättern:

bind '"\t":menu-complete'

SSH als root zu...:

alias shroot="ssh -l root"

Auswurfvolumina erzwingen:

alias forceeject="hdiutil detach -force"

Beenden einer Anwendung erzwingen:

alias forcequit="killall -HUP"

Manpages als PDF öffnen:

pdfman() { man $1 -t | open -f -a Preview; };

Alias-Pingburst:

alias ping2="ping -c2"
-1 Bitte formatieren Sie Befehle nur mit dem 4-Leerzeichen-Einzug.

Sie können esckey als Ersatz für alt verwenden. > Sie müssen es zuerst antippen und dann das andere eingeben, anstatt es zu halten. Dies ist eine Standardfunktion, aber wichtiger, da die Taste auf Macs anders funktioniert als auf "Windows/Linux"-Tastaturen.

Sie können das Verhalten der Alt-Taste in den Einstellungen so einstellen, dass es sich wie auf "Windows"-Tastaturen verhält. Allerdings können Sie dann wichtige Zeichen wie @, \, {, ... nicht eingeben.

Sehr wichtig, wenn Sie emacs im Terminal verwenden. Angenommen, es gibt viele Befehle, die dies erfordern - Sie können beispielsweise auch in Bash mit Emacs-Bindungen kopieren und einfügen.

Ein paar Punkte zur Klarstellung: Der Name der Zusatztaste ist „Option“. (Auf der Taste ist auch „alt“ aufgedruckt, um anzuzeigen, dass die Tastatur bei Verwendung von Windows dieselbe Funktion wie „Alt“ ausführt.) Die Option wird nur benötigt, um Zeichen wie „{“ und „}“ einzugeben. bei bestimmten physikalischen Tastaturbelegungen, z. B. Französisch. Es wird beispielsweise nicht in US-englischen Tastaturlayouts verwendet.

Ich finde es nützlich, Text von Terminal.app in die Zwischenablage zu kopieren, ohne die Maus zu verwenden, um eine Auswahl zu treffen.

Dies scheint nur mit der älteren Terminal.app von Tiger zu funktionieren. Ich habe es gerade in Tiger Terminal.app umbenannt und es läuft immer noch gut auf Leopard. Bei Snow Leopard habe ich es noch nicht probiert.

Mit Tiger Terminal können Sie also ohne Maus kopieren, indem Sie + + eingeben und dann mit den Pfeiltasten zum Anfang des Bereichs gehen, den Sie kopieren möchten. Geben Sie als Nächstes erneut + + ein, um den Auswahlpunkt zu verankern. Verwenden Sie die Pfeiltasten (einige Emacs-ähnliche Befehle funktionieren auch für die Navigation wie ctrl+ E), um zum Ende der Region zu gelangen, die Sie kopieren möchten. Geben Sie abschließend erneut + + ein, um die Auswahl in die Zwischenablage zu kopieren.

Eines, das ich tatsächlich ziemlich häufig verwende, ist uptime. Einfach aber schön :) Aktuell kehrt meins zurück up 32 days, 14:30.

drutil eject
drutil tray eject # analagous to above

Öffnet das CD-Fach oder wirft eine CD aus (für einen Laptop)

drutil tray close

Schließt das CD-Fach

Diese sind sehr nützlich, wenn Sie per SSH auf einen anderen Computer zugreifen.

Wie ist das nützlich? Kannst du die CD per ssh in das Tray schieben? Sie müssen immer noch aufstehen und zum Automaten gehen, um eine CD zu holen oder etwas in das jetzt geöffnete Fach zu legen.
@bmike Sehr wahr.
Ich habe drutil ejectzuvor eine Festplatte aus dem SuperDrive ausgeworfen, das ich aus meinem MacBook Pro entfernt und in ein externes Gehäuse gelegt habe. Manchmal erkennt das Betriebssystem nicht, dass das Gehäuse angeschlossen ist und reagiert nicht auf die Auswurftaste, was diesen Befehl sehr nützlich macht!

Ausschließlich von einem Terminalfenster zu sich selbst oder einem anderen Terminalfenster:

Wählen Sie Text auf die übliche Weise aus und fügen Sie ihn dann ein, indem Sie die Maus auf das Fenster bewegen, in das Sie einfügen möchten, und mit der mittleren Maustaste klicken .

Beachten Sie, dass, wenn Sie mehrere Auswahlen mit Befehls-Wahl-Ziehen getroffen haben, beim Einfügen ein Zeilenumbruch eingefügt wird, der die aktuelle Zeile aufruft. Das ist wahrscheinlich nicht etwas, was Sie wollen .

Lokaler Webserver mit Ruby

Hier ist die Ruby-Alternative zum Python-Einzeiler für einen lokalen HTTP-Server (der auch in diesem Thread gepostet wird):

ruby -run -e httpd . -p 8000

Dadurch wird im Arbeitsverzeichnis ein Server mit der Portnummer 8000 geöffnet, auf den Sie im Browser unter zugreifen können http://localhost:8000.

Ändern Sie die 8000 in eine beliebige Portnummer, die Sie verwenden möchten.

Es wurden viele Antworten darauf gegeben, wie Sie Dateien und Ordner in das Terminalfenster ziehen können, aber Ciarán Walsh hat ein Dienstprogramm namens Drag entwickelt , mit dem Sie Dateien AUS dem Terminalfenster ziehen können. Noch besser ist es mit meinem Patch , der mehrere Dateien pro Drag-Vorgang zulässt.

Ich konnte nicht glauben, dass das Folgende hier fehlt. Die beste Verbesserung eines OS X-Terminals besteht darin, dass es sich wie UNIX/Linux anfühlt. Meine erste Absicht war es, Ihnen zu zeigen, wie Sie bash-completionmehrere Dinge wie sshoder gitrichtig erledigen. Ich spreche von Standardverhalten, das ich von Linux gewohnt war.

Aber viel wichtiger ist der fehlende Paketmanager Homebrew . Damit erhalten Sie viele Standard-Unix-Befehle/Apps/Bibliotheken.

Installieren Sie zuerst Homebrew über

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

und dann die ausgeklügelte Bash-Vervollständigung via erhalten

brew install bash-completion

Ignorieren Sie die Nachricht nicht. Sie müssen bearbeiten .bash_profile. Aber das ist es wert. bash-completionkomplettiert brewauch.

Strg+D ist eine Tastenkombination zum Beenden. Nützlich, wenn Sie häufig in verschachtelten sshSitzungen arbeiten.

Es wurde bereits erwähnt, dass beim Ziehen eines Ordners in eine Terminal-App der Pfad direkt darin eingegeben wird. Sie können zusätzlich einen Ordner auf das Terminal-App-Symbol ziehen und ein neues Terminal wird direkt in diesem Pfad geöffnet

Während oben bereits Option (Alt)-Klick erwähnt wird, um zu einer Position in der Zeile zu gelangen, funktioniert dies in Wirklichkeit überall im Terminal. Ich verwende es am prominentesten in Texteditoren.

Überall dort, wo Sie durch Alt-Klick mit den Pfeilen hinkommen, wird der Cursor auch dorthin gelangen.

Das ist der Hauptgrund, warum ich in den frühen 90er Jahren aufgehört habe, Tabs im Code zu verwenden, NCSA Telnet hat diese Funktionalität damals für Macs System 7 integriert, und wenn versucht wurde, sich durch Tabs zu bewegen, ging es am Ende überall herum und piepte wie verrückt .

Ich benutze viel diesen Befehl

echo | pwd | pbcopy

Kopieren Sie einfach den aktuellen Pfad in die Zwischenablage. Ich habe es auch mit Pfadalias gebunden

alias path='echo | pwd | pbcopy'

Fügen Sie Aliase für Phrasen hinzu, die Sie häufig falsch eingeben

alias sdou='sudo'
alias suod='sudo'
alias sodu='sudo'
alias gerp='grep' 

Unnütz, aber lustig. Laden Sie die ASCII-Player von Google Docs herunter . Installieren Sie sie in /usr/bin. Jetzt können Sie einen Filmplayer im Terminal haben. Es gibt ASCIIbwund ASCIIcolor. Ich glaube nicht, dass ich erklären muss, dass das eine Farbe und das andere Schwarzweiß ist. So öffnen Sie eine Filmdatei:ASCIIbw ~/Desktop/Test.mov

Wow. Danke Google, dass du das getan hast, was du aalibnie libcacakonntest. Erstellen einer vernünftigen Schnittstelle, um einfach das zu tun, was ich will.
Oder wer auch immer sie gemacht hat. Vielleicht nicht Google.
@VxJasonxV Ich erinnere mich nicht, wer sie gemacht hat. Ich habe sie in meine Google Docs hochgeladen, damit ich irgendwo eine Kopie davon habe.
Oh, das ist dein Upload. Cool. Die Farbe ist übrigens kaputt, sie ist für PowerPC gebaut, nicht für Intel.

Wenn ich im Terminal bin, erwarte ich, dass jede Aktion in schriftlicher Form gegeben wird, weil es keine GUI gibt.

Viele der Terminal-basierten Apps haben eine Art Quit-Befehl, um Sie zurück zur Shell zu bringen. Das bin ich im Terminal gewohnt.

Um ein Terminalfenster oder eine Registerkarte zu verlassen, habe ich den folgenden Befehl als Alias ​​verwendet:

alias q="osascript -e 'tell application \"System Events\" to tell process \"Terminal\" to keystroke \"w\" using command down'"

BEARBEITEN:

besser ist es sogar zu tun, wie Jason kommentierte:

Konfigurieren Sie Terminal.app so, dass das Fenster geschlossen wird, wenn die Shell sauber beendet wurde

alias q="logout"
Konfigurieren Sie Ihr Terminal so, dass die Shell sauber geschlossen wird, und dann: alias q="logout".
Es ist nicht erforderlich, einen Befehl-W-Tastendruck zu simulieren. Sagen Sie Terminal einfach, dass es die Registerkarte oder das Fenster schließen soll, z.tell application "Terminal" to close the front window
Hey ja, Jason, das ist wirklich besser. Hatte keine Ahnung von dieser Terminalpräferenz. @Chris: Ich bin nicht so gut in Applescript, also vergib mir meine Unwissenheit.
alias ka="killall"

Wahrscheinlich einer meiner am häufigsten verwendeten Befehle. Ich habe dies .bash_profilefür einen einfachen Zugriff in meine eingefügt.

Wenn Sie XCode installiert haben, ist das Ausführen des Befehls purgeam Terminal sehr hilfreich. Es gibt Ihren gesamten aktiven und inaktiven RAM frei. Es ist nützlich für Leute wie mich, die viel Audioproduktion (oder jede Art von Medienbearbeitung) machen, wenn Sie nur 4 GB RAM haben. Sie werden überrascht sein, wie schnell 4 GB aufgebraucht sind.

alias alias_open="mate ~/.oh-my-zsh/lib/aliases.zsh"
alias alias_reload="source ~/.oh-my-zsh/lib/aliases.zsh"
alias lsa='ls -lahG'
alias l='ls -la'
alias ll='ls -l'
alias sl=ls # often screw this up
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'

#######
# GIT #
#######
alias gd="git diff"
alias gl="git log"
alias gu="git up"
alias gs="git status"
alias gf="git fetch"
alias gr="git remote -v"
alias gp="git push"
alias gph="git push heroku master"
alias gps="git push staging staging:master"
alias gpg="git push github master"
alias gpo="git push origin master"
alias gplh="git pull heroku master"
alias gpls="git pull staging staging:master"
alias gplg="git pull github master"
alias gplo="git pull origin master"
alias gpl="git pull"
alias gc="git commit -am"
alias gco="git checkout"
alias ga="git add ."

##########
# SYSTEM #
##########
alias cwd='pwd | pbcopy' #copy the working directory into the clipboard
alias grep="grep --color=auto"

####################################################
# Create box of '#' characters around given string #
####################################################

function box() { t="$1xxxx";c=${2:-#}; echo ${t//?/$c}; echo "$c $1 $c";echo ${t//?/$c}; }

########################
# Rip audio from video #
########################

# ("$1" for output file & "$2" for input file)
function audioextract()
{
mplayer -ao pcm -vo null -vc dummy -dumpaudio -dumpfile "$1" "$2"
}
# extract audio from DVD VOB files
# USAGE:  audioextractdvd input_file.vob output_file.ac3
function audioextract_dvd()
{
mplayer "$1" -aid 128 -dumpaudio -dumpfile "$2"
}

#######################
# Backup .bash* files #
#######################

function backup_bashfiles()
{
  ARCHIVE="$HOME/bash_dotfiles_$(date +%Y%m%d_%H%M%S).tar.gz";
  cd ~
  tar -czvf $ARCHIVE .bash_profile .bashrc .bash_functions .bash_aliases .bash_prompt
  echo "All backed up in $ARCHIVE";
}
Ich denke, der Grund, warum Sie dafür negative Stimmen erhalten haben, war, dass Sie nicht erklärt haben, was jeder der Aliase tut.