- Linux: команды для работы с файлами и директориями
- Основы
- Команды для работы с файлами и директориями
- Команда cd в Linux (Изменить каталог)
- cd Command
- Абсолютные и относительные имена путей
- Родительский каталог
- Перейти в предыдущий каталог
- Перейдите в домашний каталог
- Каталоги с пробелами в именах
- Выводы
- Команда cd Linux
- Команда cd Linux
- Использование cd в linux
- Выводы
Linux: команды для работы с файлами и директориями
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
- cd — смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root ;
- pwd — команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
- ls — вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax , то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
- cat — показывает содержимое файла, к примеру – cat /root/file.txt ;
- tail — например, tail /root/file.txt , выводит только конец файла, удобно при работе с логами;
- cp — копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
- mkdir — создание директории, например, mkdir /root/1 ;
- rmdir — удаление директории, синтаксис такой же, как и у команды выше;
- rm -rf — очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
- mv — переименование файла или директории, сначала указывается целевая директория и затем её новое название;
- locate — поиск файла с заданным названием;
# tail install.log Installing dosfstools-3.0.9-4.el6.i686 Installing rfkill-0.3-4.el6.i686 Installing rdate-1.4-16.el6.i686 Installing bridge-utils-1.2-10.el6.i686 Installing eject-2.1.5-17.el6.i686 Installing b43-fwcutter-012-2.2.el6.i686 Installing latrace-0.5.9-2.el6.i686 Installing trace-cmd-2.2.4-3.el6.i686 Installing crash-trace-command-1.0-5.el6.i686 *** FINISHED INSTALLING PACKAGES ***
В примере выше, команда tail вывела только последние 11 строк.
Работа с архивами
Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком 🙂
- tar cf example.tar /home/example.txt — создание .tar архива, который будет содержать в себе текстовый файл example.txt;
- tar cjf example1.tar.codez2 /home/example1.txt — команда с тем же функционалом, только будет использоваться сжатие Bzip2;
- tar czf example2.tar.gz /home/example2.txt — опять архивация, только на этот раз со сжатием Gzip;
- tar xf example.tar — распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно);
Работа с .rpm пакетами
Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution 🙂 Команды требуют наличие прав супер — пользователя.
- rpm -qa — вывод списка всех установленных RPM пакетов в системе;
- rpm –i rpmpackage.rpm — установка пакета с именем rpmpackage;
- rpm –e rpmpackage — удаление пакета с таким именем;
- dpkg -i *.rpm — установка всех пакетов в директории;
Про жёсткие диски
Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS — сервер)
Команда cd в Linux (Изменить каталог)
Команда cd («изменить каталог») используется для изменения текущего рабочего каталога в Linux и других Unix-подобных операционных системах. Это одна из самых основных и часто используемых команд при работе в терминале Linux.
Текущий рабочий каталог — это каталог (папка), в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
В этом руководстве мы покажем вам, как использовать команду cd для навигации по дереву каталогов вашей системы.
cd Command
cd — это встроенная оболочка, и ее поведение может немного отличаться от оболочки к оболочке. Он использует переменные среды оболочки для определения необходимой информации для его выполнения.
Мы рассмотрим встроенную в Bash версию cd .
Синтаксис команды cd следующий:
Команда принимает только две опции, которые используются редко.
- −L , переходить по символическим ссылкам . По умолчанию cd ведет себя так, как если бы указана опция -L .
- −P , не переходите по символическим ссылкам. Другими словами, когда эта опция указана, и вы пытаетесь перейти к символической ссылке, которая указывает на каталог, cd перейдет в каталог.
В простейшей форме, при использовании без аргументов, cd перенесет вас в ваш домашний каталог.
При навигации по файловой системе вы можете использовать клавишу Tab для автозаполнения имен каталогов. Добавление косой черты в конце имени каталога необязательно.
Чтобы переключиться в каталог, у вас должны быть разрешения на выполнение для этого каталога.
Команда pwd позволяет узнать, в каком каталоге вы сейчас находитесь.
Абсолютные и относительные имена путей
При указании каталога для перехода вы можете использовать абсолютные или относительные пути. Абсолютный или полный путь начинается с системного корня / , а относительный путь начинается с вашего текущего каталога.
По умолчанию, когда вы входите в систему Linux, вашим текущим рабочим каталогом становится домашний каталог. Предполагая, что каталог Downloads существует в вашем домашнем каталоге, вы можете перейти к нему, используя относительный путь к каталогу:
Вы также можете перейти в тот же каталог, используя его абсолютный путь:
Короче говоря, если путь начинается с косой черты ( / ), это абсолютный путь к каталогу.
Родительский каталог
В Unix-подобных операционных системах текущий рабочий каталог представлен одной точкой ( . ). Две точки ( .. ), одна за другой, представляют родительский каталог или, другими словами, каталог, расположенный непосредственно над текущим.
Если вы наберете cd . , вы перейдете в текущий каталог или, другими словами, команда ничего не сделает.
Предположим, вы находитесь в каталоге /usr/local/share , чтобы переключиться в каталог /usr/local (на один уровень выше текущего каталога), вы должны ввести:
Чтобы переместиться на два уровня вверх в каталог /usr (родительский родитель), вы можете запустить следующее:
Другой пример. Допустим, вы находитесь в каталоге /usr/local/share и хотите перейти в каталог /usr/local/src . Вы можете сделать это, набрав:
Перейти в предыдущий каталог
Чтобы вернуться в предыдущий рабочий каталог, передайте символ тире ( — ) в качестве аргумента команды cd:
Перейдите в домашний каталог
Чтобы перейти в домашний каталог, просто введите cd . Другой способ вернуться прямо в домашний каталог — использовать символ тильды ( ~ ), как показано ниже:
Например, если вы хотите перейти в каталог Downloads , который находится внутри вашего домашнего каталога, вы должны ввести:
Вы также можете перейти в домашний каталог другого пользователя, используя следующий синтаксис:
Каталоги с пробелами в именах
Если в имени каталога, в который вы хотите перейти, есть пробелы, вы должны либо заключить путь в кавычки, либо использовать символ обратной косой черты ( ), чтобы избежать пробела:
Выводы
К настоящему времени вы должны хорошо понимать, что такое текущий рабочий каталог и как использовать команду cd для перехода в другой каталог.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Команда cd Linux
При работе в терминале все команды привязываются к текущей папке. В ней будут создаваться файлы, если не был указан точный адрес, в ней же могут создаваться временные файлы. Да и просто адресовать файлы команде намного удобнее из текущей папки, просто указав имя файла, а не полный путь в файловой системе.
По умолчанию, в качестве текущей папки используется домашняя, но для большего удобства нам приходится часто менять ее на другую. Для этого существует команда cd linux. В этой небольшой статье мы рассмотрим как использовать эту команду и какие у нее есть возможности.
Команда cd Linux
Перед тем как мы перейдем к работе с утилитой, давайте рассмотрим ее синтаксис и основные опции. Строго говоря, это вообще никакая не утилита. Ее нет в файловой системе. Это встроенная команда Bash и меняет текущую папку только для оболочки, в которой выполняется. Вот основной синтаксис команды:
$ cd опции папка_назначения
Опций всего две, это -P и -L. Они влияют на то, как будут обрабатываться символы возврата в предыдущую директорию и символические ссылки:
- -P — позволяет следовать по символическим ссылкам перед тем, как будут обработаны все переходы «..»;
- -L — переходит по символическим ссылкам только после того, как были обработаны «..»;
- -e — если папку, в которую нужно перейти не удалось найти — выдает ошибку.
Дальше нужно указать директорию, в которую следует перейти. Если этого не сделать, а вызвать cd без параметров, то рабочей папкой будет выбран ваш домашний каталог. А теперь давайте рассмотрим несколько примеров работы с cd linux.
Использование cd в linux
Я не буду здесь описывать какими бывают пути в Linux. Мы рассматривали эту тему в отдельной статье. По умолчанию, в качестве рабочего каталога используется домашняя папка пользователя. Давайте сначала перейдем в одну из подпапок домашней папки:
Домашняя папка обозначается как ~/. Поэтому следующая команда выполнит аналогичное действие:
Правда, здесь есть преимущество. В первой команде используется относительный путь, тогда как вторая правильно выполнится из любой папки. Теперь переместимся в папку /usr/lib относительно корня:
С помощью символа черты «-» вы можете вернуться в предыдущую папку:
Используя двойную точку «..» можно перейти в родительский каталог:
Вы можете использовать несколько блоков с точками для перемещения на несколько уровней вверх:
Как уже говорилось, если не передать папку, в которую нужно перейти, будет открыта домашняя папка:
Аналогичный результат выдаст команда:
Для упрощения перехода по папкам можно использовать символ звездочки. Правда, автодополнение сработает только если на указанные символы будет начинаться только одна папка.
Кроме cd, есть еще две дополнительные команды, это pushd и popd. Можно сказать, что простая реализация стека для рабочих каталогов. Когда вы выполняете pushd, текущий рабочий каталог сохраняется в памяти, а на его место устанавливается указанный:
Теперь наберите popd, чтобы вернуться в предыдущий каталог:
Это реализация стека, поэтому количество каталогов в памяти не ограничено двумя. Вы можете перемещаться по такому количеству папок, как вам нужно.
Наконец, еще один момент, если вам нужно перейти в каталог, в имени которого есть пробелы, используйте символ экранирования обратный слэш «\» или просто возьмите его имя в скобки:
cd ~/Загрузки/новая\ папка/
$ cd «~/Загрузки/новая папка/»
Выводы
Теперь вы знаете зачем нужна команда cd Linux, а также как максимально эффективно ею пользоваться при работе в терминале. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.