Практические примеры основных команд Unix, которые могут оказаться полезными
На прошлой неделе мы опубликовали пост о некоторых советах по Unix, который был очень популярен, что заставляет меня поверить, что есть потребность в примерах и советах по написанию сценариев для Unix и Bash.
По этой причине сегодня мы предоставим несколько практических примеров команд bash, которые могут оказаться полезными для ваших повседневных задач.
1. Как запустить несколько команд из одного скрипта bash
Вы можете запустить несколько команд, используя ; или &&. Например:
echo "George" ; echo "Pipis"
Мы получаем:
George Pipis
Точно так же мы можем запустить
echo "George" && echo "Pipis"
И снова получаем тот же вывод:
George Pipis
Вы можете задаться вопросом, в чем разница между ; и &&, поскольку оба они используются для запуска нескольких команд. Ответ таков:
A ; B# Запустите A, а затем B, независимо от успеха AA && B# Запустить B тогда и только тогда, когда A удалось
Источники: Спросите Ubuntu
2. Как вернуться к нескольким каталогам
Мы знаем, что команда cd означает «каталог изменения». Если мы хотим вернуться на один шаг назад, мы просто набираем:
cd ..
А если мы хотим вернуться на два шага назад одной командой? Затем мы можем ввести:
cd ../..
Точно так же вы можете добавить больше шагов назад следующим образом (n = 3).
cd ../../..
Наконец, если вы хотите перейти в предыдущий каталог, вы можете запустить команду:
cd -
3. Как изменить разрешения
Мы можем изменить права доступа к файлам или каталогам с помощью команды chmod.
Скорее всего, вы видели обозначение -rwxrwxrwx в файлах и каталогах. Первая тройка относится к пользователю, вторая к группе и третья ко всем остальным пользователям.

r для Чтения, w для Записи и x для Выполнения. Так, например, если вы хотите предоставить следующие разрешения для my_file.txt:
- Пользователь (u) имеет полные права, то есть чтение (r), запись (w), выполнение (e)
- Группа (g) может только читать (r) и выполнять (e)
- Остальные (o) могут только читать (r)
Затем вы можете ввести:
chmod u=rwx,g=rx,o=r my_file.txt
Обратите внимание, что u,g,o относятся к пользователю, группе и другим соответственно, а r, w, x — к чтению, записи и выполнению. Мы можем запустить ту же команду, используя восьмеричную нотацию, например:
chmod 754 my_file.txt
Где каждая цифра представляет разрешение для каждого члена. Таким образом, 7 соответствует user, 5 соответствует groupи 4 соответствует other. Эти числа получаются путем преобразования двоичных чисел в десятичные, как показано на изображении ниже:

Если вы хотите получить больше информации о том, как преобразовать двоичное число в десятичное, посетите раздел классное преобразование. Таким образом, двоичное число 111 равно 7 в десятичном виде.
4. Как сменить владельца
Команда имеет следующую структуру:
Для файлов:
chown user:group filename
Для каталогов:
chown user:group directoryname
Для каталогов мы меняем владельца каталога, НО не для файлов внутри него. Если мы хотим изменить внутренние файлы, мы должны использовать -R:
chown -R user:group directoryname
Обратите внимание, что это может работать, указав только пользователя или только группу:
Только пользователь:
chown user filename
Только группа:
chown :group filename
Наконец, имейте в виду, что у вас может не быть разрешений на смену владельца, и вам может потребоваться запустить команду с sudo:
chown sudo user:group filename
5. Как создавать вложенные каталоги
Предположим, вы хотите создать в Unix вложенные каталоги с помощью одной команды. Вы можете добиться этого, добавив -p после mkdir, а затем указав путь.
Допустим, я хочу создать каталог my_pictures, а затем внутри этой папки добавить еще один каталог с именем мой my_wedding. Мы можем добиться этого, просто набрав:
mkdir -p my_pictures/my_wedding
Мы можем подтвердить, что две папки были созданы, как и ожидалось, набрав:
$ tree .
.
└── my_pictures
└── my_wedding
6. Как запустить последнюю команду с помощью sudo
Очень хороший совет — это команда sudo !!, где она запускает последнюю команду, но с помощью sudo.
Так например, скажем, вы пытаетесь увидеть файл, к которому у вас нет доступа
$ cat myfile.txt
Permission denied
Затем мы можем запустить:
sudo !!
Что эквивалентно:
sudo cat myfile.txt
7. Команды системной информации
Мы предоставим вам несколько полезных команд в Unix, с помощью которых вы сможете получить информацию о своей системе.
- date: возвращает текущую дату и время.
$date
Mon Oct 25 19:54:48 EEST 2021
- uptime: возвращает время работы вашей системы.
$uptime
19:57:02 up 2 days, 30 min, 0 users, load average: 0.52, 0.58, 0.59
users: Возвращает всех пользователей, которые вошли в систему.who: Он возвращает пользователей, которые вошли в систему, и дает нам список для каждого из этих пользователей.whoami: при вызове этой команды возвращает имя текущего пользователя.
$ whoami
g_pipis
uname: возвращает имя операционной системы.
$ uname
Linux
Если вам нужна дополнительная информация, вы можете добавить опцию -a.
uname -a
- df: возвращает количество свободного места на диске.
df -h
- du: возвращает размер файла или каталога.
du -h /path
Или, если вы хотите увидеть размер файла в каталоге.
du -ha /path
8. Как получить все запущенные процессы
Команда:
ps aux
В качестве альтернативы вы можете запустить:
top
9. Как создавать симлинки
Символические ссылки в Unix известны как «символические ссылки» и похожи на ярлыки или псевдонимы. Структура команды такова:
ln -s filname symlinkname
Обратите внимание, что флаг -s предназначен для символических ссылок. Другие вещи, которые вам нужно знать, это то, что он ссылается на путь к файлу, а не на файл, и он ломается, когда файл перемещается или удаляется.
10. Как отобразить номер строки в команде cat
Команда cat возвращает содержимое файла, а команда nl также добавляет номер строки. Например:
$ cat myfile.txt
this is the first line
this is the second line
and this is the third
this should be the forth
Теперь, если мы также хотим получить номер строки, мы можем запустить:
$ nl myfile.txt
1 this is the first line
2 this is the second line
3 and this is the third
4 this should be the forth
Другой вариант — использовать команду cat с параметром -n, например:
$ cat -n myfile.txt
1 this is the first line
2 this is the second line
3 and this is the third
4 this should be the forth
Бонусная часть: Как создавать баннеры
Во многих файлах README.txt некоторые авторы добавляли баннеры. Мы можем легко сделать это в bash в Unix, используя figlet.
$ sudo apt-get install figlet figlet Predictive Hacks

Вы можете поиграть с параметрами -f для разных шрифтов. Нравиться:
figlet -f slant Predictive Hacks

Хотите больше советов?
Вы можете найти дополнительные советы по R, Python, SQL, AWS, Snowflake и Unix.