споры с чистой командной строкой

Завершение процесса может быть выполнено несколькими различными способами. Часто при выполнении команды на основе консоли нажатие клавиши 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).

Для обычных пользователей необходимо удалить разрешение на запись родительского каталога для всех пользователей.

0
05.09.2014, 12:19
2 ответа

В основном, просто используя переменные . Например:

$ varA="directory_name"
$ varB="file_name"
$ cd "/var/$varA/$varB"

Вы также можете поместить это в одну строку:

$ varA="directory_name"; varB="file_name"; cd "/var/$varA/$varB"
2
28.01.2020, 02:28

Помимо использования явных переменных, вы также можете использовать позиционные параметры ( $ 1 , $ 2 ...):

$ set 'some dir' 'some sub-dir'
$ cd "/var/$1/$2"

(обратите внимание, что в отличие от zsh , с bash важно помнить, что переменные заключаются в двойные кавычки).

1
28.01.2020, 02:28

Теги

Похожие вопросы