Linux

Это своеобразный конспект и личное мнение о Linux.

За последнии 2 недели у меня не было доступа к компьютеру и успел лишь прочитать немного книгу Операционная система UNIX - понравилось что сразу даются знания фактически ежедневно необходимые, а так же я нашел ответов на вопросы - почему у меня нет прав для сохранения файла, как сделать файл исполняемым и прочее.

В UNIX - всё файлы и процессы, доступ к устройствам осуществляется через чтение/запись специальных файлов. Директория - это файл содержащий имена находящихся в нем файлов и метаинформацию. Каждый файл имеет владельцев - пользователя и группу. Посмотреть их можно с помощью команды ls -l <myfile>. Для того чтобы поменять владельца используетсяя команда chown - chown master:puppets /metal/metallica - теперь владелец файла metallica пользователь master и группа пользователей puppets.

Что делать если при сохранении файла отображается ошибка “Permission denied”?

Все просто - у текущего пользователя - нет прав на запись в этот файл. У меня была ситуация когда в проекте часть файлов я мог изменять, а часть нет. Оказалось что эти файлы принадлежат пользователю root. Я сделал так sudo chown -R user:user myproject - теперь я владелец файлов и могу делать с ними что хочу. Возможно это не самое лучшее и правильное решение - я только учусь

В ОС существует три базовых класса прав доступа к файлу:

А так же есть три типа прав:

Для изменения прав используется команда chmod

Проблему которую я решил:

Как сделать файл исполняемым?

В UNIX испоняемый файл или нет определяется его правами. В первом проекте на Hexlet нужно было написать бинарник который запускает проект. Что то вроде такого:

#! /usr/bin/env node

console.log("Hello world");

Запускаться это должно как обычная утилита - ./bin/example.js, но без прав на выпосление ничего не получится. Добавим их:

chmod a+x example.js - теперь у всех пользователей есть право на выполнение файла

Символы #! - шебанг указывает на имя программы которая будет интрепретировать файл

Личное мнение

Я перешел на Linux больше года назад, после того как на Hexlet был workshop по Docker - я просто ничего не мог сделать на Windows у меня все работало через раз и через боль. У Linux тоже есть недостатки, но если вы хотите программировать - ставьте Linux как основную рабочую среду - не пожалеете.