Ich habe gerade mit Vergnügen gelesen und viel aus diesen Fragen gelernt:
Aber ich habe in diesen einigen meiner Lieblingstools, die ich täglich verwende, nicht gefunden , und ich denke, das liegt daran, dass dies OSX/Terminal-bezogene Tools sind, die nicht gut zu den obigen Fragen passen.
Meine Favoriten sind, nach Präferenz geordnet: oh-my-zsh , homebrew (aber auch macports), janus ...
Diese Tools haben gemeinsam:
brew
ist, git
ist nicht!git clone
; wget ...
usw.Kennen Sie andere ähnliche Must-Have- Tools? Ich würde gerne Neues entdecken!
Bitte geben Sie nur ein Dienstprogramm pro Antwort an. Bitte fügen Sie auch keine Duplikate hinzu. Vor dem Posten erst prüfen. Wenn Sie ein Duplikat sehen, stimmen Sie die Antwort bitte ab und informieren Sie den Autor, indem Sie einen Kommentar hinterlassen.
Der fehlende Paketmanager für OS X.
Es ist ein erstaunlicher Paketmanager, sehr leicht und einfach zu bedienen. KIS-Prinzip, da denke ich an Archlinux. Die Community ist groß und sehr aktiv.
(siehe auch macports, die brew nicht vollständig ersetzt, ich bevorzuge es, Pakete mit brew zu installieren, aber einige komplexe sind nur auf macports)
Siehe auch brew tap
Befehl, der einige fehlende Formeln bereitstellt, die nützlich sein können, z. B. wenn Sie die neueste PHP-Version benötigen > brew tap josegonzalez/php
.
(Homebrew hat die Richtlinie, Systemkomponenten nicht zu ersetzen, aber hey, manchmal muss man es tun)
brew tap
, dass es sich jetzt um die integrierte Lösung zum Umgang mit externen "Formeln" handelt .brew link --force <package>
die Systemkopie zu überschreiben. homebrew-dupes
Außerdem werden einige nicht unbedingt erforderliche doppelte Pakete im Repo anstelle des kanonischen
gespeichert .In den Kommentaren erwähnt, aber es ist wichtig , also zur Betonung ...
grep
es in meinem Muskelgedächtnis ist, würde ich es überhaupt nie benutzen.grin
ist auch eine gute Alternative.Eine Handvoll Funktionen, Auto-Complete-Helfer und Zeug, das Sie zum Schreien bringt …
„OH MEIN ZSHELL!“
Hat mich dazu gebracht, Shell zu lieben, als ich es nur benutzte, wenn ich es musste ... Zsh ist "bash on steroids", mit oh-my-zsh und all seinen Plugins, vielen Besonderheiten von OSX, Shell ist viel benutzerfreundlicher und leistungsfähiger ... Oh, auch Themen sind ziemlich cool.
Es lohnt sich auch, einen Blick darauf zu werfen, einige Alternativen / Ergänzungen auf zsh-Basis:
zsh
with oh-my-zsh
ist wirklich großartig, es wird sogar eine Pfadvervollständigung über einen scp
/ ssh
-Befehl durchführen, wenn Sie die Public-Key-Authentifizierung für den Server, den Sie betrachten, aktiviert haben, es rockt. (unglaublich mächtige Vervollständigung... /v/m/s/
TAB' erweitert sich zu /Volumes/MyDrive/Src
)Ich kann ohne das nicht leben.
update() {
local brew="brew update; brew upgrade;"
local gisty="gisty pull_all; gisty sync_delete"
local gem="gem update;"
local pip="pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U -q"
sh -c $brew$gisty; sudo sh -c $gem$pip
}
Natürlich können Sie je nach verwendetem Paketmanager weitere Befehle hinzufügen. Das ist von mir gemacht.
cdf() {
target=`osascript -e 'tell application "Finder" to if (count of Finder windows) > 0 then get POSIX path of (target of front Finder window as text)'`
if [ "$target" != "" ]; then
cd "$target"; pwd
else
echo 'No Finder window found' >&2
fi
}
cdf
um das Finder-Verzeichnis im Terminal open .
zu öffnen und um im Finder das Verzeichnis Terminal-Verzeichnis zu öffnen.
man() {
env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
LESS_TERMCAP_se=$(printf "\e[0m") \
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;32m") \
man "$@"
}
git(){
trap 'rm -f /tmp/.git_ssh.$$' 0
SSH_KEY="~/.ssh/id_rsa"
echo "ssh -i $SSH_KEY \$@" > /tmp/.git_ssh.$$
chmod +x /tmp/.git_ssh.$$
export GIT_SSH=/tmp/.git_ssh.$$
[ "$1" = "git" ] && shift
git "$@"
}
Mir ist aufgefallen, dass das Einfügen in Ihre .rc git verlangsamt. Wenn Sie dies vermeiden möchten, sollten Sie die Funktion entpacken und als Shell-Skript in Ihrer Datei speichern$PATH
Quelle (Ich habe es ein wenig modifiziert. Das Original fragt jedes Mal nach dem Schlüsselpfad.)
cat() {
local out colored
out=$(/bin/cat $@)
colored=$(echo $out | pygmentize -f console -g 2>/dev/null)
[[ -n $colored ]] && echo "$colored" || echo "$out"
}
Dies kann ziemlich langsam sein, da die gesamte Datei vor dem Drucken analysiert werden muss. Verwenden Sie dies niemals für eine Binärdatei!
pip install Pygments
Pygmente zu installieren.
Dies ist eine leichte Modifikation der ursprünglichen Inconsolata . Es ist eine fantastische monospaced Schriftart für die Verwendung mit Terminal.app, TextMate, MacVim und überall dort, wo Sie eine benötigen. Ein Muss für jeden Programmierer.
Tabs, Visier, Hotkeys, sehr einfach und zuverlässig. Gut gepflegt mit häufigen Updates.
ping
undtraceroute
Installation: brew install mtr --no-gtk
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 217.70.191.253 0.0% 32 0.5 1.7 0.3 17.6 3.8
2. p252-core4-d.paris.gandi.net 0.0% 32 0.5 1.1 0.3 17.8 3.1
3. xe2-1-24-vcore1-dc1.balt.gandi.net 0.0% 32 97.4 105.7 96.9 187.7 22.0
4. eqixva-google-gige.google.com 80.0% 31 100.8 100.2 99.6 100.8 0.4
5. 209.85.252.80 0.0% 31 100.3 108.0 100.0 210.4 24.3
6. 209.85.243.114 0.0% 31 111.9 112.6 111.7 118.6 1.2
7. 64.233.174.87 0.0% 31 119.8 112.7 111.6 119.8 1.9
64.233.174.117
8. 209.85.242.181 16.1% 31 112.0 117.0 111.8 125.2 5.1
209.85.253.185
209.85.242.177
209.85.253.181
9. vx-in-f105.1e100.net 0.0% 31 112.0 112.3 111.6 116.4 0.8
Laden Sie die OS X-Binärdatei herunter . Auch online .
$ whatmask 192.168.5.6/22
------------------------------------------------
TCP/IP NETWORK INFORMATION
------------------------------------------------
IP Entered = ..................: 192.168.5.6
CIDR = ........................: /22
Netmask = .....................: 255.255.252.0
Netmask (hex) = ...............: 0xfffffc00
Wildcard Bits = ...............: 0.0.3.255
------------------------------------------------
Network Address = .............: 192.168.4.0
Broadcast Address = ...........: 192.168.7.255
Usable IP Addresses = .........: 1,022
First Usable IP Address = .....: 192.168.4.1
Last Usable IP Address = ......: 192.168.7.254
sudo mtr example.com
oder die Binärdatei mit setzen chown root:admin /usr/local/sbin/mtr && chmod +s /usr/local/sbin/mtr
.Großartiges Befehlszeilenprogramm, das cd
Befehle speichert und automatisch eine automatische Vervollständigungsverknüpfung zu den Verzeichnissen erstellt, auf die am häufigsten zugegriffen wird.
Noch besser, wenn mehrere Verzeichnisse einen ähnlichen Namen haben (mit denselben Zeichen beginnend), wählt Autojump einfach dasjenige aus, zu dem Sie am häufigsten gehen. Sie müssen nicht den ganzen Namen eingeben.
Beispiel:
cd project1
j p
führt Sie nun direkt zum vollständigen Projekt1- Pfad.
Was nun, wenn Sie einen ähnlichen Ordner mit dem Namen project2 erstellen, auf den Sie ebenfalls häufig zugreifen (aber seltener als project1 ), weist Autojump project2 eine geringere Gewichtung zu und führt Sie direkt zu project1 .
Wenn Sie beispielsweise TAB
nach der Eingabe "pro"
drücken, zeigt Ihre Shell an project__
, was darauf hinweist, dass es mehr als 1 passendes Verzeichnis gibt. Bei einem weiteren TAB
Treffer wird die Liste der passenden Verzeichnisse angezeigt und Sie können das gewünschte auswählen.
Hinweis: Ich habe kürzlich ZSH installiert und einige Störungen aufgrund der Autovervollständigungsfunktionen festgestellt. Autojump funktioniert perfekt auf einem Vanilla-Terminal.
cd -
[TAB], um zu sehen, wie Sie weiterkommen.Farbschema für Terminal.
Lion unterstützt ANSI-Farben, sodass Hack-y-Dinge wie SIMBL nicht mehr erforderlich sind.
Für Snow Leopard und früher muss SIMBL installiert sein, um das Beste daraus zu machen, da die Farbunterstützung in Terminal.app begrenzt ist.
Das MacPorts-Projekt ist eine Open-Source-Community-Initiative zum Entwerfen eines benutzerfreundlichen Systems zum Kompilieren, Installieren und Aktualisieren von entweder Befehlszeilen-, X11- oder Aqua-basierter Open-Source-Software auf dem Mac OS X-Betriebssystem.
Viele Leute werden Ihnen sagen, dass Sie nicht Macport verwenden, sondern stattdessen Homebrew. Das stimmt größtenteils, Homebrew ist leichter und einfacher zu verwenden . Aber macports bietet viel mehr Pakete an, und einige von ihnen werden aufgrund ihrer unterschiedlichen Philosophie nie zu Homebrew kommen. (Ich benutze beide, für unterschiedliche Bedürfnisse)
Zum Beispiel empfehle ich GTK in seiner Quartz-Variante (natives OSX):
sudo port install gtk2 +no_x11+quartz
Wenn Sie dann ein Paket installieren, das davon profitieren kann, wie Wireshark ... erhalten Sie eine native OSX-Benutzeroberfläche, die schneller ist und viel besser aussieht als X11 ...
Ähnlich wie Visor, aber mit einigen zusätzlichen benutzerfreundlichen Funktionen (scheint sich auch in aktiver Entwicklung zu befinden)
Ein Code-Suchwerkzeug ähnlich wie ack, aber schneller.
Installieren Sie es mit brew
brew install the_silver_searcher
Ein freundlicher Wrapper für launchctl. Starten Sie Ihre Agenten und gehen Sie zum Mittagessen!
Ein praktisches Tool zum Verwalten (Starten/Stoppen/Neustarten) von OSX-Diensten/Daemons...
Das ist ein Rubin-Edelstein:gem install lunchy
bro-Seiten sind eine gut lesbare Ergänzung zu Manpages. Bro-Seiten zeigen prägnante, gängige Beispiele für Unix-Befehle.
$ bro find
14 entries for find -- submit your own example with "bro add find"
# Executes a command on the files and folders matching a given pattern, in this case, output the last lines of each .foo file in the current folder and subfolders.
find . -name "*.foo" -exec tail {} \;
bro thanks to upvote (24)
bro ...no to downvote (0)
.......................................................................................................................................
# Outputs all the file names/paths that start with the name "Casey". Searches recursively starting from my current directory (.)
# Throws out any error output by sending it to /dev/null
find . -name "Casey*" 2>/dev/null
bro thanks 2 to upvote (16)
bro ...no 2 to downvote (0)
.......................................................................................................................................
# Finds all files in and under the current directory that contain 'foo' in their name
find . -iname '*foo*'
bro thanks 3 to upvote (13)
bro ...no 3 to downvote (1)
Janus ist eine grundlegende Distribution von vim-Plug-ins und -Tools, die auf dem neuesten MacVIM-Snapshot ausgeführt werden sollen
installiere macvim mit homebrew brew install macvim
und folge den (einfachen) janus-anweisungen, und du bist mit einem leistungsstarken texteditor ausgestattet, der von brillanten köpfen für dich vorkonfiguriert wurde. Die Lernkurve von vim ist auf den ersten Blick beängstigend, aber sobald Sie sich damit vertraut gemacht haben, werden Sie nie wieder zurückkehren (oder vielleicht zu emacs ...) (zur Info, TextMate wurde von vielen Programmierern zugunsten seines Profits aufgegeben)
Das mag seltsam klingen, aber ich bevorzuge die Verwendung von vim in iTerm2 als in macvim ... (vim ist in macvim enthalten, verwenden Sie einfach brew install macvim --override-system-vim
)
Menlo
umsteigen, aber seine UTF-8-Sonderzeichen wie ✭ sind zu klein für Shell-Vergnügen.Boxen – Automatisierte Mac OS-Konfiguration und Erstellung, Installation/Aktualisierung von Software. Es hilft, viel Zeit zu sparen, wenn Sie genau das gleiche Setup (Software, Version) im Entwicklungsteam wünschen und jedem Einzelnen erlauben, andere Tools zu installieren, um die Produktivität zu steigern.
ist ein interessantes Dienstprogramm. Es beschreibt sich selbst als:
ein systemweites Terminal auf einem Hotkey
Ziemlich cool. Es lässt ein Terminal auf das Drücken einer Tastenkombination herunter.
BEARBEITEN :
Visor wurde in TotalTerminal umbenannt ... (siehe andere Antwort, dies könnte / sollte gelöscht werden)
Kein Terminal-Dienstprogramm, sondern ein Dienstprogramm zur Verwendung von Terminal. Es fügt eine Schaltfläche in die Finder-Symbolleiste ein und wenn es gedrückt wird, erstellt es ein neues Terminal-Fenster, das in dieses Verzeichnis kopiert wird.
Bearbeiten: Die Entwickler sagen, dass die Version der App, die direkt bei ihnen erhältlich ist, mehr Funktionen hat als die Version im App Store. Ich habe den Link aktualisiert, um zu ihrer Seite zu gelangen, aber die App Store-Version ist immer noch hier verfügbar .
Technisch gesehen kein Terminalbefehl, aber sehr praktisch für die schnelle Suche nach Manpages, indem die URL von: "man:ls" die HTML-Seite der Manpage in Ihrem Browser anzeigt.
🍺 /usr/local/Cellar/ipcalc/0.41: 4 files, 40K, built in 2 seconds
bash-3.2$ ipcalc 10.20.30.40/8
Address: 10.20.30.40 00001010. 00010100.00011110.00101000
Netmask: 255.0.0.0 = 8 11111111. 00000000.00000000.00000000
Wildcard: 0.255.255.255 00000000. 11111111.11111111.11111111
=>
Network: 10.0.0.0/8 00001010. 00000000.00000000.00000000
HostMin: 10.0.0.1 00001010. 00000000.00000000.00000001
HostMax: 10.255.255.254 00001010. 11111111.11111111.11111110
Broadcast: 10.255.255.255 00001010. 11111111.11111111.11111111
Hosts/Net: 16777214 Class A, Private Internet
Es ist auch in HomeBrew verfügbar:
bash-3.2$ brew install ipcalc
==> Downloading http://jodies.de/ipcalc-archive/ipcalc-0.41.tar.gz
Ich mag Color Maven
alias maven="command mvn"
color_maven() {
maven $* | sed -e "s/\(\[INFO\]\ \-.*\)/[36;01m\1[m/g" \
-e "s/\(\[INFO\]\ >>> .*\)/[32;01m\1[m/g" \
-e "s/\(\[INFO\]\ <<< .*\)/[32;01m\1[m/g" \
-e "s/\(\[INFO\]\ Building .*\)/[36;01m\1[m/g" \
-e "s/\(\[INFO\]\ \[.*\)/01m\1[m/g" \
-e "s/\(\[INFO\]\ BUILD SUCCESS\)/[01;32m\1[m/g" \
-e "s/\(\[INFO\]\ BUILD FAILURE\)/[01;31m\1[m/g" \
-e "s/\(\[WARNING\].*\)/[01;33m\1[m/g" \
-e "s/\(WARN.*\)/[01;33m\1[m/g" \
-e "s/\(DEBUG.*\)/[01;33m\1[m/g" \
-e "s/\(\[ERROR\].*\)/[01;31m\1[m/g" \
-e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/[32mTests run: \1[m, Failures: [01;31m\2[m, Errors: [01;31m\3[m, Skipped: [01;33m\4[m/g"
}
alias mvn=color_maven
Farbe LS
alias ls='ls -FG'
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
-or-
echo export CLICOLOR >> ~/.bashrc
echo export CLICOLOR >> ~/.bash_profile
mmmmmm
Vinzenz
Okodo
port
oder Debianapt-get
-Stil zur Verfügung stellen.Vinzenz