Работа c файлами и папками в командной строке: Bash

Дневник разработчика

Командная строка — текстовый интерфейс используемый для выполнения программ и получения информации. Работа с программами и получение информации осуществляется по средствам ТЕКСТОВЫХ КОМАНД.

Для работы с командной строкой ты можешь использовать как локальное подключение (открыть на рабочем устройстве) или подключиться к нему удалённо.

Если ты пользователь операционной системы UBUNTU, то у тебя в системе по умолчанию установлена командная оболочка bash (). В ней мы и будем работать далее. Именно эта оболочка используется на большинстве серверов и на подавляющем большинстве рабочих станций (персональные компьютеры и ноутбуки).

Если же у тебя другая операционная система — рекомендую установить оболочку bash самостоятельно.

Удобные фишки Bash

Используй autocomplete — при вводе команды не до конца, можно нажать TAB и команда подставится автоматически. autocomplete — автоматическое завершение команды, автозавершение написания команды.

Если ты вводишь начало не однозначной команды (которую можно дополнить по разному), то TAB необходимо нажать ДВА раза. При этом в консоль будет выведены все возможные варианты завершения команды.

Используй возможность выбора ранее введённых команд — при вводе команды в строке просто нажми клавишу вверх, меняя ранее введённые команды. Для выбора нужной команды просто нажми Enter.

Изучим несколько простых команд

date — вывод текущей даты и времени

pwd — вывод информации о том, в какой папке ты сейчас находишься (present working directory — текущий рабочий каталог).

ls — вывод в консоли списка файлов и папок текущей директории.

ls -l — аналогично, но в более подробном виде. С указанием даты изменения и размера файлов.

ls -la — аналогично, но выводит полный перечень файлов и папок, включая СКРЫТЫЕ файлы (системные), которые по умолчанию не отображаются в консоли или проводнике.

ll — аналог или псевдоним команды ls -la.

cd — изменить текущую директорию (change directory). В качестве параметра который дополняет команду cd используется путь к целевой папке, в которую мы планируем перейти. Параметр пишется через пробел (пробел между командой и параметрами)

cd ~ — перейти в домашнюю директорию пользователя, под которым мы работаем.

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

Работа с файлами и папками в командной строке

С файлами и папками в командной строке можно делать всего три типа операций:

  • Red — читать
  • Write — записывать — создание, удаление, изменение.
  • eXecute — исполнять

Есть даже специальное сокращённое название этих трёх типов операций над файлами и папками — RWX.

Чтение файлов

cat — просмотр содержимого файла. Для указания файла, содержимое которого ты хочешь просмотреть в командной строке используется абсолютный или относительный путь к файлу (относительно текущего положения). Используется для чтения НЕБОЛЬШИХ файлов.

more — аналогично команде cat, но позволяет читать большие файлы. Это режим порционного чтения. При запуске программы содержимое файла выводится в консоли постепенно. За один раз выводится информация которая способна уместиться в окне терминала. Для просмотра остального содержимого файла используются клавиши ENTER (перемещение на 1 строку) и Spacebar (перемещение на 1 страницу). Для выхода из режима просмотра содержимого файла можно нажав клавишу Q.

less — аналогичная команда. Позволяет просматривать содержимое файла как в обычном порядке (сверху в низ), так и в обратном — двигаться в обе стороны по содержимому файла. Помимо клавиш enter и spacebar, тут еще работают стрелки наверх и вниз. Эта команда более функциональная!

tail — аналогичная команде more, но показывает последнее содержимое файла, а не его начало — 10 последних строк. При желании можно указать параметр = количеству последних строк, которые нужно вывести в консоль: tail -n 100 вывод последних 100 строк содержимого файла. Как видно из примера для этого используется ключ -n.

Есть и другой ключ -f — он позволяет выводить в консоль все что записывается в файл в режиме реального времени! Для выхода из режима просмотра достаточно нажать комбинацию ctrl+C.

Запись файлов

Работа с папками

  • mkdir — создать ПАПКУ (make directory — создать каталог или директорию)
  • rmdir — удаление ПАПКИ
  • cp -R — скопировать папку со всеми вложенными файлами. Пример: cp -R part1 part2 При этом копирование происходит рекурсивное — со всем содержимым.
  • rm -r — удалить папку вместе со всеми вложенными файлами. Пример: rm -r part3 При этом удаление происходит рекурсивное — со всем содержимым.
  • mv — переименовать папку. Пример: mv test new-test

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

  • touch — создать ФАЙЛ
  • rm — удалить файл
  • cp — скопировать файл. пример: cp index.html index-copy.html
  • mv — переименовать файл. Пример: mv test.php new-test.php
  • cat — вывод содержимого нескольких файлов с возможностью последующего объединения содержимого файлов в новый файл. Пример: cat test.html test-2.html > test-3.html

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

Добрались до редактирования файлов. Для этого нам понадобится дополнительная надстройка в консоли — это консольный файловый менеджер.

Тебе нужно научиться работать с ТРЕМЯ инструментами:

  • Midnight commander — консольный файловый менеджер (по умолчанию он НЕ установлен)
  • Mcedit — текстовый редактор (по умолчанию он НЕ установлен)
  • Nano — текстовый редактор (установлен по умолчанию)
  • Vim — текстовый редактор который есть везде по умолчанию!

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

Юрий Ронин