На данном уроке мы познакомимся с базовыми командами работы в ОС Linux в теории и на практике, затем мы выложим сайт на хостинг A-Level, и в третьей части урока попрактикуемся в навыках работы с контролем версий GIT.
По выданным вам логинам, паролю и адресу сервера при помощи программы Putty вы попадете в консоль сервера Helium, на котором нам предстоит практиковаться в Linux.
Самые основные команды, которые необходимо знать:
- ls с различными опциями - просмотр содержимого текущей или указанной папки
- cd - команда для смены текущей папки
- pwd - посмотреть текущую папку
- passwd - сменить пароль
- mkdir - создать папку
Дальше подробнее)
Команды бывают внутренние (их реализует непосредственно программа-оболочка) или же другие программы, существующие в файловой системе.
Клавиатурные комбинации:
TAB - "волшебная" кнопка, которая дополняет ваш текст. Не надо писать всё, надо жать TAB. Иногда два раза. CTRL-W - стереть слово до курсора CTRL-R - поиск по истории команд. Достаточно ввести любую часть другой команды что бы её выдернуть для использования сейчас. СТРЕЛКА ВВЕРХ - история Alt-B - слово назад.
Команда выводит историю ваших команд.
Ниже идет джентльменский набор файловых операций, реализуемых командами:
pwd
- (present working directory) показывает где мы сейчас находимся
cd
- (change directory) сменить дерикторию
mkdir
- (make dir) создать дерикторию
rmdir
- (remove dir) удалить дерикторию
cp
- (copy) копировать что либо
mv
- (move) переместить что либо
rm
- (remove) - удалить
cd ~/tmp # change directory: зайти в папку tmp в домашней папке текущего пользователя
cd # идем в домашнюю папку
cd ./ # зайти в эту же папку
cd ../ # выйти на папку выше.
ls -la # list подробно и с правами
ls # list неподробно
ls -lah # list подробно и с понятными размерами файлов
Вы можете использовать символ *
для замены части имени файла на любые:
ls -la *php # показать все файлы php в директории
При этом команда ls
получит в качестве параметров все файлы в папке, которые оканчиваются на php.
touch filename # создает пустой файл filename, или обновляет время доступа к файлу ("касается" его)
mkdir ~/newFolder # создаем папку в домашнем каталоге
mkdir newFolder # создаем папку в текущем каталоге
mkdir ../newFolder # создаем папку рядом с текущим (т. е. на уровень выше)
mkdir -p ~/newFolder/1/2/3/4/5/6 # создадим сразу несколько папок друг в друге
mv ~/newFolder/1/2/3/4/5/6 ~/newFolder # перенесем папку 6 из папки 5 в папку ~/newFolder
mv filename otherFilename # переименуем файл в другое имя файла.
cp otherFilename filename # копируем один файл из otherFilename в filename
cp -vrf ~/newFolder/1/2/ ~/newFolder # copy verbose recursive force папку ~/newFolder/1/2 в ~/newFolder
rm otherFilename # remove file otherFilename
rm -rf ~/newFolder/1 # remove files and directories recursively forced.
cat /etc/resolv.conf # conCAT /etc/resolv.conf
Все мы в той или иной степени знакомы с редакторами текста. Однако в мире UNIX редакторы изначально более мощные и гибкие, ориентированные на работу с кодом или конфигурационными файлами.
ViM - (vi i__m__proved) - мощный редактор, который построен не на идее редактирования текста, а на идее программирования редактирования текста. Благодаря этому вы при редактировании оперируете не отдельными символами, а сущностями, имеющими отношение к структуре программного кода (слова, параметры, парные тэги/скобки и так далее)
- Нормальный. Это режим, в котором собственно происходит программирование текста
Каждая клавиша на клавиатуре в этом режиме отвечает за то или иное действие: перемещение, изменение, удаление, вставку, копирование блока текста и так далее.
Esc:q!
- выйти не сохраняясьEsc:wqa
- выйти, сохранив все файлыZZ
- выход с сохранением.Esc:x
- эквивалентEsc:wq
Пути бывают абсолютные и относительные, а так же относительно домашней папки(/home/username
). Для этого используется следующий синтаксис:
/etc/
- Путь, начинающийся со слеша - абсолютный
tmp
- Путь без слеша означает путь относительно текущей папки. Иногда надо поставить ./ перед именем папки или файла (./tmp)
~/
- домашняя папка. Обычно /home/username.
~username
- домашняя папка пользователя.
.., ../
- папка уровнем выше
./
- текущая папка.
Каждый файл или папка в UNIX ОС имеют права доступа, которые побиты на 3 восьмеричных цифры (3 бита x 3 блока).
- `r`- read
- `w`- write
- `x` - eXecute/доступ к папке
Каждый из этих трех прав доступа назначаются:
- Владельцу
- Группе
- Остальным. Для задания владельца используется команда chown (__CH__ange __OWN__er):
chown username filename # меняем владельца
chown -R username:groupname ~/newFolder # меняем владельца и группу для папки ~/newFolder рекурсивно
Для задания прав доступа используется команда chmod
chmod 700 filename # полный доступ для владельца, ноль доступа группе и остальным
chmod -R a+x ~/newFolder # добавить всем доступ на запуск всем (владельцу, группе, и остальным) рекурсивно
В файловой системе есть ссылки двух типов - текстовые файлы с путем к другим файлам. Это симлинки. А так же есть копии файловых записей, которые ссылаются на контент файлов. Это хардлинки
Первые работают в разных файловых системах, однако если файл, на который сделана ссылка удалится - ссылка станет битая Вторые работают только в одной файловой системе, однако все ссылки на контент файла равноправны и файловая система ведет подсчет этих ссылок, освобождая место только после удаления последней ссылки.
для работы с этими ссылками используется команда ln
.
Так как Линукс это многопользовательская ОС то и должны быть определенные ограничения для пользователей
Таким ограничением являеться отстуствием прав root.
root это кроме как корень еще и пользователь системы
Пользователю root позволено все: удалять, копировать или записывать или запускать любой файл которые находиться в системе
Пользователь root имеет наивысшие привелегии на все.
То есть root это полноценный администратор машины(компьютера).
Если вам надо установить программу или поправить конфигурации вам нужно зайти под этим пользователем в систему.
Но это НЕ РЕКОМЕНДУЕТСЯ!!!
Сидеть под рутом отчасти опасно так как вы можете случайно сделать что то не то и вы можете попращаться с системой.
sudo -- substitute user and do, дословно «подменить пользователя и выполнить»
Специальная программа которая позволяет запускать небольшие сессии под рутом от обычного пользователя что бы улучшить общее состояние безопасности и дать вам второй шанс если вы вдруг чего то недосмотрели
Для того что бы иметь такие права вам все равно придется раз зайти под рутом
Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers
(для редактирования файла можно использовать специальный редактор visudo, запускаемый из командной строки без параметров, в том числе без указания пути к файлу); язык их написания и примеры использования подробно изложены в man sudoers(5).
В bash и других линуксовых консолях существует множество интересных команд, и еще большее количество вариантов их использования, каждый интересующийся пользователь постепенно узнает для себя интересные команды и их варианты.
Для заинтересованных данной темой рекомендуем ознакомиться с возможностями командной строки в целом, так как сложно представить себе более мощный инструмент для программиста и системного администратора.