Команды для PuTTY, SSH, Unix и Linux серверов

Небольшая шпаргалка по linux командам. (Периодически обновляется)

Копирование файлов по регулярным выражениям в Linux

В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье . Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp . Например, копируем все файлы в текущей директории, содержащие в имени только цифры:

find . -name -exec cp {} ~/Документы \

Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ {} — подставляет имя каждого файла.

Но не find «ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls , отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs :

ls -1 ~/ | egrep «» | xargs cp -t ~/Папка/

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

Удаление

Для удаления директорий используется команда rmdir имя_директории. Название этой команды является сокращением слов remove directory.

Для удаления файлов используется команда rm. Например, для удаления файла с именем file1 используется команда:

rm file1

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

Для удаления директории с именем dir1 со всеми подкаталогами и файлами используется опция -r (от слова recursive):

rm -r dir1

Можно удалить одновременно две директории со всем их содержимым:

rm -r имя_директории_1 имя_директории_2

Читайте также:  Как установить Linux (Ubuntu) на VirtualBox

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

Команда для удаления файла будет выглядеть так:

rm -f file1

Команда для удаления каталога:

rm -rf dir1

Копирование, перемещение, создание и удаление файлов и каталогов. Курс "Введение в Linux и Bash"

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

Копирование файлов и каталогов

В Bash для копирования файлов используется команда cp (от «copy»), которой обычно передаются два аргумента:

  1. адрес с именем исходного файла,

  2. новый адрес с именем или просто адрес каталога, куда помещается копия.

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

  • Рассмотрим примеры.
  • cp readme readme2
  • В данном случае создается копия файла readme, которая остается в той же директории под именем readme2.
  • cp readme Desktop/

В папку Desktop копируется файл readme. Здесь текущим является родительский Desktop'у каталог. Имена копии и файла оригинала будут совпадать, а вот полные адреса – нет.

cp /home/irina/ /mnt/D/

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

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

Чтобы скопировать каталог со всем его содержимым, необходимо использовать ключ -r команды cp:

cp -r ./letters ./oldletters

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

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

Читайте также:  Относительный и абсолютный путь к файлу

Также как в случае cp, для mv необходимо указать пару аргументов. Выбор между перемещением и переименованием зависит от того, что это за аргументы.

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

Кроме того, перемещение может быть совмещено с переименованием.

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

mv Work

mv Work/

Здесь в первом случае файл перемещается в каталог Work. Во-втором случае одновременно происходит перемещение файла и его переименование: файл перемещается в директорию Work и получает новое имя

При использовании команды mv для переименования в качестве второго аргумента указывается новое имя:

mv

mv Work/ Work/

Каталоги перемещаются и переименовываются по тому же принципу, что и файлы. Групповое перемещение файлов работает также, как с командой cp.

Создание файлов и каталогов

  1. Новые директории создаются командой mkdir. Например, чтобы создать каталог Work в текущей директории необходимо выполнить следующую команду:
  2. mkdir Work или
  3. mkdir .

    /Work

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

Еще один способ – перенаправление вывода какой-либо команды в файл. Пример:

cal > ./Work/January

Здесь программа cal выводит календарь на текущий месяц, а поскольку стоит знак перенаправления вывода, то вывод команды будет записан в файл January, находящийся в папке Work.

Удаление файлов и каталогов

  • Для удаления файлов используется команда rm. Например:
  • rm
  • Командой rmdir можно удалить пустой каталог. Если же каталог не пуст, следует использовать команду rm с ключом -r:

Вопросы

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

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

Курс с ответами к заданиям и дополнительными уроками:android-приложение, pdf-версия.

Информация о системе

Команда Действие
date показать время и дату
cal показать календарь
uptime проверить аптайм (время безотканой работы)
w покажет количество пользователей, которые в данный момент используют сервер
whoami покажет Ваш логин
finger юзер покажет инфу о пользователе «юзер»
uname -a информация про ядро
cat /proc/cpuinfo информация про CPU
cat /proc/meminfo информация про память
man команда покажет все о команде
df информация о дисках
du покажет, сколько памяти занимает текущий каталог
free сколько памяти используется
whereis программа найдет место расположения программы
which программа определеяет, что «программа» будет запущена первой
vmstat покажет загрузку процессора

unzip

unzip — распакует архив в текущую директорию

Работа с файлами

cp — копирование файлов и директорий.

mv — перенос файлов и директорий.

rm — удаление файлов и директорий.

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

Три вариант записи прав пользователя

chown — изменение владельца файла или директории.

Правка файлов

nano — простой текстовый редактор. Идёт по умолчанию в куче дистрибутивов. В большинстве случаев его хватает для правки конфигов.

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

Автоматизация

bash — популярная командная оболочка. Можно писать последовательные команды для выполнения. Часто повторяемые рутинные операции хорошо писать в баш скрипты. Пусть за вас потеет машина. Основные возможности описаны на

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

Если вкратце, то это минимально необходимый набор. Буду рад вашим дополнениям в комментариях.