Комментарии 50
Только, как и ifconfig, netstat уже отмирает. Пора учить ss вместо него )
Ой ой ой ) круто, спасибо. Это была такая ностальгия. Хорошо что современные начинающие люди пишут о таком для себя и для других таких же как он. Я просто лет на 13-15 назад откатился, когда читал такие же подробные маны по основам ) респект; )
Ну не знаю на счет "подробные"…
Мне кажется здесь автор по вершкам пробежался и можно было как-то развернуть пошире для юных и любознательных.
К примеру есть прям очень не очевидные с первого взгляда и очень полезные штуки, вроде tail -F file1.log file2.log
. Эта штука благодаря флагу F не только читает файл непрерывно, но и подхватывает их по новой по указанному имени после переименования и пересоздания (например в связи с ротацией), а ещё смешивает вывод сразу из нескольких перечисленных файлов, что крайне удобно для отладки и чтения логов, когда они в разных файлах, но нужны в одном окне.
Хорошо было бы (раз уж пошли по азам) рассказать про whereis
и про alias
, поскольку эти команды дадут больше понимания в магии баша, чем просто шпаргалка.
Можно было сказать про .bashrc
. Дело в том, что если входить в *nix системы заучивая команды, вся эта архитектура выглядит сложной. А если постараться понять базовые закономерности и внутреннюю логику, то окажется, что архитектура логична самоподобна и элегантна (пока не отрастёт борода и не копнёшь в нее еще глубже, там где кровь, кишки и подводные камни)
Хорошо было бы (раз уж пошли по азам) рассказать
Надеюсь, что вот это Заходим на сервер и bash-им! попадает под азы. Типа этого?
$ man signal > man_signal 2&>1
2&>1? Кровь из глаз :(
Возможности Linux оценил только сейчас, когда начал им активно пользоваться.
Статья безусловно полезная.
info <Enter>
Для тестера-баголова надо знать такие команды как: strace, pmap, lsof.
А поделитесь примерами ситуаций, когда pmap используется при тестировании? По моему опыту, lsof и strace приходится использовать прям нечасто, а pmap вообще не довелось использовать :)
Но есть идея написать статью как раз про чуть более специфичные утилиты и разобрать их использование на примерах, потому что, например, ещё с помощью iptables или tc можно делать интересные вещи.
netstat -lptnu
У нас принято так:
netstat -untap
Для любителей MTG запомнить легко.
Мне кажется… надо ещё команду… Знать на каком "чипсете ходим"
sudo dmidecode | grep -A4 'Base Board Information'
pacman -Qqe
выведет только явно установленные пакеты. Для полного списка нужно убрать -e
.
Для тестирования, пожалуй, лучше использовать инструменты, связанные с тестированием. jmeter, как пример. А команды Linux желательно просто знать.
Для диагностики проблем с кэшем dns используется dig
update.rc-d
top/htop с плюшками
Вывести 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с и подсветка обновлений.
и тд. и тп. бесконечное…
про «великий и ужасный» dd , ни про бесподобную по возможностям для скриптописания nc ( AKA netcat).
Про dd правда была отдельная статья на Хабре, так что автор может вторую посвятить исключительно netcat, ну после прочтения man nc ;-)
С почином, ждем еще статей.
Хотел бы ещё сказать про cp mv и их использование с фигурными скобками к примеру нужно создать быстро копию папки для бекапа — cp -r dir{,.bkp} на выходе сделает нам папку dir.bkp. Или mv di{r,b} переименует папку из dir в dib.
Также не увидел про cd — возврат в предыдущую директорию по истории
При использовании 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 ..!.
Вот статья той же направленности и не хуже.
https://m.habr.com/ru/company/0/blog/323330/
чтобы вернуться обратно в предыдущую диру
А по 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/'
}
Базовые команды Linux для тестировщиков и не только