Linux сложен в освоении — пока вы не поймете эти 7 вещей
Это перевод оригинальной статьи Linux Is Hard — Until You Understand These 7 Things.
Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.
Ошибки новичков, о которых редко предупреждают.
Мне казалось, что Linux меня наказывает
Когда Linux впервые выдал сообщение «Доступ запрещен», я воспринял это лично.
Я правильно ввел команду.
Я следовал руководству слово в слово.
И всё равно Linux отказался сотрудничать.
Я смотрел на терминал, будучи уверенным, что Linux создан, чтобы запутывать новичков.
В тот вечер я почти удалил систему и вернулся на Windows.
Linux не мешал мне. Linux учил меня правилу, которому я никогда не учился.
Часть 1: Права доступа. Первое препятствие, с которым сталкивается каждый новичок.
Я пытался запустить скрипт оболочки.
./backup.sh
bash: ./backup.sh: Permission denied
Я попробовал снова.
Результат тот же.
Я добавил sudo, не понимая зачем.
sudo ./backup.sh
Это сработало, но я чувствовал себя неловко. Словно я сжульничал.
Именно тогда один из старших инженеров задал мне один вопрос:
«Ты знаешь, кто владеет этим файлом?»
День, когда права доступа наконец обрели смысл.
В Linux каждый файл отвечает на три вопроса:
ls -l backup.sh
-rw-r--r-- 1 pawan pawan 2456 backup.sh
Эта строка выглядела пугающе, но она была честной.
Linux не был злым.
Linux был точным.
Поэтому я сделал то, чего ожидал Linux:
chmod +x backup.sh
./backup.sh
Тот момент научил меня важному:
Linux не угадывает твои намерения. Он следует правилам.
Часть 2: Файловая система — почему Linux сначала кажется «потерянным»
Когда я установил свой первый сервис, я задал себе глупый вопрос:
Нет диска C:.
Нет окна установщика.
Нет ярлыка.
Затем я узнал, что Linux не скрывает файлы — он их классифицирует.
/etc
/var/log
Данные пользователя хранятся в:
/home
Исполняемые файлы находятся в:
/bin /usr/bin
Как только я перестал искать информацию наугад и начал мыслить структурно, Linux перестал казаться мне хаотичным.
Дело было не в отсутствующих файлах.
Мне не хватало карты.
Часть 3: Процессы — невидимая толпа внутри системы
Моя система работала медленно.
Я перезагрузил систему.
Ничего не изменилось.
top
Внезапно Linux перестал быть тихим.
ps aux | grep java
Linux не был медленным. Медленным был один некорректно работающий процесс.
Тогда я понял, Linux даёт вам видимость, а не оправдания.
Часть 4: Сервисы — причина, по которой «Вчера всё работало»
Однажды утром мой веб-сервер не запустился.
Никакого всплывающего окна.
Никакого предупреждения.
Вместо того чтобы переустанавливать всё (моя старая привычка), я выполнил следующую команду:
systemctl status nginx
Ответ был прямо перед глазами — отсутствовал конфигурационный файл.
Я исправил.
Перезапустил сервис:
systemctl restart nginx
Linux не подвёл.
Я просто не задал правильный вопрос.
Часть 5: Логи — Linux всегда всё объясняет
Месяцами я считал, что Linux «никогда не сообщает о проблемах».
Это было моим самым большим заблуждением.
Linux предоставляет всю необходимую информацию — в логах.
Когда что-то ломалось, я научился проверять:
journalctl -xe
tail -f /var/log/syslog
У каждого сбоя была своя история.
Каждая ошибка оставляла за собой след.
Linux не выдает ошибок.
Он их записывает.
Часть 6: Сеть — «У меня на машине работает»
Сервис был запущен.
Порт был открыт.
Тем не менее, соединения не было.
Я научился проверять элементарные вещи:
ip a
ss -tuln
ping google.com
firewall-cmd --list-all
Сеть перестала быть магией, когда я начал воспринимать её как логику.
Часть 7: Ментальный сдвиг, который изменил всё
Он не предполагает.
Он не гадает.
Он не защищает от плохих решений.
Как только я перестал бороться с Linux и начал его понимать, всё изменилось.
Я не стал умнее.
Я стал более осознанным.
Почему я пишу эту серию
Каждый начинающий пользователь Linux проходит через это:
Если это про вас — вы не терпите неудачу.
Вы изучаете Linux так, как это делают профессионалы:
ломая, исправляя и, в конце концов, понимая.
На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.