В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
А теперь перейдем к подробному рассмотрению всех этих команд.
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Вы также можете вернуться в предыдущую рабочую папку:
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Для начала работы в терминале Linux не нужно быть гуру администрирования — достаточно знать список базовых команд для навигации и работы с файлами и папками.
Навигация
После подключения к серверу вы оказываетесь в домашней папке пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:
Она выведет текущую рабочую директорию (print working directory).
Если вам нужно перейти в другую папку, для этого используется команда cd (change directory) с указанием пути к нужной вам папке:
Говоря о навигации, нельзя не упомянуть сокращения для обозначения некоторых директорий:
/
корневая папка сервера
.
текущая директория, в которой вы сейчас находитесь. Например, чтобы найти файл с именем hello.txt в текущей директории, можно использовать команду:
домашняя папка текущего пользователя. Например, запустить скрипт some-script.sh из домашней папки, когда вы находитесь в другой директории, можно так:
Для навигации с помощью команды cd есть два формата указания пути к нужной папке: абсолютный и относительный.
Также к абсолютным относятся пути, в которых используется
— указание на домашнюю папку текущего пользователя. Например, при доступе к файлу
/.bash_profile он всегда будет открываться из одного и того же места: вместо
Также относительные пути используются, когда нужно выполнить операцию над файлом или папкой в директории, в которой мы сейчас работаем. Для выполнения команды достаточно указать имя файла или папки — система поймёт, что мы имеем в виду файл из текущего каталога.
А этот выведет в терминал подробный список содержимого папки /etc:
Ubuntu и Debian:
CentOS:
Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать файлы и папки. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться двойным кликом по папкам, использовать кнопки в нижней части панели.
Поиск
С помощью команды find можно найти на сервере папку или файл по набору условий. Структура команды проста:
Отображает только пустые файлы или папки
Позволяет задать условие относительно времени изменения файлов:
Позволяет задать условие относительно времени последнего доступа к файлу, аналогично mtime
Позволяет уточнить размер (или диапазон размера) искомых файлов
Позволяет применить к найденным файлам команду COMMAND
Больше информации о возможностях find можно узнать в файлах документации:
Работа с папками
Для создания новых директорий используется команда mkdir с указанием пути до создаваемой папки. Пример ниже создаст папку /new в существующей директории /home/user :
Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:
Работа с файлами
Создание
В терминале есть несколько способов создания новых файлов.
Если нужно создать сразу несколько файлов, можно просто перечислить их через пробел:
Ещё один способ создания новых файлов — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Однако все папки придётся создать заранее. Тогда редактор автоматически создаст файл и откроет его для редактирования. Если не сохранить файл в редакторе, даже пустой, он не будет создан. Команда ниже добавит новый файл с помощью редактора vi :
Ещё пара способов создания пустых файлов:
Редактирование
Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.
А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки.
Запуск редактора без аргументов откроет его в режиме справки:
Чтобы закрыть Vim (без сохранения), введите сочетание :q!
Если указать редактору путь к файлу, он откроет его для редактирования. Если файл не существовал, он будет создан:
При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.
Перемещение по тексту выполняется с клавиатуры:
Для выхода с сохранением файла нажмите Esc и введите :wq!
Текстовый редактор vim — краткое руководство
Ubuntu и Debian:
CentOS:
Чтение
Бывает, что нам нужно получить какую-то информацию из файла без необходимости редактировать его. В таком случае необязательно использовать текстовый редактор — есть более простые инструменты.
Команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:
Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:
Удаление
Самая простая версия rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter :
Скачивание и загрузка
wget позволяет скачивать данные на сервер. Он поддерживает HTTP, HTTPS и FTP протоколы.
Скачать файл по ссылке в вашу текущую рабочую директорию можно с помощью команды:
Полный список параметров wget можно посмотреть в справочной информации:
curl используется как для скачивания файлов на ваш сервер, так и для передачи данных с него на другие серверы / хранилища. Он универсальнее wget благодаря огромному количеству поддерживаемых протоколов: FTP, HTTP, HTTPS, IMAP, POP3, SCP, SFTP, SMB, SMTP, Telnet и др.
В современных дистрибутивах curl установлен по умолчанию. При необходимости установить его вручную можно следующим образом:
Для работы с curl нужно знать название и расположение файлов, которые необходимо скачать/загрузить. Например, так будет выглядеть команда на скачивание файла по ссылке:
Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:
Остальные возможности curl можно узнать в справочной информации:
Утилита scp позволяет копировать файлы между двумя серверами, используя протокол SSH.
Например, для передачи файла filename.txt с нашего сервера на удалённый сервер 1.2.3.4 в папку new-documents пользователя username можно использовать следующую команду:
В процессе система запросит у нас пароль пользователя username для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную папку.
Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:
Здесь мы в качестве источника для получения копии файла указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере.
С помощью scp аналогичным образом можно копировать данные между двумя удалёнными серверами:
Запуск исполняемых bash-скриптов
Чтобы запустить скрипт script.sh на сервере, нужно выполнить два шага:
Настроить права на запуск файла для пользователей:
Запустить скрипт. Если вы находитесь в той же директории, где лежит скрипт, достаточно вызвать его по имени:
В некоторых случаях нужно использовать команду sh либо указать путь к исполняемому файлу командной оболочки:
Если вы находитесь в другой директории, для запуска нужно указать полный путь к скрипту.
Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.
Весь список существующих алиасов системы можно вывести с помощью команды alias :
В соответствующем разделе нужно добавить ваш алиас в следующем формате:
Например, если нам потребуется создать псевдоним для скрипта выше, настройки будут выглядеть так:
Чтобы после добавления алиас сразу стал доступен, предварительно нужно обновить командную оболочку:
После этого вы сможете вызывать ваш скрипт с помощью короткой команды.
Как настроить cron по ssh
Переименование, перемещение и копирование файлов и папок
Скопировать файл в терминале можно с помощью команды:
C её помощью можно, к примеру, создать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию конфигурационного файла nginx.conf
Переместить или переименовать файл также просто:
Например, следующая команда переместит файл file.txt в папку new :
Переименовать файл не сложнее:
В этом примере файл file.txt переименовывается в todolist.txt
Аналогично можно перемещать и переименовывать директории.
Теперь, когда вы можете перемещаться по серверу и работать с файлами и папками, самое время познакомиться с файловой структурой Linux-систем.
В этой заметке я расскажу, как переместить системные папки Linux, такие как var и opt, а так же swap на отдельные диски. Такой подход к организации дискового пространства сервера поможет в будущем избежать проблем при росте проекта и выделении дополнительного пространства под разные ресурсы.
Внимание! Если сервер уже используется в работе, то перенос папок во время работы приложений может вызвать сбой в работе сервера. То есть перед процедурой переноса папок нужно остановить все приложения, использующие в эти служебные папки. Перенос папок в только что установленном сервере проблем не вызывает.
Ниже на картинке в качестве примера показан сервер и его диски, на эти диски разнесены служебные папки.
Файл подкачки (swap) является средством виртуализации памяти, позволяя использовать больше оперативной памяти, чем есть на сервере. Использование swap-файла позволяет предотвратить замедление или даже остановки работы сервера при исчерпании физической оперативной памяти. Когда оперативная память заканчивается, операционна система «сбрасывает» неиспользуемую в данный момент информацию в файл-подкачки на жестком диске, очищая физическую память для текущих процессов. Рекомендуемые размеры файла подкачки в зависимости от физической памяти показаны в таблице ниже:
Объем оперативной памяти сервера, ГБ
1
2
4
8
16
32
64
Размер файла подкачки, ГБ
1
1
2
3
4
6
8
Примечание. Полную таблицу с рекомедациями можно найти на странице Ubuntu Swap FAQ.
Если такой файл подкачки разместить на SSD диске, то можно получить расширение оперативной памяти сервера без значительного понижения быстродействия системы.
Ниже показан порадок команд, которые надо выполнить, чтобы создать swap-файл на отдельном диске.
Перемещение папки /var
Папка /var используется для хранения изменяемых данных приложений, таких как кэш, базы данных, страницы веб-сервера, метаданные, журналы (логи), почтовые ящики, очереди (печати, почты и т.д.), временные файлы и прочие. Ожидается, что в процессе работы сервера размер этой папки будет расти.
Список команд, которые надо выполнить, чтобы корректно перенести папку:
Перемещение папки /opt
Список команд, которые надо выполнить, чтобы корректно перенести папку:
Как переместить (переименовать) файл или папку в терминале Linux
При работе с Linux через терминал часто приходится выполнять различные операции с файлами. Например, редактировать конфигурационные файлы, скачивать архивы, делать резервные копии и т. д.
В данной статье мы рассмотрим операции перемещения и переименования файлов. Здесь вы узнаете, как перемещать и переименовывать файлы через терминал Linux. Материал будет актуален для любого дистрибутива Linux, например, Ubuntu, Debian или CentOS.
Команда mv
Синтаксис команды mv выглядит следующим образом:
Основные опции для данной команды:
Как переместить файл в терминале Linux
Для того чтобы переместить файл в другой каталог при помощи команды mv достаточно ввести данную команду, указать файл и его новое место расположения. Например, для того чтобы переместить файл « file.txt » во вложенную папку « temp » нужно выполнить:
При необходимости можно переместить сразу несколько файлов. Для этого нужно перечислить файлы и в конце указать новое место назначение. Например, для того чтобы переместить « file.csv » и « file.txt » в папку « temp » нужно выполнить:
Также для перемещения нескольких файлов можно использовать маску. Например, для того чтобы переместить все файлы с расширением txt нужно выполнить следующее:
Аналогичным способом можно перемещать и папки, как пустые, так и с файлами и вложенными папками. Например, для того чтобы переместить папку « test » в папку « temp » нужно выполнить:
При перемещении файлов или папок можно сразу указать для них и новое имя. Например, для того чтобы переместить « file.txt » в папку « temp » и переименовать его в « old_file.txt » нужно выполнить:
Как переименовать файл в терминале Linux
Обратите внимание, если бы папка « trash » существовала, то данная команда выполнила бы перемещение папки « temp » внутрь папки « trash ».
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.