Завершение процесса может быть выполнено несколькими различными способами. Часто при выполнении команды на основе консоли нажатие клавиши Ctrl c (символ прерывания по умолчанию) завершает выполнение команды. Это работает, когда процесс выполняется в режиме переднего плана.
Если процесс выполняется в фоновом режиме, то сначала необходимо получить идентификатор задания с помощью команды ps
, после чего можно использовать команду kill для завершения процесса следующим образом:
$ps -f
UID PID PPID C STIME TTY TIME CMD
amrood 6738 3662 0 10:23:03 pts/6 0:00 first_one
amrood 6739 3662 0 10:22:54 pts/6 0:00 second_one
amrood 3662 3657 0 08:10:53 pts/6 0:00 -ksh
amrood 6892 3662 4 10:51:50 pts/6 0:00 ps -f
$kill 6738
Terminated
Здесь команда kill
завершит процесс первым _ одним
. Если процесс игнорирует обычную команду kill
, можно использовать команду kill -9
со следующим идентификатором процесса:
$kill -9 6738
Terminated
-121--928- Вы не указываете, что такое «ожидаемый результат». Я предполагаю, что это файлы, имеющие x
бит набора.
Вы не можете принудительно использовать этот ACL по умолчанию (например, umask), который просто запрещает разрешения, но не устанавливает их сам. Новый каталог или файл не получает больше разрешений (для пользователя, группы и других), чем вызов open ()
или mkdir ()
, который создает запросы.
Обычно для файлов запрашивается только разрешение на чтение и запись. Но если компилятор создает двоичный файл, он также запрашивает разрешение на выполнение.
-121--53964- root
всегда может удалить файл (по крайней мере, на уровне chmod
; для предотвращения этого необходимы атрибуты файловой системы или модуль безопасности Linux (SELinux, AppArmor).
Для обычных пользователей необходимо удалить разрешение на запись родительского каталога для всех пользователей.
В основном, просто используя переменные . Например:
$ varA="directory_name"
$ varB="file_name"
$ cd "/var/$varA/$varB"
Вы также можете поместить это в одну строку:
$ varA="directory_name"; varB="file_name"; cd "/var/$varA/$varB"
Помимо использования явных переменных, вы также можете использовать позиционные параметры ( $ 1
, $ 2
...):
$ set 'some dir' 'some sub-dir'
$ cd "/var/$1/$2"
(обратите внимание, что в отличие от zsh
, с bash
важно помнить, что переменные заключаются в двойные кавычки).