Директория – это объект в файловой системе компьютера. Это название употреблялось ранее в информатике, сейчас же употребляются слова «каталог» или «папка». Слово произошло от английского – directory. В системе она указывается в виде полного пути к необходимому ярлыку, например, «C:Program FilesMy_Program».
Обычная файловая система содержит множество каталогов, которые позволяют привести систему к единому порядку. Это делается для того, чтобы пользователю было легче найти что-либо на диске в операционной системе (ОС).
Что такое директории установки
Директорией установки называется место, куда устанавливается та или иная программа, также может называться путем установки. Это может быть игра, программа, или другие утилиты. Каждое такое приложение должно находится в определенном месте в ОС. Часто начинающие геймеры сталкиваются с проблемой, когда игра или программа требует установить дополнительные файлы или компонент в директорию, куда был установлен софт.
Разберем на примере: «C:Program FilesGamesНазвание_игры». Это путь к папке в компьютере, которую пользователю необходимо будет открыть, чтобы попасть в то место, куда установлен софт.
А папка с именем «Название_игры» — это и есть тот самый каталог установки. Все они лежат в корне диска С, если не было установлено другое место при инсталляции.
Корневая папка и как ее найти
Так называется система хранилищ системной информации, в которой она расположена в строго иерархическом порядке. Обеспечивает всю работу операционной системы Windows, Linux и взаимодействие документов.
В Виндовс это имена дисков, которые были созданы пользователем на компьютере. Их количество зависит от того, на сколько логических частей разбит физический жесткий диск. Для операционной системы Windows корневым каталогом обычно является диск C (если путь не был изменен при установке системе). Для ОС Linux им будет служить «/». А в ней уже находятся системные файлы и документы.
В отличии от Виндовс в Линуксе всегда один корневой каталог. Для того, чтобы найти его в Виндовс следует открыть ярлык «Мой компьютер» на рабочем столе.
Что такое директория игры
Так называется каталог с установленной игрой. Обычно он хранится на диске C в папке Program Files, но в случае инсталляции в другой каталог расположение изменится.
Как найти директорию
Поиск по ярлыку
Путь к месту где расположена нужная программа или игра можно отыскать несколькими способами. Например, по ярлыку:
- кликаете правой клавишей мышки (ПКМ) по ярлыку программы на рабочем столе;
- в открывшемся окне выбираете расположение файла и кликаете по нему левой кнопкой мыши (ЛКМ). В Windows 7 и старше найти это пункт можно в свойствах ярлыка;
- откроется окно с искомым содержимым. Сверху, в строке поиска, будет указан путь расположения утилиты.
Поиск по умолчанию
Для поиска можно использовать стандартные средства ОС:
- заходите в меню «Пуск»;
- в строке поиска внизу набираете полное имя или часть название утилиты. Набрать только часть названия предпочтительней, поскольку единственная опечатка может помешать системе найти нужный элемент;
- кликаете по значку лупы;
- система произведет поиск среди установленного софта и выдаст его расположение на экран.
Поиск на компьютере
Третьим способом будет поиск на компьютере. Заходите в «Мой компьютер», открываете диск С, в правом верхнем углу вводите название в строку поиска и ищете необходимые файлы в папках. Это отнимет больше времени, нежели использование первых двух способов, поскольку система проводит анализ всех элементов попадающих в отбор.
Как создать каталог на компьютере
Для создания каталога на компьютере необходимо сделать следующее:
- в любом месте на компьютере кликнуть правой кнопкой мыши и в контекстном меню выбрать «Создать», а затем «Папку»;
- на рабочем столе отобразится «Новая папка», которой можно задать любое имя;
- кликните по кнопке «Enter» на клавиатуре;
- каталог создан.
Свойства папки
Каждая папка имеет свои свойства — ее можно скрывать от пользователей, защищать от копирования, случайного изменения. Если кликнуть на нее правой клавишей мыши и выбрать «Свойства», то можно увидеть полезную информацию: занимаемый объем, место расположения, дату создания, а также сколько подпапок и файлов она содержит.
Вкладка «Настройка» отвечает за внешний вид, а «Доступ» и «Безопасность» позволяют включать (расшаривать) доступ по сети и задавать права на использование другим локальным и сетевым пользователям.
Основные операции
Существует ряд стандартных операций, которые можно производить над папками:
- Копирование. Для этого, кликаете по папке правой кнопкой мыши и выбираете пункт «Копировать». Открываете расположение в которое необходимо произвести копирование. В открывшемся окне кликаете правой кнопкой мыши и выбираете пункт «Вставить».
- Удаление. Кликаете по объекту ПКМ и находите пункт «Удалить». Нажимаете на него. Потом подтверждаете действие, кликнув по кнопке «Ок». Она удалится в корзину.
- Перемещение. Перейдите к расположению целевой папки, откройте место, куда необходимо ее перетащить, наведите курсор на папку и зажмите ПКМ. Перетащите в открытое окно, и отпустите кнопку мыши, в меню следует выбрать «перемещение». Эта операция идентична команде «Вырезать», но в этом случае нужно в контекстом меню, по нажатию правой клавиши мыши выбрать «Вырезать». А в расположении, куда вставляем каталог – «Вставить».
- Переименование. Кликаете по объекту ПКМ, выбираете пункт «Переименовать». Вписываете название и нажимаете «Enter».
- Открытие. Папки можно открывать для работы и перемещения в них других объектов. Дважды кликните по ней ЛКМ и она откроется.
В этом разделе вы познакомитесь с основами навигации по системе. Для множества задач нужно уметь добираться до конкретного места в системе, и эти навыки формируют фундамент вашего успеха в работе с Linux. Постарайтесь разобраться в навигации.
Как узнать, в какой директории вы находитесь
Первая команда, которую мы изучим — pwd
, сокращение от Print Working Directory (выведи рабочую директорию). Вы скоро увидите, что множество команд в Linux — это аббревиатуры слов, описывающих их. Это помогает лучше их запомнить. Собственно, команда и выводит текущую рабочую директорию. Попробуйте использовать ее.
1. pwd
2. /home/karpaff
Правильное выполнение многих команд терминала зависит от того, в нужном ли месте вы находитесь. Почаще используйте эту команду, чтобы не забывать, в какой вы директории.
Как узнать содержимое директории
Мы научились определять, в какой директории мы находимся. Теперь давайте научимся узнавать содержимое директории. В этом нам поможет команда ls
— сокращение от list (список). Давайте опробуем ее.
1. ls
2. bin Documents public_html
Команда pwd
отрабатывает сама по себе, без аргументов. ls
в этом плане посильнее. В случае выше мы запустили ее без аргументов — она выведет список содержимого данной директории. Но от ls можно получить больше — ниже дана схема ее использования:
ls [ключи] [директория]
В примере выше квадратные скобки обозначают, что эти пункты опциональны, и мы можем запускать команду и с ними, и без них. Ниже я запустил разные варианты ls
, чтобы продемонстрировать ее работу.
1. [email protected]: ls
2. bin Documents public_html
3. [email protected]:
4. [email protected]: ls -l
5. total 3
6. drwxr-xr-x 2 karpaff users 4096 Mar 23 13:34 bin
7. drwxr-xr-x 18 kapraff users 4096 Feb 17 09:12 Documents
8. drwxr-xr-x 2 karpaff users 4096 May 05 17:25 public_html
9. [email protected]:
10. [email protected]: ls /etc
11. a2ps.cfg aliases alsa.d cups fonts my.conf systemd
12. ...
13. [email protected]: ls -l /etc
14. total 3
15. -rwxr-xr-x 2 root root 123 Mar 23 13:34 a2ps.cfg
16. -rwxr-xr-x 18 root root 78 Feb 17 09:12 aliases
17. drwxr-xr-x 2 karpaff users 4096 May 05 17:25 alsa.d
18. ...
19. [email protected]:
Рассмотрим код по частям:
- Строка 1 — запуск
ls
в базовой форме. Она вывела список содержимого текущей директории. - Строка 4 — запуск
ls
с ключом-l
, который означает, что команда выведет длинный список. В длинном списке есть следующее:- Первый символ означает, является ли объект файлом
-
или директориейd
. - Следующие 9 символов — типы разрешений для файла или директории.
- Следующее поле — количество блоков (пока что не задумывайтесь об этом).
- Дальше — владелец файла или директории (в данном случае — karpaff)
- Дальше — группа, которой принадлежит файл или директория (в данном случае — users).
- Следующая часть — размер файла/директории.
- Затем идет время изменения.
- И в конце — название файла или директории.
- Первый символ означает, является ли объект файлом
- Строка 10 — запуск
ls
с аргументом командной строки/etc
. Когда мы так делаем,ls
выводит содержимое не рабочей директории, а той, которую мы передали в качестве аргумента. - Строка 13 — запуск
ls
и с ключом, и с аргументом командной строки. Соответственно, здесь был произведен вывод длинного списка директории/etc
. - Строки 12 и 18 означают лишь, что для краткости я вырезал стандартный вывод некоторых команд. При запуске команд вы увидите более длинный список файлов и директорий.
Пути к файлам
При рассмотрении предыдущих команд мы затронули тему путей. Я хотел бы углубиться в эту тему, поскольку она важна для более эффективного использования Linux. Неважно, пытаемся мы обратиться к файлу или директории через командную строку, на самом деле мы обращаемся по пути. Путь — это способ добраться до конкретного файла или директории в системе.
Абсолютные и относительные пути
Существует два типа путей — абсолютные и относительные. Обращаемся мы к файлу или директории, мы будем использовать один из этих типов путей (система в любом случае будет направлена в правильное место).
Для начала нужно понять, что файловая система под Линуксом — это иерархическая структура. Наверху этой структуры находится корневая директория. Она обозначается одним слэшем /
. У нее есть свои поддиректории, у них свои и так далее. Файлы могут находиться в любой из директорий.
Абсолютные пути указывают положение файла или директории относительно директории root
. Их можно узнать по слэшу в начале пути /
.
Относительные пути указывают положение файла или директории относительно ващего текущего местоположения в системе. Они не начинаются со слэша.
Пример:
1. [email protected]: pwd
2. /home/karpaff
3. [email protected]:
4. [email protected]: ls Documents
5. file1.txt file2.txt file3.txt
6. ...
7. [email protected]: ls /home/karpaff/Documents
8. file1.txt file2.txt file3.txt
9. ...
- Строка 1 — запускаем
pwd
, чтобы узнать, где мы находимся. - Строка 4 — запускаем
ls
с аргументом в виде относительного пути. Documents — директория в той папке, в которой мы сейчас находимся. Такая команда может выдать разный результат в зависимости от того, где мы находимся. Если бы у нас был другой пользователь в системе, скажем, Вася, и мы запустили бы эту команду в его домашней директории, выводом стало бы содержимое папки Documents Васи. - Строка 7 — запускаем
ls
с аргументом в виде абсолютного пути. Вывод такой команды будет одинаков вне зависимости от того, где мы сейчас находимся.
Скоро вы увидите, что множество вещей в Linux можно получить несколькими разными способами. Пути — не исключение. Ниже приведены некоторые иные компоненты для построения путей.
~
(тильда) — обозначение вашей домашней директории. Например, если ваша домашняя директория /home/karpaff, то к директории Documents можно обратиться по пути /home/karpaff/Documents или по пути ~/Documents..
(точка) — указание на директорию, где вы сейчас находитесь. Например, в примере выше на 4 строке мы обратились к директории Documents с помощью относительного пути. Тот путь можно было записать как ./Documents (Обычно в этом нет необходимости, но ниже мы рассмотрим примеры того, где это может пригодиться)...
(две точки) — указание на родительскую директорию. Вы можете использовать такое сокращение в пути несколько раз, чтобы подниматься по иерархии. Например, если вы были в папке/home/karpaff
, вы можете запустить командуls ../../
и выводом будет список содержимого корневой директории.
Теперь вы знаете, что к местоположению можно обращаться множеством разных способов. Некоторые из вас зададутся вопросом, какой вариант лучше использовать? Ответ: любой, который больше нравится. Обращаетесь вы к файлу или директории, в командной строке вы обращаетесь по пути, а путь вы можете составить, используя любой из элементов, представленных выше. Лучший подход в этом деле — удобный именно для вас.
Примеры:
1. [email protected]: pwd
2. /home/karpaff
3. [email protected]:
4. [email protected]: ls ~/Documents
5. file1.txt file2.txt file3.txt
6. ...
7. [email protected]: ls ./Documents
8. file1.txt file2.txt file3.txt
9. ...
10. [email protected]: ls /home/ryan/Documents
11. file1.txt file2.txt file3.txt
12. ...
13. [email protected]:
14. [email protected]: ls ../../
15. bin boot dev etc home lib var
16. ...
17. [email protected]:
18. [email protected]: ls /
19. bin boot dev etc home lib var
20. ...
После того, как вы сами поиграетесь с этими командами в командной строке, вы станете лучше их понимать. Убедитесь, что понимаете, как работают элементы построения пути, поскольку мы будем использовать их в следующих уроках.
Как сменить директорию
Для передвижения по системе используется команда cd
, сокращение от change directory (сменить директорию). Она работает следующим образом:
cd [местоположение]
Подсказка: если вы запустите команду без аргументов, она вернет вас в домашнюю директорию.
Команду cd
можно запускать и без аргументов, как мы видели в подсказке выше, но обычно ее запускают с одним аргументом командной строки — месту, в которое мы хотим перейти. Место определяется абсолютным или относительным путем с использованием любых элементов для построения путей, упомянутых выше.
Пример:
1. [email protected]: pwd
2. /home/karpaff
3. [email protected]: cd Documents
4. [email protected]: ls
5. file1.txt file2.txt file3.txt
6. ...
7. [email protected]: cd /
8. [email protected]: pwd
9. /
10. [email protected]: ls
11. bin boot dev etc home lib var
12. ...
13. [email protected]: cd ~/Documents
14. [email protected]: pwd
15. /home/karpaff/Documents
16. [email protected]: cd ../../
17. [email protected]: pwd
18. /home
19. [email protected]: cd
20. [email protected]: pwd
21. /home/karpaff
Автодополнение
Прописывать пути вручную может быть утомительно. А если вы, как и я, постоянно опечатываетесь, то вам очень поможет маленький механизм командной строки под названием автодополнение.
Когда вы печатаете путь в командной строке, нажмите кнопку Tab, чтобы применить механизм автозавершения. Если ничего не произошло, значит существует несколько вариантов продолжения пути. Нажмите Tab снова, и вы увидите эти варианты. Продолжайте печатать и опять нажмите Tab, и механизм снова попытается завершить путь за вас.
Это сложно продемонстрировать в статье, так что попробуйте потестировать эту фичу сами. Если вы напечатаете в командной строке cd /hTab/<начало вашего имени пользователя>Tab, вы поймете, как это работает.
Что нужно запомнить
Команды
pwd
Выводит текущую директорию.ls
Выводит писок содержимого директории.cd
Переводит в другую директорию.
Понятия
Относительный путь
Местоположение файла или директории относительно вашего текущего местоположения в системе.Абсолютный путь
Местоположение файла или директории относительно корневой папки файловой системы.
Практические задания
Давайте применим то, что мы только что узнали, на практике. Попробуйте выполнить следующие задания:
1. Начнем с передвижения по системе. Используйте команды cd
и ls
, чтобы больше узнать о директориях вашей системы и о том, что в них есть. Постарайтесь использовать разные варианты относительных и абсолютных путей. Интересные места для исследования:
• /etc
— здесь хранятся конфигурационные файлы системы.
• /var/log
— здесь хранятся файлы логов для разных системных программ. (У вас может не быть разрешений просматривать все в этой директории. Пусть это вас не останавливает. Пара сообщений об ошибках никому не помешает)
• /bin
— место, в котором хранятся некоторые часто используемые программы.
• /usr/bin
— еще одно место, в котором хранятся системные программы.
2. А теперь вернитесь в домашнюю директорию 4 разными способами.
3. Постарайтесь почаще использовать автодополнение. Зачем напрягаться, если компьютер может что-то делать за вас?
Загрузить PDF
Загрузить PDF
В этой статье мы расскажем вам, как в Windows найти полный путь к файлу с помощью строки поиска, Проводника или окна «Выполнить».
-
1
Нажмите ⊞ Win+S. Откроется строка поиска.
-
2
Введите имя файла. Откроется список совпадающих результатов.
-
3
Щелкните по имени файла правой кнопкой мыши. Откроется меню.
-
4
Нажмите Открыть папку с файлом. Откроется папка с нужным файлом.
-
5
Щелкните в конце строки с именем файла. Вы найдете ее над списком файлов и под значками опций. Полный путь к файлу будет выделен.
- Нажмите Ctrl+C, чтобы скопировать путь.
- Нажмите Ctrl+V, чтобы вставить скопированный путь.
Реклама
-
1
Нажмите ⊞ Win+E. Откроется окно Проводника.
- Клавиша Windows находится в левом нижнем углу клавиатуры.
-
2
Перейдите в папку с нужным файлом. Ваши действия будут зависеть от того, где находится файл. Как правило, нужно дважды щелкнуть по диску (его букве), а затем дважды щелкнуть по нужной папке, чтобы открыть ее.
-
3
Щелкните по нужному файлу правой кнопкой мыши. Откроется меню.
-
4
Выберите Свойства. Эта опция находится внизу меню.
-
5
Найдите путь к файлу в строке «Расположение». Вы найдете ее посередине окна.
- Чтобы скопировать путь, дважды щелкните по нему — путь будет выделен, а затем нажмите Ctrl+C.
- Чтобы вставить путь, нажмите Ctrl+V.
Реклама
-
1
Перейдите в папку с нужным файлом. Например, если файл находится на рабочем столе, перейдите на рабочий стол.
-
2
Нажмите ⊞ Win+R. Откроется окно «Выполнить».
-
3
Перетащите файл в окно «Выполнить». Когда значок файла окажется в окне «Выполнить», отпустите кнопку мыши.
-
4
Найдите полный путь к файлу в поле «Открыть». В этом поле отображается путь к файлу.
- Чтобы скопировать путь, дважды щелкните по нему — путь будет выделен, а затем нажмите Ctrl+C.
- Чтобы вставить путь, нажмите Ctrl+V.
Реклама
Об этой статье
Эту страницу просматривали 18 369 раз.
Была ли эта статья полезной?
Для начала работы в терминале Linux не нужно быть гуру администрирования — достаточно знать список базовых команд для навигации и работы с файлами и папками.
- Навигация
- Поиск
- Работа с папками
- Работа с файлами
- Переименование, перемещение и копирование
Навигация
После подключения к серверу вы оказываетесь в домашней папке пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:
pwd
Она выведет текущую рабочую директорию (print working directory).
Если вам нужно перейти в другую папку, для этого используется команда cd
(change directory) с указанием пути к нужной вам папке:
cd /home
Говоря о навигации, нельзя не упомянуть сокращения для обозначения некоторых директорий:
/ | корневая папка сервера |
. |
текущая директория, в которой вы сейчас находитесь. Например, чтобы найти файл с именем find . -name hello.txt |
.. |
директория, расположенная на уровень выше текущей. Если вы находитесь в папке cd .. |
~ |
домашняя папка текущего пользователя. Например, запустить скрипт sh ~/some-script.sh |
— |
предыдущая посещённая директория. Представим, что вы перешли в папку cd - |
Для навигации с помощью команды cd
есть два формата указания пути к нужной папке: абсолютный и относительный.
Абсолютный путь — это полный путь от корневой папки сервера «/»
. Например, вот такой:
/var/www/data/username/data/www/example.com/
Также к абсолютным относятся пути, в которых используется ~
— указание на домашнюю папку текущего пользователя. Например, при доступе к файлу ~/.bash_profile
он всегда будет открываться из одного и того же места: вместо ~
будет использоваться значение переменной окружения $HOME, которое не меняется.
Относительный путь — это неполный путь. Он указывается относительно какого-то объекта: например, текущей рабочей директории. То есть в начале отсутствует символ корневой папки «/»
.
./docs/files/file.txt file.txt
Представим, что мы сейчас работаем с файлами в папке /var/www/data/username
. Нам нужно отредактировать содержимое в директории на уровень выше — /var/www/data
. Чтобы управлять данными в этой папке, нам не обязательно постоянно указывать полный путь к ним — можно работать с относительным, начиная его с «../»
.
Также относительные пути используются, когда нужно выполнить операцию над файлом или папкой в директории, в которой мы сейчас работаем. Для выполнения команды достаточно указать имя файла или папки — система поймёт, что мы имеем в виду файл из текущего каталога.
Чтобы отобразить список содержимого папки, можно использовать команду ls
(list). Если дополнить её ключами -al
, она покажет типы данных, разрешения и скрытые файлы. Следующий пример покажет названия файлов и папок текущей рабочей папки:
ls
А этот выведет в терминал подробный список содержимого папки /etc:
ls -al /etc
Чтобы немного упростить себе жизнь, можно использовать консольные файловые менеджеры, например, mc
.
-
Ubuntu и Debian:
apt -y install mc
-
CentOS:
yum -y install mc
Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать файлы и папки. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться двойным кликом по папкам, использовать кнопки в нижней части панели.
Поиск
С помощью команды find
можно найти на сервере папку или файл по набору условий. Структура команды проста:
find [где искать] [как искать] [что искать]
Например, мы знаем название файла hello.txt
, но не знаем, где именно на сервере он лежит. Найти его поможет конструкция:
find / -name "hello.txt"
/
указывает, что искать надо, начиная с корневой папки сервера. Если вам известно, где может лежать искомый файл, можно задать путь точнее.-name
указывает, что искать надо строго по имени."hello.txt"
— имя файла, который нам нужно найти. Если известна только часть имени, можно указать сокращённый вариант:"hello*"
,"*.txt"
Кроме -name
, команда find
имеет множество опций, которые позволяют уточнить условия поиска подробнее. Вот список наиболее полезных параметров:
|
Позволяет указать тип искомых данных: |
|
Позволяет вывести файлы с определённым уровнем доступа. Например, — |
|
Отображает только пустые файлы или папки |
|
Позволяет искать данные среди файлов, принадлежащих конкретному пользователю: |
|
Позволяет искать данные среди файлов, принадлежащих определённой группе пользователей: |
|
Позволяет задать условие относительно времени изменения файлов:
|
|
Позволяет задать условие относительно времени последнего доступа к файлу, аналогично |
|
Позволяет уточнить размер (или диапазон размера) искомых файлов |
|
Позволяет применить к найденным файлам команду |
Больше информации о возможностях find
можно узнать в файлах документации:
man find
Из встроенных инструментов поиска можно также отметить утилиту whereis
. Она предназначена для поиска бинарных и системных файлов и директорий служб. Следующий пример выведет список всех файлов и папок, имеющих прямое отношение к php
:
whereis php
Работа с папками
Для создания новых директорий используется команда mkdir
с указанием пути до создаваемой папки. Пример ниже создаст папку /new
в существующей директории /home/user
:
mkdir /home/user/new
Если нужно создать сразу несколько вложенных папок, можно использовать параметр -p
. В таком случае все несуществующие директории, указанные в пути, будут созданы автоматически. Представим, что нам нужно создать вложенные папки docs/photos/2020-08-17
в текущей директории — это будет выглядеть так:
mkdir -p docs/photos/2020-08-17
Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:
mkdir docs pictures games
Удалить папку можно с помощью команды rmdir
с указанием пути. Папка будет удалена только в случае, если она пуста (можно использовать параметр --ignore-fail-on-non-empty
, чтобы удалить папку в любом случае). Для удаления нескольких вложенных папок можно аналогично использовать параметр -p
. Пример ниже удалит папку /photos
и все каталоги внутри неё:
rmdir -p docs/photos
Для удаления есть более эффективный инструмент, rm
, про который расскажем ниже.
Работа с файлами
Создание
В терминале есть несколько способов создания новых файлов.
Самый простой, одновременно создающий и файл, и недостающие папки — команда touch
. Достаточно передать ей полный путь к файлу. Для примера создадим в папке docs
папку copies
, а внутри неё — файл copies-list.txt
:
touch docs/copies/copies-list.txt
Несуществующая папка copies
создастся автоматически.
Если нужно создать сразу несколько файлов, можно просто перечислить их через пробел:
touch file1.txt file2.txt file3.txt
Ещё один способ создания новых файлов — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Однако все папки придётся создать заранее. Тогда редактор автоматически создаст файл и откроет его для редактирования. Если не сохранить файл в редакторе, даже пустой, он не будет создан. Команда ниже добавит новый файл с помощью редактора vi
:
vi new-file.txt
Для сохранения и выхода из файла в vi
нужно нажать клавишу Esc, ввести сочетание :wq и нажать Enter. Для выхода без сохранения нужно также нажать Esc, ввести сочетание :q! и нажать Enter.
Ещё пара способов создания пустых файлов:
cat > new-file.txt echo > new-file.txt
Редактирование
Для редактирования файлов используются консольные текстовые редакторы. Самые известные — vi
и nano
. В некоторых дистрибутивах vi
заменён на vim
(vi
improved, улучшенный vi
) или vim.tiny
Редактор vi
будет доступен вам по умолчанию на большинстве Linux-систем.
А теперь к делу. Vi
(более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки.
Запуск редактора без аргументов откроет его в режиме справки:
vi
Чтобы закрыть Vim (без сохранения), введите сочетание :q!
Если указать редактору путь к файлу, он откроет его для редактирования. Если файл не существовал, он будет создан:
vi new-file.txt
При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.
Чтобы начать ввод, нужно перейти в режим редактирования с помощью клавиши I. Чтобы вернуться в режим просмотра, нажмите Esc.
Перемещение по тексту выполняется с клавиатуры:
- перемещение в начало текста: Esc + дважды G
- перемещение в конец текста: Shift + G
- перемещение по строке горизонтально: стрелки ← →
- перемещение по строкам вертикально: стрелки ↑ ↓
- отображение номеров строк: Esc, введите
:set number
, нажмите Enter - перемещение по номерам строк: Esc, введите
:
номер строки, нажмите Enter
Для выхода с сохранением файла нажмите Esc и введите :wq!
Текстовый редактор vim — краткое руководство
Более современной и удобной альтернативой Vim считается редактор nano
. Современные дистрибутивы включают его по умолчанию, но на ранних версиях устанавливать придётся вручную:
-
Ubuntu и Debian:
apt -y install nano
-
CentOS:
yum -y install nano
Вызов nano
без аргументов откроет пустой редактор. Можно начать ввод (при сохранении вам будет предложено указать имя и сохранить файл) или вызвать режим помощи со списком доступных команд с помощью сочетания Ctrl+G.
Для сохранения файла нажмите Ctrl+O — редактор предложит ввести имя файла: введите имя и нажмите Enter. Если файл существовал, и имя изменять не требуется, просто нажмите Enter.
Для выхода из редактора нажмите Ctrl+X.
Чтение
Бывает, что нам нужно получить какую-то информацию из файла без необходимости редактировать его. В таком случае необязательно использовать текстовый редактор — есть более простые инструменты.
Команда cat
позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:
cat example.txt
Однако, если мы заведомо знаем, что в файле большой объём информации, нет смысла выводить его целиком. Например, команды head
и tail
могут вывести часть содержимого с начала или конца файла соответственно. Если добавить к ним ключ -n
, можно уточнить, сколько строк текста нужно вывести:
head -n 3 example.txt
tail -n 3 example.txt
Помимо прочего, команда tail
очень удобна для чтения логов с ключом -f
. В таком режиме она открывает файл в режиме ожидания и выводит все добавляемые данные. Пригодится для тестирования или дебаггинга.
Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less
— она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:
less example.com
В режиме чтения less
можно перемещаться, искать текст и многое другое. Все командные последовательности и горячие клавиши можно вывести с помощью параметра --help
:
less --help
Для выхода из режима чтения введите q и нажмите Enter.
Удаление
Для удаления файлов используется команда rm
. Она крайне опасна — неправильное применение грозит удалением всего содержимого сервера. Поэтому, как говорится, семь раз отмерь, один раз отрежь: категорически важно перепроверять путь, который вы указываете для удаления.
Самая простая версия rm
удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter:
rm new-file.txt
Для полного же уничтожения всего и вся к команде добавляются параметры -rf
. Первый отвечает за рекурсивное удаление данных (т.е. удаление вложенных файлов и папок), второй позволяет отключить подтверждение при удалении. Например, следующая команда удалит папку photos
, размещённую в папке docs
, и всё её содержимое:
rm -rf docs/photos
Для шуток над неопытными администраторами им под тем или иным предлогом предлагают выполнить команду rm -rf [/]
(без квадратных скобок). Она удаляет всё содержимое сервера от корня. Результат — все данные безвозвратно теряются, а сервер перестаёт работать.
Скачивание и загрузка
Для передачи файлов на сервер и с сервера есть много способов. Самые простые — использование wget
, curl
или scp
.
-
wget
позволяет скачивать данные на сервер. Он поддерживает HTTP, HTTPS и FTP протоколы.wget [как скачать] [откуда скачать]
Скачать файл по ссылке в вашу текущую рабочую директорию можно с помощью команды:
wget https://ru.wordpress.org/latest-ru_RU.tar.gz
С помощью параметра
-P
можно указать путь, куда нужно сохранить скачиваемый файл:wget -P /var/www/example.com https://ru.wordpress.org/latest-ru_RU.tar.gz
Полный список параметров
wget
можно посмотреть в справочной информации:man wget
-
curl
используется как для скачивания файлов на ваш сервер, так и для передачи данных с него на другие серверы / хранилища. Он универсальнееwget
благодаря огромному количеству поддерживаемых протоколов: FTP, HTTP, HTTPS, IMAP, POP3, SCP, SFTP, SMB, SMTP, Telnet и др.curl [как скачать] [откуда скачать / куда загрузить]
В современных дистрибутивах
curl
установлен по умолчанию. При необходимости установить его вручную можно следующим образом:- Ubuntu и Debian:
apt -y install curl - CentOS:
yum -y install curl
Для работы с
curl
нужно знать название и расположение файлов, которые необходимо скачать/загрузить. Например, так будет выглядеть команда на скачивание файла по ссылке:curl -O https://ru.wordpress.org/latest-ru_RU.tar.gz
В примере мы скачиваем архив
latest-ru_RU.tar.gz
по ссылке и сохраняем его в текущую рабочую директорию с таким же именем — за это отвечает ключ-O
. Если использовать опцию-o
, можно задать своё имя (wp.tar.gz
) для сохраняемого файла:curl -o wp.tar.gz https://ru.wordpress.org/latest-ru_RU.tar.gz
Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:
curl -T filename.txt https://example.com/downloads/filename.txt
Здесь файл
filename.txt
из текущей рабочей директории загружается на сайтexample.com
в папкуdownloads/
и сохраняется с именемfilename.txt
. Пример подразумевает, что у нас есть права на запись в указанный каталог.Остальные возможности
curl
можно узнать в справочной информации:man curl
- Ubuntu и Debian:
-
Утилита
scp
позволяет копировать файлы между двумя серверами, используя протокол SSH.scp [где взять файлы] [куда их загрузить]
Например, для передачи файла
filename.txt
с нашего сервера на удалённый сервер1.2.3.4
в папкуnew-documents
пользователяusername
можно использовать следующую команду:scp ~/documents/filename.txt username@1.2.3.4:/home/username/new-documents
В процессе система запросит у нас пароль пользователя
username
для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную папку.Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:
scp username@1.2.3.4:/home/username/documents/filename.txt ~/new-documents/
Здесь мы в качестве источника для получения копии файла указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере.
С помощью
scp
аналогичным образом можно копировать данные между двумя удалёнными серверами:scp username1@1.2.3.4:/home/username1/documents/filename.txt username2@2.3.4.5:/home/username2/new-documents
Запуск исполняемых bash-скриптов
Чтобы запустить скрипт script.sh
на сервере, нужно выполнить два шага:
-
Настроить права на запуск файла для пользователей:
chmod +x ./script.sh
-
Запустить скрипт. Если вы находитесь в той же директории, где лежит скрипт, достаточно вызвать его по имени:
./script.sh
В некоторых случаях нужно использовать команду
sh
либо указать путь к исполняемому файлу командной оболочки:sh ./script.sh
либо
/bin/bash ./script.sh
Если вы находитесь в другой директории, для запуска нужно указать полный путь к скрипту.
Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.
Весь список существующих алиасов системы можно вывести с помощью команды alias
:
Создать свой постоянный алиас можно с помощью файла .bashrc
, размещённого в домашнем каталоге вашего пользователя. Нужно открыть его для редактирования:
vi ~/.bashrc
В соответствующем разделе нужно добавить ваш алиас в следующем формате:
alias [короткая команда]='[исходная команда]'
Например, если нам потребуется создать псевдоним для скрипта выше, настройки будут выглядеть так:
alias myScript='sh /путь/к/скрипту/script.sh'
Чтобы после добавления алиас сразу стал доступен, предварительно нужно обновить командную оболочку:
source ~/.bashrc
После этого вы сможете вызывать ваш скрипт с помощью короткой команды.
Скрипт можно добавить в расписание планировщика cron
, чтобы он запускался регулярно.
Как настроить cron по ssh
Переименование, перемещение и копирование файлов и папок
Скопировать файл в терминале можно с помощью команды:
cp [что копируем] [куда копируем]
C её помощью можно, к примеру, создать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию конфигурационного файла nginx.conf
cp nginx.conf nginx.conf.copy
Папки копируются аналогично. При необходимости скопировать каталог со всем содержимым (рекурсивно) можно добавить к команде ключ -r
:
cp -r /docs /files
Здесь мы создаём копию папки docs
со всем её содержимым с именем files
.
Переместить или переименовать файл также просто:
mv [что переместить/переименовать] [куда переместить/как назвать]
Например, следующая команда переместит файл file.txt
в папку new
:
mv file.txt docs/new
Переименовать файл не сложнее:
mv /docs/new/file.txt /docs/new/todolist.txt
В этом примере файл file.txt
переименовывается в todolist.txt
Аналогично можно перемещать и переименовывать директории.
Теперь, когда вы можете перемещаться по серверу и работать с файлами и папками, самое время познакомиться с файловой структурой Linux-систем.
Структура каталогов Linux
-
Главная
-
Инструкции
-
Linux
-
Работа с файлами и каталогами в Linux
Введение
Если у вас нет большого опыта работы с системами Linux, вы можете быть очень удивлены возможностями управления операционной системой из командной строки. Понимание принципов работы через консоль пригодится и для управления домашним компьютером, например, с ОС Ubuntu, и для администрирования серверов cloud.timeweb.com с установленными Unix-подобными системами. В этой статье мы попытаемся ознакомить вас с основами. Это руководство должно дать вам необходимый минимум знаний и хорошую отправную точку для дальнейших исследований.
Навигация
Наиболее фундаментальные навыки, которыми вам необходимо овладеть, — это перемещение по файловой системе и получение представления о том, что находится вокруг вас. В этом разделе мы обсудим инструменты, которые позволят вам это сделать.
Поиск своего местоположения
После того как вы подключаетесь к своему серверу, вы обычно попадаете в домашний каталог вашей учетной записи пользователя (если не применены нестандартные настройки). Домашняя директория — это директория, которая используется для хранения пользовательских файлов, например документов, фото, видео-файлов. В этой директории вы имеете полные права для совершения любых действий, таких как создание, перемещение, удаление файлов и директорий. Чтобы узнать, где находится домашний каталог пользователя, используйте команду pwd
(сокращение от print working directory). Эта команда выведет путь до каталога, в котором вы находитесь в данный момент:
pwd
В ответ вы должны получить строку, которая выглядит похожим образом:
/home/demo
Название домашней директории пользователя совпадает с именем его учетной записи. Этот каталог находится внутри каталога /home
, который, в свою очередь, сам расположен внутри каталога верхнего уровня, который называется root
, но обозначается одной косой чертой /
.
Перемещение по файловой системе
Часто вам может понадобиться изменить текущий рабочий каталог, чтобы получить доступ к другим подкаталогам и файлам.
Чтобы изменить текущий каталог, в linux используется команда cd
(сокращение от change directory), за которой, в качестве аргумента, следует имя каталога, относительно текущего:
cd Documents
или абсолютный (полный) путь:
cd /home/demo/Documents
Чтобы вернуться на уровень выше, в родительскую директорию, можно в качестве аргумента передать команде cd
две точки:
cd ..
Чтобы вернуться в домашний каталог пользователя, нам не обязательно передавать полный путь к нему, вместо этого можно использовать короткую запись, передав в качестве аргумента символ «тильда»:
cd ~
Чтобы перейти в корневой каталог:
cd /
Просмотр содержимого каталогов
Теперь, когда мы знаем, как перейти в нужный нам каталог и отобразить путь до него, пришло время разобраться, как просмотреть содержимое каталога. Чтобы это сделать, в linux используется команда ls
(сокращение от list):
ls
В ответ мы увидим список файлов и директорий:
addresses.txt Documents Downloads grades.txt
Чтобы посмотреть содержимое каталога, надо передать путь до него:
ls /home/demo/Documents
Чтобы вывести список всех файлов в подкаталогах, используйте флаг -R
:
ls -R /home/demo/
Так же в linux-команде ls
можно передать дополнительные флаги. Например, чтобы вывести подробную информацию о содержимом каталога, такую как права доступа, дату последнего изменения, можно использовать команду:
ls -l /home/demo/
Чтобы увидеть скрытые файлы и директории (обычно их имена начинаются с точки) нужно использовать флаг -a
. Флаги можно комбинировать друг с другом, например:
ls -la /home/demo/
Просмотр содержимого файлов
Для вывода содержимого файла в терминал, используется команда cat
(сокращение от concatenate). В качестве аргумента ей необходимо передать имя файла в текущем каталоге или путь до него:
cat file1.txt
cat /home/demo/file2.txt
Поиск файлов
Иногда вам может понадобиться найти местоположение определенного файла. Поиск файла в linux легко можно сделать с помощью команд find
или locate
.
Команда find
ищет файл в определенном месте и принимает два аргумента: путь до директории, в которой нужно произвести поиск, и имя файла, который нужно найти. Для того, чтобы поискать файл с именем file1.txt в домашней директории пользователя demo, команда будет выглядеть следующим образом:
find /home/demo -name file1.txt
Команда locate
, как и команда find
, выполняет поиск файлов, но принимает только один аргумент. Команда locate
ищет все возможные файлы и каталоги с заданным именем в системе:
locate file1.txt
Основные операции с файлами и каталогами
Создание файла
Чтобы создать файл в linux, мы можем воспользоваться командой touch
. Например, чтобы создать файл с именем file1.txt в домашней директории пользователя, введите в терминале команду:
touch ~/file1.txt
Создание каталога
Для того, чтобы создать папку в linux, используется команда mkdir
(сокращение от make directory). В качестве аргумента передайте имя директории или путь, по которому хотите ее создать:
mkdir ~/Photos
Удаление файлов и каталогов
Удаление файла в linux осуществляется при помощи команды rm
(сокращение от remove).
Для удаление каталога используется эта же команда rm
, но с флагом -r
:
rm /home/demo/file1.txt
rm -r /home/demo/Photos
Используйте эту команду с осторожностью, так как ее действие необратимо.
Перемещение и переименование
Для того, чтобы переместить, или переименовать файл в linux используется универсальная команда mv
(сокращение от move).
В зависимости от того, как она используется, она может переименовывать файл или перемещать его из одного места в другое. Команда для перемещения файла будет выглядеть так:
mv file1.jpeg /home/demo/Photos/
Для переименования файла из file1.txt в file2.txt используется следующая запись:
mv file1.txt file2.txt
Кроме того, вы можете одновременно перемещать и переименовывать файл, указав папку назначения и новое имя файла:
mv file1.txt /home/demo/Documents/file2.txt
Копирование
Команда cp
(сокращение от copy), копирует файл из одного места в другое. В отличие от команды mv
, используемой для перемещения, команда cp
сохраняет исходный файл в его текущей директории и создает копию в другой директории. Команда для копирования файла с именем file1.txt в каталог /home/demo/Documents будет выглядеть так:
cp file1.txt /home/demo/Documents
cp /home/demo/Ptotos/photo1.jpeg /home/demo/Documents
Если вы хотите скопировать директорию, то необходимо использовать флаг -R
:
cp -R /home/demo/tutorilas /home/demo/Documents/
Размер файлов и директорий
В linux размер папки можно узнать при помощи команды du
(сокращенно от disk utility). Если ввести эту команду без аргументов, то она выведет размеры всех файлов внутри текущей директории. Обычно, в качестве аргумента ей передают путь до директории, размер которой необходимо узнать, и флаги -sh
для более красивого и читаемого вывода:
du -sh /home/demo/Music
Если мы хотим увидеть размер и состояние конкретного диска, то можно использовать команду df
с флагом -h
, и названием раздела, который хотим увидеть:
df -h /dev/sda1
Отображение размера директории в конкретных единицах измерения
По умолчанию команда du
отображает размер каталога в байтах. Если нам вдруг потребуется отображать размер файлов и каталогов в килобайтах или мегабайтах, используется эта же команда du
, но к ней необходимо будет добавить флаг -k
(килобайты) или -m
(мегабайты).
Для того, чтобы установить отображение использования дискового пространства в килобайтах для нашей директории demo, введите:
du -k /home/demo/
Или в мегабайтах:
du -m /home/demo/
В таком случае будет отображаться использование дискового пространства директорией, но не размер ее файлов.
Чтобы узнать размеры ее файлов, нам понадобится флаг -a
.
du -ah /home/demo/
Редактирование файлов
Для того, чтобы отредактировать файлы, можно воспользоваться встроенным в linux консольным редактором nano.
Чтобы открыть файл с именем file1.txt, введите:
nano file1.txt
После этого откроется окно с редактором, в котором вы можете приступить к редактированию.
Копирование и вставка
Для того чтобы вырезать строку и поместить ее в буфер обмена, переместите курсор на нужную строку и нажмите Ctrl+K.
Чтобы вставить строку из буфера, нажмите Ctrl+U.
Чтобы скопировать текст произвольной длины, сначала требуется его выделить. Для этого поместите курсор на начало текста, который планируется копировать, и нажмите Ctrl+6. Перемещайте курсор, текст будет выделяться.
Чтобы скопировать выделенный текст в буфер обмена, нажмите Alt+6.
Чтобы вырезать выделенный текст, нажмите Ctrl+K.
Поиск и замена
Для поиска используйте комбинацию клавиш Ctrl+W, затем введите поисковый запрос и нажмите Enter. Курсор переместится к первому найденному совпадению. Чтобы продолжить поиск до следующего совпадения, используйте комбинацию Alt+W.
Сохранение и выход из редактора
Если вы хотите сохранить текущие изменения в файле, нажмите комбинацию клавиш Ctrl+O. Если вы редактируете новый файл, вам будет предложено дать ему имя. Это сохранит текущие изменения, при этом nano останется открытым и вы сможете продолжить работу.
Если вы хотите выйти из редактора нажмите комбинацию клавиш Ctrl+X.