Назад | Перейти на главную страницу

Окно терминала в Mac OS X

Можно ли создать ярлык для открытия окна терминала в определенном каталоге? я использую gcc много для создания небольших программ на C, но раздражает необходимость переходить в каталог, где находится мой исходный код. Есть ли способ настроить ярлык (или что-то еще) для терминала, чтобы открыть окно в заданном каталоге?

Обновить: Эта проблема все еще ускользает от меня. Самый популярный ответ - тот, который я только что пытался реализовать. Но у меня, по-видимому, возникают проблемы с составлением пути $ PROJECTDIR.

Предположим, что файлы находятся примерно в следующем месте:

 /Documents/SVN Working Copies/School/Term-1/CSC-373/

Я смогу попасть туда, когда я cd для каждой вещи отдельно, но я использовал wild card:

cd doc*
cd svn*
cd *
cd *

Я пробовал (например,):

cd /Documents/SVN Working Copies/School/Term-1/CSC-373/  

(опять же, вместо $ PROJECTDIR.) Когда я открываю окно терминала, у меня есть доступ к документам, поэтому я решил, что при создании нового профиля ...

Вы можете сделать это с помощью профилей оболочки в Terminal.app.

  1. Выберите Терминал меню, перейдите в Preferenes.
  2. Выбрать Настройки с кнопок выше.
  3. Либо выберите существующий профиль, либо создайте новый
  4. в Оболочка вкладку, проверьте Команда выполнения коробка и введите cd $ PROJECTDIR где $ PROJECTDIR это путь к вашему проекту.
  5. Проверьте Беги внутри оболочки

Теперь из Новое окно или Новая вкладка меню, когда вы создаете окно или вкладку с измененным профилем, оно выполнит cd внутри оболочки bash и измените каталог на тот, который вам нужен.

Это удобно, потому что вы можете создавать множество разных профилей для разных задач. Если вы хотите запускать большое количество команд при запуске профиля, поместите их в файл в ~/bin/ или где-нибудь еще в вашем домашнем каталоге и выполните их. Вы также можете использовать точку с запятой; для запуска нескольких команд, если вы проверили Беги внутри оболочки флажок.

Вы можете создать символическую ссылку (которая похожа на псевдоним в OS X или ярлык в Windows) в своем домашнем каталоге, который по умолчанию является местом, где открывается ваш Терминал.

Допустим, исходные файлы вашей программы расположены в / usr / bin / myapps /. И ваш домашний каталог - / users / Frank (вы также можете ссылаться на свой домашний каталог, используя путь / ~).

Когда вы находитесь в своем домашнем каталоге (/ ~), запустите команду

ln -s /usr/bin/myapps project

Это создает символическую ссылку под названием «проект» в папку / usr / bin / myapps. Затем вы можете cd для проекта (cd / ~ / project) и завершить его в / usr / bin / myapps.

Это самое простое решение, так как оно временное и легко снимается. Я верю, ты можешь просто

rm /~/project

Чтобы удалить символическую ссылку.

Вы можете использовать псевдоним в своем ~ / .profile:

alias mycode="cd /your/path/goes/here"

Затем псевдоним можно использовать как любую команду. Тип:

user@host ~: $ mycode

и ты там!

Таким образом, у вас не будет софтлинка, загрязняющего ваш $ HOME, и вы сможете прыгать туда в любое время.

Есть аналогичный вопрос о переполнении стека.

Откройте терминал здесь в поисковике Mac OS

Лично мне не нравятся решения на основе графического интерфейса пользователя или AppleScript, которые я вижу здесь. Я бы использовал лучшую команду unix под OS X: open. НАПРИМЕР.

open /usr/bin/screen

Вы можете адаптировать это, изменив /usr/bin/screen команде, которую вы сами создаете. Итак, создайте файл с именем ~/srcTerm.sh и поместите в него эти команды:

#!/bin/sh

cd $HOME #/or/crazy/path/to/src
bash -l #or whatever interactive program you like.

Затем выдайте: open -a /Applications/Utilities/Terminal.app ~/srcTerm.sh

Я знаю, что это выглядит громоздко, так что теперь отредактируйте ~/.bash_profle и рядом с любым другим alias команды устанавливают новый псевдоним, например:

alias popupsrc='open -a /Applications/Utilities/Terminal.app ~/srcTerm.sh'

В следующий раз, когда вы войдете в систему или получите этот файл, вы можете использовать команду popupsrc как ярлык.

Теперь вы можете сказать себе: «Но dlamblin, это предполагает, что у меня уже открыто окно терминала и я сейчас работаю в командной строке. На самом деле я не об этом просил. Я искал что-то вроде значка типа "Терминал", поведение которого я могу изменить ". И на это я мог бы сказать что-то вроде:" Ну, сделайте здесь весь графический интерфейс и найдите ~/srcTerm.sh файл в поисковике, "Получить информацию" и измените параметр "Открыть с помощью:" на "Другое ...", затем "Включить все приложения" и выберите Terminal применение. Не выбирайте «Изменить все ...». Теперь вы можете дважды щелкнуть этот файл, чтобы открыть терминал. Вы можете прикрепить его к своей док-станции, в быстрой папке (также известной как стек) или даже ввести его имя в центр внимания (доступное везде с помощью Command-Space) и нажать Enter ".

Забавно, я пока использовал все 3 ответа;)

Вот еще один вариант: использовать applescript. Например, вы можете создавать сценарии приложений, которые открывают окно в текущем каталоге поиска.

У меня есть куча таких яблочных скриптов и я привязал их к горячим клавишам с помощью Quicksilver (или дворецкого)

по умолчанию я использую горячие клавиши, которые открывают терминал в текущем каталоге поиска, но только в том случае, если поисковик является самым передним приложением. В противном случае я просто получаю новое окно. Затем у меня также есть сценарии, которые открывают сеансы ssh для определенных серверов и повторно подключаются к сеансу экрана. С параметром -x для экрана вы можете просматривать несколько окон erminal на одном и том же серверном терминале, отлично :)

РЕДАКТИРОВАТЬ:

Это сценарий, который я написал, который открывает новое окно, переходя в текущий каталог Finder, если Finder является текущим активным приложением:

on run
    -- Figure out if we want to do the cd (doIt)
    -- Figure out what the path is and quote it (myPath)
    try
        tell application "Finder" to set doIt to frontmost
        set myPath to finder_path()
        if myPath is equal to "" then
            set doIt to false
        else
            set myPath to quote_for_bash(myPath)
        end if
    on error
        set doIt to false
    end try

    -- Figure out if we need to open a window
    -- If Terminal was not running, one will be opened automatically
    tell application "System Events" to set isRunning to (exists process "Terminal")

    tell application "Terminal"
        -- Open a new window
        if isRunning then do script ""
        activate
        -- cd to the path
        if doIt then
            -- We need to delay, terminal ignores the second do script otherwise
            delay 0.3
            do script "cd " & myPath in front window
        end if
    end tell
end run

on finder_path()
    try
        tell application "Finder" to set the source_folder to (folder of the front window) as alias
        set thePath to (POSIX path of the source_folder as string)
    on error -- no open folder windows
        set thePath to ""
    end try

    return thePath
end finder_path

-- This simply quotes all occurrences of ' and puts the whole thing between 's
on quote_for_bash(theString)
    set oldDelims to AppleScript's text item delimiters
    set AppleScript's text item delimiters to "'"
    set the parsedList to every text item of theString
    set AppleScript's text item delimiters to "'\\''"
    set theString to the parsedList as string
    set AppleScript's text item delimiters to oldDelims
    return "'" & theString & "'"
end quote_for_bash

Чтобы использовать его, откройте редактор сценариев и вставьте его. Затем сохраните его в удобном месте (я использую ~ / Library / Scripts) и скажите QuickSilver, Butler или панели быстрого поиска Google запустить его. С помощью QS и Butler вы также можете установить глобальные сочетания клавиш.

Надеюсь это поможет,

Wout.

На самом деле это не решение, но знаете ли вы, что можете перетащить папку или файл в терминал, и он вставит путь к элементу

например, введите "cd" и перетащите папку, а затем нажмите "Return"

Если проблема в том, что вам нужно начинать каждый сеанс в терминале следующим образом: cd /a/very/very/annoyingly/long/path/name, то я могу придумать два решения.

  1. Поместите это внизу своего .profile файл (он находится в домашнем каталоге вашего пользователя):

    cd / a / очень / очень / раздражающе / длинный / путь / имя

  2. Отредактируйте свой CDPATH. Этот метод позволяет быстро изменять каталоги с помощью вкладок. Мой, например, выглядит так, поскольку большая часть моей работы с оболочкой выполняется в двух каталогах iliumSvn или unix.varia:

    экспорт CDPATH = '.: ~: ~ / iliumSvn /: ~ / unix.varia'

Я думаю, что 2 чище и лучше в долгосрочной перспективе, но оба должны работать нормально. Проблема с 1 заключается в том, что если ваши рабочие привычки изменятся, вам нужно будет не забыть удалить эту строку, иначе она будет сводить вас с ума каждый раз, когда вы открываете оболочку.

Я делаю подобные вещи с помощью DTerm http://www.decimus.net/dterm.php таким образом вы можете просто нажать KeyCombo из редактора, в котором вы работаете (Textmate в моем случае), и вы получите командную строку для этого места. Затем вы можете выполнить команду (например, сделать) и все! Если вы хотите открыть там настоящий терминал, вы можете просто нажать Command + Return вместо Return, и ваша команда будет выполнена в этом каталоге в новом окне терминала. Мне кажется намного проще, чем возиться с кучей путей и т. Д.