Цей файл створюється і оновлюється інтерактивною командою «W».
Застарілу версію буде записано як `$HOME/.ваша-назва-4-top' + `rc' з початковою крапкою у назві.
Новостворений файл налаштувань буде записано як procps/ваша-назва-4-top' + «rc» без початкового пробілу. Каталог procps є підкаталогом або у каталозі, який визначається змінною $XDG_CONFIG_HOME, якщо її значенням є абсолютний шлях, або у каталозі $HOME/.config.
Хоча файл і не призначено для редагування вручну, ось його загальне компонування:
загальне # рядок 1: назва/альтернатива назви програми
" # рядок 2: id,altscr,irixps,delay,curwin
окремі # рядок a: winname,fieldscur
вікна # рядок b: winflags,sortindx,maxtasks тощо
" # рядок c: summclr,msgsclr,headclr,taskclr
загальне # рядок 15: різні додаткові параметри
" # у решті рядків описують необов'язкові активні
" # «інші фільтри», які описано у розділі 5д вище, а
" # також записи «inspect», які описано у розділі 6б нижче Якщо коректний абсолютний шлях до файла rc не вдасться встановити, налаштування, які виконано у запущеній програмі top, не можна буде зберегти.
Щоб скористатися інтерактивною командою «Y», вам слід додати записи наприкінці особистого файла налаштувань top. Такі записи просто вказують файл, який слід прочтати або команду/канал даних, які слід виконати, і результати виконання яких слід показати в окремому придатному до гортання і пошуку вікні.
Якщо вам не відоме місце зберігання або назва вашого файла rc top, скористайтеся інтерактивною командою «W», щоб перезаписати його і запам'ятайте його параметри.
Записи інспектування можна додати переспрямовуванням echo або редагуванням файла налаштувань. Переспрямовування echo небезпечне через можливість перезапису файла rc, якщо буде використано заміну (>), а не дописування (>>) до цього файла. А якщо ви користуватиметеся редактором, слід слідкувати за тим, щоб не пошкодити наявні рядки, деякі з яких будуть містити непридатні до друку або незвичайні символи, залежно від версії top, у якій було збережено файл налаштувань.
Записи інспектування, які починаються з символу «#» буде проігноровано, незалежно від вмісту. Інші записи мають складатися з вказаних нижче 3 елементів, кожен з яких має бути відокремлено від інших символом табуляції (отже, містити загалом 2 «\t»):
.type: буквально «file» або «pipe»
.name: вибір, який буде показано на екрані інспектування
.fmts: рядок шляху або команди
Два типи записів інспектування не є взаємозамінними. Доступ до тих, які позначено як «file», буде здійснюватися за допомогою fopen, вони мають посилатися на єдиний файл в елементі «.fmts». Записи, які задають «pipe» підлягатимуть дії popen, їхній елемент «.fmts» може містити багато команд у конвеєрі, жодна з цих команд не повинна бути інтерактивною.
Якщо файл або конвеєр, представлений у вашому «.fmts», має справу зі специфічними вхідними даними PID або приймає дані, якщо запитано, у рядку форматування також має міститися специфікація «%d», як у наших демонстраційних прикладах.
.fmts= /proc/%d/numa_maps
.fmts= lsof -P -p %d
Лише для записів типу «pipe», вам, ймовірно, також слід переспрямувати stderr до stdout для покращення результатів. Таким чином, рядок форматування буде таким:
.fmts= pmap -x %d 2>&1
Тут наведено приклади обох типів записів інспектування у такому вигляді, у якому вони можуть з'являтися у файлі rc. Перший запис буде проігноровано через початковий символ «#». Для зручності читання до псевдозамінників табуляції (^I) додано додаткові пробіли з обох боків, але справжні табуляції таким чином не виокремлено.
# pipe ^I Sockets ^I lsof -n -P -i 2>&1
pipe ^I Open Files ^I lsof -P -p %d 2>&1
file ^I NUMA Info ^I /proc/%d/numa_maps
pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr
Окрім коментованого запису вище, у наступних прикладах показано, що можна переспрямувати з echo для отримання подібних результатів, у припущенні, що файлом rc є файл «.toprc». Втім, через вбудовані символи табуляції перед кожним з цих рядків слід дописувати «/bin/echo -e», а не просто «echo», щоб уможливити обробку символів зворотної похилої риски, незалежно від використаної вами командної оболонки.
"pipe\tOpen Files\tlsof -P -p %d 2>&1" >> ~/.toprc
"file\tNUMA Info\t/proc/%d/numa_maps" >> ~/.toprc
"pipe\tLog\ttail -n200 /var/log/syslog | sort -Mr" >> ~/.toprc
Якщо будь-який зі створених вами записів інспектування виводитиме дані із непридатними до друку символами, їх буде показано або у позначеннях, подібних до ^C, або у шістнадцятковій формі, подібній до <FF>, залежно від значення. Це стосується символів табуляції, які буде показано як «^I». Якщо вам потрібне краще представлення, усі вбудовані табуляції має бути розгорнуто. У наведеному нижче прикладі програма приймає те, що могло б бути записом «file», але використовує замість нього «pipe» для розгортання вбудованих табуляцій.
# наступний рядок мав би містити «\t» ...
# файл ^I <ваша_назва> ^I /proc/%d/status
# але це вилучить вбудований `\t' ...
pipe ^I <ваша_назва> ^I cat /proc/%d/status | expand -
Зауваження: Для завершення деяких програм може бути потрібним SIGINT. Тому, якщо встановлено «pipe», подібний до наведеного нижче, доведеться скористатися Ctrl-C для його переривання, щоб переглянути результати. Це єдиний випадок, коли «^C» не завершить також і роботу top.
pipe ^I Trace ^I /usr/bin/strace -p %d 2>&1
Нарешті, хоча ми описували записи типу «pipe» у термінах конвеєрів і команд, нічого не заважає вам включати і скрипти командної оболонки. Можливо, навіть новостворені скрипти, які спеціально розроблено для інтерактивної команди «Y».
Наприклад, зі зростанням кількості записів інспектування з часом, рядок «Параметри:» буде обрізано при перевищенні ширини екрана. Це не вплине на працездатність записів, але зробить деякі з варіантів вибору невидимими. Втім, якщо деякі варіанти обрізано, а ви хочете переглянути усі, існує просте рішення, підказку щодо якого можна бачити нижче.
Інспектування Призупинка: pid ...
Кор: ліворуч/праворуч, потім <Enter> ...
Пункти: help 1 2 3 4 5 6 7 8 9 10 11 ...
Записи у файлі rc top повинні мати номери у елементах «.name», а запис «help» має ідентифікувати скрипт оболонки, який ви написали для пояснення того, що саме позначають ці нумеровані варіанти вибору. У такий спосіб можна зробити видимими набагато більше варіантів вибору.