Як я можу увійти в Mac OS X через термінал на Console.app?


8

Я бачив використання /dev/consoleв декількох сценаріях для Mac OSX, але не знаю, як це використовується. Я перевірив Console.app і не побачив результатів моєї тестової команди:

ехо-тест> / dev / console

друкується там, тож куди він іде, або як би ти ним скористався?


@Qosmo. Це питання стовідсотково справедливо для Super User, і немає потреби чи причин мігрувати його.
BinaryMisfit

Чи не є дійсним, це не означає, що там краще подаватись? Для чого він був створений? У всякому разі, це лише пропозиція ...
Хоробрий новачок

Відповіді:


7

/dev/consoleПристрій не особливо пов'язано з консолі додатки.

У Mac OS X 10.6 додаток Console має два типи джерел даних, які він читає: звичайні файли журналів (наприклад, файли в /var/log/) та повідомлення, що реєструються через систему розширення (Apple Extended).

Якщо у вас є файл журналу, який потрібно відстежувати, ви можете скористатися пунктом меню Файл > Відкрити… (⌘O), щоб переглянути файл у консолі .
Примітка. Єдиним способом видалення файлу зі списку файлів консолі, здається, є використання його пункту меню Файл > Переміщення до кошика (⌘⌫); будьте готові витягнути файл із кошика, якщо ви просто хочете перестати його переглядати на консолі .

Ви можете використовувати програму командного рядка syslog для надсилання повідомлень у центр syslog.

syslog -s Your message goes here. \(quote special chars for the shell'!)'

Однак у конфігурації за замовчуванням це повідомлення ніколи не відображатиметься в жодному з представлень консолі, оскільки його "рівень" занадто низький, щоб бути важливим. Ця початкова фільтрація обумовлена ​​системою syslogd . Він налаштований файлами asl.confі syslog.conf. Конфігурація за замовчуванням не зберігає більшість повідомлень, якщо їх рівень занадто низький (і syslog -sза замовчуванням до найнижчого рівня). На консолі може відображатися лише повідомлення, збережене системою syslogd .

Ви можете змінити значення поля Рівень, скориставшись -lопцією:

syslog -s -l notice This message should show up in \"All Messages\" \
  with a Facility of syslog.

noticeРівень є ( по замовчуванню) низький рівень , для якого Syslogd буде зберігати більшість повідомлень.

Повідомлення генерується , як це буде відображатися в консолі «и вбудований" Все Messsages "пошук в базі даних
(файл All Messages.aslqueryв /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/технічно обмежує його повідомлення , де поле Facility" містить "порожній рядок, але ця умова тривіально задовольняється будь-яким Facility значення).

Якщо ви хочете , щоб ваше повідомлення з'явиться в консолі «s вбудованого пошуку бази даних" консоль повідомлення ", то ви повинні бути трохи більш конкретною. Він відображає лише (зберігаються) повідомлення, у яких поле "Фабрика" дорівнює com.apple.console(див. Файл Console Messages.aslqueryу /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/). Ви можете генерувати такі повідомлення за допомогою syslog , встановивши -kопцію встановлення поля Facility.

syslog -s -k Facility com.apple.console \
          -k Level notice \
          -k Message 'This will show up in "Console Messages"'

Під час використання -kвсі параметри та саме повідомлення необхідно задавати наборами -k key valueаргументів (ми не можемо використовувати -lдля встановлення рівня). Це означає, що ми повинні поставити повідомлення єдиним аргументом, щоб воно могло бути значенням Повідомлення.


То для чого використовується команда "реєстратор"? Це частина системи?
cwd

@cwd: Також використовується засіб syslog. Система Apple має два основні інтерфейси: syslog (3) та asl (3) . Ця система є стандартною для більшості систем Unix-y в наші дні; реєстратор використовує його. Останнє є специфічним для Apple розширенням; команда syslog використовує його. Консоль бачить повідомлення обох, але для пошуку "Повідомлення консолі" потрібне розширене значення Apple, яке не може зробити реєстратор .
Кріс Джонсен

7

я використовую:

logger Hello World

завжди працює на мене. скидає "привіт світ" в syslog, який повинен відображатися в console.app


0

Я не позитивний, але це може бути пристрій, який викликається, коли в поле "Ім'я користувача" вікна входу вводиться консоль. Коли ви вводите вище, він скидає CLI.


0

Ви можете записати у вибраний файл, який потім зможете переглянути у програмі Console.

Якщо ви хочете вести журнал для користувацького рівня, використовуйте:

echo "test" > /Users/$USER/Library/Logs/your_script.log

або для чогось, що завантажується для всіх користувачів:

echo "test" > /Library/Logs/your_script.log
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.