Шпаргалка по Bash командам — работа с файлами и правами

29 July, 2021

3 min read

Последнее обновление: 29 July, 2021

В этом посте я расскажу про такое:

  • простые bash команды для работы с файлами: те самые, которыми ты будешь пользоваться постоянно
  • команда "кот" и почему она так называется
  • что делает команда sudo
  • пару полезных простых команд для управления правами на unix-like системах

Учимся работать с файлами

Скорее всего, если вы решили читать этот пост, вы уже настроены на то, чтобы начать осваивать управление вашим компьютером с помощью терминала. У меня по этому поводу для вас хорошие новости. Работать с файлами с помощью bash команд — намного приятнее и быстрее, чем работать с ними, кликая на иконки.
Как только команды станут для вас привычными, вы никогда больше не вернетесь к прежнему способу взаимодействия с компьютером.

Итак, команды. И их этимология (там, где это показалось мне необходимым).

ls / #ls означает list. Команда переводится, как "list все, что есть в директории /"
man ls # man означает manual. Показывает справочник по работе с командой
ls -la # показывает все файлы, включая скрытые
pwd # present working directory - отображает текущую папку, в которой вы находитесь.
cd ~ # change directory - вы перейдете в папку по адресу
mkdir # make directory - вы сделаете папку
mkdir 'my cool folder' # если вы хотите в названии папки использовать пробелы, заключите ее в ''
mkdir my\ cool\ folder # '\' или можно еще так
cp <from_what_file_copy_path> <where_to_copy_path> # copy file
cp *.jpg <where_to_copy_path>
cp -r -v 'Bird Pictures' <path> # рекурсивное копирование всех файлов из папки. V означает verbose
mv ./blue_document.txt yellow_document.txt # move - в данном случае ее используют для переименования файла
rm # remove file
rm -r # recursive delete - удаляется папка и все что находится в ней

Когда вы знаете как расшифровывается команда и что она означает на английском, ее намного легче запомнить.

Команда "кот" 🐈

cat <filename>

Эта команда выводит содержимое файла в консоль.

Этимология у нее не такая милая, как я изначально думал. "Cat" — происходит от "concatenate".

"Concatenate" означает "соединять".

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

Команда для власти над всем

sudo ... # super user do

Опасная команда, позволяющая творить любой возможный беспредел. Как и любой властью, ей нужно пользоваться с осторожностью и уверенностью в том, что то, что вы собираетесь сделать не навредит вашей машине.

Эта команда доступна только пользователю, имеющему права администратора.

Примеры использования sudo

sudo passwd -e <username> # сбросить пароля пользователя
sudo useradd <username> # добавить нового пользователя
sudo userdel <username> # удалить пользователя

Права, пользователи и bash

chmod # change mode

chmod — главная команда по изменению прав работы над файлами. Сама по себе она много не сделает, НО вы всегда можете вызвать ее справочник и узнать аргументы, которые эта команда требует.

man chmod # вызовет справочник
chmod u+x <filename> # добавит право "запускать" файл пользователю-оунеру файла. u означает user, x - executable
chmod u+rx <filename> # добавит права на чтение и запуск файла пользователю-оунеру файла. u - user, r - readable, x - executable
chmod ugo+r <filename> # добавит право на чтение файла для пользователя-оунера, группы, в которой он состоит, и всем остальным пользователям
# u - user, g - group, o - other, r - readable

Так же файлы можно "передавать" между пользователями системы с помощью команд.

chown # change owner

Команды `chown` и `chmod` часто приходится использовать с `sudo`.

Важно запомнить

  • Изучайте этимологию команд — так вы их быстрее запомните. Не надо тупо зазубривать.
  • Изучайте аргументы, которые команды принимают. Все они описываются в мануалах команд, которые можно почитать с помощью `man <название команды>`
  • Не надо постоянно использовать `sudo`. И, если есть возможность, не ведите обычную работу с пользователя с правами администратора

Дополнительные материалы

Я проходил их и могу смело их рекомендовать.

  • Курсы из серии Open Source Software Development, Linux and Git Specialization

    Предупреждение

    Они скучные. Вот правда. Чтобы их пройти, вам понадобится терпение. Но материал в них хороший и я считаю, что для новичков — очень доступно и наглядно излагается.
  • Топовые курсы из серии Google IT Support Professional Certificate
    Это просто must have. Их курс Operating Systems and You: Becoming a Power User — это то, что вам нужно, если вы хотите овладеть bash свободно (и не только им).

    К тому же, их курсы сделаны круто, они сложные, там хорошие тесты, и очень качественная манера подачи материала.

Упражнения, которые помогут запомнить материал:

  • Попробуйте создавать файлы и директории на вашем компьютере только с помощью терминала в течении следующей недели. Не забудьте узнать про авто дополнение с помощью `tab` 😄 и никогда больше не вводите пути к файлам вручную!
  • Попробуйте написать Bash скрипт, который перенесет все ваши файлы и папки (рекурсивно) из одной папки в другую.
  • Попробуйте завести нового юзера на вашем компьютере.

Подписаться на мою рассылку

Похожие посты

Troy Köhler

TwitterYouTubeInstagramLinkedin