Відповіді:
Екран GNU - важливий, коли ви керуєте великою кількістю систем і не хочете відкривати десяток вікон терміналів.
Деякі я знаю, що не можу жити без ...
tee - дозволяє одночасно записувати в STDOUT (стандартний вихід) і файл. Відмінно підходить для перегляду інформації та реєстрації її на потім.
top - менеджер завдань UNIX, дає чудовий огляд системи.
хвост -f - дозволяє переглядати додані дані в міру зростання файлів, що чудово підходить для моніторингу файлів журналів на сервері.
grep - Global Regular Expression Print, відмінно підходить для пошуку системи в даних у файлах.
df - повідомляє про використання диска поточних файлових систем.
du - повідомляє про використання диска певного файлу / каталогу.
менше - потрібно для перегляду сторінок чоловіка! також корисний для перегляду результатів команд у легкодоступному вигляді.
vim / Emacs / nano / pico / ed - незалежно від обраного вами текстового редактора, пояснюючи, чому це потрібно.
moreабо less, ви завжди можете спробувати most.
htopє "кращою" версією top.
lsof, щоб визначити, для яких процесів використовується файл чи каталог (корисно, коли намагаєтеся з’ясувати, що заважає пристрою бути umount'd)
netstat, щоб визначити, які процеси використовують мережеві з'єднання (особливо корисно, намагаючись розібратися, який демон пов'язаний з певним портом)
Вивчіть усі основні інструменти, але вивчіть Perl.
Perl ідеально підходить для маніпулювання текстом, і оскільки оператори un * x живуть на текстових файлах, трубах, введеннях та вихідних даних, Perl - це чудова підходить.
Додатковий бонус - Perl - це кросплатформна платформа, і якщо вам доведеться виконати певну роботу над вікном Windows, ви можете легко встановити (просто киньте каталог Perl на сервері), який ви вже знаєте.
І в той потяг думки прибери і Цигвіна. Якщо ви адміністратор UN * x і вам доводиться працювати на вікні Windows (навіть на робочому столі) з ls, rm, grep, sed, хвостом тощо, економте багато часу при переключенні ОС.
Забуті діди сучасних системних сценаріїв. Я знаю, що Perl отримує більшу частину любові (разом із сценаріями Bash, Python, Ruby і [вставте сюди свою улюблену мову сценаріїв]), і не зрозумійте мене неправильно, я люблю Perl. Я цим користуюся майже щодня.
Але sed і awk не слід забувати, не помічати або ігнорувати. Для багатьох випадків найкращі інструменти для роботи - sed і awk. Короткі приклади - фільтрація командного рядка за допомогою sed та швидка та брудна обробка журналу з awk. І те й інше можна зробити в Perl, але це вимагатиме більше часу на роботу та розробку.
Netcat.
Мережа швейцарського армійського ножа, як кажуть.
Швидкі сценарії, автоматизація тощо:
Щоб підключитися до вашого сервера * NIX:
Кілька зручних інструментів, про які я ще не бачив:
expect
ClusterSSH контролює ряд вікон xterm через одне вікно графічної консолі, щоб дозволити командам інтерактивно запускатися на декількох серверах через ssh-з'єднання.
pv: Відображає хід довгих операцій, які можна переспрямувати. http://www.ivarch.com/programs/pv.shtml
Корисно тоді ви хочете контролювати те, що збирається віками, наприклад, копіювання / стискання необмеженого блокового пристрою через мережу (саме тому я беру резервні копії мого нетбука 8Gb перед тим, як познайомитись із чимось важливим, як налаштування параметрів файлової системи).
Також: Я буду другими голосами за ssh, rsync, screen, htop та netcat, як згадували люди вище - всі вони важливіші за pv, але pv ще не згадувалося. Насправді, ПВ часто є корисним доповненням під час передавання матеріалів до мережі Netcat.
pvможе бути корисним інструментом, але будьте обережні. Передача даних через них абсолютно впливає на продуктивність (усі дані повинні проходити через іншу програму). На моїй останній роботі ми багато робили обробку журналів. Один з хлопців вирішив почати вводити pv у всі сценарії обробки журналу, поки ми не виявили, що це додало приблизно 15% до часу обробки для них. Тепер він використовується лише для завдань, які займають менше декількох хвилин, або які мають існуюче обмеження ресурсів (наприклад, перетинання повільного мережевого з'єднання).
pvє дисковий або мережевий введення / виведення, а не пов'язаний з процесором / пам'яттю). Ця ж аргументація є ключовою проти надмірного використання catзанадто часто (я іноді використовую кішку, коли насправді не потрібно просто для того, щоб речі читалися добре зліва направо, але додаткове копіювання даних у пам'ять через трубу та переключення контексту може мати вимірюваний вплив на ефективність).
catвикористання починається з початку cat foo, після чого натискаю стрілку "вгору", а потім додаючи | [command]до попереднього рядка. Я знаю, що я отримую (невеликий) показник виконання, тримаючи кота там, але залишати його потрібно менше зусиль, ніж переписання / перезапис команди [command] < foo. Не викликає занепокоєння щодо (більшості) роботи спеціального командного рядка, але не ідеально підходить для сценаріїв (так само, як я вважаю pv, напевно).
sudo.
Якщо серйозно, tail -fто корисно.
tail -f, вам сподобаєтьсяmultitail
передача виводу tar на іншу утиліту, для використання tar на тій же коробці або tar для запуску через SSH - це мій улюблений хід Unix для перенесення файлів з одного місця в інше.
Це також дає вам можливість в стилі Windows копіювати одну папку в іншу і закінчувати всіма файлами в каталозі джерела та призначення.
zsh як оболонка
Це особливо ефективно з розширеннями / налаштуваннями grml.org .
iotop - це подібна програма для контролю доступу до вводу / виводу на ваші диски.
Більшість цих інструментів робляться набагато потужнішими, використовуючи Bash "програмоване завершення" - так що ви можете виконати вкладки, такі як параметри командного рядка, або сказати назву пакета за допомогою "apt-get install". Це також обмежить те, що ви можете виконати на вкладці для відповідних файлів - наприклад, "unzip" завершить лише підтримувані файли архіву.
Це насправді є мутри - якщо ви ніколи не пробували її, вам, ймовірно, просто потрібно обміняти ваш .bashrc:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Звичайно, це стосується Ubuntu та Debian. Можливо, вам знадобиться отримати пакет у деяких дистрибутивах Linux.
Деякі додаткові відповіді можна знайти в цьому подібному питанні
Кілька речей, що нехтували, я хотів згадати.
О, і я забув згадати, під час написання сценарію я вважаю, що ви завжди повинні використовувати Корн. Я ненавиджу Корна (Не група. Я люблю гурт :-P), але це буквально скрізь. Ви можете взяти скрипт і перемістити його між Solaris, AIX та Linux і не турбуватися про те, чи був у адміністратора пристойність встановити Bash чи ні.
Одним із інструментів, який часом дуже зручний, є нохуп. Я використовую його для запуску сценаріїв, які тривають довгий час, використовуючи віддалені клієнти SSH.