Як я можу пришвидшити Terminal.app або iTerm на Mac OSX?


41

Кожен раз, коли я запускаю або iTerm, або термінал, не користуючись ним протягом декількох годин, для повернення запиту потрібно десь 10-20 секунд. Екран порожній, і хоча я можу набрати, я фактично не можу запускати жодної команди.

Якщо я закриваю будь-яку програму, наступні запуски (якщо це зробити відносно незабаром після цього) проходять досить швидко. Схоже, повільність виникає лише в тому випадку, якщо додаток не працював кілька годин.

Я працюю OSX 10.5.7 на MacBookPro. У мене така ж настройка на іншому комп’ютері, без повільних падінь.

Будь-які ідеї, як знову пришвидшити справи?


Мені подобається, як на це питання задають і відповідають два анонімні користувачі з випадковими номерами. Я часто не бачу цієї картини! :)
Крегокс

Відповіді:


39

Спробуйте видалити файли системного журналу Apple /var/log/asl/:

sudo rm /var/log/asl/*.asl

Це зробило для мене трюк.


3
(ASL = Apple System Log)
Арджан,

+1. Працював як шарм, хоча в одній з інших відповідей було запропоновано у мене нетривіальний .bashrc.
alesplin

7
Як зазначалося в OsXDaily , я рекомендую використовувати sudo rm -rf /private/var/log/asl/*.aslзамість цього, оскільки це безпечніше, оскільки він 1) видаляє лише файли журналів і 2) уникає внесення записів у неправильну директорію та видалення всіх файлів.
Метью Ранкін

1
Хтось має уявлення, чому розмір журналів системи впливає на те, як швидко відкривається термінал?
Джеймс Макмахон

3
@JamesMcMahon loginПроцес, здається, читає всі файли та папки на верхньому рівні /var/log/asl. Спробуйте запустити sudo opensnoop | grep /var/log/asl.
Lri

30

Ще одна порада може бути корисною:

Змініть оболонку запуску з типового /usr/bin/loginна /bin/bash -lабо, /usr/bin/zshякщо ви використовуєте zsh.

Це може зробити ваш термінал / iTerm2 запуск з легкою швидкістю!

  • Для терміналу: Налаштування → Запуск: Змініть з "оболонки входу за замовчуванням" на "Команда: /bin/bash -l"

  • Для iTerm2: Налаштування → Профілі → Загальне → Команда: Змініть з "Оболонки входу" на "Команда: /bin/bash -l"


2
Це значно прискорило завантаження нової вкладки.
Сіндре Сорхус

1
Не можу сказати, наскільки це мені допомогло. Вирішено ~ 6 місяців повільної роботи терміналу за 1 секунду.
Сем Стерн

/ bin / bash -l працює для мене!
Філ Паффорд

Для тих, хто вважає за краще використовувати бас MacPorts:/opt/local/bin/bash -l
Іоанніс Філіппідіс

Мабуть, використання /bin/bash -lнедостатньо для йосеміту (більше?), для інших деатілів
rogerdpack

9

Мені потрібна певна репутація, щоб коментувати публікації? У будь-якому випадку очищення системних журналів зробило це і для мене. Я спробував виправити патч path_helper тут: gist.github.com/123525, як це запропоновано в коментарі до http://mjtsai.com/blog/2009/04/01/slow-opening-terminal-windows/ ( згаданий раніше в цій темі), але безрезультатно. Я отримую криптичну помилку. Однак цей патч повинен прискорити запуск terminal.app.

додаток: Як я вже згадував, очищення журналів зробило для мене трюк, але проблема продовжує з'являтися, коли журнали безперервно збільшуються після їх видалення. Я виявив, що "налаштування" /etc/asl.conf дало мені більш постійне рішення. Модифікація полягає в тому, щоб реєструвати лише повідомлення, які класифікуються як "критичні" або більш критичні за них, на відміну від реєстрації категорії "сповіщення" та кожного більш критичного. Також я нехтую повідомленнями з ftp, mail, local0, local1. Ось паста мого /etc/asl.conf:

 ##
 # configuration file for syslogd and aslmanager
 ##

# redirect com.apple.message.domain to /var/log/DiagnosticMessages
? [T com.apple.message.domain] store_dir /var/log/DiagnosticMessages exclude_asldb

# authpriv messages are root/admin readable
? [= Facility authpriv] access 0 80

# remoteauth critical, alert, and emergency messages are root/admin readable
? [= Facility remoteauth] [<= Level critical] access 0 80

# broadcast emergency messages
? [= Level emergency] broadcast

# save kernel [PID 0] and launchd [PID 1] messages
? [<= PID 1] store

# save everything from emergency to notice
#? [<= Level notice] store
? [<= Level critical] store

# save lpr info level and above
#? [<= Level info] [= Facility lpr] store

# save all mail, ftp, local0, and local1 messages
#? [= Facility mail] store
#? [= Facility ftp] store
#? [= Facility local0] store
#? [= Facility local1] store

1
Ласкаво просимо в SU. Так, потрібна 50 репутація, але відомо більше, тому одразу переходьте на superuser.com/faq ! ;-)
Ар'ян

7

З статті, яку я прочитав пару тижнів тому: Повільне відкриття терміналу Windows

/usr/libexec/path_helperпри завантаженні страшенно повільно. /etc/pathsЯкщо ви видалите всі записи /etc/pathsта гарантуєте, що ці елементи доступні у вашому, .bash_profileце вирішить проблему. Це все одно було для мене.


Випадково хтось переписав path_helper, і це доступно за адресою: github.com/mgprot/path_helper
Chealion

Це все-таки так? path_helperне здається повільним…
Франклін Ю

1

Якщо додаток терміналу завантажено, але у вас поки немає підказки, тоді для оболонки потрібен певний час для ініціалізації.

Це, ймовірно, означає, що у вас занадто багато або щось забирає багато часу .bashrc( якщо ви використовуєтеbash ).


Це може бути проблема у мене, чи знаєте ви, як я можу перевірити, якщо я використовую bash, де я можу отримати доступ до файлу .bashrc?
alvincrespo

0

Я здогадуюсь, що з часом щось використовує багато пам’яті. Коли ви запускаєте термінал після того, як не користуєтесь ним деякий час, деяку пам’ять потрібно зробити доступною, перемістивши його вміст на диск. Якщо ви закриєте термінальний процес і відновите його відносно швидко, пам'ять все ще доступна, і він швидко запускається. Це має статися і з іншими програмами.

Ви повинні відстежувати використання пам'яті за допомогою Монітора активності та бачити, чи зможете ви сказати, куди вона йде.


Він сказав, що вікно терміналу було відкрито, це означає, що процес завантажився.
Майк МакКвайд

1
@Mike, я не впевнений, що як тільки з’явиться вікно терміналу, все завантажилось? І все-таки, якщо вищезазначене було б справедливим для Terminal, то будь-яка програма запускатиметься повільно. Я не думаю, що терміналу потрібно багато ресурсів (6,5 / 31,7 реальних / віртуальних на моєму Mac), так що @pmaiorana: скільки пам'яті потрібно Терміналу на вашому Mac?
Ар'ян


0

Відкрийте /etc/profileі додайте рядок, PATH=""щоб він виглядав так:

if [ -x /usr/libexec/path_helper ]; then
    PATH=""
    eval `/usr/libexec/path_helper -s`
fi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.