4 полезных совета по командам mkdir, tar и kill в Linux

Мы продолжаем выполнять задачу традиционным способом, пока не понимаем, что можно сделать намного лучше иным способом. В продолжение нашего сериала советов и хитростей по Linux, я здесь с четырьмя нижеуказанными советами, которые помогут вам во многих отношениях. Вперёд!

4 Linux Useful Tips and Hacks
1. Вам нужно создать длинное/сложное древо каталогов, аналогичное приведенному ниже. Какой самый эффективный способ достичь этого?

Структура дерева каталогов для достижения указанного ниже.

$ cd /home/$USER/Desktop
$ mkdir tecmint
$ mkdir tecmint/etc
$ mkdir tecmint/lib
$ mkdir tecmint/usr
$ mkdir tecmint/bin
$ mkdir tecmint/tmp
$ mkdir tecmint/opt
$ mkdir tecmint/var
$ mkdir tecmint/etc/x1
$ mkdir tecmint/usr/x2
$ mkdir tecmint/usr/x3
$ mkdir tecmint/tmp/Y1
$ mkdir tecmint/tmp/Y2
$ mkdir tecmint/tmp/Y3
$ mkdir tecmint/tmp/Y3/z

Приведенную выше ситуацию можно легко реализовать, запустив следующую однострочную команду.

$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}

Чтобы проверить, вы можете использовать команду tree. Если она не установлена, вы можете установить пакет ‘tree‘ с помощью apt или yum.

$ tree tecmint
Check Directory Structure

Мы можем создавать структуру дерева каталогов любой сложности, используя указанный выше способ. Обратите внимание, что это ничто иное, как обычная команда, но она использует {} для создания иерархии каталогов. Это может оказаться очень полезным при использовании изнутри сценария оболочки по мере необходимости и в общем.

2. Создайте файл (назовем его test) на своем Рабочем столе (/home/$USER/Desktop) и заполните его содержимым, указанным ниже.
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Что бы сделал обычный пользователь в этой ситуации?

a. He will create the file first, preferably using touch command, as:

$ touch /home/$USER/Desktop/test

b. He will use a text editor to open the file, which may be nano, vim, or any other editor.

$ nano /home/$USER/Desktop/test

c. He will then place the above text into this file, save and exit.

Таким образом, независимо от времени, затраченного на него/неё, ему/ей нужно как минимум 3 шага для выполнения указанной выше ситуации.

Что сделает умный опытный пользователь Linux? Он просто напишет нижеуказанный текст в терминале одним действием, и всё готово. Ему не нужно выполнять каждое действие отдельно.

cat << EOF > /home/$USER/Desktop/test
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z
EOF

Вы можете использовать команду «cat», чтобы проверить, был ли файл и его содержимое успешно создан.

$ cat /home/avi/Desktop/test

3. Мы очень часто работаем с архивами (особенно TAR-архивами) в Linux. Во многих случаях нам приходится использовать этот TAR-архив в другом месте, отличном от папки Загрузки. Что мы делаем в этом случае?

Обычно мы делаем две вещи в этом случае.

a. Copy/Move the tar ball and extract it at destination, as:

$ cp firefox-37.0.2.tar.bz2 /opt/
or
$ mv firefox-37.0.2.tar.bz2 /opt/

b. cd to /opt/ directory.

$ cd /opt/

c. Extract the Tarball.

# tar -jxvf firefox-37.0.2.tar.bz2 

Мы можем сделать это наоборот.

Мы извлечем Tarball там, где он находится, и скопируем/переместим извлеченный архив в необходимое место следующим образом:

$ tar -jxvf firefox-37.0.2.tar.bz2 
$ cp -R firefox/  /opt/
or
$ mv firefox/ /opt/

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

$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/

Опция -C заставляет tar извлечь архив в указанную папку (здесь /opt/).

Нет, это не об опции (-C), а об обычаях. Сделайте привычку использовать опцию -C с tar. Это облегчит вашу жизнь. Теперь не перемещайте архив или копируйте/перемещайте извлеченный файл, просто оставьте TAR-архив в папке Загрузки и извлеките его в любом месте, где захотите.

4. Как мы завершаем процесс традиционным способом?

В наиболее общем случае мы сначала перечисляем все процессы с помощью команды ps -A и передаем их через канал в grep, чтобы найти процесс/сервис (скажем, apache2), просто как:

$ ps -A | grep -i apache2
Пример вывода
1006 ?        00:00:00 apache2
 2702 ?        00:00:00 apache2
 2703 ?        00:00:00 apache2
 2704 ?        00:00:00 apache2
 2705 ?        00:00:00 apache2
 2706 ?        00:00:00 apache2
 2707 ?        00:00:00 apache2

Вышеуказанный вывод показывает все в настоящее время запущенные процессы apache2 с их PID, затем вы можете использовать эти PID для завершения apache2 с помощью следующей команды.

# kill 1006 2702 2703 2704 2705 2706 2707

и затем проверьте, работает ли какой-либо процесс/сервис с именем «apache2» или нет, как:

$ ps -A | grep -i apache2

Однако мы можем сделать это в более понятном формате, используя утилиты, такие как pgrep и pkill. Вы можете найти соответствующую информацию о процессе, просто используя pgrep. Скажем, вам нужно найти информацию о процессе для apache2, вы можете просто сделать следующее:

$ pgrep apache2
Пример вывода
15396
15400
15401
15402
15403
15404
15405

Вы также можете перечислить имя процесса по pid, запустив.

$ pgrep -l apache2
Пример вывода
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

Убить процесс с помощью pkill очень просто. Просто введите имя ресурса для завершения и вы готовы. Я написал пост о pkill, который вам может понравиться, ссылка здесь: https://www.tecmint.com/how-to-kill-a-process-in-linux/.

Чтобы убить процесс (скажем, apache2) с помощью pkill, вам нужно сделать следующее:

# pkill apache2

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

$ pgrep -l apache2

Если он возвращает приглашение и ничего не печатает, это означает, что процесс с именем apache2 не запущен.

Это все на данный момент от меня. Все вышеупомянутые моменты недостаточны, но обязательно помогут. Мы не только стремимся создавать учебные пособия, чтобы вы учились чему-то новому каждый раз, но и хотим показать «Как быть более продуктивным в том же кадре». Предоставьте нам свои ценные отзывы в комментариях ниже. Оставайтесь на связи. Продолжайте комментировать.

Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/