- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Linux: команды для работы с файлами и директориями
- Основы
- Команды для работы с файлами и директориями
- Путь к файлу в Linux
- Пути файлов в Linux
- Выводы
- Полный путь linux консоль
- Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации
- Предисловие
- Об этом руководстве
- Введение в bash
- Оболочка
- А у вас запущен bash?
- О bash
- Использование «cd»
- Абсолютные пути
- Относительные пути
- Использование ..
- Примеры относительных путей
- Понимание .
- cd и домашняя директория
- Другие домашние директории пользователей
- Об авторах
- Daniel Robbins
- Chris Houser
- Aron Griffis
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Linux: команды для работы с файлами и директориями
4 минуты чтения
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
/tmp/file1 — относительный путь;
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
- 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
В примере выше, команда 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 — сервер)
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Путь к файлу в Linux
Все файлы в Linux имеют определенный адрес в файловой системе, с помощью которого мы можем получить к ним доступ с помощью файлового менеджера или консольных утилит. Это довольно простая тема, но у многих новичков с этим возникают трудности.
В сегодняшней небольшой заметке мы рассмотрим что такое путь к файлу Linux, каким он может быть, как правильно его писать и многое другое. Если раньше у вас возникали с этим трудности, то после прочтения статьи все станет полностью понятно.
Пути файлов в Linux
Файловая система Linux очень сильно отличается от Windows. Мы не будем рассматривать ее структуру, это было сделано ранее. Мы сосредоточимся на работе с файлами.
Самое главное отличие, в том что адрес файла начинается не с диска, например, C:\ или D:\ как это происходит в Windows, а с корня, корневого системного каталога, к которому подключены все другие. Его адрес — /. И тут нужно сказать про адреса. Пути файлов linux используют прямой слеш «/» для разделения каталогов в адресе, и это отличается от того, что вы привыкли видеть в Windows — \.
Например, если в Windows полный путь к файлу на рабочем столе выглядел C:\Users\Sergiy\Desktop\ то в путь файла в linux будет просто /home/sergiy/desktop/. С этим пока все просто и понятно. Но проблемы возникают дальше.
В операционной системе Linux может быть несколько видов путей к файлу. Давайте рассмотрим какие бывают пути в linux:
- Полный, абсолютный путь linux от корня файловой системы — этот путь вы уже видели в примере выше, он начинается от корня «/» и описывает весь путь к файлу;
- Относительный путь linux — это путь к файлу относительно текущей папки, такие пути часто вызывают путаницу.
- Путь относительно домашний папки текущего пользователя. — путь в файловой системе, только не от корня, а от папки текущего пользователя.
Рассмотрим теперь подробнее как выглядят эти пути в linux, а также разберем несколько примеров, чтобы было окончательно понятно. Для демонстрации будем пользоваться утилитой ls, которая предназначена для просмотра содержимого каталогов.
Например, у нас есть такой каталог в домашней папке с четырьмя файлами в нем:
Вот так будет выглядеть полный путь linux к одному из файлов:
Это уже относительный путь linux, который начинается от домашней папки, она обозначается
/. Дальше вы уже можете указывать подпапки, в нашем случае tmp:
Ну или путь файла в linux, относительно текущей папки:
В каждой папке есть две скрытые ссылки, мы сможем их увидеть с помощью ls, выполнив ее с параметром -a:
Первая ссылка указывает на текущую папку (.), вторая (..) указывает на папку уровнем выше. Это открывает еще более широкие возможности для навигации по каталогам. Например, чтобы сослаться на файл в текущей папке можно использовать конструкцию:
Это бесполезно при просмотре содержимого файла. Но очень важно при выполнении программы. Поскольку программа будет сначала искаться в среде PATH, а уже потом в этой папке. А потому, если нужно запустить программу, которая находится в текущей папке и она называется точно также как и та что в каталоге /bin, то без явной ссылки что файл нужно искать в текущей папке ничего не получится.
Вторая ссылка вам позволяет получить доступ к файлам в папке выше текущей. Например:
Такие конструкции могут довольно часто встречаться при компиляции программ. Все эти символы и пути файлов linux вы можете применять не только в терминале, но и в любом файловом менеджере, что может быть очень удобно.
Но терминал Linux предоставляет еще более широкие возможности. Вы можете использовать простые символы замены прямо в адресах файлов или каталогов. Например, можно вывести все файлы, начинающиеся на f:
Или даже можно искать не только в папке tmp, а в любой подпапке домашней папки:
И все это будет работать, возможно, это не всегда нужно и практично. Но в определенных ситуациях может очень сильно помочь. Эти функции реализуются на уровне оболочки Bash, поэтому вы можете применять их в любой команде. Оболочка смотрит сколько файлов было найдено и для каждого из них вызывает команду.
Выводы
Вот и все. Теперь вы знаете все что необходимо, чтобы не только правильно написать путь к файлу linux, но и выполнять более сложные действия, например, поиск файлов или навигация по каталогам с помощью команды cd. Если у вас остались вопросы, спрашивайте в комментариях!
Источник
Полный путь linux консоль
В этой статье пойдет речь про команды навигации в терминале.
Решил написать несколько статей на тему терминала Linux. Постараюсь объяснять наиболее доходчиво.
Что из себя представляет корневая файловая система Linux?
Прежде, чем приступить к командам навигации в терминале, поговорим о директориях в Linux. Здесь нет дисков C:, D: и прочих.
Когда я начинал свой путь в Linux, для меня это было наиболее непонятно. Поэтому хочу пояснить этот момент.
Неважно, на сколько разделов вы разобьёте ваш диск, в системе будет:
Затем идут все остальные каталоги, которые служат для своих целей.
- /home — хранит каталоги пользователей, в которых можно, как правило, выполнять большинство действий без пароля администратора. Ваш домашний каталог находится по адресу: /home/Ваше_Имя_пользователя .
- /mnt и /media — в эти каталоги монтируются другие физические диски, флешки и прочие носители информации.
- /media — сюда монтируются диски, флешки, то есть, в этом каталоге создается папка с названием вашего электронного носителя.
Остальные каталоги системные, рассказу о них стоит выделить целую статью.
Перейдем к командам в терминале.
Команды навигации в терминале.
Когда вы открываете терминал в Ubuntu, то вы находитесь в своем домашнем каталоге:
(тильда) — означает домашний каталог текущего пользователя.
Чтобы узнать текущую директорию (отобразить полный путь к текущей директории),достаточно набрать команду в терминале:
Выполнение данной команды представлено на скриншоте выше.
Для навигации в терминале используется команда «cd» (англ. change directory — изменить каталог).
Сначала пишется команда cd, а затем путь, куда нужно перейти.
Вот так выглядит переход в каталог /home:
Но это не всё, что можно делать с помощью команды cd :
Перейти в директорию уровнем выше:
Перейти в директорию двумя уровнями выше:
Перейти в домашнюю директорию вашего пользователя:
Перейти в домашнюю директорию пользователя user_name:
Перейти в директорию, в которой находились до перехода в текущую директорию:
Следующая команда, используемая в навигации — «ls» (сокращение от англ. list).
Если ввести в терминале:
отобразится содержимое текущей директории:
Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих их тип:
Показать детализированное представление файлов и директорий в текущей директории:
Показать скрытые файлы и директории в текущей директории:
Ключи можно комбинировать вместе:
Кроме того, у команды ls очень много других ключей, которые можно посмотреть, выполнив команду:
Автодополение названий директорий в терминале.
Когда вы вводите команду cd, вам необязательно вводить полностью имя директории, достаточно нажать на клавиатуре клавишу «TAB», произойдет автодополнение названия каталога.
Если имя не заполнилось, значит, есть еще один каталог с таким названием. Нажав дважды клавишу «TAB», выведется список с каталогами, которые имеют в своём имени начальные буквы, которые вы ввели.
Если список огромнейший, то для отмены его просмотра нажмите клавишу N.
Это касается не только «cd», но и других команд. Например, когда вы хотите отредактировать какой-то файл. Вы выполнили команду ls, увидели, что у файла имя состоит из 30 знаков, то достаточно ввести первые буквы его имени и нажать клавишу «TAB» и произойдет автодополнение.
Это основные команды навигации в терминале Linux.
Источник
Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации
Предисловие
Об этом руководстве
Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.
Данная первая часть руководства отлично подходит для новичков в Linux, а также для тех пользователей, кто хочет освежить или улучшить свое понимание фундаментальных концепций Linux, таких, как копирование и перемещение файлов, создание символических и жестких ссылок, а также стандартных команд обработки текста, включая конвейеры и перенаправления. По ходу мы также дадим множество советов, подсказок и трюков, что делает это руководство насыщенным и практичным, даже для тех, кто уже имеет солидный опыт работы с Linux. Для начинающих большая часть этого материала будет новой, но более продвинутые пользователи Linux найдут это руководство отличным средством, чтобы разложить свои фундаментальные навыки по полочкам у себя в голове.
Тем, кто изучал первую версию этого руководства с целью, отличной от подготовки к экзамену LPI, возможно, что вам не нужно его перечитывать. Однако, тем же, кто планирует сдавать экзамены, стоит обязательно просмотреть данную исправленную версию.
Введение в bash
Оболочка
Если вы уже использовали Linux ранее, то наверняка знаете, что после входа в систему вас приветствует приглашение, которое выглядит примерно так:
На практике приглашение, которое вы видите, может немного отличаться. Например, оно может содержать имя хоста, имя текущей рабочей директории, или все вместе. Не зависимо от того, как выглядит ваше приглашение, есть одна несомненная вещь: программа, которая выводит это приглашение, называется оболочка интерпретатора команд (от англ. shell — оболочка, он же командная строка или терминал — прим. пер.), и, вероятнее всего, вашей командной оболочкой будет ‘bash’.
А у вас запущен bash?
Вы можете убедиться, что используете bash, набрав:
Если строчка выше выдает ошибку, или ответ не соответствует, возможно, что вы запустили другую оболочку. В этом случае большая часть этого руководства все еще будет полезна, но было бы значительно лучше для вас переключиться на bash, ради подготовки к экзамену 101.
О bash
Bash — это акроним от Bourne-again-shell, от англ. «ещё-одна-командная-оболочка-Борна» или «рождённая-вновь-командная оболочка» (тут игра слов Bourne/born — прим. пер.), и является оболочкой по умолчанию для большинства Linux-систем. Задача оболочки получать от вас команды, через которые вы взаимодействуете с Linux-системой. После того, как вы закончили ввод команд, вы можете выйти из оболочки (exit) или закончить сеанс (logout), в этом случае вы увидите приглашение входа в систему.
Кстати, вы также можете выйти из оболочки bash нажав control-D в приглашении.
Использование «cd»
Вы, возможно, уже обнаружили, что пялиться на приглашение bash — не самое впечатляющее занятие в мире. Ну что ж, давайте узнаем как путешествовать по нашей файловой системе. В приглашении введите пожалуйста следующую команду (без $):
Вы только что сообщили bash, что хотите работать в директории /, также известной, как корневая; все директории в системе имеют форму дерева, и / является его вершиной, т.е. корнем (в информатике деревья растут наоборот, корень вверху, а ветки спускаются вниз — прим. пер.). cd устанавливает директорию, в которой вы в данный момент работаете, также известную как «текущая рабочая директория».
Чтобы узнать текущую рабочую директорию в bash нужно набрать:
В примере с cd, аргумент / называется путь. Он сообщает cd куда мы хотим отправиться. В частности, аргумент / это абсолютный путь, что значит, что он задает расположение относительно корня дерева файловой системы.
Абсолютные пути
Ниже несколько из них:
/dev
/usr
/usr/bin
/usr/local/bin
Как можно заметить, у всех абсолютных путей есть одна общая черта, они начинаются с /. Указывая, допустим, /usr/local/bin в качестве аргумента для cd, мы сообщаем, что хотим попасть в / директорию, затем в usr директорию внутри нее, и так далее в local и bin, вниз по дереву. Абсолютные пути всегда отсчитываются начиная от / сперва.
Относительные пути
Другой тип пути называется «относительный путь». bash, cd, и другие команды всегда интерпретируют их относительно текущей директории. Относительные пути НИКОГДА не начинаются с /. Так, если мы сначала переместимся в /usr:
То, затем мы можем использовать относительный путь local/bin, чтобы попасть в директорию /usr/local/bin:
Использование ..
Относительные пути могут также содержать одну или более «..» директории. Директория «..» специальная; она указывает на родительскую директорию. Так, продолжая с примера выше:
Как видно, наша текущая директория теперь /usr/local. Мы смогли переместиться «назад» на одну директорию относительно текущей, где были до того.
Кроме того, мы также можем использовать «..» в существующем относительном пути, позволяющем нам переместиться в директорию «рядом» с той, в которой находимся:
Примеры относительных путей
Относительные пути могут быть чуточку более сложными. Ниже несколько примеров, попробуйте самостоятельно догадаться, где вы окажитесь после набора каждой из этих команд.
А теперь наберите их и проверьте свои предположения. 😉
Понимание .
Перед тем как мы закончим изучение cd, есть несколько моментов, которые необходимо прояснить. Во-первых, есть еще одна специальная директория «.», которая означает «текущая директория». Хотя она и не используется с командой cd, но часто используется для выполнения программы из текущей директории, как в следующем примере:
В данном случае будет запущена исполняемая программа myprog, находящаяся в текущей рабочей директории.
cd и домашняя директория
Если бы мы хотели переместиться в нашу домашнюю директорию, то могли бы набрать:
Без каких либо аргументов cd переместит в вашу домашнюю директорию, которая будет /root для суперпользователя, или обычно /home/username (где username — имя пользователя в системе — прим.пер.) для любого другого пользователя. Но, что если мы хотим указать файл в нашей домашней директории? Может быть мы хотим передать путь к файлу в качестве аргумента нашей программе myprog. Если файл расположен в нашей домашней директории, мы можем набрать:
Однако, использования абсолютного пути вроде этого, не всегда удобно. К счастью, мы можем использовать символ
(тильда), чтобы проделать то же самое:
Другие домашние директории пользователей
Bash воспримет одиночную
как указатель на вашу домашнюю директорию, но вы также можете использовать её для указания на домашние директории других пользователей. Например, если мы хотели сослаться на файл под названием fredsfile.txt в домашней директории пользователя fred, то могли бы набрать:
Об авторах
Daniel Robbins
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Aron Griffis
Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».
Источник