Как удалить файл в Linux



























4/5 — (2 голоса)

  • Чтобы удалить один файл, используйте команду rm, за которой следует имя файла:rm filename

    Если файл защищен от записи, вам будет предложено подтвердить ее, как показано ниже. Чтобы удалить файл введите y и нажмите Enter. В противном случае, если файл не защищен от записи, он будет удален без запроса.

    rm: remove write-protected regular empty file ‘filename’?

  • Чтобы удалить сразу несколько файлов, используйте команду rm, за которой следуют имена файлов, разделенные пробелом.rm filename1 filename2 filename3

    Вы также можете использовать подстановочный знак ( *) и регулярные выражения для соответствия нескольким файлам. Например, чтобы удалить все файлы с расширением .pdf в текущем каталоге, используйте следующую команду:

    rm *.pdf

    Когда вы используете rm с wildcards ( *) и регулярными расширениями, рекомендуется перечислить файлы с помощью команды ls, чтобы вы могли видеть, какие файлы будут удалены перед запуском команды rm.

  • Используйте опцию -i для подтверждения каждого файла перед удалением:rm -i filename(s)
  • Чтобы удалить файлы без запроса, даже если файлы защищены от записи, используйте параметр -f(force):rm -f filename(s)
  • Вы также можете комбинировать параметры rm. Например, чтобы удалить все файлы .txt в текущем каталоге без подсказки в подробном режиме, используйте следующую команду:rm -fv *.txt

Удаляем файлы в Linux: практика

В ОС Linux для удаления файлов есть стандартная утилита rm. Как это принято со стандартными утилитами, в названии rm есть определённая идея. В нашем случае речь идёт о сокращении от английского слова Remove — удалять.

Итак, чтобы выполнить удаления одного файла, используем команду rm, указывая за ней имя нашего файла:

rm filename

Если наш файл находится не в текущем рабочем каталоге, нужно указать путь к его местоположению:

rm /home/user/filename

Бывает, что файл защищён от записи. Тогда нам предложат подтвердить команду. Чтобы удалить файл в такой ситуации, просто вводим y и нажимаем Enter.

rm: remove write-protected regular empty file ‘filename’?

Если мы хотим удалить сразу несколько файлов в Linux, то это тоже не проблема: используем команду rm, за которой прописываем имена наших файлов через пробел:

rm filename1 filename2 filename3

Ещё вариант — использование подстановочного знака * и регулярных выражений для соответствия определённым файлам. К примеру, мы легко удалим все файлы в Linux, имеющие расширение .txt следующей командой:

rm *.txt

Для подтверждения каждого файла перед удалением используйте опцию -i:

rm -i filename(s)

Но когда файлов много, а вы твёрдо уверены в правильности своей команды и не хотите каждый раз отвечать на вопрос системы, используйте противоположную опцию -f. Будут удалены все файлы безоговорочно, т. е. без лишних вопросов:

rm -f filename(s)

Способ 1: Терминал

Работа с файлами в «Терминале» кардинально отличается от работы в файловом менеджере. Как минимум, в нем нет визуализации — все данные вы будете вводить и получать в окне, имеющем вид традиционной для Windows командной строки. Однако именно через этот элемент системы удастся отследить все ошибки, возникающие при выполнении той или иной операции.

Подготовительные мероприятия

Используя «Терминал» для создания или удаления файлов в системе, вам необходимо предварительно указать в нем директорию, в которой будут выполняться все последующие операции. В противном случае все созданные файлы будут находиться в корневом каталоге («/»).

Указать директорию в «Терминале» можно двумя способами: при помощи файлового менеджера и при помощи команды cd. Разберем каждый в отдельности.

Файловый менеджер

Итак, допустим, вы хотите создать или, наоборот, удалить файл из папки «Документы», что находиться по пути:

/home/Имя_Пользователя/Документы

Чтобы открыть эту директорию в «Терминале», вам необходимо сначала открыть ее в файловом менеджере, а затем, нажав ПКМ, выбрать в контекстном меню пункт «Открыть в терминале».


По итогу откроется «Терминал», в котором будет указана выбранная директория.


Команда cd

Если вы не хотите пользоваться предыдущим способом или не имеете доступа к файловому менеджеру, вы можете указать директорию, не выходя из «Терминала». Для этого используют команду cd. Все что нужно сделать, это написать данную команду, указав затем путь к директории. Разберем это так же на примере папки «Документы». Впишите команду:

cd /home/Имя_Пользователя/Документы

Вот пример выполняемой операции:


Как видно, необходимо изначально ввести путь к директории (1), а после нажатия клавиши Enter в «Терминале» должна отобразиться выбранная директория (2).

После того как вы узнали, как выбрать директорию, в которой будут проводиться работы с файлами, можно переходить непосредственно к самому процессу создания и удаления файлов.

Создание файлов через «Терминал»

Для начала откройте сам «Терминал», нажав сочетание клавиш CTRL + ALT + T. Теперь можно начинать создание файлов. Для этого есть возможность воспользоваться шестью разными способами, которые будут продемонстрированы ниже.

Утилита touch

Предназначение команды touch в Linux — изменение временной метки (время изменения и время использования). Но если введенного имени файла утилита не найдет, она автоматически создаст новый.

Итак, для создания файла вам необходимо в командной строке прописать:

touch «Имя_Файла» (обязательно в кавычках).

Вот пример такой команды:


Функция перенаправления процесса

Этот способ можно считать самым простым. Чтобы создать файл с его помощью, необходимо всего лишь указать знак перенаправления и ввести имя создаваемого файла:

> «Имя_Файла» (обязательно в кавычках)

Пример:


Команды echo и функция перенаправления процесса

Этот способ практически ничем не отличается от предыдущего, только в этом случае необходимо перед знаком перенаправления вписать команду echo:

echo > «Имя_Файла» (обязательно в кавычках)

Пример:


Утилита cp

Как и в случае с утилитой touch, главным предназначением команды cp не является создание новых файлов. Она необходима для копирования. Однако задав переменную «null», вы создадите новый документ:

cp /dev/null «Имя_Файла» (обязательно без кавычек)

Пример:


Команда cat и функции перенаправления процесса

cat — это команда, служащая для связки и просмотра файлов и их содержимого, но стоит ее использовать вместе с перенаправлением процесса, как она сразу создаст новый файл:

cat /dev/null > «Имя_Файла» (обязательно в кавычках)

Пример:


Текстовый редактор vim

Именно у утилиты vim главное предназначение — это работа с файлами. Однако у нее нет интерфейса — все действия выполняются через «Терминал».

К сожалению, vim предустановлена не на всех дистрибутивах, например, в Ubuntu 16.04.2 LTS ее нет. Но это не беда, ее запросто можно скачать из репозитория и установить на свой компьютер, не покидая «Терминал».

Примечание: если текстовый консольный редактор vim у вас уже установлен, то пропустите этот шаг и переходите сразу к созданию файла с его помощью

Для установки введите команду:

sudo apt install vim

После нажатия Enter потребуется ввести пароль. Вводите его и ждите окончания загрузки и установки. В процессе у вас могут потребовать подтверждение выполнения команды — введите букву «Д» и нажмите Enter.


О завершении установки программы можно судить по появившемуся логину и имени компьютера.


После установки текстового редактора vim можно приступить к созданию файлов в системе. Для этого нужно воспользоваться командой:

vim -c wq «Имя_Файла» (обязательно в кавычках)

Пример:


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

Удаление файлов через «Терминал»

Удаление файлов в «Терминале» практически ничем не отличается от их создания. Главное — знать все необходимые команды.

Важно: удаляя файлы из системы через «Терминал», вы их стираете безвозвратно, то есть, в «Корзине» их отыскать потом не получится.

Команда rm

Именно команда rm служит в Linux для удаления файлов. Вам всего-навсего нужно указать директорию, ввести команду и вписать имя файла, который нужно удалить:

rm «Имя_Файла» (обязательно в кавычках)

Пример:


Как можно заметить, после выполнения данной команды в файловом менеджере пропал файл «Новый документ».

Если вы хотите очистить целую директорию от ненужных файлов, то будет довольно долго вписывать их наименования раз за разом. Проще воспользоваться специальной командой, которая вмиг безвозвратно удалит все файлы:

rm *

Пример:


Выполнив эту команду, вы можете видеть как в файловом менеджере удалились все ранее созданные файлы.

Способ 2: Файловый менеджер

Файловый менеджер любой операционной системы (ОС) хорош тем, что он дает возможность наглядно отследить все проводимые манипуляции, в отличие от «Терминала» с его командной строкой. Однако есть и минусы. Один из них: нет возможности детально проследить за процессами, которые выполняются при той или иной операции.

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

Примечание: в статье в качестве примера будет использован файловый менеджер Nautilus, который является стандартным для большинства дистрибутивов Linux. Однако инструкция для других менеджеров схожа, могут отличаться лишь названия пунктов и расположение элементов интерфейса.

Создаем файл в файловом менеджере

Необходимо делать следующее, чтобы создать файл:

  1. Открыть файловый менеджер (в данном случае Nautilus), нажав по его иконке на панели задач или проведя поиск по системе.
  2. Перейти в необходимую директорию.
  3. Нажать правой кнопкой мыши (ПКМ) по пустому месту.
  4. В контекстном меню навести курсор на пункт «Создать документ» и выбрать необходимый вам формат (в данном случае формат один — «Пустой документ»).
  5. После этого в директории появится пустой файл, которому остается лишь задать имя.

Как удалить файл в Linux с помощью настольного файлового менеджера

Любой, кто работает с Windows или macOS, найдет среду рабочего стола Linux очень знакомой. Обозреватель файлов в большинстве сред рабочего стола Linux, таких как Ubuntu GNOME или Mint’s Cinnamon, действительно облегчает управление файлами в Linux для среднего пользователя, который может быть не знаком с интерфейсами командной строки..

Как только вы попали в проводник и нашли файл или файлы, которые хотите удалить, у вас есть два пути. Во-первых, вы можете переместить его в корзину, которая представляет собой специальный контейнер в файловой системе, в котором хранятся файлы и каталоги, которые вам больше не нужны.

  • Откройте для себя лучшие приложения Linux 2020 года

Вы можете сделать это, щелкнув левой кнопкой мыши по файлу и нажав клавишу «Удалить» на клавиатуре. Это работает для групп файлов, которые вы выбрали их с помощью поля выбора или CTRL / SHIFT + щелчок левой кнопкой мыши. Кроме того, вы можете щелкнуть правой кнопкой мыши файл или один из выбранных вами файлов и выбрать «Переместить в корзину» из контекстного меню..

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

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


(Изображение предоставлено: Будущее)

В некоторых средах рабочего стола, таких как Mint’s Cinnamon, также есть возможность постоянного удаления файла прямо из контекстного меню, полностью обходя контейнер Trash..

Это следует делать только в том случае, если вы уверены, что хотите избавиться от файла, поскольку, хотя вы можете восстановить «навсегда» удаленный файл с жесткого диска, это не является гарантией, и процесс может быть очень сложным и отнимает много времени — и, возможно, дорого.


(Изображение предоставлено: Будущее)

Всегда безопаснее переместить что-либо в корзину, чем удалить его навсегда. Оставив его в корзине, вы сохраняете возможность передумать, если обнаружите, что вам нужен файл.

  • Это лучшие ноутбуки Linux на рынке прямо сейчас
  • Узнайте, какие из лучших дистрибутивов Linux 2020 года
  • Проверьте лучшие дистрибутивы Linux для конфиденциальности и безопасности в 2020 году

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


(Изображение предоставлено: Будущее)

Удаляем папки и каталоги в Linux

Если хотите удалить пустой каталог, задействуйте опцию -d.

rm -d dirname

Если хотим удалить непустой каталог и все файлы, которые в нём находятся, поступаем следующим образом:

rm -r dirname

Опять же, в случае наличия защиты от записи, система Linux спросит пользователя, стоит ли выполнять удаление. Если мы хотим удалить файлы и непустые каталоги без лишних вопросов, делаем так:

rm -rf dirname

Когда хотим удалить сразу несколько каталогов, мы применяем команду rm, прописывая за ней имена каталогов через пробел:

rm -r dirname1 dirname2 dirname3

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

Удаление через rm

Для удаления файла, необходимо ввести команду rm и название документа.

rm dokument


Данная команда удалит dokument, с некоторыми особенностями:

  • Интерпретатор запросит подтверждение на операцию.
  • В примере предполагается, что dokument находится в домашнем каталоге как и пользователь (/root/).

Удалим файл “newfile” из каталога /usr/games.

rm /usr/games/newfile


Удалить все файлы в папке.

rm -f /usr/games/*

Ключ “-f” даст возможность не выводить запрос на подтверждение операции. Однако, команда выше очистит только все файлы из каталога “games” не трогая директории.

Если нужно очистить систему от всех файлов, которые заканчиваются «.doc», следует приписать в самом конце команды символ «*», без пробела.

rm -f /usr/games/*.doc

Утилита Remove (rm) требует особой осторожности в работе. При халатном отношении к делу пользователь может навсегда стереть важные файлы.

Чтобы подобный казус не случился, рекомендуется совершать удаление файлов при помощи стандартной программы rm с добавлением опции -i. Она станет некой перестраховкой в данном вопросе – система начнет запрашивать подтверждение пользователя перед удалением файлов из каталога. Как это выглядит на практике:

rm -i /root/*.doc

Если пользователю не нужен запрос на подтверждение, и он на 100% уверен в правильности своих дальнейших действий, можно вписать в команду опцию с противоположным воздействием на процесс (-f).

rm -i /usr/games/*.doc

Удаление через find

Для реализации задуманного можно воспользоваться еще одной альтернативной программой find. Кроме того, она пригодится даже там, где rm не осилит поставленную задачу. Её синтаксис выглядит следующим образом:

$ find папка критерий действие

К примеру, пользователю нужно очистить текущий каталог от всех файлов с названием «file». Их можно найти и уничтожить следующим способом:

find . -type f -name «file» -delete

Чтобы удалить устаревшие логи (то есть, файлы старше конкретного срока), используйте специальную команду в виде:

$ find /path/to/files* -mtime +5 –exec rm {} ;

Исходя из заданной команды, можно понять, что Линукс удалит из текущего каталога все файлы, «возраст» которых превышает 5 дней. Вот видите, как легко управлять устройством посредством терминала!

Иногда в Linux наличествуют файлы, восстановление которых не имеет ни малейшей актуальности посте чистки ПК. То есть, от них нужно избавиться раз и навсегда. Если использовать ранее упомянутую программу rm, то ничего не получится, поскольку она удаляет лишь ссылку на файл, сохраняя при этом его содержимое в памяти устройства. Он все еще будет поддаваться восстановлению, ровно до того момента, пока Линукс не перезапишет его иной информацией.

Через shred

Чтобы очистить систему от документа без возможности его дальнейшего восстановления, нужно использовать специальную команду под названием «shred». Как только срабатывает команда, файл удаляется, и система неоднократно перезаписывает его место на диске. Как это выглядит на практике:

$ shred /root/file

Что происходит далее? Система перезаписывает место на диске 3 раза (по умолчанию), но это количество поддается коррективам. Используйте опцию -n, если нужно что-то поменять. Добавление опции -z также повлияет на итоговый результат. С ней система запишет место на диске нулями, чтобы никто не мог догадаться о том, что определенный файл был уничтожен пользователем.

Синтаксис и опции команды rm

Команда «rm» имеет множество опций, что позволяет очень тонко управлять процессом удаления файлов. Вы можете изучить все доступные опции если введете в терминал Linux команду «man rm». Здесь же мы будем рассматривать самые простые и часто используемые опции.

Синтаксис команды «rm» выглядит следующим образом:

rm [опции] файлы

Разберем основные опции команды rm:

-f, –force Игнорировать несуществующие файлы и не требовать подтверждения перед удалением. -i Требовать подтверждения перед каждым удалением. -I Запрашивать подтверждение один раз перед удалением более трех файлов или при рекурсивном удалении. -r, -R, –recursive Рекурсивное удаление каталогов и их содержимого. -v, –verbose Вывод подробной информации о процессе. –help Вывод справочной информации о команде.

Теперь разберем некоторые опции, которые часто используются при удалении файлов в Linux через терминал. Например, очень часто возникает необходимость удалить папку вместе с всем содержимым. Для этого нужно использовать опцию «-r», которая включает рекурсивный обход папок. Например, для того чтобы удалить папку «folder1» и все ее содержимое нужно выполнить:

rm -r folder1/

Если права доступа к файлу разрешают только чтение, то в терминале Linux появится запрос подтверждения, и чтобы продолжить вам нужно будет ввести букву «y» (от англ. «yes»).


Чтобы избежать такой ситуации и удалять все файлы без предупреждения нужно использовать опцию «-f». Например:

rm -f file.txt

Не редко возникает необходимость удалить папку вместе со всеми файлами и без запросов на подтверждение. В этом случае нужно комбинировать опции «-r» и «-f». В результате команда выглядит вот так:

rm -rf folder1/

Если вы, наоборот, хотите каждый раз получать запрос подтверждения, то команду «rm» нужно выполнять с опцией «-i». Например, для того чтобы удалить все файлы в текущем каталоге с запросом подтверждения нужно выполнить:

rm -i *

Также бывает полезной опция «-v». При ее использовании в терминале будет появляться подробная информация о выполняемых действиях. Например, для того чтобы удалить все файлы в текущем каталоге и вывести информацию в терминал нужно выполнить:

rm -v *

Также вывод информации можно перенаправить в файл. Для этого после команды нужно использовать оператор перенаправления вывода (>) и указать название файла. Например:

rm -v * > delete.log

Естественно все эти опции можно комбинировать, в зависимости от ваших задач.

Как удалить каталоги (папки)

  • Для удаления пустого каталога используйте эту опцию -d.rm -d dirname
  • Чтобы удалить непустые каталоги и все файлы внутри них, используйте параметр r (рекурсивный).rm -r dirname

    Если каталог или файл в каталоге защищены от записи, вам будет предложено подтвердить удаление.

  • Чтобы удалить непустые каталоги и все файлы без запроса, используйте r (рекурсивные) и параметр -f.rm -rf dirname
  • Чтобы удалить сразу несколько каталогов, используйте команду rm, за которой следуют имена каталогов, разделенные пробелом.rm -r dirname1 dirname2 dirname3

    То же, что и в файлах, вы также можете использовать подстановочный знак ( *) и регулярные выражения для соответствия нескольким каталогам.

Выводы

Вот и все. Теперь вы знаете как удалить файл в Ubuntu, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!


[spoiler title=”Источники”]

  • https://andreyex.ru/operacionnaya-sistema-linux/kak-udalyat-fajly-i-katalogi-s-pomoshhyu-komandnoj-stroki-linux/
  • https://otus.ru/nest/post/981/
  • https://lumpics.ru/how-create-or-delete-file-in-linux/
  • https://ru.ditching.eu/kak-udalit-fajl-v-linux/
  • https://www.vseprolinux.ru/udalit-fajl-linux
  • https://comp-security.net/%D0%BA%D0%B0%D0%BA-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%B2-linux-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB/
  • https://losst.ru/kak-udalit-fajl-cherez-terminal-linux


[/spoiler]


2020-07-27T15:39:45
Linux

Как Переименовать Файл в Linux: Пошаговое Руководство



























Rate this post

В основной форме вам нужно дать имя старого файла с последующим новым именем файла в команде mv для того, чтобы переименовать файл в Linux. Допустим, у вас есть файл с именем «andreyex.txt», и вы хотите переименовать его в «Linuxroutes.txt». Используйте следующую команду:


[root@destroyer]# mv andreyex.txt Linuxroutes.txt

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


[root@destroyer]# mv /tmp/mann/andreyex.txt /tmp/mann/Linuxroutes.txt

Полный вывод для переименования файла в Linux

В случае, если вы хотите узнать информацию о переименовании. То вы должны использовать опцию -v вместе с командой mv, как показано ниже:


[root@destroyer]# mv -v andreyex.txt Linuxroutes.txt `andreyex.txt’ -> `Linuxroutes.txt’ [root@destroyer]#

В командной строке выше выводиться информация, которая подтверждает, что файл «andreyex.txt» был переименована в «Linuxroutes.txt».

Интерактивное переименования файлов в Linux

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


[root@destroyer]# mv -i andreyex.txt Linuxroutes.txt mv: overwrite `Linuxroutes.txt’? y [root@destroyer]#

Переименование или перемещение файла только тогда, когда исходный файл обновляется:

Предположим, что у вас есть такой же файл в источнике и назначении, и вы хотите переместить файл из исходного местоположения в место назначения только тогда, когда источник обновляется. В этом случае вам необходимо использовать опцию -u вместе с командой mv:

mv -u /tmp/Linuxroutes.dat /tmp/mann/Linuxroutes.dat

Переименование нескольких файлов:

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


[root@destroyer]# ll total 20 -rw-r–r– 1 root mmadmin 18 May 27 14:36 1.txt -rw-r–r– 1 root mmadmin 18 May 27 14:36 2.txt -rw-r–r– 1 root mmadmin 18 May 27 14:36 3.txt -rw-r–r– 1 root mmadmin 18 May 27 14:37 4.txt -rw-r–r– 1 root mmadmin 18 May 27 14:36 Linuxroutes.txt[root@destroyer]# rename .txt .dat *.txt [root@destroyer]# ll total 20 -rw-r–r– 1 root mmadmin 18 May 27 14:36 1.txt -rw-r–r– 1 root mmadmin 18 May 27 14:36 2.txt -rw-r–r– 1 root mmadmin 18 May 27 14:36 3.txt -rw-r–r– 1 root mmadmin 18 May 27 14:37 4.txt -rw-r–r– 1 root mmadmin 18 May 24 12:22 Linuxroutes.dat [root@destroyer]#

Как Переименовать Файл в Linux с Помощью Команды mv

Команда mv (сокращенно от «move») является одной из самых простых команд. Однако она выполняет две очень важные задачи при работе с файлами в Linux. Первая задача — перемещает файлы из одного места в другое, а вторая — переименовывает один или несколько файлов через терминал.

В первую очередь давайте посмотрим, как c помощью mv можно переименовать файл в Linux.

Для начала, мы обратимся к нашему серверу через командную строку, используя SSH (англ). Если вам нужны дополнительные инструкции по SSH, рекомендуем прочитать это руководство.

Чтобы получить доступ к нашему серверу, введите в свой терминал следующее:

ssh vash-user@vash-server

Если вместо сервера мы используем локальный компьютер, то нам придётся открыть терминал из главного меню.

Также нам важно узнать, как работает команда mv. Для этого мы запускаем команду, которая вызовет справку:

mv –help

Базовый синтаксис команды mv выглядит следующим образом:

mv [опция] [ИСХОДНЫЙ_ФАЙЛ]…[ДИРЕКТОРИЯ]

Вот список самых популярных опций mv:

  • -f – не показывать сообщение перед перезаписью файла.
  • -i – показывать предупреждающие сообщения перед перезаписью файла.
  • -u – перемещать файл, только если он новый или не существует в месте назначения.
  • -v – показать, что делает команда.

И параметры:

[ИСХОДНЫЙ_ФАЙЛ] — исходное местоположение файла

[МЕСТО_НАЗНАЧЕНИЯ] — каталог назначения.

Переименование Файла в Linux с Помощью Команды mv

Если мы хотим переименовать файл, мы можем сделать это так:

mv staroje_nazvanije_faila1 novoje_nazvanije_faila1

Допустим, что мы находимся в каталоге и у нас есть файл с именем file1.txt. Мы хотим изменить имя этого файла на file2.txt. В таком случае наша команда будет выглядеть так:

mv file1.txt file2.txt

Всё очень просто. Однако, если вы не в каталоге, вам нужно будет немного расширить команду. Вот её пример:

cd /home/user/docs/files mv file1.txt file2.txt

Как Переименовать Несколько Файлов с Помощью Команды mv

Команда mv может переименовать только один файл, но её можно использовать с другими командами для переименования нескольких файлов.

Давайте возьмём циклы findfor, или while и переименуем несколько файлов.

Например, чтобы изменить расширение всех файлов .txt на расширение .pdf, мы будем использовать следующую команду:

for f in *txt; do mv — “$f” “${f%.txt}.pdf” done

Она создаст цикл (for), который найдёт все файлы с расширением .txt, и заменит каждое расширение .txt на .pdf. Наконец, команда завершит цикл (done).

Если вам нужны более продвинутые функции, тогда стоит ознакомиться с ещё одной командой — rename. О ней и пойдёт речь дальше.

Переименование файла

Переименование файла myfile1.dat в файл myfile2.dat:

mv myfile1.dat myfile2.dat

Переименование файла с указанием пути до файла:

mv /home/pingvinus/myfile1.dat /home/pingvinus/myfile2.dat

Переименование директории

Переименование директории /home/pingvinus/mydir1 в директорию /home/pingvinus/mydir2. Справедливо, если /home/pingvinus/mydir2 не существует.

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

Если /home/pingvinus/mydir2 существует, то, выполнив команду:

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

директория mydir1 будет перемещена внутрь директории /home/pingvinus/mydir2. То есть mydir1 будет в результате находиться по адресу /home/pingvinus/mydir2/mydir1.

Переименование и перемещение

Если в качестве файла назначения указан новый путь и новое имя файла, то файл будет перемещен и переименован. Например, следующая команда перемещает файл myfile1.dat в директорию /home/pingvinus/dir и переименовывает его в myfile2.dat:

mv /home/pingvinus/myfile1.dat /home/pingvinus/dir/myfile2.dat

Как Переименовать Файл в Linux с Помощью Команды Rename

С утилитой rename у вас будет немного больше контроля. Многие конфигурации Linux включают её по умолчанию. Но, если она не установлена, вы можете быстро это сделать с помощью простой команды.

Если вы используете Debian, Ubuntu, LinuxMint и их производные:

sudo apt install rename

Если же вы пользователь CentOS 7 или RHEL:

sudo yum install rename

Команда для установки rename в Arch Linux:

yay perl-rename ## or yaourt -S perl-rename

Теперь мы можем начать использовать команду rename. Её основной синтаксис выглядит так:

rename ‘s/staroje-nazvanije/novoje-nazvanije/’ files

Команда выглядит сложнее, чем есть на самом деле.

В примере ниже мы создадим новую папку с именем filetorename и 5 файлов, используя для этого команду touch.

mkdir filetorenamecd filetorenametouch file{1..5}.txtls

С помощью последней команды ls вы можете просмотреть созданные вами файлы.

Если мы хотим переименовать только один файл с названием file1.txt, мы напишем следующую строку:

rename ‘s/file1/newfile1/’ file1.txt

Если же мы хотим изменить расширение всех файлов, например, на .php. Мы могли бы сделать это так:

rename ‘s/.txt/.php/’ *.txtls

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

rename ‘s/.txt/.php/’ ФАЙЛ/ПУТЬ

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

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

rename –help

Распространённые примеры использования команды rename:

  • Преобразовать имена файлов в верхний регистр:rename ‘y/a-z/A-Z/’ *
  • Преобразовать имена файлов в нижний регистр:rename ‘y/A-Z/a-z/’ *
  • Заменить пробелы в именах файлов символами подчёркивания:rename ‘y/ /_/’ *

Изменение расширения файлов

Массово изменить расширение .html на .php у всех html-файлов.

rename ‘s/.html/.php/’ *.html

По умолчанию rename не перезаписывает существующие файлы. Чтобы существующие файлы перезаписывались, используется опция -f:

rename -f ‘s/.html/.php/’ *.html

Замена пробелов на подчеркивание

Заменить все символы пробелов в имени файлов на символ подчеркивания:

rename ‘y/ /_/’ *

Конвертация имен файлов в строчные буквы

rename ‘y/A-Z/a-z/’ *

Конвертация имен файлов в прописные буквы

rename ‘y/a-z/A-Z/’ *

Показать, что именно будет переименовано, но не переименовывать

Чтобы избежать ошибок при переименовании файлов, особенно при использовании сложных регулярных выражений, можно сначала вывести список того, что будет переименовано, но не запускать само переименование. Для этого служит опция -n.

Например, мы хотим изменить расширение у файлов с .jpeg на .jpg. Используем опцию -n, чтобы просто вывести какие файлы будут переименованы:

rename -n ‘s/.jpeg$/.jpg/’ * class=”line”>

Полное описание команд mv и rename можно получить, выполнив в терминале команды:

man mv man rename

Как Удалить Утилиту Remove

Если вы больше не хотите, чтобы команда rename была установлена в вашей системе, удалите её с помощью диспетчера ПО или из терминала.

Для Debian, Ubuntu, Linux Mint и производных:

sudo apt remove rename

Для CentOS и RHEL:

sudo yum remove rename

Вот и всё, rename удалено с вашей машины Linux.

Команда rename для переименования файла Linux

Для воплощения данной задумки в жизнь юзер системы может воспользоваться командой под названием «rename». Как и её аналоги, она тоже разработана для этих целей, но имеет за собой более обширный функционал. С её помощью легко выполнить массовое переименование документов Линукс. В отдельно взятых случаях это действительно необходимо.

Как выглядит синтаксическая структура команды:

 rename опции старое_имя новое_имя файлы

Какие функции программы могут потребоваться пользователю Linux:

  • v – демонстрация перечня файлов, которые были обработаны.
  • n – запуск пробного режима (теста) для более подробного изучения специфики команды. Это означает, что заданные манипуляции не будут реализованы на практике.
  • -f – опция для принудительной перезаписи файлов, которые уже наличествуют в системе.

И сразу же рассмотрим на примере. Допустим, нужно поменять название для всех txt файлов из каталога в .doc:

$ rename ’s.txt/.doc/’ *.txt

Примечание: наличие символа «*» в заданной команде подразумевает переименование всех файлов, которые содержатся в каталоге.

Способ 1: pyRenamer

К сожалению, программное обеспечение pyRenamer не поставляется в стандартном наборе предустановок дистрибутива. Однако, как и все в Linux, его можно скачать и установить из официального репозитория. Команда для загрузки и установки следующая:

sudo apt install pyrenamer

После ее ввода укажите пароль и нажмите Enter. Далее необходимо будет подтвердить выполняемые действия. Для этого введите букву «Д» и нажмите снова Enter. Останется лишь подождать загрузки и установки (не закрывайте «Терминал» до завершения процесса).

После установки программу можно будет запустить, предварительно совершив поиск по системе с ее названием.

Основным отличием pyRenamer от менеджера файлов является то, что приложение способно взаимодействовать со множеством файлов одновременно. Она отлично подойдет в тех случаях, когда нужно поменять название сразу в нескольких документах, убрав какую-то часть или заменив ее на другую.

Давайте рассмотрим работу по переименованию файлов в программе:

  1. Открыв программу, вам необходимо проложить путь к директории, где находятся файлы, которые нужно переименовать. Делается это в левом рабочем окне (1). После определения директории в правом рабочем окне (2) будут показаны все файлы, находящиеся в ней.
  2. Далее необходимо перейти во вкладку «Substitutions».
  3. В этой вкладке вам нужно поставить галочку рядом с пунктом «Replace», чтобы поля для ввода стали активными.
  4. Теперь можно приступать к переименованию файлов в выбранной директории. Рассмотрим на примере четырех файлов «Безымянный документ» с порядковым числом. Допустим, нам необходимо заменить слова «Безымянный документ» на слово «Файл». Для этого нужно в первое поле ввести заменяемую часть имени файла, в данном случае «Безымянный документ», а во второе фразу, которая будет заменять — «Файл».
  5. Чтобы просмотреть, что получится в итоге, можно нажать кнопку «Preview» (1). Все изменения отобразятся в графе «Renamed file name» в правом рабочем окне.
  6. Если изменения вас устраивают, вы можете нажать кнопку «Rename», чтобы применить их к выбранным файлам.

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

На самом деле с помощью pyRenamer можно выполнить намного больше действий с файлами. Не только заменить одну часть имени на другую, но и, используя шаблоны во вкладке «Patterns», задать переменные, и, управляя ими, видоизменять названия файлов как угодно. Но подробно инструкцию нет смысла расписывать, так как при наведении курсора на активные поля высветится подсказка.

Способ 2: Терминал

К сожалению, не всегда получается переименовать файл с помощью специальных программ с графическим интерфейсом. Порою может возникнуть ошибка или что-то подобное, мешающее выполнению данной задачи. Но в Линуксe есть куда более одного способа выполнения поставленной задачи, поэтому переходим прямиком в «Терминал».

Команда mv

Команда mv в Линуксе отвечает за перемещение файлов из одной директории в другую. Но по своей сути перемещение файла схоже с переименованием. Так, используя эту команду, если переместить файл в ту же папку, в которой он находится, при этом задав новое имя, получится его переименовать.

Теперь давайте подробно разберемся с командой mv.

Синтаксис и опции команды mv

Синтаксис выглядит следующим образом:

mv опция оригинальное_имя_файла имя_файла_после_переименования

Чтобы пользоваться всеми возможностями данной команды, необходимо изучить ее опции:

  • -i — запрашивать разрешении при замене существующих файлов;
  • -f — заменять существующий файл без разрешения;
  • -n — запретить замену существующего файла;
  • -u — разрешить замену файла, если в нем присутствуют изменения;
  • -v — показать все обработанные файлы (список).

После того как мы разобрались со всеми особенностями команды mv, можно приступать непосредственно к самому процессу переименования.

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

Сейчас будет рассмотрена ситуация, когда в папке «Документы» находится файл с именем «Старый документ», наша задача переименовать его в «Новый документ», используя для этого команду mv в «Терминале». Для этого нам необходимо вписать:

mv -v “Старый документ” “Новый документ”

Примечание: чтобы операция прошла успешно, необходимо нужную папку открыть в «Терминале» и только после этого проводить все манипуляции. Открыть папку в «Терминале» можно при помощи команды cd.

Пример:


Как можно видеть на изображении, нужный нам файл получил новое имя. Обратите внимание, что в «Терминале» указана опция «-v», которая строчкой ниже вывела подробный отчет о выполненной операции.

Также, используя команду mv, можно не только переименовать файл, но и попутно переместить его в другую папку. Как говорилось выше, данная команда именно для этого и нужна. Чтобы это сделать надо, помимо указания имени файла, прописать путь к нему.

Допустим, вы хотите из папки «Документы» переместить файл «Старый документ» в папку «Видео» попутно переименовав его в «Новый документ». Вот как будет выглядеть команда:

mv -v /home/user/Документы/”Старый документ” /home/user/Видео/”Новый документ”

Важно: если имя файла состоит из двух и более слов, его необходимо заключать в кавычки.

Пример:


Примечание: если к папке, в которую вы собираетесь переместить файл, попутно переименовав его, у вас нет прав доступа, необходимо выполнять команду через суперпользователя, прописав в начале «super su» и введя пароль.

Команда rename

Команда mv хороша, когда необходимо переименовать один файл. И, безусловно, замены ей в этом не найти — она лучшая. Однако, если необходимо переименовать множество файлов или же заменить лишь часть имени, то фаворитом становится команда rename.

Синтаксис и опции команды rename

Как и с прошлой командой, для начала разберемся с синтаксисом rename. Выглядит он следующим образом:

rename опция ‘s/старое_имя_файла/новое_имя_файла/’ имя_файла

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

Теперь давайте рассмотрим опции, они следующие:

  • -v — показать обработанные файлы;
  • -n — предварительный просмотр изменений;
  • -f — принудительно переименовать все файлы.

Теперь давайте рассмотрим наглядные примеры данной команды.

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

Допустим, в директории «Документы» у нас есть множество файлов с названием «Старый документ num», где num — это порядковый номер. Наша задача, используя команду rename, во всех этих файлах изменить слово «Старый» на «Новый». Для этого нам необходимо выполнить следующую команду:

rename -v ‘s/Старый/Новый/’ *

где, «*» — все файлы в указанной директории.

Примечание: если вы хотите провести изменение в одном файле, то вместо «*» пропишите его имя. Не забывайте, если имя состоит из двух и более слов, то его необходимо брать в кавычки.

Пример:


Примечание: с помощью данной команды можно запросто изменить расширения файлов, указав изначально старое расширения, записав его, например, в виде «.txt», а затем новое, например, «.html».

С помощью команды rename также можно менять регистр текста имени. Например, мы хотим файлы с именем «NEW FILE (num)» переименовать в «new file (num)». Для этого нужно прописать следующую команду:

rename -v ‘y/A-Z/a-z/’ *

Пример:


Примечание: если необходимо поменять регистр в имени файлов на русском, то используйте команду «rename -v ‘y/А-Я/а-я/’ *».

Способ 3: Файловый менеджер

К сожалению, в «Терминале» не всякий пользователь сможет разобраться, поэтому будет разумно рассмотреть способ переименования файлов с использованием графического интерфейса.

Взаимодействие с файлами в Linux хорошо осуществлять при помощи менеджера файлов, будь то Nautilus, Dolphin или любой другой (зависит от дистрибутива Linux). Он позволяет визуализировать не только файлы, но и директории, а также каталоги, выстраивая их иерархию в том виде, который более понятен неопытному пользователю. В таких менеджерах легко сможет сориентироваться даже новичок, который только-только установил себе Linux.

Переименовать файл при помощи файлового менеджера просто:

  1. Для начала вам необходимо открыть сам менеджер и перейти в ту директорию, где расположен файл, нуждающийся в переименовании.
  2. Теперь необходимо навести курсор на него и нажать левую кнопку мыши (ЛКМ), чтобы выделить. После чего клавишу F2 или правую клавишу мыши и выбрать пункт “Переименовать”.
  3. Под файлом появится форма для заполнения, а само имя файла станет выделенным. Вам остается лишь ввести необходимое название и нажать клавишу Enter для подтверждения изменений.

Вот так просто и быстро можно переименовать файл в Линуксe. Представленная инструкция работает во всех файловых менеджерах различных дистрибутивов, однако могут быть различия в наименовании каких-то элементов интерфейса или в их отображении, но общий смысл действий остается одинаковым.


[spoiler title=”Источники”]

  • https://andreyex.ru/operacionnaya-sistema-linux/polnoe-rukovodstvo-pereimenovat-fajl-v-linux/
  • https://www.hostinger.ru/rukovodstva/kak-pereimenovat-fail-linux/
  • https://pingvinus.ru/note/rename-files
  • https://www.vseprolinux.ru/kak-pereimenovat-fajl-v-linux
  • https://lumpics.ru/how-to-rename-a-file-in-linux/


[/spoiler]


2020-07-27T15:39:45
Linux

Изучаем команды linux: awk



























Rate this post

AWK назван в честь фамилии его авторов: Альфред Ахо, Питер Вайнбергером и Брайан Керниган. AWK очень полезный язык сценариев для обработки текста. Этот язык выполняется в интерпретаторе. Это позволяет пользователю обрабатывать некоторые входные, определять переменные, использовать логические операторы, строки и числовые функции, извлечения данных и создания отформатированных отчетов. Синтаксис AWK очень близок с языку C и является прямым предшественником Perl. Все сценарии AWK могут быть преобразованы в сценарии Perl с использованием утилиты A2P.

Для чего нужен awk?

awk – это утилита/язык для извлечения данных. Именно awk являлся источником вдохновения для Larry Wall, когда он создавал Perl. Для выполнения различных практических задач по обработке текста awk часто используется совместно с sed. В зависимости от поставленной задачи вы можете использовать либо awk, либо Perl, хотя это в большей степени зависит от личных предпочтений. Как и sed, awk читает за один раз одну строку, выполняет определенные действия в зависимости от заданных опций, и выводит результат. Одним из самых простых и популярных способов использования awk является выбор столбца из текстового файла или из вывода другой команды. Когда я устанавливал Debian на свою вторую рабочую станцию, я использовал awk для того, чтобы получить список установленных на первой машине, и скормить его aptitude. Я делал это с помощью команды вида:

$ dpkg -l | awk ‘ {print $2} ‘ > installed

В настоящее время большинство менеджеров пакетов предоставляют такую возможность, например это можно сделать с помощью команды rpm’s -qa, но вывод содержит больше информации, чем мне нужно. Я вижу, что второй столбец вывода dpkg -l содержит названия установленных пакетов, поэтому я использовал вышеприведенную команду, чтобы извлечь только второй столбец.

В защиту awk

В этой серии статей я собираюсь сделать из читателя искусного программиста на awk. Я согласен, что у awk не самое приятное и модное имя, а GNU-версия awk, названная gawk, звучит откровенно странно. Незнакомые с этим языком программисты, услышав его название, возможно, представят себе мешанину древнего и устаревшего кода, способного довести до умопомрачения даже самого знающего специалиста по UNIX (заставив его восклицать “kill -9!” и беспрестанно бегать за кофе).

Да, у awk отнюдь не замечательное имя. Но это замечательный язык. Awk создан для обработки текста и создания отчетов, но у него много хорошо проработанных функций, дающих возможность серьезного программирования. При этом, в отличие от некоторых других языков, синтаксис awk привычен и заимствует лучшее из таких языков, как C, python и bash (хотя формально awk был создан до python и bash). Awk — один из тех языков, которые, будучи один раз выучены, становятся ключевой частью стратегического арсенала программиста.

Базовые концепции

Как уже говорилось, действия, выполняемые awk, заключаются в фигурные скобки, а вся команда – в одинарные кавычки: awk ‘condition { action }‘. В нашем примере условий нет, но если мы захотим, например, выбрать только установленные пакеты, относящиеся к vim, (да, есть grep, но ведь это пример, кроме того, зачем использовать две утилиты, если можно использовать одну), мы могли мы набрать:

$ dpkg -l | awk ‘ /’vim’/ {print $2} ‘

Эта команда выведет все установленные пакеты, содержащие “vim” в названиях. Одна из причин, по которой рекомендуется использовать awk – он быстр. Если заменить “vim” на “lib”, в моей системе получится список из более чем 1300 пакетов. Встречаются ситуации, где данных намного больше, и в этих случаях awk показывает все свои преимущества. В любом случае, давайте рассмотрим примеры, которые помогут понять многие аспекты использования программы. Но перед этим будет полезно узнать, что существует несколько диалектов и реализаций awk. Примеры, приведенные в данной статье, относятся к GNU awk (так к реализации, так и к диалекту). Из-за различий в интерпретации кавычек, мы можем использовать bash, ksh или sh, но не можем использовать (t)csh.

Предпосылки

Интерпретатор AWK является стандартным инструментом, найденным на каждом дистрибутиве Linux. Пакет gawk содержит версию AWK с открытым исходным кодом, и в зависимости от дистрибутива Linux он может быть установлен из исходного файла или с помощью пакетов gawk или mawk, включенных в конкретный дистрибутив Linux.

Как работает awk?

На самом деле awk – это изначально язык программирования, предназначенный для обработки текста/данных. Поскольку, как уже отмечалось, в Linux-системах основной средой для взаимодействия между пользователем и машиной является текст, то обработка достаточно больших его объёмов вручную способна была парализовать на некоторое время процесс выполнения основной работы. Требовался инструмент для обеспечения автоматической обработки данных и позволяющий использовать эту возможность «на лету», т. е. прямо при работе в командной оболочке. Лучшим средством для достижения этой цели является использование специализированного языка программирования и регулярных выражений, которое реализовано в виде одноимённой утилиты — команды awk.

Справедливо заметить, что awk – это прежде всего Си-подобный язык программирования, но для удобства понимания, под awk принято понимать утилиту или команду. Разработчиками языка AWK являются Alfred V. Aho, Peter J. Weinberger и Brian W. Kernighan, по сокращённым инициалам которых язык и получил своё название. Создан язык в 1977 году. Кстати, на основе AWK когда-то был создан язык Perl, который и по сей день является одним из самых мощных языков для высокопроизводительной обработки данных.

В качестве исходных данных awk принимает на вход строку и после её обработки в зависимости от конкретных опций выдаёт результат. Исходные данные могут поступать из файла или из вывода другой команды/программы. Самым распространённым случаем использования awk является выборка определённых столбцов из результата вывода других команд, например:

$ ll | awk ‘{print $9}’

В результате вывод будет примерно таким:


Следует напомнить, что по-умолчанию вывод команды ll выглядит следующим образом:


Как видно, команда awk помогла вывести только отдельный столбец из общего вывода ll – с именами каталогов и файлов.

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

Установка

Войдите на сервер через SSH с правами суперпользователя

ssh root@IP_Address

Для того, чтобы установить утилиту командной строки  AWK на CentOS/Fedora или на любую другую на основе RPM распределения Linux, выполните следующую команду:

yum install gawk

В Ubuntu/Debian, вам нужно вызвать эту команду, чтобы установить Gawk:

apt-get install gawk

Примеры команды AWK

Простые команды awk могут быть легко запущены из командной строки, а для более сложных задач должны быть записаны в виде сценариев awk в файл. Ниже перечислены некоторые полезные примеры команд awk и исполняемых скриптов.

Вы можете использовать команду AWK для печати только определенных столбцов из поля ввода. Например, с помощью команды приведенной ниже вы можете узнать список IP-адресов, которые подключены к серверу:

netstat -anp|grep tcp|awk ‘{print $5}’| cut -d : -f1 | sort | uniq -c | sort -n

Это очень полезно, если вы расследуете, находиться ли ваш сервер под атакой DoS или DDoS.

В следующем примере мы используем AWK для поиска конкретного шаблона в определенных столбцах и делаем какое-то действие, на основе результата:

exim -bpr | grep frozen | awk {‘print $3’} | xargs exim -Mrm

Выше команда удалит все замороженные сообщения электронной почты из почтовой очереди Exim.

AWK часто используется для выполнения полезной и практической обработки и манипуляции текста. Например, мы можем использовать AWK для удаления дубликатов в текстовом файле без сортировки:

awk ‘!x[$0]++’ file-with-duplicates > new-file-without-duplicates

Следующая команда напечатает пять случайных чисел от 0 до 999:

awk ‘BEGIN { for (i = 1; i <= 5; i++) print int(1000 * rand()) }’

Используйте следующую команду, чтобы подсчитать количество строк в файле с именем «sample_file»:

awk ‘END { print NR }’ sample_file

Следующая команда выведет все строки в файле «sample_file», которые содержат строки, начинающиеся с ‘ A ‘ или ‘a’, за которыми следует ‘ re’:

awk ‘/[Aa]re/{print}’ /opt/sample_file

Вы можете использовать команду AWK для более сложных операций. Если ваш веб-сайт работает довольно медленно, вы можете использовать следующую команду, чтобы проверить, есть ли какая-то проблема с диском I/O (и/или сети, в некоторых редких случаях):

tac /proc/stat | awk ‘/^btime/ {up=systime()-$2;print “up ” up/86400 “d”}; /^cpu / {print “user ” $2/up “%, nice ” $3/up “%, sys ” $4/up “%, idle ” $5/up “%, iowait ” $6/up “%, steal ” $9/up “%niowait/used ” $6 / ($2+$3+$4) “, steal/used ” $9 / ($2+$3+$4) }’

IOWAIT означает, как долго процессы блокируются занятые вводом/выводом, в основном дискового хранения или, возможно, сети. STEAL означает, как долго процессы блокируются удачей CPU Time slice на сервере. Выше iowait на время процессора пользователя (=USER + NICE + SYSTEM) показывает занят ввода / вывода, выше украсть просматривается показывает занят CPU.

Следующий сценарий использует простую команду awk, которая выполняет поиск во входном файле ‘/etc/passwd ‘ и предоставляет вывод с именем пользователя, за которым следует дата и время последнего входа:

vi login-check#!/bin/bash for user in `awk -F: ‘{print $1}’ /etc/passwd` do echo -n “$user: ” finger $user | grep Last if [ $? != 0 ]; then echo fi done

Сделайте скрипт исполняемым:

chmod 755 login-check

Выполните скрипт:

./login-check

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

Первый шаг в awk

Давайте начнем и попробуем поэкспериментировать с awk, чтобы увидеть, как он работает. В командной строке введем следующую команду:

$ awk ‘{ print }’ /etc/passwd

В результате должно быть показано содержимое файла /etc/passwd. Теперь — объяснение того, что делал awk. Вызывая awk, мы указали /etc/passwd в качестве входного файла. Когда мы запустили awk, он обработал команду print для каждой строки в /etc/passwd по порядку. Весь вывод отправлен в stdout, и мы получили результат, идентичный результату команды cat /etc/passwd. Теперь объясним блок { print }. В awk фигурные скобки используются для группирования блоков текста, как в C. В нашем блоке текста есть лишь одна команда print. В awk команда print без дополнительных параметров печатает все содержимое текущей строки.

Вот еще один пример программы на awk, которая делает то же самое:

$ awk ‘{ print $0 }’ /etc/passwd

В awk переменная $0 представляет всю текущую строку, поэтому print и print $0 делают в точности одно и то же. Если угодно, можно создать программу на awk, которая будет выводить данные, совершенно не связанные с входными данными. Вот пример:

$ awk ‘{ print “” }’ /etc/passwd

При передаче строки “” команде print она всегда печатает пустую строку. Если протестировать этот скрипт, обнаружится, что awk выводит одну пустую строку на каждую строку в файле /etc/passwd. Это опять-таки происходит потому, что awk исполняет скрипт для каждой строки во входном файле. Вот еще один пример:

$ awk ‘{ print “hiya” }’ /etc/passwd

Если запустить этот скрипт, он заполнит экран словами «ура». 🙂

Множественные поля

Awk хорошо подходит для обработки текста, разбитого на множество логических полей, и дает возможность без усилий обращаться к каждому отдельному полю из awk-скрипта. Следующий скрипт распечатает список всех учетных записей в системе:

$ awk -F”:” ‘{ print $1 }’ /etc/passwd

В вызове awk в вышеприведенном примере параметр –F задает “:” в качестве разделителя полей. Обрабатывая команду print $1, awk выводит первое поле, встреченное в каждой строке входного файла. Вот еще один пример:

$ awk -F”:” ‘{ print $1 $3 }’ /etc/passwd

Вот фрагмент из вывода на экран этого скрипта:

halt7 operator11 root0 shutdown6 sync5 bin1 ….etc.

Как видим, awk выводит первое и третье поля файла /etc/passwd, которые представляют собой соответственно поля имени пользователя и uid. При этом, хотя скрипт и работает, он не совершенен — нет пробелов между двумя выходными полями! Те, кто привык программировать в bash или python, возможно ожидали, что команда print $1 $3 вставит пробел между этими двумя полями. Однако когда в программе на awk две строки оказываются рядом друг с другом, awk сцепляет их без добавления между ними пробела. Следующая команда вставит пробел между полями:

$ awk -F”:” ‘{ print $1 ” ” $3 }’ /etc/passwd

Когда print вызывается таким способом, он последовательно соединяет $1, ” ” и $3, создавая удобочитаемый вывод на экране. Конечно, мы можем также вставить метки полей, если нужно:

$ awk -F”:” ‘{ print “username: ” $1 “ttuid:” $3″ }’ /etc/passwd

В результате получаем такой вывод:

username: halt uid:7 username: operator uid:11 username: root uid:0 username: shutdown uid:6 username: sync uid:5 username: bin uid:1 ….etc.

Использование awk в Linux

Простейшая и часто востребованная задача – выборка полей из стандартного вывода. Вы не найдете более подходящего инструмента для решения этой задачи, чем awk. По умолчанию awk разделяет поля пробелами. Если вы хотите напечатать первое поле, вам нужно просто использовать функцию print и передать ей параметр $1, если функция одна, то скобки можно опустить:

echo ‘one two three four’ | awk ‘{print $1}’


Да, использование фигурных скобок немного непривычно, но это только в первое время. Вы уже догадались как напечатать второе, третье, четвертое, или другие поля? Правильно это $2, $3, $4 соответственно.

echo ‘one two three four’ | awk ‘{print $3}’


Иногда необходимо представить данные в определенном формате, например, выбрать несколько слов. AWK легко справляется с группировкой нескольких полей и даже позволяет включать статические данные:

echo ‘one two three four’ | awk ‘{print $3,$1}’


echo ‘one two three four’ | awk ‘{print “foo:”,$3,”| bar:”,$1}’


Если поля разделены не пробелами, а другим разделителем, просто укажите в параметре -F нужный разделитель в кавычках, например “:” :

echo ‘one mississippi:two mississippi:three mississippi:four mississippi’ | awk -F”:” ‘{print $4}’


Но разделитель не обязательно заключать в кавычки. Следующий вывод аналогичен предыдущему:

echo ‘one mississippi:two mississippi:three mississippi:four mississippi’ | awk -F: ‘{print $4}’


Иногда нужно обработать данные с неизвестным количеством полей. Если вам нужно выбрать последнее поле можно воспользоваться переменной $NF. Вот так вы можете вывести последнее поле:

echo ‘one two three four’ | awk ‘{print $NF}’


Также вы можете использовать переменную $NF для получения предпоследнего поля:

echo ‘one two three four’ | awk ‘{print $(NF-1)}’


Или поля с середины:

echo ‘one two three four’ | awk ‘{print $((NF/2)+1)}’

echo ‘one two three four five’ | awk ‘{print $((NF/2)+1)}’


Все это можно сделать с помощью таких утилит как sed, cut и grep но это будет намного сложнее.

Как я рассказывал выше, awk обрабатывает одну строку за раз, вот этому подтверждение:

echo -e ‘one 1n two 2’ | awk ‘{print $1}’


А вот пример фильтрации с помощью условия, выведем только строку, в которой содержится текст one:

echo -e ‘one 1n two 2’ | awk ‘/one/ {print $1}’


А вот пример использования операций с переменными:

echo -e ‘one 1n two 2’ | awk ‘{sum+=$2} END {print sum}’


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

Представьте себе, у нас есть журнал доступа, который выглядит так:


Мы можем подсчитать, что количество переданных байт, это десятое поле. Дальше идёт User-Agent пользователя и он нам не интересен:

cat /var/log/apache2/access.log | awk ‘{print $10}’


Вот так можно подсчитать количество байт:

< requests.log awk ‘{totalBytes+=$NF} END {print totalBytes}’


Это только несколько примеров показывающих использование awk в Linux , освоив awk один раз в получите очень мощный и полезный инструмент на всю жизнь.

Синтаксис команды awk

Сначала надо понять как работает утилита. Она читает документ по одной строке за раз, выполняет указанные вами действия и выводит результат на стандартный вывод. Одна из самых частых задач, для которых используется awk – это выборка одной из колонок. Все параметры awk находятся в кавычках, а действие, которое надо выполнить – в фигурных скобках. Вот основной её синтаксис:

$ awkопции’условие{действие}’

$ awkопции’условие{действие} условие {действие}’

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

  • -F, –field-separator – разделитель полей, используется для разбиения текста на колонки;
  • -f, –file – прочитать данные не из стандартного вывода, а из файла;
  • -v, –assign – присвоить значение переменной, например foo=bar;
  • -b, –characters-as-bytes – считать все символы однобайтовыми;
  • -d, –dump-variables – вывести значения всех переменных awk по умолчанию;
  • -D, –debug – режим отладки, позволяет вводить команды интерактивно с клавиатуры;
  • -e, –source – выполнить указанный код на языке awk;
  • -o, –pretty-print – вывести результат работы программы в файл;
  • -V, –version – вывести версию утилиты.

Это далеко не все опции awk, однако их вам будет достаточно на первое время. Теперь перечислим несколько функций-действий, которые вы можете использовать:

  • print(строка) – вывод чего либо в стандартный поток вывода;
  • printf(строка) – форматированный вывод в стандартный поток вывода;
  • system(команда) – выполняет команду в системе;
  • length(строка) – возвращает длину строки;
  • substr(строка, старт, количество) – обрезает строку и возвращает результат;
  • tolower(строка) – переводит строку в нижний регистр;
  • toupper(строка) – переводить строку в верхний регистр.

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

В функциях-действиях можно использовать различные переменные и операторы, вот несколько из них:

  • FNR – номер обрабатываемой строки в файле;
  • FS – разделитель полей;
  • NF – количество колонок в данной строке;
  • NR – общее количество строк в обрабатываемом тексте;
  • RS – разделитель строк, по умолчанию символ новой строки;
  • $ – ссылка на колонку по номеру.

Кроме этих переменных, есть и другие, а также можно объявлять свои.

Условиепозволяет обрабатывать только те строки, в которых содержатся нужные нам данные, его можно использовать в качестве фильтра, как grep. А ещё условие позволяет выполнять определенные блоки кода awk для начала и конца файла, для этого вместо регулярного выражения используйте директивы BEGIN (начало) и END (конец). Там ещё есть очень много всего, но на сегодня пожалуй достаточно. Теперь давайте перейдем к примерам.

5. Заключение

Как вы можете видеть, с помощью awk вы можете выполнять большое количество операций по обработке текста и множество других полезных вещей. Мы не вдавались в более сложные предметы, такие как предопределенные функции awk, но мы показали достаточно (как мы надеемся), чтобы вы запомнили, каким мощным инструментом является awk.


[spoiler title=”Источники”]

  • https://andreyex.ru/operacionnaya-sistema-linux/primery-komandy-awk/
  • http://rus-linux.net/MyLDP/consol/awk.html
  • https://www.ibm.com/developerworks/ru/library/l-awk1/index.html
  • https://ITProffi.ru/ispolzovanie-awk-v-linux/
  • https://losst.ru/ispolzovanie-awk-v-linux


[/spoiler]


2020-07-27T15:39:45
Linux

Добавление пользователя в группу



























Rate this post

Синтаксис:

useradd <имя пользователя=””> [опции]

* опции не являются обязательными при создании пользователя.

Пример:

useradd dmosk

* в данном примере создается учетная запись dmosk.

Для учетной записи стоит сразу создать пароль:

passwd dmosk

* после ввода, система попросит ввести пароль дважды.

Ключи (опции)

КлючОписание и примеры
























-bЗадает базовый каталог для домашнего каталога
useradd dmosk -b /var/home
-cСоздает комментарий для описания учетной записи
useradd dmosk -c “Пользователя для управления системой”
-dПолный путь к домашнему каталогу пользователя
useradd dmosk -d /home/newuser
-DПозволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd dmosk -Ds /bin/bash
-eДата, после которой учетная запись устареет.
useradd dmosk -e 2017-12-31
-fЧисло дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd dmosk -f 0
-gЗадает основную группу
useradd dmosk -g altternativegroup
-GЗадает дополнительные группы
useradd dmosk -G wheel
-kПуть к источнику скелета (файлы с шаблонами для нового пользователя)
useradd dmosk -k /var/skel
-mПри создании пользователя создать домашний каталог
useradd dmosk -m
-MНе создавать домашний каталог
useradd dmosk -M
-NНе создавать основную группу с таким же именем, как у пользователя
useradd dmosk -N
-oРазрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-pЗадает пароль
useradd dmosk -p pass
-rСистемная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN – SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-RКаталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-sПуть до оболочки командной строки
useradd dmosk -s /bin/csh
-uЗадает UID
useradd dmosk -u 666
-UИмя группы будет таким же, как у пользователя
useradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Редактирование

Синтаксис:

usermod <имя пользователя=””> [опции]

Пример:

usermod dmosk -G wheel

* эта команда добавит пользователя dmosk в группу wheel

Удаление

Синтаксис:

userdel <имя пользователя=””> [опции]

Пример:

userdel dmosk

Блокировка

Можно заблокировать пользователя, не удаляя его из системы:

usermod -L <имя пользователя=””>

Пример:

usermod -L dmosk

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя=””>

Работа с группами

Добавление:

groupadd <группа> [опции]

Редактирование:

groupmod <группа> [опции]

Удаление:

groupdel <группа> [опции]

Как узнать, в какие группы входит пользователь

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

groups

Чтобы просмотреть числовые идентификаторы, связанные с каждой группой, выполните команду id:

id

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

groups user_name

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

id user_name

Первой группой в списке групп или группой, показанной после «gid=» в списке идентификаторов, является первичная группа учетной записи пользователя. Другие группы – это вторичные группы. Итак, на скриншоте ниже основной группой учетной записи пользователя является mial.

Добавление существующего пользователя в существующую группу

Используйте usermod с опциями -a (append — добавить) и -G — group:

# useradd testuser4 # groups testuser4 testuser4 : testuser4

Создаем группу:

# groupadd testgr2

Добавляем в нее пользователя:

# usermod -a -G testgr2 testuser4

Проверяем:

# groups testuser4 testuser4 : testuser4 testgr2

Что бы изменить основную группу существующего пользователя — выполните:

# usermod -g testgr2 testuser4 # groups testuser4 testuser4 : testgr2

Добавление нового пользователя в дополнительную группу

Создадим группу:

# groupadd testgr1

С помощью useradd и параметра -G добавляем пользователя, которому добавляем новую группу, как дополнительную:

# useradd -G testgr1 testuser1

Проверяем:

# groups testuser1 testuser1 : testuser1 testgr1 # id testuser1 uid=1003(testuser1) gid=1004(testuser1) groups=1004(testuser1),1003(testgr1)

Что бы изменить основную группу при создании пользователя — используйте useradd с опцией -g:

# useradd -g sudo testuser2

Проверяем:

# groups testuser2 testuser2 : sudo

Можно комбинировать опции:

# useradd -g sudo -G testgr1 testuser3 # groups testuser3 testuser3 : sudo testgr1

Добавление пользователя в несколько групп

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

usermod -a -G group1,group2,group3 user_name

Например, чтобы добавить пользователя с именем mial в группы ftp, sudo и example, вы должны запустить:

usermod -a -G ftp,sudo,example mial

Вы можете указать столько групп, сколько хотите – просто разделите их все запятой.

Удаление пользователя из группы

Удалим пользователя pingvinus из группы editorsgroup.

sudo gpasswd -d pingvinus editorsgroup

Чтобы изменения вступили в силу, нужно выйти и войти в систему.

Как просмотреть все группы в системе

Если вы хотите просмотреть список всех групп в вашей системе, вы можете использовать команду getent:

getent group

Этот вывод также покажет вам, какие учетные записи пользователей являются членами групп. Итак, на скриншоте ниже мы видим, что учетные записи пользователей syslog и mial являются членами группы adm.

Это должно охватывать все, что вам нужно знать о добавлении пользователей в группы в командной строке Linux.

Список всех групп

Выведем список всех групп в текущей системе Linux.

cut -d: -f1 /etc/group | sort

Список всех пользователей

Выведем список всех пользователей в текущей системе Linux.

cut -d: -f1 /etc/passwd

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

root daemon bin sys sync games … nobody pingvinus

Можно ограничить вывод только теми пользователями, для которых домашняя директория расположена в директории /home.

cat /etc/passwd | grep ‘/home’ | cut -d: -f1

Результат значительно короче.

syslog ntp pingvinus Войдите, чтобы ставить лайкимне нравитсяЛайков: +2 войдите, чтобы ставить лайки

Пример добавления пользователя в группу в ОС Linux :

1. Первичная группа

  • По умолчанию основная группа:

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


[root@destroyer ~]# useradd andreyex_user

Подтвердить


[root@destroyer ~]# id andreyex_user uid=508(andreyex_user) gid=508(andreyex_user) groups=508(andreyex_user) [root@destroyer ~]#

В приведенном выше выводе, по умолчанию пользователь “andreyex_user” принадлежит к основной группе с тем же именем.

  • ОС Linux добавить пользователя в группу при создании пользователя.

Допустим, вы хотите указать группу первичной не по умолчанию, при создании пользователя. Например: Вы хотите создать пользователя masterkey и вы хотите быть частью группы sales в качестве основной группы.


[root@destroyer ~]# useradd masterkey -g sales

Перепроверьте


[root@destroyer ~]# id masterkey uid=510(masterkey) gid=509(sales) groups=509(sales) [root@destroyer ~]#

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

useradd: group ‘sales’ does not exist

В случае ошибки выше, создать группу первой при помощи команды groupadd перед командой useradd.


[root@destroyer ~]# groupadd sales

  • ОС Linux добавить пользователя в группу для существующего пользователя.

В случае, если вы уже создали пользователя и в дальнейшем вы хотите изменить первичную группу пользователя. То используйте команду usermod. Например, вы хотите изменить основную группу sales на accounts для пользователя masterkey. Используйте следующую команду для этого.


[root@destroyer ~]# usermod -g accounts masterkey

Перепроверьте:


[root@destroyer ~]# id masterkey uid=510(masterkey) gid=510(accounts) groups=510(accounts) [root@destroyer ~]#

2. Вторичная группа (дополнительная группа)

  • Добавить пользователя в группу при создании пользователя в ОС Linux.

Можно указать вторичную группу при создании пользователя непосредственно с помощью опции “-g”.


[root@destroyer ~]# useradd -G sales delphi

Перепроверьте с помощью следующей команды:


[root@destroyer ~]# id delphi uid=511(delphi) gid=511(delphi) groups=511(delphi),509(sales) [root@destroyer ~]#

Приведенный выше вывод подтверждает, что sales является вторичной группой в то время как основная группа delphi.

  • Linux добавить пользователя в группу при создании пользователя с несколькими вторичными группами.

Можно указать несколько вторичных групп с помощью запятой при создании самого пользователя в команде useradd.


[root@destroyer ~]# useradd -G sales,accounts,marketing bar

Подтвердите с помощью следующей команды:


[root@destroyer ~]# id bar uid=512(bar) gid=513(bar) groups=513(bar),509(sales),510(accounts),512(marketing) [root@destroyer ~]#

Кроме того, есть еще один способ подтверждения:


[root@destroyer ~]# cat /etc/group|grep bar sales:x:509:delphi,bar accounts:x:510:bar marketing:x:512:bar bar:x:513: [root@destroyer ~]#

  • Добавить пользователя в группу для существующего пользователя в ОС Linux.

Можно также изменить вторичную группу для существующих пользователей, использующих опцию “-g” для команды usermod. Допустим, вы хотите изменить вторичную группу пользователя delphi на sales.


[root@destroyer ~]# usermod -G accounts delphi [root@destroyer ~]# id delphi uid=511(delphi) gid=511(delphi) groups=511(delphi),510(accounts) [root@destroyer ~]#

В случае, если вы хотите добавить еще одну вторичную группу вместо того, чтобы изменить ее, как описано выше, то вы должны использовать “-a” (добавить) вариант.


[root@destroyer ~]# usermod -a -G marketing delphi [root@destroyer ~]# id delphi uid=511(delphi) gid=511(delphi) groups=511(delphi),510(accounts),512(marketing) [root@destroyer ~]#

  • Добавить пользователя в группу для существующего пользователя с несколькими вторичными группами в ОС Linux.

Можно указать несколько вторичных групп, используя запятую для существующего пользователя с помощью команды usermod.


[root@destroyer ~]# usermod -a -G sales,hr delphi [root@destroyer ~]# id delphi uid=511(delphi) gid=511(delphi) groups=511(delphi),509(sales),510(accounts),512(marketing),514(hr) [root@destroyer ~]#

В случае, если вы не указали опцию -a, то текущие вторичные группы будут сброшены и заменены указанными именами групп.


[root@destroyer ~]# id delphi uid=511(delphi) gid=511(delphi) groups=511(delphi),509(sales),510(accounts),512(marketing),514(hr) [root@destroyer ~]# usermod -G sales,hr delphi [root@destroyer ~]# id delphi uid=511(delphi) gid=511(delphi) groups=511(delphi),509(sales),514(hr) [root@destroyer ~]#

ПРИМЕЧАНИЕ: Поэтому убедитесь, что вы используете опцию -a если вы хотите добавить к существующей группе вместо изменения существующих вторичных групп.

Как добавить пользователя в группу в Linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотр пользователей

Учётные записи в системах Linux – это универсальные компоненты. Которые представляют собой как реальных пользователей, так и виртуальных. Последние предназначены для функционирования системных сервисов Linux, являющихся неотъемлемыми составляющими системы. Или же это могут быть служебные, дополнительно добавленные в систему сервисы, предназначенные для расширения её функционала.

Независимо от того, каким пользователям (реальным или виртуальным) принадлежат учётные записи, вся основная информация о них хранится в файле /etc/passwd. Каждая учётная запись в этом файле представлена одной строкой, разделённой на поля символами двоеточия. Например, просмотреть этот файл можно командой less:

$ less /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync . . . games:x:5:60:games:/usr/games:/bin/sh

Имя пользователя (учётной записи) содержится в первом поле. Поэтому, чтобы упростить восприятие вывода, когда нужно получить например, только список имён пользователей, можно использовать соответствующие инструменты, например команду cut (или аналогичные sed или awk):

$ cut -d : -f 1 /etc/passwd root daemon bin sys sync . . . games

Конечно, для того, чтобы различать принадлежность некоторых учётных записей к реальным или виртуальным пользователям, необходим некоторый опыт администрирования Linux или UNIX. Например, в приведённом выводе пользователь root – это суперпользователь. А пользователи daemon, bin, sys и sync – учётные записи, от имени которых работают системные сервисы.

Вообще, изначально по устоявшимся соглашениям, по-умолчанию в системах Linux принято придерживаться определённых правил для наименования учётных записей, обслуживающих системные или служебные процессы и/или сервисы. Так, например, для работы веб-сервера Apache обычно используется учётная запись www-data. Это очень важно для обеспечения и контроля безопасности системы. Таким образом легко разделять привилегии по функциональному признаку для пользователей. Такие же соглашения действуют и для наименования системных или служебных процессов. Тот же Apache обычно представляется процессами httpd или apache.

Просмотр пользовательских групп

Аналогично учётным записям, информация о всех группах пользователей хранится в одном файле /etc/group:

$ less /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6:

Первое, на что нужно обратить внимание, это то, что имена многих групп идентичны именам некоторых имеющихся в системе пользователей. И это не просто совпадение. Дело в том, что таким образом реализуется механизм частных пользовательских групп (UPG) в системе. Он заключается в том, что для пользователя создаётся одноимённая закрытая группа. Которая назначается этому пользователю как основная. Этот механизм позволяет использовать в системе общие каталоги (и вообще ресурсы) без вреда для безопасности. Для этого существует такой полезный инструмент в системе прав доступа как бит setgid. Смысл этого бита в том, что в каталоге, для которого он установлен, можно создавать файлы, принадлежащие тому же владельцу, что и сам каталог с битом setgid.

Просмотр активных пользователей

Информацию о том, какие пользователи активны в данный момент времени в системе позволяют команды «w» и «who». Первая по-умолчанию выводит более подробные данные о пользователях, например:

$ w 11:45:24 up  6:34,  2 users,  load average: 0.33, 0.10, 0.07 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT root     pts/0    rrcs-72-43-115-1   19:15 38.00s  0.33s  0.33s -bash demoer   pts/1    rrcs-72-43-115-1   19:37  0.00s  0.47s  0.00s  w

В первой строке указаны время старта системы, продолжительность её работы, количество активных пользователей, а также данные о средней загруженности системы за прошедшие 1, 5 и 15 минут. Далее следует список активных пользователей и используемых ими командах/процессах. Более подробно о работе команды «w» можно узнать на страницах интерактивного руководства, используя команду man w.

Способы проверки списка пользователей

Люди, которые постоянно используют данную систему, могут это сделать с помощью целого ряда методов, а для новичков это весьма проблематично. Поэтому инструкция, которая будет расписана ниже, поможет неопытному пользователю справиться с поставленной задачей. Сделать это можно при помощи встроенного Терминала или же ряда программ с графическим интерфейсом.

Способ 1: Программы

В Linux/Ubuntu управлять зарегистрированными в системе пользователями можно при помощи параметров, работа которых обеспечивается специальной программой.

К сожалению, для графической оболочки рабочего стола Gnome и Unity программы разные. Однако они обе способны предоставить набор опций и инструментов для проверки и редактирования групп пользователей в дистрибутивах Linux.

«Учетные записи» в Gnome

Сначала следует открыть параметры системы и выбрать раздел под названием «Учетные записи». Обратите внимание на то, что системные пользователи здесь уже отображаться не будут. Список зарегистрированных пользователей находится в панели слева, правее есть раздел настроек и изменения данных каждого из них.


Программа «Пользователи и группы» в дистрибутиве с графической оболочкой Gnome установлена всегда по умолчанию, однако если вы ее не находите в системе, то можно провести автоматическую загрузку и установку с помощью выполнения команды в «Терминале»:

sudo apt-get install unity-control-center

KUser в KDE

Для платформы KDE существует одна утилита, пользоваться которой даже гораздо удобнее. Она называется KUser.


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

Как и в случае с Gnome, в KDE программа KUser установлена по умолчанию, но ее можно удалить. Чтобы произвести установку приложения, выполните команду в «Терминале»:

sudo apt-get install kuser

Способ 2: Терминал

Данный способ является универсальным для большинства дистрибутивов, разработанных на основе операционной системы Linux. Дело в том, что она имеет в своем программном обеспечении специальный файл, где располагается информация относительно каждого пользователя. Такой документ находится по адресу:

/etc/passwd

Все записи в нем представлены в следующем виде:

  • имя каждого из юзеров;
  • уникальный идентификационный номер;
  • пароль ИД;
  • ИД группы;
  • название группы;
  • оболочка домашнего каталога;
  • номер домашнего каталога.

Читайте также: Часто используемые команды в «Терминале» Linux

Для повышения уровня безопасности в документе сохраняется пароль каждого из пользователей, но он не отображается. В других модификациях этой операционной системы пароли и вовсе хранятся в отдельных документах.

Полный список пользователей

Вызвать переадресацию в файл с сохраненными данными юзеров можно с помощью «Терминала», введя в него следующую команду:

cat /etc/passwd

Пример:


Если ИД у пользователя имеет меньше четырех цифр, то это системные данные, в которые вносить изменения крайне нежелательно. Дело в том, что они создаются самой ОС в процессе установки для обеспечения наиболее безопасной работы большинства сервисов.

Имена в списке пользователей

Стоит отметить, что в данном файле может быть довольно много данных, которые вам не интересны. Если имеется необходимость узнать только имена и основные сведения, касающиеся пользователей, есть возможность отфильтровать приведенные в документе данные при помощи введения следующей команды:

sed ‘s/:.*//’ /etc/passwd

Пример:


Просмотр активных пользователей

В ОС, работающей на базе Linux, можно посмотреть не только пользователей, которые были зарегистрированы, но и тех, кто в настоящее время активны в ОС, заодно просмотрев то, какие процессы они используют. Для такой операции применяется специальная утилита, вызываемая командой:

w

Пример:


Данная утилита будет выдавать все команды, которые выполняются пользователями. Если он одновременно задействует две и более команд, то они также найдут отображение в выдаваемом списке.

Истории посещений

При необходимости, есть возможность проанализировать активность пользователей: узнать дату последнего их входа в систему. Ей можно воспользоваться на базе лога /var/wtmp. Вызывается он вводом в командной строке следующей команды:

last -a

Пример:


Дата последней активности

Кроме того, в операционной системе Linux можно узнать, когда каждый из зарегистрированных пользователей был последний раз активен – это делает команда lastlog, выполняемая при помощи одноименного запроса:

lastlog

Пример:


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

Заключение

Как можно заметить, в «Терминале» представлены более детальные сведения, касающиеся каждого пользователя. В нем есть возможность узнать кто и когда входил в систему, определить, пользовались ли ей посторонние люди, и многое другое. Однако для рядового пользователя будет лучшим вариантом воспользоваться программой с графическим интерфейсом, чтобы не вникать в суть команд Linux.

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

Кого считать пользователем системы

Любого человека, который использует компьютер и средства ОС, можно считать пользователем. Ему назначается определенное уникальное имя (иное не допускается), которое может включать латинские буквы, арабские числа, символы «_» и «.». Любой пользователь имеет отдельный каталог. В него он попадает после авторизации. Там содержится ряд персональных файлов и папок. Обычно пользовательские каталоги находятся в директории /home. Администратор ОС может настраивать учетные записи для разграничения доступа к файлам, каталогам и периферийным устройствам.

Как вывести в Linux список пользователей

Каким же образом решить задачу вывода существующих учетных записей? В системе Linux список пользователей выводится командой (допускается использовать различные параметры):

# cat /etc/passwd

Почему это работает? Дело в том, что все необходимые данные содержит файл /etc/passwd. К нему непосредственно и обращается интересующийся учетными записями человек. После задания команды выводится перечень аккаунтов Linux. Список пользователей в системе может быть довольно обширным. Данные об имеющихся аккаунтах выводятся построчно.

Как это может выглядеть на экране? Каждая строка будет являть собой примерно следующее:

root:xD634Jhs5jH32:0:0:root:/root:/bin/bashnewuser:Xv7Q641g89oKK:1000:100:Ivan Fedorov:/home/newuser:/bin/bash

Расшифровка:

account (пользовательское имя):password (пароль, хранящийся в зашифрованном виде):UID (уникальный ID):GID (ID главной группы юзера):GECOS (дополнительные сведения):directory (пользовательский каталог):shell (используемый интерпретатор команд).

Как просмотреть активные аккаунты

Вышеприведенная команда позволяет вывести перечень всех юзеров, зарегистрированных в системе. Но что делать, если нужно вывести в Linux список пользователей, которые активны прямо сейчас? Для этого можно воспользоваться следующей командой:

# who

Напечатав данную инструкцию, человек сможет просмотреть перечень активных в системе аккаунтов. В данном случае в Linux список пользователейтакже выполняется построчно. Располагая администраторскими полномочиями, можно производить с активными учетными записями различные манипуляции. Так, можно дать людям доступ к определенным файлам либо папкам, ограничить использование определенных программ.


[spoiler title=”Источники”]

  • https://www.dmosk.ru/miniinstruktions.php?mini=linux-users
  • https://ZaLinux.ru/?p=1407
  • https://rtfm.co.ua/linux-dobavit-polzovatelya-v-gruppu/
  • https://pingvinus.ru/note/user-groups-add
  • https://andreyex.ru/operacionnaya-sistema-linux/kak-dobavit-polzovatelya-v-gruppu-v-linux/
  • https://ITProffi.ru/kak-prosmotret-spisok-polzovatelej-i-grupp-v-linux/
  • https://lumpics.ru/how-see-list-of-users-in-linux/
  • https://FB.ru/article/300639/kak-vyivesti-v-linux-spisok-polzovateley


[/spoiler]


2020-07-27T15:39:45
Linux

df команда Linux- описание и примеры использования



























Rate this post

Рассматриваемая сегодня команда по умолчанию имеется во всех дистрибутивах Linux, поэтому мы не будем устанавливать какие-либо рамки в плане сборок. Дополнительно отметим, что df выводит не только количество свободного места, но и название томов вместе с точками монтирования, что делает ее более функциональной. Теперь, когда вы знаете все о предназначении данной утилиты, рассмотрим подробнее ее синтаксис. Сразу отметим, что он довольно простой, и если вы планируете задействовать df на постоянной основе, потребуется всего несколько практических занятий, чтобы освоить все аргументы и опции.

Как пользоваться df

Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать:

df


Утилита отображает стандартный набор колонок, но понять в ее выводе что-то с первого раза сложно. Все данные выводятся в килобайтах. Теперь давайте попросим утилиту выводить данные в более читаемом формате:

df -h


Это самое популярное сочетание опций, потому что оно дает максимально понятную информацию и уже можно судить о том, что происходит на диске. Например, мы видим, что в домашней папке уже занято 87% места и, возможно, пора что-то удалить. Если задать опцию -a, вы можете получить информацию обо всех файловых системах известных ядру, которые были смонтированы:

df -a


Здесь отображается огромное количество виртуальных файловых систем ядра. Если вы хотите вывести только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs:

df -x tmpfs


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

df -x devtmpfs -x tmpfs


Или же указать файловую систему, которую нужно отображать:

df -t ext4


Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды:

df -h /dev/sdb6


С помощью опции -i вы можете посмотреть информацию про состояние inode в вашей файловой системе:

df -hi /dev/sdb6


Видео, о том, как пользоваться утилитой df: