macOS shell parancs egy új Terminál ablak létrehozásához
Természetesen könnyen létrehozhat egy új Terminál ablakot a ‘Shell’ menüből vagy a ⌘N (vagy ⌘T) billentyűparanccsal. Bizonyos esetekben azonban hasznosabb lehet egy shell parancs használata.
A billentyűparanccsal vagy a menüből létrehozott új ablakoknál mindig a ~
home könyvtár lesz az aktuális munkakönyvtár. Amit én szeretnék, az egy új ablak, ami alapértelmezés szerint az aktuális munkakönyvtárat vagy egy egyéni könyvtárat, amit megadhatok egy argumentummal:
> new # opens a new terminal window at the current working directory> new ~/Desktop # opens a new terminal window at ~/Desktop
Nem jártam szerencsével az AppleScript segítségével
A legutóbbi sikerem után, amikor az AppleScriptet használtam, úgy gondoltam, hogy ismét ez lesz a legjobb megoldás. Sajnos az AppleScript szótárnak ez a bizonyos darabja elromlott. A make new window
vagy make new tab
parancsok hibásan sikertelenek, és már több kombinációt is kipróbáltam.
Némi internetes keresgélés után úgy tűnik, hogy ez már régóta elromlott. Jelentettem egy problémát a Feedback Assistantban.
A Terminál szótárban található do script
paranccsal új Terminál ablakot hozhatsz létre AppleScript segítségével. (Nem tévesztendő össze a do shell script
paranccsal.) Tehát ez az AppleScript nagyjából azt teszi, amit szeretnék, de nehézkesnek tűnik.
tell application "Terminal" do script "cd ~/Desktop"end tell
Ha tudsz egy jobb módszert egy új Terminál ablak vagy még jobb esetben egy Terminál fül létrehozására AppleScript segítségével, akkor kérlek, szólj. (Nincsenek UI Scripting megoldások – azoknak megvannak a maguk problémái.) Van még néhány ötletem, ahol ez hasznos lehet.
Az open parancs beírása
A webes keresések során találtam olyan javaslatokat is, hogy helyette a open
parancsot használjam:
> open -a Terminal ~/Documents
Megnyit egy új Terminal ablakot a ~/Documents
munkakönyvtárral. Ez már nagyon közel áll ahhoz, amit szerettem volna.
Ezt a funkciót hoztam létre a shell konfigurációs fájlomban (bash, zsh):
# creates a new terminal windowfunction new() { if ]; then open -a "Terminal" "$PWD" else open -a "Terminal" "$@" fi}
Ezzel most már be tudom írni a
> new Projects/desktoppr
és egy új Terminal ablakot kapok ott. Ez nagyon hasznos, ha a !$
előzményhelyettesítő változóval kombináljuk (az előző parancs utolsó argumentuma):
> mkdir Projects/great_new_tool> new !$
És egy váratlan, de hasznos mellékhatás, hogy a new
függvény egy ssh munkamenetet is meg tud nyitni egy új ablakban:
> new ssh://[email protected]
Remélem, ezt is hasznosnak találod!