Ответы:
Экран GNU - необходим, когда вы управляете большим количеством систем и не хотите открывать дюжину окон терминала.
Некоторые я знаю, что я не могу жить без ...
tee - позволяет одновременно записывать в STDOUT (стандартный вывод) и файл. Отлично подходит для просмотра информации и записи ее на потом.
top - диспетчер задач UNIX, дает отличный обзор системы.
tail -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 на сервер) язык, который вы уже знаете.
И на этом ходу мыслей, возьми и Сигвина. Если вы не * x администратор и вам нужно работать на Windows-окне (даже на вашем рабочем столе) с ls, rm, grep, sed, tail и т. Д., Вы сэкономите много времени при переключении ОС.
Забытые деды современных систем сценариев. Я знаю, что 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
Полезно тогда, когда вы захотите отследить что-то, что уйдет на века, например, копирование / сжатие сырых блочных устройств по сети (именно так я делаю резервные копии паранойи моего 8-гигабайтного нетбука, прежде чем возиться с чем-то серьезным, например с настройкой файловой системы).
Также: я буду вторым голосом за ssh, rsync, screen, htop и netcat, как упомянуто людьми выше - все это важнее, чем pv, но pv еще не упоминался. На самом деле pv часто является полезным дополнением при передаче данных в или из netcat.
pv
может быть удобным инструментом, но остерегайтесь злоупотреблять им. Передача данных через него абсолютно влияет на производительность (все данные должны проходить через другую программу). На моей последней работе мы много занимались обработкой журналов. Один из парней решил начать использовать pv во всех сценариях обработки журналов, пока мы не обнаружили, что это добавило около 15% времени обработки для них. Теперь он используется только для заданий, которые занимают менее нескольких минут или имеют ограничения по существующим ресурсам (например, через медленное сетевое соединение).
pv
связана с дисковым или сетевым вводом-выводом, а не с процессором / памятью). Тот же аргумент является ключевым против чрезмерного использования cat
тоже (я иногда использую cat, когда на самом деле не нужен просто для того, чтобы вещи читались хорошо слева направо, но дополнительное копирование данных в памяти через канал и переключение контекста может иметь ощутимое влияние на производительность).
cat
использования исходит от начала с cat foo
последующим нажатием стрелки «вверх», а затем добавлением | [command]
к моей предыдущей строке. Я знаю, что я получаю (небольшой) удар по производительности, удерживая кота там, но для того, чтобы оставить его, требуется меньше усилий, чем для переписывания / перепечатывания команды [command] < foo
. Не заботится о (большей части) специальной командной строке, но не идеально подходит для сценариев ( pv
я думаю, так же, как я себя чувствую ).
Передача выходных данных tar другой утилите, tar, работающему на том же компьютере, или tar, работающему по SSH, - это мой любимый старый Unix-способ перемещения файлов из одного места в другое.
Это также дает вам возможность в стиле Windows копировать одну папку в другую и получать все файлы в исходном и целевом каталогах.
зш как оболочка
Это особенно эффективно с расширением / настройкой grml.org .
iotop, программа верхнего уровня для контроля доступа ввода-вывода к вашим дискам.
Большинство этих инструментов сделаны намного более мощными, используя «программируемое завершение» Bash - так что вы можете завершить такие элементы, как параметры командной строки, или произнести имя пакета с помощью «apt-get install». Это также ограничит то, что вы заполняете вкладками для соответствующих файлов - например, «распаковать» будет завершать только поддерживаемые архивные файлы.
Это действительно дураки - если вы никогда не пробовали, вам, вероятно, просто нужно возиться со своим .bashrc:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Конечно, это верно для Ubuntu и Debian. Возможно, вам понадобится получить пакет в некоторых дистрибутивах Linux.
Некоторые дополнительные ответы можно найти в этом похожем вопросе
Несколько вещей упущены из виду, я хотел упомянуть.
О, и я забыл упомянуть, когда пишу сценарии, я считаю, что вы всегда должны использовать Korn. Я ненавижу Korn (не группу. Я люблю группу :-P), но это буквально везде. Вы можете взять скрипт и переместить его между Solaris, AIX и Linux, и вам не придется беспокоиться о том, хватит ли администратору установки Bash.
Один инструмент, иногда очень удобный - это nohup. Я использую его для запуска сценариев, которые длятся долго с использованием удаленных клиентов SSH.