comandă shell macOS pentru a crea o nouă fereastră Terminal
Desigur, puteți crea cu ușurință o nouă fereastră Terminal din meniul ‘Shell’ sau folosind comanda rapidă de la tastatură ⌘N (sau ⌘T). Dar, în unele cazuri, poate fi mai util să folosiți o comandă shell.
Ferestrele noi create cu ajutorul comenzii rapide de la tastatură sau din meniu vor avea întotdeauna directorul principal ~
ca director de lucru curent. Ceea ce vreau eu, este o fereastră nouă care să aibă ca valoare implicită directorul de lucru curent sau un director personalizat pe care îl pot furniza cu un argument:
> new # opens a new terminal window at the current working directory> new ~/Desktop # opens a new terminal window at ~/Desktop
Nu am avut noroc cu AppleScript
După ultimul meu succes folosind AppleScript, m-am gândit că aceasta ar fi din nou cea mai bună soluție. Din păcate, această piesă particulară a dicționarului AppleScript este stricată. Comenzile make new window
sau make new tab
eșuează cu erori și am încercat mai multe combinații.
După câteva căutări pe internet, se pare că acest lucru este stricat de mult timp. Am depus o problemă în Feedback Assistant.
Puteți crea o nouă fereastră Terminal cu AppleScript folosind comanda do script
din dicționarul Terminal. (A nu se confunda cu do shell script
.) Deci, acest AppleScript, face oarecum ceea ce vreau, dar pare greoi.
tell application "Terminal" do script "cd ~/Desktop"end tell
Dacă știți o modalitate mai bună de a crea o nouă fereastră Terminal sau, chiar mai bine, o filă Terminal cu AppleScript, atunci vă rog să-mi spuneți. (Fără soluții UI Scripting – acelea au propriile lor probleme.) Am alte câteva idei în care acest lucru ar putea fi util.
Introduceți comanda open
În timpul acelor căutări pe web, am găsit și sugestii de a folosi comanda open
, în schimb:
> open -a Terminal ~/Documents
Va deschide o nouă fereastră Terminal cu ~/Documents
ca director de lucru. Acest lucru este deja foarte aproape de ceea ce am vrut.
Am creat această funcție în fișierul meu de configurare a shell-ului (bash, zsh):
# creates a new terminal windowfunction new() { if ]; then open -a "Terminal" "$PWD" else open -a "Terminal" "$@" fi}
Cu aceasta, pot acum să tastez
> new Projects/desktoppr
și să obțin o nouă fereastră Terminal acolo. Acest lucru este foarte util atunci când este combinat cu variabila de substituție a istoricului !$
(ultimul argument al comenzii anterioare):
> mkdir Projects/great_new_tool> new !$
Și un efect secundar neașteptat, dar util, este că funcția new
poate, de asemenea, să deschidă o sesiune ssh într-o fereastră nouă:
> new ssh://[email protected]
Sper să vă fie de folos și vouă!