Pull to refresh

Comments 50

Только, как и ifconfig, netstat уже отмирает. Пора учить ss вместо него )

Это да, жаль. Но я для себя решил, буду пользоваться старыми пока это ни начнет приносить боль. Надеюсь оно никогда не начнет приносить боль. Может быть в диагностике ты будешь менее быстр, чем молодежь с то новыми командами, зато голову лишний раз грузить не нужно ))

По-моему, легче просто просмотреть список команд в линуксе, но некоторые нюансы из статьи полезны!

Ой ой ой ) круто, спасибо. Это была такая ностальгия. Хорошо что современные начинающие люди пишут о таком для себя и для других таких же как он. Я просто лет на 13-15 назад откатился, когда читал такие же подробные маны по основам ) респект; )

Спасибо за отзыв, приятно, что такая статья может вызвать ностальгические (внезапно) порывы :)
Читали вероятно на opennet?

Ну не знаю на счет "подробные"…
Мне кажется здесь автор по вершкам пробежался и можно было как-то развернуть пошире для юных и любознательных.
К примеру есть прям очень не очевидные с первого взгляда и очень полезные штуки, вроде tail -F file1.log file2.log. Эта штука благодаря флагу F не только читает файл непрерывно, но и подхватывает их по новой по указанному имени после переименования и пересоздания (например в связи с ротацией), а ещё смешивает вывод сразу из нескольких перечисленных файлов, что крайне удобно для отладки и чтения логов, когда они в разных файлах, но нужны в одном окне.
Хорошо было бы (раз уж пошли по азам) рассказать про whereis и про alias, поскольку эти команды дадут больше понимания в магии баша, чем просто шпаргалка.
Можно было сказать про .bashrc. Дело в том, что если входить в *nix системы заучивая команды, вся эта архитектура выглядит сложной. А если постараться понять базовые закономерности и внутреннюю логику, то окажется, что архитектура логична самоподобна и элегантна (пока не отрастёт борода и не копнёшь в нее еще глубже, там где кровь, кишки и подводные камни)

Подписывайтесь, это не последнее полезное видео)

Спасибо.
Возможности Linux оценил только сейчас, когда начал им активно пользоваться.
Статья безусловно полезная.

Для тестера-баголова надо знать такие команды как: strace, pmap, lsof.

А поделитесь примерами ситуаций, когда pmap используется при тестировании? По моему опыту, lsof и strace приходится использовать прям нечасто, а pmap вообще не довелось использовать :)
Но есть идея написать статью как раз про чуть более специфичные утилиты и разобрать их использование на примерах, потому что, например, ещё с помощью iptables или tc можно делать интересные вещи.

netstat -lptnu

У нас принято так: netstat -untap
Для любителей MTG запомнить легко.
Еще есть какой легко запоминаемый вариант: netstat -plan
С языка сорвали. Тюльпан наше всё! ;-)

Для любителей немецкого ещё сгодится вариант netstat -tulpen. Tulpen — тюльпаны.

Вместо uname лучше использовать lsb_release -a.
Почему? Обычно версия ядра и прочая инфа из uname мало что дает для понимания системы. А вот lsb_release выдает полный расклад на инфу по дистрибутиву.

Мне кажется… надо ещё команду… Знать на каком "чипсете ходим"
sudo dmidecode | grep -A4 'Base Board Information'

pacman -Qqe выведет только явно установленные пакеты. Для полного списка нужно убрать -e.

Для тестирования, пожалуй, лучше использовать инструменты, связанные с тестированием. jmeter, как пример. А команды Linux желательно просто знать.

Спасибо за статью, часть про команду ps предлагаю дополнить командой pstree, например в таком виде pstree -up | less. Получим обзор всего дерева процессов.

Для диагностики проблем с кэшем dns используется dig

hostname -I
Вывести IP адреса системы, иногда удобнее чем разбирать вывод ifconfig

history
Вывод истории команд

dmesg
Лог работы системы полезно в ситуации: подключил USB устройство, а ничего не происходит
В статье нет ничего нового или того, что могло зацепить. Эти команды — обычная шпаргалка «юзера», у каждого она своя. Такими статьями шпорами интернет нашпигован под завязку, одна шпора больше другой и эта явно не лучшая.
Не понято, почему статью не заминусовали и не отфильтровали сразу.

по поводу «echo», например, это «ошибка» прошлого века есть «printf»
-$ echo 0 | md5sum
897316929176464ebc9ad085f31e7284
-$ printf 0 | md5sum
cfcd208495d565ef66e7dff9f98764da

-$ cmd1 | cmd2, а где такое в статье: -$ cmd2 $(cmd1)?
-$ watch -d -n 3 «ls /каталог» # автообновление просмотра папки каждые 3с и подсветка обновлений.
и тд. и тп. бесконечное…
UFO just landed and posted this here
И в подавляющем количестве подобных «шпор» ничего не сказано ни
про «великий и ужасный» dd , ни про бесподобную по возможностям для скриптописания nc ( AKA netcat).
Про dd правда была отдельная статья на Хабре, так что автор может вторую посвятить исключительно netcat, ну после прочтения man nc ;-)

Ну блиин. Я надеялся тут будут примеры конкретных кейсов по использованию команд в каждодневной жизни тестировщика.
По поводу mv оффтопа ) mv использует транзакционную модель перемещения, то есть сначала все файлы копируются полностью в новую директорию, а потом удаляются из старой. Очень удобно убивать процесс, если передумал, но нужно 2 раза больше места на диске, чем при перемещении каждого файла в коллекции. Как делает, например, mc по команде f6
Всегда казалось, что просто меняет inode, т.е. делает без использования дополнительной памяти.
Совершенно верно, и это очевидно на больших файлах, mv выполняется мгновенно
Еще стоит упомянуть, что tcpdump может сохранять траффик в файл, который можно открыть в wireshark.

Хотел бы ещё сказать про cp mv и их использование с фигурными скобками к примеру нужно создать быстро копию папки для бекапа — cp -r dir{,.bkp} на выходе сделает нам папку dir.bkp. Или mv di{r,b} переименует папку из dir в dib.
Также не увидел про cd — возврат в предыдущую директорию по истории

Также не увидел про cd — возврат в предыдущую директорию по истории

Съело разметку, так нагляднее:
cd -
(минус в конце важен).
А при здесь Linux, если половина статьи больше про Bash и общие вещи для всех Unix-like?

При использовании find регулярку лучше от баша подальше взять в одинарные кавычки, а то может и раскрыть.

Да эта херня с кавычками бесит вообще. Внезапно раскрываемые кавычки во всяких xargs. Много магии и не очевидной логики. Сколько бороды нужно на свитер пустить, чтобы это начало нравиться — кошмар вообще. Но потом приходит, конечно, понимание и не хочется ничего менять.
А так посоветовал бы новичкам, которые не хотят доламывать мозг окончательно (хотя. может быть и стоило бы) для многих вещей вместо всяких awk, sed и perl юзать pythonpy.

спасибо очень полезный справочник для начинающего
Это можно сделать с помощью утилиты hexdump

Я бы добавил в копилку xdd для бинарного просмотра:
echo 'Привет, мир!' | xxd -b
00000000: 11010000 10011111 11010001 10000000 11010000 10111000  ......
00000006: 11010000 10110010 11010000 10110101 11010001 10000010  ......
0000000c: 00101100 00100000 11010000 10111100 11010000 10111000  , ....
00000012: 11010001 10000000 00100001 00001010                    ..!.
«cd -»
чтобы вернуться обратно в предыдущую диру

А по tail набросал как-то свой скриптик, чтобы читать логи, можно закинуть в ~/.bash_profile
По команде tailf <названия лога> выводит «tailf -f» и подсвечивает красным, желтым и синим, если сообщения имеют ключевое слово error, warn и debug, соответственно. Очень удобно тейлить логи на предмет ошибок и нештатных ситуаций:
tailf() {
        tail -f $1 | sed --unbuffered -e 's/\(.*FATAL.*\)/\o033[1;31m\1\o033[0;39m/' -e 's/\(.*ERROR.*\)/\o033[31m\1\o033[39m/' -e 's/\(.*WARN.*\)/\o033[33m\1\o033[39m/' -e 's/\(.*DEBUG.*\)/\o033[34m\1\o033[39m/' -e 's/\(.*TRACE.*\)/\o033[30m\1\o033[39m/' -e 's/\(.*[Ee]xception.*\)/\o033[1;39m\1\o033[0;39m/'
}

Sign up to leave a comment.

Articles