Расширенные терминальные / консольные приложения для Mac OS X?

1866
Jakob Egger

Я использую много программ командной строки, очень часто с похожими аргументами. Может кто-нибудь порекомендовать приложение или рабочий процесс, который позволяет мне хранить часто используемые команды оболочки и выполнять поиск по моим недавним командам, используя графический интерфейс?

У меня есть команды, которые я использую очень часто (например, rsync для определенного каталога на сервере) и другие команды, которые я использую реже. Создание сценариев оболочки для каждого фрагмента кода, который я могу использовать повторно, выглядит немного неловко.

Специально для программ, которые я использую редко, я заканчиваю читать документы снова и снова, потому что я забыл записать точную команду оболочки. В идеале я хотел бы, чтобы приложение было таким же, как Terminal.app, но обеспечивало некоторую историю и управление фрагментами.

Что вы используете для отслеживания команд оболочки?

1
Кроме того, что касается «терминала GUI», для любителей терминала / bash, это один из смертных грехов. Зачем нажимать, когда можно печатать? Держу пари, что для этого просто нет достаточно большого рынка. Daniel Beck 13 лет назад 0

2 ответа на вопрос

5
Daniel Beck

Отвечая, насколько мне известно. Я не уверен, что вы думаете, что отсутствует, так что я могу быть там. В таком случае просто скажи мне.


Терминал (точнее, bash) имеет историю. нажмите Up-Arrowили (после) Down-Arrowили введите history. Он хранится в ~/.bash_historyкотором может быть прочитан любым текстовым редактором. Редактировать команды проще, если вы знаете комбинации клавиш для навигации .

Поиск по истории также может помочь вам найти конкретные наборы параметров для одного вызова. Например, введите hdiutilи используйте их, чтобы найти все недавние вызовы этой команды, и прокрутите их.

Эти ( 1, 2 ) коммерческие скринкасты могут также помочь вам узнать больше о вашей оболочке. Я купил их, и они мне нравятся, но есть множество объяснений, объясняющих практически любой аспект Терминала или bashиспользования.

Такие инструменты, как AppleScript ( tell application "Terminal" to do script "...") и Automator (действие « Выполнить сценарий оболочки» ), также могут помочь автоматизировать повторяющиеся задачи или создавать «макросы».

В случае часто выполняемых программ создание небольшого сценария оболочки не будет плохой идеей. По сути, он состоит из двух строк, и использование редактора, такого как TextMate, с командами, связанными с тем, что вы хотите выполнить (например, «сделать исполняемым», чтобы вам не нужно было печатать эту chmodстроку), делает это еще проще.


Mac OS X использует расширения файлов .toolи .commandдля сценариев, которые будут выполняться с использованием терминала. Вы должны сделать их исполняемыми, к сожалению.

Большое спасибо! Я попробую поискать историю, может быть, именно то, что я хочу. Jakob Egger 13 лет назад 0
1
Dennis Williamson

В дополнение к советам, которые дал вам Даниэль, вот еще несколько:

  • Вы можете установить HISTSIZEи HISTFILESIZEвыше их значения по умолчанию 500 записей. Это позволит вам сохранить больше истории.
  • Создавайте псевдонимы и небольшие функции, когда не имеет смысла создавать скрипт. Они могут быть сохранены в вашем ~/.bashrcфайле, и они всегда будут доступны, или вы можете поместить их в отдельный файл и получать их изнутри ~/.bashrcили даже из командной строки, если они вам не всегда нужны немедленно.
  • Используйте какую-то регистрацию. Мои функции ведения журнала истории хранят не только команды и аргументы, но и дату и время (что может делать история Bash) и могут хранить каталог, который был текущим на момент выдачи команды, а также терминал или IP-адрес и другую информацию. Вы выбираете (например, так как я использую более одной версии Bash, у меня есть журнал регистрации версии Bash).
  • Вы можете привязать макросы клавиатуры к функциональным клавишам или другим комбинациям клавиш, которые позволяют сократить количество повторяющихся операций ввода.
  • Вы можете установить переменные, чтобы сделать то же самое.
Спасибо за подсказку HISTSIZE. Я уже использую некоторые псевдонимы, но для большинства команд я просто не пытаюсь создавать псевдонимы, потому что я не использую их достаточно часто ... Jakob Egger 13 лет назад 0