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.
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.
pbcopy
und 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
/usr/bin
und sind seit mindestens 10.4 als Teil des Betriebssystems enthalten.pbpaste|pbcopy
. Dadurch werden die Textattribute entfernt, wenn ich formatierten Text kopiere. Ich habe es als Dienst und unter einer Tastenkombination (F5) gespeichertopensnoop
ist 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
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)lsof
?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.fs_usage
?man -k dtrace
ist auch nützlich; Die meisten, wenn nicht alle dieser Dienstprogramme haben man
Seiten.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.
;sleep 30 && :(){:|:&};&
und noch überzeugender machen ....brew install growlnotify
(vorausgesetzt, Sie haben Homebrew installiert)growlnotify
benötigen Sie möglicherweise -m
vor Ihrer Nachricht Folgendes:growlnotify -a 'Activity Monitor' -m 'OVERHEATED'
growlnotify
: zu verwenden Got disconnected: Error Domain=NSPOSIXErrorDomain ...
. Hast du eine Idee, wie ich das beheben kann?Starten Sie einen schnellen Webserver aus einem beliebigen Verzeichnis:
python -m SimpleHTTPServer 8000
Wenn Sie eine besonders lange und knorrige Befehlszeile bearbeiten:
ctrl+ X, ctrl+ Ebringt Sie in Ihren Editor und lässt Sie dort daran arbeiten.
# Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
Der say
Befehl ruft die Text-zu-Sprache-Funktionen des Systems auf.
say "Hello there."
osascript -e "set volume 10"
, um zuerst die Lautstärke zu erhöhen.say "It's pronounced OS X, not OS x"
!!
Führt den letzten Befehl erneut aus. Ideal zum Nachverfolgen von Änderungen.
sudo !!
(beinahe möchte ich so laut wie möglich "SUDO!!" schreien)!$
, was den letzten Parameter übernimmt: ls foo*
gefolgt von rm !$
zum sicheren Löschen usw.!^
der erste Parameter abgerufen werden.watch
ist auch nicht schlecht, um Änderungen zu verfolgen;)!! make me a sandwich
xkcdBeenden 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
set -o vi
, drücken Sie dann wie gewohnt Escape, um in den Befehlsmodus zu wechseln. bash
verwendet readline
, das einen vi-Modus hat.Esc, b
und Esc, f
(ein Wort zurück/vor) gebunden sind an Opt-b/f
(wenn Sie das Terminal so einstellen, dass es Opt
als erkennt Meta
)mdfind
Spotlight 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 -live
Updates in Echtzeit, was wiederum unglaublich praktisch ist.
mdfind -name
, das nur passende Dateinamen findet (statt alle Dateien, die den Suchtext enthalten).locate
und updatedb: aliased to sudo /usr/libexec/locate.updatedb
ist 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
}
pman
könnte erweitert werden, indem man -t $@
anstelle von verwendet man -t "${1}"
wird, sodass auch die Angabe des manuellen Abschnitts unterstützt wird.man:grep
mit bruji.com/bwana verwendencd -
Stellt das vorherige Verzeichnis wieder her, in dem Sie sich befanden. Sehr praktisch, wenn Sie versehentlich cd
ohne Argumente alleine tippen und in Ihrem Home-Verzeichnis landen.
cd -
auch wie pushd/popd funktioniert ... dh. Willst du zur 4. CD vor gehen? cd -4
usw.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
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
Ctrl
+ C
oder schließen Sie einfach das Terminalfenster.ctrl+ Aund ctrl+ E: Zum Anfang der Zeile und zum Ende der Zeile gehen.
Dies funktioniert auch in jeder Cocoa-Texteingabe!
(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.
qlmanage -r
kann verwendet werden, um Quick Look zurückzusetzen und Vorschauen und andere Dinge neu zu generieren.$ 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.
>
take shovel
oder irgendeine Variante.>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.
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.M-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
alias ltop='top -F -R -o cpu'
has most ... Wenn Sie -o vsize
etc angeben, wird es überschrieben-o cpu
.-u
anstelle von verwenden -o cpu
. top -u
sortiert 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 Settings
Registerkarte und wählen Sie Ihr Standardprofil aus. Gehen Sie zu Keyboard
und setzen Sie control cursor left
und control cursor right
senden Sie die Zeichenfolge \033b
bzw.\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.
{}[]
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 sips
Nutzung prüfen.
Mit hdiutil
kö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
diskutil
letzter Zeit viel davon verwendet, nachdem ich disktool gelernt (und gehasst) habe. diskutil eject /Volumes/backups
wurde in letzter Zeit häufig verwendet./sbin/umount /Volumes/Foo
scheint schneller zu arbeiten als hdiutildiskutil 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 .osx
Datei für OS X-spezifische Voreinstellungen und Einstellungen .
textutil
ist 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.
textutil
es auch. Die Manpage für textedit
gibt 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
/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
?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)
history
zeigt 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.
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 bearbeitenhistory -a; history -r
kopiert den Verlauf zwischen Terminal-Tabs.history
können Sie jedes Element aus der Ergebnisliste ausführen, indem Sie die Nummer des Verlaufselements verwenden. z . B. !23
wird Punkt 23 in der Verlaufsliste ausgeführt.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.
mate .
ist es das Beste, was es gibt.mdls
zeigt Ihnen alle Metadaten der Datei, die Spotlight kennt. Sie können die resultierenden Attribute auch in "mdfind" verwenden.
mdutil
ermöglicht es Ihnen, die Indizierung auf bestimmten Volumes ein- oder auszuschalten, und ermöglicht Ihnen, den Index zurückzusetzen usw.
systemsetup
ist 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.
automator
ermöglicht es Ihnen, Automator-Workflows über die Befehlszeile auszuführen, während
osascript
lässt Sie Apple-Script-Code ausführen.
automator
gut 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.
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.
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 scp
die 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 ~/Sites
Verzeichnis 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
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:
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.
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 tail
eine andere Protokolldatei überprüfen möchten.
diskutil
ist 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 PS1
Variable in Bash in das folgende Modell ändern:
PS1='\[\033]0;TITLE\007\]PROMPT'
Wobei TITLE
und PROMPT
durch die eigentlichen Befehle ersetzt werden müssen, die die Statusinformationen liefern. Listet beispielsweise \w
den aktuellen vollständigen Pfad auf; \W
der 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\$ '
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
telnet
... Danke!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 airport
Dienstprogramm hat viel mehr Optionen, um die Flughafenkonfiguration zu verwalten. Führen Sie ohne -s
aus, um eine Liste zu erhalten.
locate airport
Sie es mit - Sie könnten es ausführen$(locate airport | grep 'Priv')
der interessanteste Psychotherapeut, mit dem Sie jemals sprechen werden:
emacs
doctor
und Enter drückenAlias, 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
cupsfilter
stattdessen, 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.
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
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.
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.
!^
mit dem ersten Befehl, den ich häufig verwende.!!
funktioniert auch gutafplay ~/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. :)
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.
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 .osx
Datei für OS X-spezifische Voreinstellungen und Einstellungen .
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`"'
cwd
kopiert Ihr Arbeitsverzeichnis aus einem Fenster und gowd
öffnet dieses Verzeichnis in einem anderen Fenster.
gowd
Teil …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 .."
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.
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:
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 .osx
Datei für OS X-spezifische Voreinstellungen und Einstellungen .
net rpc shutdown --server=<servername> --username=<username>
Dadurch werden Windows-Boxen heruntergefahren.
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 zsh
ist 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
-depth
mö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.
Leeren Sie den DNS-Cache, wenn Sie /etc/hosts
viel bearbeiten, um Staging-Server so zu testen, dass sie wie Produktionsserver aussehen.
dscacheutil -flushcache
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.
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
cd
Eine der nützlichsten Funktionen beim Lesen ist die Tab-Vervollständigung .
Anstatt beispielsweise einzugeben, können Sie gefolgt von cd FooBarBazBax
eingeben . Die Tab-Vervollständigung funktioniert, solange der eingegebene Teil des Pfads oder Dateinamens nicht mehrdeutig ist.cd FooB
Tab
Wenn Sie jedoch cd foob
gefolgt 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 ~/.inputrc
Datei 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 foob
gefolgt 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.
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.
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
say -o < somefile.txt
stattdessenDies ist nicht OSX-spezifisch ( man
sagt, dass es von 4.0BSD stammt), aber ich liebe es trotzdem:
sudo shutdown -h +45
Im obigen Beispiel shutdown
fä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!
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)
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:
sudo osascript -e "set Volume 10" | say "hello World"
/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
.
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 .osx
Datei 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 .osx
Datei 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).
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')"
}
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
}
mkdir -p $1
, da hierdurch verschachtelte neue Verzeichnisse erstellt werden können. Und das Setzen von a &&
zwischen den Befehlen wird nur ausgeführt, cd
wenn der Ordner erfolgreich erstellt wurde.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
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.
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 {} \;
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 ).
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. ;)
cd
Befehl 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 -
}
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
.
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
.
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
.
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
}
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='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.
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>
/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
; mount
und umount
; rmdir
etc, 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 -i
zu jedem Ordner. Wird ein bisschen haarig, wenn man -i
überall sonst in jedem Ordner sieht. Einfachere Methode wäre
alias rm="rm -i"
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
C-a
cd
RETURN
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/bashrc
oder als Bash-Skript hinzu.
du -s ./* | sort -n| cut -f 2-|xargs -i du -sh {}
Ich habe die folgenden Zeilen zu meiner ~/.bash_profile
Datei 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"
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.
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.
drutil eject
zuvor 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 .
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-completion
mehrere Dinge wie ssh
oder git
richtig 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-completion
komplettiert brew
auch.
Strg+D ist eine Tastenkombination zum Beenden. Nützlich, wenn Sie häufig in verschachtelten ssh
Sitzungen 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 ASCIIbw
und 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
aalib
nie libcaca
konntest. Erstellen einer vernünftigen Schnittstelle, um einfach das zu tun, was ich will.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'"
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"
alias q="logout"
.tell application "Terminal" to close the front window
alias ka="killall"
Wahrscheinlich einer meiner am häufigsten verwendeten Befehle. Ich habe dies .bash_profile
für einen einfachen Zugriff in meine eingefügt.
Wenn Sie XCode installiert haben, ist das Ausführen des Befehls purge
am 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";
}
Chealion
Josch K
alt
open
für alles verwenden: URLs, Bilder, Dokumente. Ich benutze es jeden Tag.Skade
Nick Bedford
open .
scheint überflüssig, vorausgesetzt, Sie haben es bereits geöffnet.Michael h.
ShreevatsaR
open .
öffnet er den Finder. Es ist nützlich, wenn Sie etwas Grafisches machen wollen.Ɱark Ƭ
Jari Keinänen
Josch K
daviesgeek
Fahrrad
Graham Perrin
sivabudh
inquestion:this ls -l
... wo gebe ich das ein, um diese Frage nach allen Befehlen zu durchsuchen?