Как найти путь к программе linux

Добрый день дорогие друзья. В этой серии статей, я постараюсь передать вам свой опыт который поможет более уверенно работать с ОС на ядре Linux. Серия посвящена основам работы в командной строке. Затрагивает базовые операции и предназначена в основном для новичков.

Первая вступительная статья будет посвящена навигации в терминале Linux при помощи оболочки BASH, а именно мы рассмотрим 3 самые нужные команды. Предполагается, что у вас уже установлена операционная система Linux, все примеры мы будем выполнять на Ubuntu. Если еще не установлена, то установите себе прочитав статью — «Установка Ubuntu«.

Навигация в терминале — один из важнейших навыков, которым должен обладать системный администратор. Он должен быстро и эффективно использовать всю мощь терминала, которую предоставляет операционная система.

Итак, сейчас мы ознакомимся с тремя командами навигации, а именно — ls, cd, pwd.

ls — выводит содержимое каталога. cd — переходит в указанный каталог. pwd — выводит путь к каталогу в котором мы находимся.

PWD

Команду pwd особо описывать нечем, вывод команды имеет следующий вид:

Linux для Начинающих — Навигация по файлам и директориям

pwd

В первой строке мы ввели команду pwd, в следующей строке получили вывод работы команды /var/log — директория в которой мы находимся.

CD

Команду cd вы будете использовать постоянно. С помощью этой команды мы имеем возможность перемещаться по файловой системе ОС. Имеет синтаксис вида cd /путь/к/директории.

Основные приемы работы с командой cd:

  • если вы просто введете команду cd без аргументов, она вас переместит в ваш домашний каталог. Если вы находились в каталоге /home/username/cat1/test то cd вернет вас в /home/username.
  • ./ — эти символы вначале аргумента указывают на то, переход мы будем выполнять с текущего каталога. cd ./cat1/test
  • для перехода на уровень выше можно использовать две точки .. Находясь в каталоге /home/username/cat1/test и введя команду cd .. мы совершим переход в каталог /home/username/cat1
  • также при помощи команды cd —, мы можем вернутся в предыдущий каталог. Если мы перешли в наш домашний каталог, а до этого находились в /var/log/mysql, можете просто использовать команду cd— и она вас вернет обратно в /var/log/mysql.

LS

Команда ls, одна из самых простых и самых нужных команд. С помощью данной команды можно просматривать содержимое каталогов, кому принадлежит каталог/файл, права доступа к файлу/каталогу и многую другую информацию.

Стандартный вывод программы выглядит так:

ls_main

Это стандартный вывод команды, мы видим все каталоги и файлы в директории где мы находимся. Каталоги отмечены синим цветом, файлы белым.

Помимо такого вывода, ls может предоставлять нам информацию в других разных форматах. Делается это при помощи специальных ключей или как их еще называют — флаги.

-R — выводит содержимое текущего каталога и если есть вложенные каталоги, то и содержимое этих каталогов. -l — длинный формат вывода. -m — выводит содержимое каталога через запятые. -a — показывает все файлы и папки включая скрытые. -r — реверсивный вывод информации. -x — сортировка вывода в алфавитном порядке -t — сортировка по времени создания/последнего изменения файла -s — сортировка по размеру файла

Все ключи вводятся сразу после команды ls и команда приобретает следующий вид ls -l.

Теперь посмотрим на примеры выполнения команды с ключами.

ls -l

ls-l

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

Слева направо — Права доступа, Количество ссылок, Владелец, Группа владельца, Размер в байтах, Время последнего изменения, Название файла.

В первом столбике отображаются права доступа к файлу, однако что первый символ в текущем выводе иногда «—«, а иногда «d«. Этот первый символ указывает на тип файла.

Есть еще и другие типы файлов, однако об этом поговорим позже.

Читайте также:
Все многообразие программ используемых в современном компьютере это

ls -R

ls-R

Все очень просто, выводится путь к директории, а после двоеточия список файлов и каталогов.

ls -m

ls-m

Также флаги можно комбинировать, таким образом получая удобный формат вывода. Например очень удобно использовать ls -sl, ls -al и так далее. Потренируйтесь в терминале и подберите удобный формат для себя.

Обратите внимание, что linux чувствителен к регистру, команда ls и Ls разные. Директории home и Home тоже разные, на это стоит обращать внимание.

Потренируйтесь с командами которые вы узнали из этой статьи и закрепите ваши знания. И помните, чем больше вы знаете возможностей приложения, тем легче и продуктивней будет ваша работа.

Источник: adminnotes.info

Linux как узнать путь к файлу

Абсолютный путь содержит полный перечень папок, в которых находится файл, начиная от корня файловой системы. Пример абсолютного пути: /home/mial/bin/myfile.txt Преимущество абсолютного пути в том, что используя его можно обратиться к файлу из любой папки системы. Относительный путь указывает на расположение файла относительно текущей папки. Примеры относительных путей:

Преимущество относительного пути в том, что обычно он обозначается более короткой записью как например myfile.txt — означает одноимённый файл в текущей папке. Очевидно, что при смене рабочей директории относительный путь до файла станет другим.

В этой заметке будут рассмотрены несколько примеров того, как определить абсолютный путь до файла в текущей рабочей директории.

realpath

Первый вариант — использовать команду realpath:

Привет вывода абсолютного пути:

Эта программа является частью coreutils.

По умолчанию эта программа преобразует символические ссылки (опция -P) и показывает расположение файла даже если он не существует (опция -m) — то есть эти опции указывать необязательно.

Фактически, по умолчанию работа программы сводится к тому, что к указанному аргументу она добавляет текущую рабочую папку, то есть можно узнать абсолютный путь даже до файла, который не существует:

Если вас это не устраивает, то используйте опцию -e — тогда если указанный файл не существует, то вместо вывода абсолютного пути будет показано сообщение об ошибке.

Аналогичную функцию выполняет и команда readlink.

Если вы хотите показать абсолютный путь только для существующих файлов, то используйте опцию -e:

Если вас не волнует, существует ли файл, то используйте опцию -f (не требует существование последнего компонента) или опцию -m (не требует существование какого-либо компонента пути):

UNIX системы — это не только многочисленные дистрибутивы Linux. В некоторых из них команды realpath и readlink могут отсутствовать. Если они отсутствуют и вы не хотите или не можете устанавливать дополнительные бинарные файлы, то выход всё равно есть.

Создайте файл, например, realpath.sh и скопируйте в него:

Этот же вариант в виде функции:

Вот эта же функция в продвинутом варианте — дополнительно обрабатывает ситуацию, когда директория не существует, а также если во вводе присутствуют ‘..’ или ‘.’

Ещё один вариант в виде функции оболочки, который:

  • не требует утилит (только cd и pwd)
  • работает для директорий и файлов
  • обрабатывает .. и .
  • обрабатывает пробелы в директориях и именах файлов
  • требует, чтобы файл или директория существовали
  • ничего не возвращает, если ничего не существует
  • может принимать абсолютные пути в качестве ввода (хотя ничего с ними не делает)

И ещё одна функция, записанная в одну строку и работающая в bash и zsh (другие не проверялись):

Путь к файлу в Linux

Все файлы в Linux имеют определенный адрес в файловой системе, с помощью которого мы можем получить к ним доступ с помощью файлового менеджера или консольных утилит. Это довольно простая тема, но у многих новичков с этим возникают трудности.

В сегодняшней небольшой заметке мы рассмотрим что такое путь к файлу Linux, каким он может быть, как правильно его писать и многое другое. Если раньше у вас возникали с этим трудности, то после прочтения статьи все станет полностью понятно.

Пути файлов в Linux

Файловая система Linux очень сильно отличается от Windows. Мы не будем рассматривать ее структуру, это было сделано ранее. Мы сосредоточимся на работе с файлами.

Самое главное отличие, в том что адрес файла начинается не с диска, например, C: или D: как это происходит в Windows, а с корня, корневого системного каталога, к которому подключены все другие. Его адрес — /. И тут нужно сказать про адреса. Пути файлов linux используют прямой слеш «/» для разделения каталогов в адресе, и это отличается от того, что вы привыкли видеть в Windows — .

Читайте также:
Какие требования предъявляются к компьютеру на котором установлена программа sap

Например, если в Windows полный путь к файлу на рабочем столе выглядел C:UsersSergiyDesktop то в путь файла в 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. Если у вас остались вопросы, спрашивайте в комментариях!

Узнать полный путь к файлу

Приветствую Сообщество!
Для создания загрузочной флешки при помощи dd нужен путь к образу.
Образ находится в папке /home/vaio/Загрузки
Стало интересно, как узнать путь через терминал? Нашел несколько команд, например, pwd
pwd debian-live-8.5.0-amd64-lxde-desktop.iso

Прошу подсказать с помощью какой команды можно через терминал узнать полный путь к файлу.

Если указывать такой путь в dd, то на выходе получаю Нет такого файла или каталога

потому, что файл находится в /home/vaio/Загрузки/debian-live-8.5.0-amd64-lxde-desktop.iso, а не в /home/vaio/debian-live-8.5.0-amd64-lxde-desktop.iso как ты написал. Ты либо вывод перепечатывай правильно, либо копируй, либо используй подстановку команд:

Читайте также:
Программа чтобы быть офлайн ВК

find / -type f -name ‘debian-live-8.5.0-amd64-lxde-desktop.iso’ -exec dd if=<> of=. ;

kostik87 , спасибо за ответ!

Ты либо вывод перепечатывай правильно, либо копируй,

Я и копировал вывод.

Вот это интересно. Буду знать.

только непонятно зачем тебе полный путь, если ты набираешь просто
readlink -m debian-live-8.5.0-amd64-lxde-desktop.iso

Так я думал, что таким образом узнаю, где находится искомый образ.
Как надо было набрать, чтобы узнать путь?

то следовательно ты уже находишься в /home/vaio/Загрузки, тебе достаточно писать
dd if=debian-live-8.5.0-amd64-lxde-desktop.iso of=.

Когда я действительно находился в папке, где лежит образ, то все получилось.
Т.е. образ на флешку записал.

Но все же вопрос остается открытым:
Как через терминал узнать путь к произвольному файлу, зная его название?

Как через терминал узнать путь к произвольному файлу, зная его название?

тебе уже ответили, man find

Как через терминал узнать путь к произвольному файлу, зная его название?

find / -type f -name ‘название’

в дополнение к find, есть шустрый mlocate, который ищет по индексу.

Ребята, благодарю за ответы!
И прошу еще немного терпения и внимания.
find / -type f -name debian-live-8.5.0-amd64-lxde-desktop.iso

sudo find / -type f -name debian-live-8.5.0-amd64-lxde-desktop.iso 2>/dev/null

Чтобы искать по индексу — нужно его сначала построить, а потом регулярно обновлять. Есть лишние иопсы?

Обновляется индекс по крону.
Чтобы найти файл с помощью find, обычно тратится больше иопсов, чем тратится на обновление базы mlocate.

Я принимаю бессилие перед этой задачей.
Буду делать как раньше и экономить иопсы.
Всем благодарен!

Источник: onecomp.ru

Путь до BASH в linux

Путь до BASH в linux

Информация о материале Родительская категория: Программирование Категория: BASH

Самое первое, что нужно знать, начиная писать программу на языке программирования BASH, — это то, что файл с этой программой должен иметь расширение . sh . То есть окончание этого файла должно быть именно такое, например, hello.sh . Так договорились в своё время программисты, и следуя этой договорённости, просматривая папки с файлами легко понять, что за файлы в ней расположены, и какие конкретно для чего приблизительно служат.

  • Первая строка в любой программе BASH
  • Как узнать правильный путь к интерпретатору BASH
  • Видео с применением данных пути к интерпретатору BASH

Первая строка в любой программе BASH

Второе, что нужно сразу запомнить, это то, что первая строка в любой программе, написанной на BASH должна указывать на интерпретатор этого языка. И выглядит это обычно так:

#!/bin/bash

Первый символ # , второй символ — ! . Сразу за ними (без каких-либо пробелов) путь до интерпретатора: /bin/bash . И сразу после него перенос строки. Снова никаких пробелов.

Это всё важно. Иначе могут возникать ошибки, которые при первом взгляде не выявить: пробельные символы не видны, а кто может догадаться о том, что кто-то по доброте душевной решил не экономить и наставить лишних символов там, где не надо? 😉

Сочетание #! называется Shebang. В Линукс, если файл начинается с этих символов, это даёт команду операционной системе проследовать по идущему за ним пути по которому должна находиться программа или интерпретатор для запуска сценария, следующего за этой строкой.

Как узнать правильный путь к интерпретатору BASH

Обычно в linux интерпретатор BASH находится по пути /bin/bash , но там его может не быть по независящим от вас причинам. Тогда имеем смысл попробовать ввести команду whereis bash и посмотреть на результаты, которые она выдаст:

[email protected]:~# whereis bash bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

Как видно на примере выше, было найдено три совпадения:

  1. /bin/bash — путь до интерпретатора (именно то, что требуется)
  2. /etc/bash.bashrc — конфигурационный файл с переменными окружения BASH пользователя
  3. /usr/share/man/man1/bash.1.gz — файл справочной информации для BASH

Нужно помнить, что если whereis не находит BASH, то это не значит, что его нет в системе. Тут имеет смысл посмотреть глобальную переменную окружения $PATH , но обычно этого не требуется. Поэтому дальше не вижу смысла углубляться в детали.

Видео с применением данных пути к интерпретатору BASH

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Источник: mb4.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru