Открыть список
Как стать автором
Обновить

Комментарии 166

Уж спратяли бы простыню ссылок под кат, то как-то совсем неприлично

Так я вроде специально кат после содержания поставила… Но если плохо, то исправила, спасибо)

Содержание занимало огромное количество места в ленте, про что я собственно и написал

Команда man — должна быть на первом месте
Ну, в целом да =) Хотя как по мне, так проще прогуглить команду, чем мануал читать

Пока играешься — проще. Когда работаешь — куда проще и быстрее man в терминале. Ньюанс, что если всё время только гуглить, то навык работы с man не выработается. Ещё неиспользование man может восприниматься как признак неопытности. Наблюдал даже абсурдный случай, когда на лекции из курса по cyber лектор не смог нагуглить правильный синтакс флагов для одной команды nmap, которую пытался продемонстрировать. Ему даже в голову не пришло поискать в man, а на веб-версию man в поисковой выдаче кликнуть не догадался.

«куда проще и быстрее man в терминале» — не с теми «страницами» которые сейчас идут.

В смысле "не с теми"? Там очень часто есть и что почитать об особенностях работы той или иной команды или утилиты, а для быстрого рефреша по флагам — есть поиск, забиваешь, скажем, "/-D", быстро несколько раз жмёшь "n", и если надо вернуться — "N", читаешь, жмёшь "q", пишешь команду. Если надо несколько раз сверяться — пишешь команду, в отдельном табе терминала или окне мультеплексера бегаешь по man-у. Всё это, включая навигацию по документу, делается очень быстро, если освоить клавиатурные сокращения. Куда быстрее, чем перейти в браузер и гуглить.

Это справедливо если специализация узка, или система не стандартна. В остальных случаях нагуглить какой-нибудь sed гораздо проще и быстрее. К примеру на том же AIX или Solaris я бы почитал man, а вот на стандартных CentOS\Ubuntu — гуглю. Потому что специалистом(человеком знающего и умеющего применять определенный инструментарий) — можно быть только узким, т.к. возможности мозга ограничены, а специалисты по(к примеру) sed нужны редко — я бы выбрал(к примеру) почитать про какой-нибудь nginx.
Это плохой подход. Во первых — ман это актуальная документация по актуальной версии конкретной утилиты. Коэффциент достоверности у мана априори выше чем у статьи из гугла. Во вторых — ман доступен всегда, даже тогда, когда настраивая, например, iptables ты уронил этот самый доступ к интернету, на хосте. В четвёрых — это тупо быстрее. В пятых — навык пользования встроенной документацией и поиска в ней(man / info / apropos), это +50 к скиллам пользования системой. В гугль хорошо ходить когда плохо понимаешь логику какого-нить относительно сложного приложения, на начальном этапе использования или настройки. Яркие примеры — классическая тройка grep / sed / awk.
Спасибо, вы оба правы, это безусловно)) И я тоже за выработку навыка. Но пока его нет и ты новичок, то все равно потянет в гугл, согласитесь )) Может, вы просто давно прошли этот этап и не помните его) Но да, знать про man надо, уметь его использовать — тоже! Немного подправила в статье раздел про мануал
Так не люблю я категоричные утверждения, можно же было написать это с менее авторитарным призывом. У каждого свои потребности, кто-то используя систему вполне обходится и без манов. Представляете если я бы написал: «Читать маны — это плохой подход, нужно смотреть исходный код программ, т.к., там можно увидеть реальное поведение программы в отличие от манов.» Вполне возможно я даже не утрирую и кто-то такого мнения придерживается. Просто читая комменты на хабре устал от фраз «должен, обязан, надо делать так». Хочется сразу спросить кому я должен и кому надо.

Можно ещё флаги -h, --help использовать, так как у некоторых программ может не быть man'а

Хорошее замечание, спасибо) Добавила в статью

Также --usage, иногда субкомманда help/help topics и т. п. Сообщение об ошибке при неправильном запуске часто подсказывает. Есть некоторое количество утилит которые идут без мана и инфо вообще.


Ну и варианты установки системы без man/man-db/man-pages тоже встречаются, особенно при автоматизированной установке, в контейнерах и т. п.

Добавила команду в список, хоть и не на первое место)

Стоит добавить, что закрыть man можно клавишей q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.

Спасибо, добавила!
Уж лучше про less рассказать. Его man использует по умолчанию.
1. Для vi(m)'a надо ещё указать, как сохранить данные после редактирования.
2. Fio в пакетах более свежая версия, чем предлагаемая ссылка на исходники.
3. Надо уточнять, на какой системе применима данная команда, если она может быть использована только на debian based или red hat based системе.

Но в общем — для новичков сойдёт.
1. Я специально это не писала, потому что тогда стоило бы рассказать о том, как вообще редактировать в виме. С другой стороны, если подправил что-то легкое, полезное сразу знать, как сохранить. Спасибо, добавила

2. Да, я ведь брала этот пример из своей статьи 2017 года)) Исправила и подписала, какую часть менять, а то вы правы, в таких инструкциях обычно копируют команду и ее же подставляют, если не сказано иное

3. Ох, это уже сложнее )) Добавила в начало статьи «примеры я все проверяла на cent os, red hat based системе)», пока не готова проверить на дебиан / прогуглить, какие там работать не будут))

Спасибо за комметарий!
>Чтобы сервис test запускался автоматически при рестарте системы, используйте команду: chkconfig cdi on

Как команда «chkconfig cdi on» связывается с сервисом «test»?
особенно учитывая, что уже давно везде systemd

Ну я не был бы так категоричен… Вариант с systemd/journald приятен, но реальность такова что ещё куча народу использует всякие развлечения типа upstart+rc.d/init.d и связки journald+rsyslog/syslog-ng. Тот же CentOS/RHEL 6 ещё поддерживается до конца этого года. Не помню что там у Debian и Ubuntu, но первый тоже долгоживущий.

Опечатка, конечно же) Спасибо, исправила!
А кто автор этих упоротых иллюстраций?
Тот же, что и статьи. Здравствуй, кэп, если картинки не из интернета, то их явно придумывал тот, кто писал статью)
ЗачОтные упоротые иллюстрации! ;-)
Картинки супер! Тян с большими глазами уже стала моим любимым персонажем. :)
А есть варианты с rule 34?
Чтобы запустить скрипт, нужно указать полный путь к нему. Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден.

В текущей папке можно запустить скрипт через ./имя_скрипта.

Когда скрипт только создан, ему еще надо дать право на запуск:
chmod +x script.sh
./script.sh

Не обязательно давать права на выполнение, можно и так
$ bash ./script.sh

Можно даже


$ bash script.sh
Спасибо, интересно) Пока подумаю, добавлять ли этот лайфхак в статью, а то может лучше сразу приучаться полный путь писать)

однозначно стоит, никто не запускает скрипты по полному пути, особенно если это делается не вручную, а из другого скрипта.

Уговорили, добавила)
Запускают… из crontab

Статья от дилетанта для дилетантов. Это плохо на самом деле, так как даётся очень много вредных советов. Начиная от того, что под рутом работать, это нормально, заказчивая мелочами всякими, типа чтоб поиграться с linux, надо vds. Хотя сейчас достаточно wsl под windows 10.

Плюсую насчет WSL для Win10. Настраивается быстро и работать удобно (более подробно в видео youtube канала Fireship, находится по запросу «WSL», там как раз для новичков)
Да, вы правы. По сравнению с разработчиками-линуксоидами, которые и ядро сами собирают, и в консоли все делают, я явный новичок. Но не считаю, что «от новичка новичку» плохая статья. Потому что я как раз могу дать список команд, которые пригодятся «на моем уровне».

Каждую команду в статье я проверила в консоли + нагуглила, так что неправду не писала. Да, в рамках моих задач работать под рутом это нормально. Хотя не спорю, что это может быть опасно. За «WSL» спасибо )
Работать под рутом ненормально даже для администраторов. Именно поэтому хорошей практикой является визуальное оформление шелла / утилит запущеных с рут правами, что-бы визуально сразу отличать опасную зону от безопасной.
Пример — консольный файловый менеджер vifm запущеный из под обычного пользователя и из под рута через sudo:
vifm
Оставлю инструкцию для совсем новичков.
1) Гуглим как ставить mc (midnignt commander) на вашу версию линукса
2) Все
Ага, а если вы приехали к заказчику и у вас нет прав ставить сторонние приложения?
Если за это получаешь деньги, то какой после этого ты новичок? :)

mc почему-то мне так и не зашёл. ranger вызвал вау-эффект, но к нему долго привыкать, чтобы быстро работать. А вот без screen уже не могу, хотя это из другой оперы.

Да, из другой. А ещё, из файловых менеджеров, есть двухпанельник vifm, с конфигом и кейбиндингами подобными vim. Вот он мне очень зашёл.
База, которая всегда нужна <...> touch

Зачем? Нет, серьезно, зачем? Штука полезная в весьма ограниченном спектре применения. А для тестировщика скорее вредная, ведь ему важно понимать как давно менялось сожержимое лога или конфига.
Если так нужно создать новый файл — делайте это тем же vi(m)'ом. Так, даже если окажется что файл уже существовал вы сможете просто закрыть редактор без изменений и не собьете таймстемп.
Потому что иногда система смотрит в какую-то папку и ждет там файл, пусть даже пустой. Чем плохо создать его через touch? По-моему, через viw как раз более извращенный вариант)
Я честно очень не хочу спорить на тему того, каким образом лучше создавать пустой файл. Просто замечу, что это как и есть тот самый «весьма ограниченный спектр применения» тулы, про который я писал.
На «база, которая всегда нужна» — это никак не тянет. Есть туча комманд нужнее, которые автор оставил «на самостоятельное изучение».
Ещё можно:
echo -n > filename.txt

Нужно разделять семантику команды. Когда нужно просто убедиться что файл будет — touch подойдёт. Когда нужно убедиться что файл будет и он будет пустой — лучше через редактор или через echo.
О, крутой лайфхак, спасибо)
Совершенно бесполезное вступление…
>filename.txt
А потом надо будет как минимум нажать Enter (если хотите получить такой-же эффект как echo -n) и Ctrl-C.
линукс терминал по умолчанию использует буферизованный ввод, поэтому ни одна строка не обходится без Enter. Если рискнете повторить приведенный пример то поймете бессмысленность нажатия Ctrl-C по которому у вас закроется сам терминал. Может есть элемент недопонимания? Я привела команду равносильную предыдущей но короче — выполняющую те же действия состоящую из значка перенаправления и имени файла. Результатом которой является или создание файла или его усечения до нуля.
Можно несколько усложнить и поставить впереди пустую команду
: > filename.txt

но смысла в лишних двух символах особого нет
В том-то и дело, что я повторил этот пример. И да. Ctrl-C не закрывает терминал, а сохраняет то что ввели(или не ввели) в файл.
Может вы пользуетесь специфичной оболочкой? Если все же bash то вот описание
LESS=+/Redirecting\ Output man bash

Redirecting Output
Redirection of output causes the file whose name results from the expansion of word to be opened for writing on file
descriptor n, or the standard output (file descriptor 1) if n is not specified. If the file does not exist it is created;
if it does exist it is truncated to zero size.
The general format for redirecting output is:
[n]>word

В любом случае, спасибо, буду знать что такое как у вас вообще возможно.
Пока пытаюсь найти подобное в интернете, но не получается, не могли бы вы поделиться выводом этих команд для большей ясности
echo $SHELL $TERM
lsof -ap $$ -d 0-2

В bash поведение, как вы описали — не надо нажимать Ctrl+C, сразу создается файл. В zsh ведет, как описывает Oxyd — принимает стандартный ввод и ждет Ctrl+C.

Интересно, это башизм или по POSIX так и должно реагировать?
Ну zsh сложно назвать специфической оболочкой. Чай не fish хипстерский. ;-)
echo $SHELL $TERM
/usr/bin/zsh 
rxvt-unicode-256color

lsof -ap $$ -d 0-2
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
zsh     4148446 oxyd    0u   CHR  136,3      0t0    6 /dev/pts/3
zsh     4148446 oxyd    1u   CHR  136,3      0t0    6 /dev/pts/3
zsh     4148446 oxyd    2u   CHR  136,3      0t0    6 /dev/pts/3
Всегда есть разные варианты. То что можно перенаравлять вывод без команды — я бы в отдельный лайфхак вынес.

К слову про разные варианты, тут ещё есть вопрос читабельности. Вспоминаем знаменитое:
echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Можно обойтись без тяжелой артиллерии, команда tr хорошо понимает диапазоны
tr ' !-0:-@^-`~' '`-{' <<<'(!";'

Меня глючит, или в данном примере вы привели обфусцированный перлом Патч Бармина™? ;-)

Осталось понадеяться что в нем есть опечатка и толпа хомячков не побежала пробовать его запустить в консоли..

Кхм… Стесняюсь спросить — а зачем ключ -R в команде chown -R testbase:testbase test.txt?
Учитывая что ключ -R нужен точно так же для рекурсивной смены владельца то его использование оправдано если ты применяешь это на папку, да и то не обязательно, условия бывают разные.
Я б ещё команду free и free -h добавил для понимания, что там по оперативе и свопу.
lsblk — для просмотра дисков, точек монтирования
Для df ещё б ключик -T указал бы, что бы можно было посмотреть тип фс.
Для du --max-depth= не хватает, что тоже может быть полезным
Хм, да, вы правы, в этой команде не нужен ключик. Но зато это делает команду универсальной. Навредить не навредит, зато не надо запоминать, «как для файла, как для папки». Но исправила)

Про free хорошее замечание, спасибо, может попозже добавлю. Или направлю комментарии людей читать, тут много полезного))

"навредить не навредит..." !?
А вы попробуйте применить этот ключ для /var/www на веб сервере, где у каждого сайта свой пользователь.

Хм, вы правы, спасибо)
Я похожим образом сломал во всей системе права доступа. Система грузилась, работала, но sudo не пускал — неправильный владелец у файла…

В итоге переставил систему.
В итоге переставил систему.

на самом деле надо зайти в single режиме под рутом и поменять всё назад
Поменять всё назад — очень легко звучит. Я кажется там не только владельца, но и права доступа пофигачил (я кстати так и не понял как это случилось, вероятно сделал что-то в духе «chown -R / home/username/folder», т.е. подозреваю лишний пробел — что кстати тоже известная ситуация). Система была практически чистая — проще было переставить, чем разбираться детально. Реанимировать разумеется была возможность, даже если бы сломался сингл — можно было загрузиться с live-образа и починить оттуда. Затраты по времени на переустановку для меня показались меньшими, чем изучение всех аспектов вопроса.
Изучение вопроса в любом случае полезнее чем Windows way(переустановка).
Длинная простыня одной картинкой
image
Прикольная, спасибо)
Интересно, почему и у автора, и в этой картинке, и во многих статьях ls указывается без флага h?
-h, --human-readable
     with -l and -s, print sizes like 1K 234M 2G etc.

Я вы вообще рекомендовал сделать алиас типа такого:
alias l='ls -alh'
Раз уж я затронул тему редактирования .bashrc, я также рекомендую новичкам воспользоваться чем-то типа этого:
github.com/mrzool/bash-sensible

Я последнее время предпочитаю вообще в алиасы l/ls/la/ll себе exa прописывать

Почему-то сразу подумал, что это проект на rust. Есть у растовиков какая-то любовь к переписыванию coreutils.
А в чём преимущество помимо --tree?
В цвета ls тоже умеет. Если что есть github.com/trapd00r/LS_COLORS

Да у меня и для ls нормальные цвета были. Из важных для меня вещей — нормальные сортировки, отображение git'овых данных и нормальные операции по отображению древовидной структуры. Хотя я ещё параллельно dutree и broot (оба проекта тоже на расте) использую

За broot спасибо. Идея интересная, совместить бы как-нибудь с идеей ranger или хотябы добавить превью для файлов. Ну и man'a не хватает.

Встроенный help по ? не спасает?

Спасает, но не привык я как-то к такому.
Не юниксвейно какбы. Автор зачем-то запилил свой pager для справки с красивым скролбаром(хотя мышокй у меня не тащится), но без банального поиска по тексту. man-страница была бы лучше.
Лично на мой взгляд, для полноты, неплохо было бы ещё показать, как можно посмотреть, все ли драйвера установлены, например, как в диспетчере задач windows.
Возможно) Просто я сама этого никогда не делала, такой задачи не стояло. А статья ведь всегда по умолчанию ИМХО, в моем ИМХО в обязательном списке этой команды нет))
спасибо большое за дельные советы.
Завтра же расшарю их своим новеньким, чтобы обучались.
Спасибо за фидбек! :)
Спасибо за фидбек))

Спасибо за статью, как новичку очень пригодится. В таком стиле, но с большим количеством примеров есть книга Скотт Граннеман — Linux. Необходимый код и команды. Карманный справочник

Да! Да! Мне тоже Граннеман зашел, поэтому он есть в разделе книг :))
sudo shutdown -h 23:15 (выключить компьютер)
sudo shutdown -c 23:15 (отменить выключение компьютера)
sudo reboot (рестарт)
sudo fdisk -l (список хардов)
sudo mount -t ntfs /dev/sdb1 /media (sdb1-название харда)
mount (монтировать «/откуда /куда»)
ifconfig (Узнать ip адрес)
ping 94.142.141.199 -t -l 32100 (трассировка пакетов)

nano /etc/sysctl.conf (настройки swap)
sudo gedit /etc/hosts (файл хост)

sudo -i (стать root)
passwd (имя пользователя) (задать пароль)
Спасибо, хорошие команды)
ifconfig (Узнать ip адрес)

лучше ip a


а посмотреть настройки вайфая — iwconfig

Почему лучше?

меньше лишней информации — это удобнее, когда нужно только айпишник посмотреть.
ifconfig может и три экрана текста выдать на некоторых машинах

Потому, что net-tools уже по умолчанию уже не суют много куда. По этому поводу была целая статья тут habr.com/ru/post/320278
О, это вообще отличные команды! Спасибо большое, я совсем забыла про IP, хотя сама часто использую тот же ipconfig в винде. Добавила в статью, только hostname, он посимпатичнее будет)) Но и про ifconfig написала.

А про вайфай пусть в комментариях читают, потому что мне кажется, это только если админ запросит инфу, но он тогда и команду подскажет
fdisk для информационных команд лучше не использовать — он требует рутовых прав и этого лучше избежать, тем более по*ерить таблицу разделов, случайно введя не тот ключ, не самое приятное развлечение. Куда лучше использовать lsblk.
ifconfig в современных системах заменила утилита ip (ip addr аналог ifconfig без ключей), с куда более богатыми возможностями.
НЛО прилетело и опубликовало эту надпись здесь
Хм, ну вы же не новичок, откуда вы знаете, будут ли у него вопросы?) А ссылки я дала по каждой команде, где еще почитать) Я делала не по книге, скорее по тому, что лично мне пригождалось чаще всего
НЛО прилетело и опубликовало эту надпись здесь
Интересно)) Для меня ls -l выглядит намного понятнее простого ls =)

ls -lh будет еще понятнее, потому что размер файлов выдает в "человекочитаемом" виде

Всё относительно. Без -h я ещё могу жить, можно привыкнуть быстро оценивать размеры и в байтах. А вот без обратной сортировки по времени часто жить довольно трудно, особенно когда надо быстро найти имя последних изменившихся логов в большом списке — спасает


ls -altr

Набираю уже рефлексивно даже когда не надо.

Попробуйте применить к файлам утилиту stat. Она покажет права сразу в восьмеричном виде. Например так:
stat -c"%#a/%A %n" *
Показывает и в восьмеричном и в в human readable виде. А вообще права на файлы в восьмеричном виде запоминаются просто — r/w/x == 4/2/1. ;-) Дальше остаётся только сложить цифры и получить нужную комбинацию прав для определённой категории (владелец/группа/все остальные). Например мы хотим для файла следующие права: rwx для владельца, rw для группы, r для всех остальных, в результате: rwx == 4+2+1 == 7, rw == 4+2 == 6, r == 4. Результирующие права будут 764.
Man, man, man
Вот именно эта команда должна быть на первом месте.
Бывают такие места, где и мобильной связи нет от слова совсем.
Да, я ее уже добавила, но на первое место не хочу, извините)
Справка по встроенным командам:
help enable
ну… позанудствую
Linux — это операционная система. Как винда (windows), только более защищенная.

линукс это ядро, а не ОС
и исходя из этого
А еще линукс бесплатный

есть коммерческие дистрибутивы, типа RHEL, которые требуют платную подписку

В винде легко подхватить вирус, в линуксе это практически невозможно.

это не потому что «линукс более защищенный чем винда»… в линуксе тоже были эпичные дырки… типа получения рута через открытый в vim текстовый файл… но если продолжать тему то опять в холивар скатимся…

Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:chkconfig test on

вот допустим я почитал статью и захотел линукс, взял убунту свежую и пишу вашу команду и…
chkconfig: command not found
и что делать?

Если же приложение запускается как сервис, то все еще проще:

вот я пришел с винды… первый вопрос, а моё приложение может запускаться как сервиc? могу я запустить mc как сервис?
===
мануал какбы для новичков… но почемуто подразумевается что я много уже чего знаю специфического…
Спасибо, вы правы! Про платные дистрибутивы я хотела написать, но… Слушайте, о них люди и так узнают) А любят линукс в том числе за бесплатность.

В холивар про защищенность мы точно не скатимся, потому что в этой сфере я совсем профан. Скорее, положусь на ваше мнение. Это скорее упрощенно для новичка, чем отличаются две системы )

А про chkconfig я уже добавила в начало статьи, что свои примеры тестировала на centos =) А на тему «что делать» — переходить по ссылке из «см также», или читать man, или гуглить.

«вот я пришел с винды… первый вопрос, а моё приложение может запускаться как сервиc? могу я запустить mc как сервис?» — хм, что-то я сомневаюсь, что у новичка возникнет такой вопрос. Как запустить mc написано, зачем его запускать как сервис то?

Если у вас есть приложение, которое должно запускаться как сервис, вы обычно об этом знаете)) Вот вы тестируете приложение, знаете, что оно запущено как сервис. Это напоминался, как в таком случае остановить / запустить.

Не поняла, что конкретно специфического должен знать новичок, чтобы у него получилось выполнить команды из статьи? Ну ок, запуск сервиса уже посложнее, тут надо сервис иметь. Все остальные команды замечательно будут работать (по крайней мере на red hat based системе)
или читать man, или гуглить.

сложно понять как читать man на неизвестно что :) остается только гуглить

зачем его запускать как сервис то?

потому что написано что «а если приложение умеет то..»… вот у меня вопрос, а какое приложение умеет? может mc умеет?

Как запустить mc написано, зачем его запускать как сервис то?

а вдруг я хочу в каждом окошке с терминалом нажать ctrl+o и получить запущенный mc? (понятно что это не так делается… но допустим я совсем не понимаю)

Не поняла, что конкретно специфического должен знать новичок

например чтобы запускать программы, надо чтобы у них были execute права, что после винды очень нетривиально… в винде скачал exe и запустил сразу… а в линуксе… ничего не произойдёт… и опять надо чтото сразу гуглить
Но ведь это уже не совсем про команды, «надо знать / ставить execute права», хотя… в целом да, можно добавить в раздел создания файла, подумаю, спасибо)
Вам показать execute права в винде, или сами найдете в разделе «Свойства->Безопасность» у любого файла?
Для определённых расширений файлов(bat, exe, cmd как минимум), права на исполнение, в windows, выдаются автоматически. В линукс такого нет, хотя-бы потому что в линукс нет такого понятия как расширение файла.
>выдаются автоматически
Вас же не затруднит привести ссылочку на документацию, где такое написано?
Не в бесплатности дело. Люди охотно платят за саппорт и просто донатят.
spi-inc.org/corporate/annual-reports/2018.pdf
Вот например отчёт за 2018 год. Тот же Debian собрал больше 300 000$ пожертвований (что конечно пшик, да).
Это один из плюсов, что я слышу от линуксоидов, поэтому я внесла его в статью)
Все остальные команды замечательно будут работать (по крайней мере на red hat based системе)

Чё, правда о_О


[root@xxxxx ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

[root@xxxxx ~]# cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core)
Понятие «свободный» и «бесплатный» хоть и идут за частую вместе но являют собой разные вещи.
RHEL предлагает к дистрибутиву свой сервис — поддержку и только эта работа стоит денег. Все исходники этого дистрибутива выложены для всеобщего доступа и являются свободными ну и бесплатными если вдруг кому то не придет в голову их продавать — что совершенно не воспрещается -:)

Не все, iirc. Базовая система — да, а вещи для HA, вроде, не все открытые были.

Согласна, из отдельного крана вполне может идти водка но только не вместе с пивом -:)
А уж решение сделать ерша всегда остается на стороне клиента
В холивар про защищенность мы точно не скатимся, потому что в этой сфере я совсем профан

Зачем же тогда делать такой бредовый вброс?
В винде легко подхватить вирус, в линуксе это практически невозможно

Обобщу. Зачем читать статью, где автор делает утверждения, в которых ничего не понимает? Далее не читал.
Этот «бредовый вброс» — это как раз мнение виндузятников о линуксе, и не только моё.
При чем тут описание базовых команд, непонятно, но это ваше право — дальше не читать )) Но тогда можно совсем не читать, увидеть название статьи и понять, что вы это и так знаете
Не холивара ради. Если тут есть джедаи вима, не могли бы сказать, что конкретно дает его превосходное знание, кроме обостренного чувства прекрасного?
Сложно сказать, на самом деле. Я когда-то начинал с Emacs с его пальцеломающими комбинациями, потом перелез на vim, ибо вводить тектосвые команды мне как-то проще.

«Странность» обоих редакторов объясняется тем, что им уже очень много лет. Они были созданы в те далёкие времена, когда компьютеры были большими и медленными, а понятий «наиболее распространённая ОС» или «стандартная клавиатура» не существовало. В Linux их полюбили за то, что они а) абсолютно свободные, в противовес большинству современных редакторов; б) по современным меркам потребляют просто крохи ресурсов, по этой же причине они из коробки доступны в большинстве дистрибутивов. Как следствие, vim есть просто везде, на абсолютно любой машине с линуксом.

Огромная база плагинов позволяет нарастить функциональность до полноценной IDE, что вкупе с, опять же, «изкоробочными» компилятором Си и интерпретатором bash позволяет сразу, почти без каких-то настроек и установок просто начать работать: создавать, поднимать, настраивать.

Утрированно говоря, вам дали комп с Windows и сказали что-то поднять или настроить: нужно скачать текстовый редактор, потому что блокнот ни черта не умеет, нужно скачать файловый менеджер, потому что проводник ни черта не умеет, и прочее. Вам дали комп с Linux и сказали что-то поднять или настроить: вы запустили vim и погнали. В нём есть всё.

Другой момент, а нужно ли это умение именно вам как конкретному специалисту? Это знаете только вы. Лично я так настоящим «гуру» и не стал, ибо, являясь java-разработчиком, сложным администрированием Linux я не занимаюсь, для правки конфигов мне достаточно nano. Vim просто навевает ностальгию по юности.
А про главное преимущество и причину создания vim-like плагинов к различным IDE вы не рассказали. Я про режимы.
Вообще на тему преимуществ/недостатков вима написано(в том числе на хабре) уже достаточно.
Мне всегда казалось, что эти плагины создавались в первую очередь для динозавров, которые оказались в современном мире, где балом правят Sublime Text, Visual Studio и intellij IDEA. Потому что ну для чего ещё нужны режимы, когда у нас есть мышка и куча пунктов меню?
Для чего нужно неудобное переключение на мышку(которая ещё и к тунельному синдрому приводит), когда есть эргономичная клавиатура и навык слепой печати?
Эти плагины(а нынче зачастую и функция из коробки) именно ради избавления от мышки используются.

То-то ideavim такой популярный среди тридцатилетних динозавров.


Ставить sublime в один ряд с notebook++ я бы понял, но ему даже до atom/vscode далеко, не говоря уже о idea/vs/eclipse.

Как следствие, vim есть просто везде, на абсолютно любой машине с линуксом.

Нет. Часто есть vi, а это не то же самое.


Огромная база плагинов позволяет нарастить функциональность до полноценной IDE, что вкупе с, опять же, «изкоробочными» компилятором Си и интерпретатором bash позволяет сразу, почти без каких-то настроек и установок просто начать работать: создавать, поднимать, настраивать.Огромная база плагинов позволяет нарастить функциональность до полноценной IDE, что вкупе с, опять же, «изкоробочными» компилятором Си и интерпретатором bash позволяет сразу, почти без каких-то настроек и установок просто начать работать: создавать, поднимать, настраивать.

Тоже не совсем правда. От vim/emacs с плагинами до IDE уровня IDEA довольно далеко. Хотя NetBeans, ARM Studio и т. п. побить не сложно. Ну и нормальной IDE побить Emacs для CL будет нереально, как и в случае со SmallTalk. Ситуация с использованием vim/emacs/atom/vscode в качестве IDE несколько улучшилась за счёт lang server'ов (rls/racer, clangd etc).


У vim есть важный бонус, когда всё плохо с сетью: в нём реально работать даже когда rtt вырастает до сотен миллисекунд. С nano такого счастья не будет.

Благорарю за развернутый ответ.

Я, конечно, не джедай, но лично мне Vim нравится из-за продвинутых возможностей работы с текстом (nano не то что рядом не стоял, а на расстоянии многих световых лет), режимов ввода, возможности использовать регексы в записи макро, и навигации, заточенной под десятипальцевый набор текста.

В принципе нормально для совсем чего-то базового.
Некоторые вещи однозначно устарели… в rhel/fedora/centos уже dnf, а не yum да и забыли про rpm. service уже немного depricated учитывая, что почти везде systemd. Стоит вероятно systemctl stop blabla.service и так далее. Вообще достаточно базовые вещи… но я думаю стоит написать побольше, там w, ip, ss, cat, awk, grep, tail, find, screen, как работают <> <<>> |, что такое stdin, stdout, stderr. Если про убунту — упомянуть нетплан. Если про mc — то базовые шоткаты, упомянуть про .netrc, хотлисты, быстрые переходы, сортировку, сохранение энкодинга.
Спасибо, хороший комментарий)
Но писать про awk, grep и прочая — это скорее на каждую такую команду нужна отдельная статья, больно они сложные. Разве что в этой статье ссылки дать типа как «вот эти еще супер полезные» )) А про то, как работают стрелочки, есть ссылка на статью в разделе «И это все?» :)

Ну как сказать "забыли про rpm", он всё равно внизу живёт и иногда нужен и/или полезен. Начиная от rpm -qa и rpm -ql. Ну и в современном CentOS/RHEL 8 yum как команда доступен, хоть и является симлинком на dnf-3

Сейчас проверил и выяснил, что команду из вашего примера
mkdir -p olga/dir--{00{1..9},0{10..99},100}

можно заменить на
mkdir -p olga/dir--{000..100}

Результат будет такой же, а команда выглядит короче, проще и понятнее.
Т.е. достаточно просто явно указать один раз диапазон и заполняющие нули (возьму на вооружение).
Любопытно, спасибо! Хотя подозрительно, в регулярках, например, такое работать не будет, а тут работает, ишь ты) Чуть позже исправлю в статье, спасибо)
Это не регулярка, выполните в терминале
LESS=+/"Brace Expansion" man bash
Привет, спасибо за статью, полезно для закладок.
Может кто подсказать, как изменить последовательность загрузки сервисов при автозагрузке, чтобы, грубо говоря, nginx стартовал гарантированно после загрузки unbound?
если используется systemd, то можно поправить юнит и добавить директиву After. man systemd.unit
Допустим после mysql
[Unit]
After=mysql.service
.target на самом деле, это просто группа сервисов сгруппированная по какому-нибудь принципу. Так что в зависимостях никто не мешает использовать конкретные сервисы, а не их группы.
Спасибо большое всем ответившим)

Причём лучше не редактировать /usr/lib/systemd/system/nginx.service, а сделать override в /etc/systemd/system/nginx.service.d/something.conf

НЛО прилетело и опубликовало эту надпись здесь
В винде легко подхватить вирус, в линуксе это практически невозможно.

Серьезно?
Ага. Вот прямо сейчас миллионы роутеров под OpenWRT (читаем — под linux) уязвимы, имеется сравнительно свеженький (первоапрельский) CVE, по-простому — баг в пакетном менеджере. И такая ситуация повторяется с завидной периодичностью. А тут автор еще и работает под рутом. Да еще и пароль у этого рута для ssh небось есть, остается только в интернет голым выставить… без файрвола.

Да даже с файерволом но без fail2ban..

Я слышала, что учат английский по комиксам…
Вижу спецификация к вашей статье разрастается как у Бьерна Страуструпа, от сюда просьба
не могли бы вы добавить картинку Торвальдса в плаще с вытянутой вверх рукой в начало статьи?
Здорово! Спасибо за необычную подачу.
Спасибо) Я обычно ставлю картинки в начало статьи, но тут из-за картинки дольше листать до содержания, а смысл статьи как раз в том, чтобы быстро его увидеть и тык-тык куда надо)
Это вам спасибо. Такой подачи я еще не встречала. Мой комментарий был немного с иронией, а смысл заключался в том чтобы добавлять, изменять, улучшать, в данном случае ваш топик, необходимо хорошо проверять советы и предложения. Бородатые специалисты придерживаются даже такого правила — чтобы добавить в готовый продукт что то новое и доказавшее свою необходимость, то следует удалить менее значимое чтобы поддержать материал в актуально простом состоянии. Как выход из «переосложнения», отложите накапливающийся материал для следующей статьи. Буду с нетерпением ее ждать
Да, это очень хорошее правило) Поэтому я вношу лишь минорные правки в статью)) Следующей статьи именно по линуксу не будет, я ведь в нем новичок, базу дала, дальше книги / практика. Статьи будут по другим тематикам :)
Извините, но больше похоже на «Некоторые слова, которые, если их ввести в черное окно, могут оказаться командами Linux».
Новичку надо не гонять по папкам и ставить софт, а сначала осмотреться. То есть, самое первое нужны команды поиска, сортировки, чтения и конвейеры. ls, cat, find, grep, less, more, tail, head, ps и прочие. И к каждой команде надо поиск и сортировку. То есть, ls обязательно с сортировкой по имени, дате, и с grep. Магия «что угодно» | grep «что надо» должна привлечь новичка и наглядно показать почему так удобнее и быстрее-то. На этом этапе можно перенаправление ввода/вывода, а можно сразу поиск внутри текста с vi и без vi.
Потом надо бы составить представление о компуктере (проц, матерная плата, память, диски, контроллеры, сетевые карты), посмотреть список служб и заданий, посмотреть чего куда смонтировано, кто заходит в систему и кто сейчас подключен и т.д. То есть, всякие lsblk, lscpu, free, dmesdg, mount, fstab, crontab и конечно systemctl
Потом файловые ссылки, базовые навыки network manager и ip — и можно уже что-то создавать полезное. Файлы куда-то копировать, коммандеры ставить и пакетные менеджеры осваивать
Вы правда считаете, что не зная простейших команд типа mkdip, cd, cp, новичок должен сразу разбираться в грепе?) Нет уж, не согласна)
Именно так и работает обучение. Вы показываете что-то классное и интересное. А кому интересно ставить права на файлы, не зная что это за права, что за пароли, кто все эти люди? Или создание папки и пустого файла? (Кстати, у вас в примере с touch — сам touch не нужен, если вы не знаете перенаправление ввода. Любой редактор типа vi, nano и т.д. сам создает отсутствующий файл)

Спасибо! Я новичок, по сути.

И вам спасибо за фидбек)
Про установщики:
их — океан! На любвлнй вкус, цвет, запах.
обёртки, оболочки обёрток…
расказали про компиляцию рара, изабыли про ауру (AUR).
И вообще, так как вы расписали, устанавливать можно только в самом последнем случае:
не факт что все пакеты необходимые для компиляции существуют в системе (частая проблема).
ручная установка убивает автоматическое разруливание зависимостей в системе.

На текущий момент, в системах с пакетным менеджером, правильно скомпилировать исходный код в установочный пакет, и потом полученный пакет установить через пакетный менеджер.

У вас в разделе как создать архив команда:
tar -cvf archive.tar.gz /home/test
фактически создает несжатый архив archive.tar
Ей не хватает ключика z для собственно сжатия.
tar czvf archive.tar.gz /home/test

Спасибо, добавила)
Так не работает
Для создания архива стандартная комбинация cvfz:
tar -cvfz archive.tar.gz /home/test

ключ f должен быть последним, как в комментарии выше czvf, или cvzf. Поправьте пожалуйста
Исправила, спасибо!
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.