Рабочая директория как найти




Время чтения статьи
~2 минуты

Зачем нужна команда pwd и что такое текущая рабочая директория главное изображение

Из этой статьи вы узнаете, как определить текущую рабочую директорию (current working directory) с помощью команды pwd.

  • Что такое текущая рабочая директория
  • Команда pwd
  • Как найти текущую рабочую директорию
  • Заключение

Что такое текущая рабочая директория

Текущая рабочая директория — директория, в которой пользователь работает в данный момент. При взаимодействии с командной строкой вы всегда находитесь внутри директории.

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

Например, чтобы изменить текущую рабочую директорию на /tmp, используйте такую команду:

cd /tmp

Путь к текущей рабочей директории может отображаться в оболочке командной строки.

user@host:/tmp#

Команда pwd

Команда pwd выводит текущую рабочую директорию. Это одна из базовых и самых популярных команд в Linux. При вызове pwd выводится полный путь к текущей рабочей директории.

Команда pwd встроена в большинство современных командных оболочек, в том числе в Bash. Её поведение отличается от выполнения /bin/pwd. С помощью команды type можно получить все места, где есть pwd:

type -a pwd

Получаем вывод:

pwd is a shell builtin
pwd is /bin/pwd

Как показывает вывод, встроенная команда pwd имеет более высокий приоритет по сравнению с /bin/pwd. Поэтому она используется всякий раз, когда вы вводите в командую строку pwd. Если вы хотите использовать файл /bin/pwd, нужно указать в командной строке полный путь до него.

Как найти текущую рабочую директорию

Чтобы понять, в какой директории вы работаете в данный момент, введите в терминале pwd. Вывод может выглядеть так (название директории может отличаться):

/home/linuxize

Всё, что делает команда pwd — выводит значение переменной окружения PWD. Такой же вывод получится, если ввести в терминале:

echo $PWD

получаем текущий рабочий каталог


Команда pwd принимает только два аргумента:

  • -L (—logical) — не разрешать симлинки.
  • -P (—physical) — отображать физическую директорию без симлинков.

По умолчанию pwd ведёт себя так, как будто применена опция -L.

Чтобы понять, как работает аргумент -P, создадим директорию и симлинк, указывающий на эту директорию.

mkdir /tmp/directory
ln -s /tmp/directory /tmp/symlink

Когда вы зайдёте в директорию /tmp/symlink и введёте команду pwd, вывод будет таким:

/tmp/symlink

То есть текущей рабочей директорией становится /tmp/symlink. Если ввести команду pwd -P, вывод будет таким:

/tmp/directory

Симлинк (англ. Symlink, symbolic link) — символическая ссылка. Этим термином обозначают файл, в котором содержится абсолютный или относительный путь к другому файлу или директории.

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

Заключение

Текущая рабочая директория — директория, из которой вы вызываете команды в терминале. Чтобы отобразить текущую рабочую директорию, нужно использовать команду pwd. Если у вас остались вопросы, добро пожаловать в комментарии.

Адаптированный перевод статьи Pwd Command in Linux (Current Working Directory) by Linuxize.

Аватар пользователя Дмитрий Дементий



17

Содержание

  1. Зачем нужна команда pwd и что такое текущая рабочая директория
  2. Что такое текущая рабочая директория
  3. Команда pwd
  4. Как найти текущую рабочую директорию
  5. Заключение
  6. Базовые команды в Linux для начинающих
  7. Навигация по файловой системе
  8. Команда pwd
  9. Команда cd
  10. Работа с файлами и каталогами
  11. Команда ls
  12. Команда file
  13. Команда touch
  14. Команда mkdir
  15. Команда rmdir
  16. Команда ln
  17. Команда rm
  18. Команда cp
  19. Команда mv
  20. Команда tar
  21. Команды zip и unzip
  22. Команда find
  23. Команда df
  24. Команда du
  25. Владение файлами и права доступа
  26. Команда chmod
  27. Команда chown
  28. Команда sudo
  29. Управление пользователями и группами
  30. Команда uname
  31. Команды useradd и passwd
  32. Команда userdel
  33. Команды groupadd и groupdel
  34. Команда usermod
  35. Управление процессами
  36. Команда top
  37. Команда kill
  38. Работа с сетью
  39. Команда ping
  40. Команда wget
  41. Команда hostname
  42. Работа с текстом
  43. Команда head
  44. Команда tail
  45. Команда diff
  46. Команда grep
  47. Команда echo
  48. Команда cat
  49. Установка и удаление пакетов
  50. apt (Ubuntu и Debian)
  51. dnf (CentOS и Fedora)
  52. Справка
  53. Параметр help
  54. Команда man
  55. Команда history
  56. Команда whereis
  57. Дополнительно
  58. Добавить комментарий Отменить ответ
  59. Linux полный путь к текущей директории
  60. ИТ База знаний
  61. Полезно
  62. Навигация
  63. Серверные решения
  64. Телефония
  65. Корпоративные сети
  66. Linux: команды для работы с файлами и директориями
  67. Основы
  68. Команды для работы с файлами и директориями

Зачем нужна команда pwd и что такое текущая рабочая директория

blog promo e872632493a971b3ba0722ccffaec76d1df333a297017200dadbff257e5959c1

Из этой статьи вы узнаете, как определить текущую рабочую директорию (current working directory) с помощью команды pwd.

Что такое текущая рабочая директория

Текущая рабочая директория — директория, в которой пользователь работает в данный момент. При взаимодействии с командной строкой вы всегда находитесь внутри директории.

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

Например, чтобы изменить текущую рабочую директорию на /tmp, используйте такую команду:

Путь к текущей рабочей директории может отображаться в оболочке командной строки.

Команда pwd

Команда pwd выводит текущую рабочую директорию. Это одна из базовых и самых популярных команд в Linux. При вызове pwd выводится полный путь к текущей рабочей директории.

Команда pwd встроена в большинство современных командных оболочек, в том числе в Bash. Её поведение отличается от выполнения /bin/pwd. С помощью команды type можно получить все места, где есть pwd:

Как показывает вывод, встроенная команда pwd имеет более высокий приоритет по сравнению с /bin/pwd. Поэтому она используется всякий раз, когда вы вводите в командую строку pwd. Если вы хотите использовать файл /bin/pwd, нужно указать в командной строке полный путь до него.

Как найти текущую рабочую директорию

Чтобы понять, в какой директории вы работаете в данный момент, введите в терминале pwd. Вывод может выглядеть так (название директории может отличаться):

Всё, что делает команда pwd — выводит значение переменной окружения PWD. Такой же вывод получится, если ввести в терминале:

L8Bkhkp

Команда pwd принимает только два аргумента:

По умолчанию pwd ведёт себя так, как будто применена опция -L.

Чтобы понять, как работает аргумент -P, создадим директорию и симлинк, указывающий на эту директорию.

Когда вы зайдёте в директорию /tmp/symlink и введёте команду pwd, вывод будет таким:

Симлинк (англ. Symlink, symbolic link) — символическая ссылка. Этим термином обозначают файл, в котором содержится абсолютный или относительный путь к другому файлу или директории.

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

Заключение

Текущая рабочая директория — директория, из которой вы вызываете команды в терминале. Чтобы отобразить текущую рабочую директорию, нужно использовать команду pwd. Если у вас остались вопросы, добро пожаловать в комментарии.

you bc72575a0e6eb39de3e28e54a8df1138beaa57cd5300061ecb5c202773131f9e

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Источник

Базовые команды в Linux для начинающих

Обновл. 28 Апр 2022 |

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

Навигация по файловой системе

При навигации по файловой системе в Linux можно использовать как абсолютный, так и относительный пути к ресурсу.

Команда pwd

Команда pwd (от англ. «present working directory») позволяет узнать, в каком каталоге вы находитесь в данный момент:

Результатом будет путь к текущему рабочему каталогу:

Команда cd

Команда cd (от англ. «change directory») используется для смены текущего рабочего каталога. При использовании без каких-либо параметров, команда cd перенесет вас в ваш домашний каталог:

Чтобы перейти в другой каталог, вы можете использовать абсолютный или относительный путь. Например, перейти в папку Downloads, расположенную в текущем каталоге, можно как через относительный путь:

Так и через абсолютный путь:

Чтобы подняться на два уровня вверх:

Чтобы вернуться к предыдущему рабочему каталогу, используйте символ тире – в качестве опции:

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

$ cd имя каталога с пробелами

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

Команда ls

Команда ls (от англ. «lis) выводит информацию о файлах и каталогах внутри заданного каталога. При использовании без параметров, данная команда отобразит в алфавитном порядке список имен всех файлов в текущем рабочем каталоге:

Чтобы вывести содержимое конкретного каталога, достаточно указать путь к этому каталогу в качестве параметра:

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

-rw-r—r— 1 root root 337 Oct 4 11:31 /etc/hosts

Команда file

Файлы в Linux не обязаны всегда иметь расширения для того, чтобы с ними можно было работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Команда file помогает решить данную проблему, отображая информацию о типе файла на основе его содержания:

/etc/fstab: ASCII text

Команда file может работать и с директориями, например:

/tmp/: sticky, directory

Команда touch

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

Чтобы создать новый файл, используйте команду touch с именем (создаваемого) файла в качестве параметра:

Если файл уже существует, команда touch изменит отметку о времени последнего доступа (или изменения) к нему.

Команда mkdir

Команда mkdir (от англ. «make directory») позволяет создавать новые каталоги. Для этого укажите имя каталога в качестве параметра:

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

Вышеприведенная команда создаст полную структуру каталогов.

Команда rmdir

Команда rmdir (от англ. «remove directory») используется для удаления (только) пустых каталогов:

Команда ln

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

Команда rm

Команда rm (от англ. «remove») используется для удаления файлов и каталогов. При указании без параметров данная команда удаляет только файлы. Стоит отметить, что при этом команда не запрашивает у пользователя подтверждения на продолжение удаления файлов.

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

Также в качестве параметров допускается указывать одно или несколько имен файлов или каталогов.

rm: удалить пустой обычный файл ‘file.txt’?

Команда cp

Команда cp (от англ. «cop) позволяет копировать файлы и каталоги. Чтобы скопировать файл в текущий рабочий каталог, используйте исходный файл в качестве первого параметра, а новый файл — в качестве второго:

$ cp file file_backup

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

По умолчанию, если файл назначения существует, он будет перезаписан.

Команда mv

Команда mv (от англ. «mov) используется для перемещения файлов и каталогов из одного места в другое, а также для переименования файлов. Например, чтобы переместить файл file.txt в каталог /tmp, вы должны выполнить:

Чтобы переименовать файл, необходимо указать имя целевого файла, а затем его новое имя:

$ mv file.txt file1.txt

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

$ mv file.tx1 file1.txt /tmp

Команда tar

Команды zip и unzip

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

$ zip newarchive.zip file1 file2 file3

$ zip –r newarchive.zip /home/diego/mydocs/

Также, цифрами от 0 (без сжатия, быстро) до 9 (максимальное сжатие, медленно) вы можете указывать степень сжатия будущего архива. По умолчанию, используется 6-й уровень сжатия:

Для извлечения содержимого архива в текущий каталог используется команда unzip :

$ unzip myarchive.zip –d /tmp/

Команда find

Команда find выполняет поиск файлов и каталогов в заданном каталоге. Например, следующая команда будет искать файл с именем notes.txt в каталоге /home и его подкаталогах:

Команда df

Команда du

Владение файлами и права доступа

Команда chmod

Команда chmod (от англ. «change mod) позволяет изменить права доступа к файлам. Она работает в двух режимах: символьном и числовом.

При использовании числового режима вы можете установить разрешения для владельца, группы и всех остальных при помощи заданного набора чисел. Разрешения на запись, чтение и выполнение имеют следующие числовые значения:

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

$ chmod 644 имя_файла

Только пользователь root, владелец файла или пользователь с правами sudo могут изменять права доступа к файлу.

Команда chown

Команда chown (от англ. «change owner») позволяет изменить владельца и группу заданного файла, каталога или символьной ссылки.

Чтобы изменить владельца файла, достаточно выполнить:

$ chown имя_пользователя имя_файла

Чтобы изменить как владельца, так и группу файла, вызовите:

$ chown имя_пользователя:имя_группы имя_файла

Команда sudo

Управление пользователями и группами

Команда uname

Linux debian 5.10.0-6-amd64 #1 SMP Debian 5.10.28-1 (2022-04-09) x86_64 GNU/Linux

Команды useradd и passwd

Команда useradd позволяет создавать новых пользователей. Чтобы создать новую учетную запись пользователя, вызовите команду useradd вместе с именем нового пользователя:

После создания пользователя установите ему пароль, выполнив команду passwd:

Команда userdel

Команда userdel используется для удаления учетной записи пользователя:

Команды groupadd и groupdel

Команда groupadd используется для создания новой группы. Просто укажите название группы в качестве параметра:

Чтобы удалить группу, используйте команду groupdel с именем группы в качестве параметра:

Команда usermod

Управление процессами

Команда top

Команда top отображает в режиме реального времени список запущенных процессов, их числовые идентификаторы (сокр. «PID» от англ. «Process IDentificator») и насколько сильно каждый из них нагружает CPU:

Команда kill

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

Всего существует 64 различных сигнала, но самыми популярными являются два:

SIGTERM (15) — сигнал завершения работы программы, при котором ей дается некоторое время, чтобы сохранить свой прогресс и данные.

SIGKILL (9) — сигнал, требующий от программы немедленного завершения. Все несохраненные данные при этом будут потеряны.

Например, зная PID нужного вам процесса, послать ему сигнал можно следующим образом:

Работа с сетью

Команда ping

Команда ping применяется в тех случаях, когда необходимо проверить состояние подключения к серверу. Например:

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

Команда wget

Команда wget пригодится вам, если вы собираетесь загрузить из Интернета какие-либо файлы (или страницы сайтов). Она поддерживает протоколы HTTP, HTTPS, FTP, а также работу через прокси-серверы. Для загрузки нужного вам файла просто передайте его адрес в качестве параметра команде wget :

Команда hostname

Работа с текстом

Команда head

Команда tail

Команда tail отображает последние десять строк текстового файла:

Команда diff

Команда diff (от англ. «difference») производит построчное сравнение содержимого двух файлов. После анализа файлов, выводится список несовпадающих строк. Программисты часто используют данную команду, когда им нужно внести некоторые изменения в исходный код программы:

$ diff file1.txt file2.txt

Команда grep

Команда grep (от англ. «search globally for lines matching the regular expression, and print them») позволяет искать указанный текст в указанном файле, например:

$ grep blue notepad.txt

Вышеприведенная команда будет искать слово blue в файле notepad.txt и выведет все строки, в которых содержится искомое слово.

Команда echo

Команда echo используется для вывода в терминал строки, указанной ей в качестве параметра. Часто команда echo применяется для перемещения некоторых данных в файл. Например, если вы хотите добавить строку «Hello, world!» в файл с именем name.txt, выполните:

$ echo «Hello, world!» >> name.txt

Команда cat

Команда cat (от англ. «concatenate») отображает содержимое одного или нескольких файлов. Чтобы отобразить содержимое файла, необходимо указать его имя в качестве параметра команды cat :

Установка и удаление пакетов

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

Только root или пользователь с привилегиями sudo может устанавливать и удалять пакеты.

apt (Ubuntu и Debian)

apt (от англ. «Advanced Package Tool») — это система управления пакетами, используемая дистрибутивами на базе Debian. В дистрибутивах на базе Debian существует несколько инструментов управления пакетами с помощью командной строки, причем наиболее часто используются apt и apt-get.

Перед установкой нового пакета сначала необходимо обновить информацию о пакетах:

Индекс apt — это база данных, содержащая записи доступных в репозиториях пакетов, подключенных в вашей системе.

Чтобы обновить установленные пакеты до последних версий, выполните:

Установка пакетов так же проста:

$ apt install имя_пакета

Чтобы удалить установленный пакет, введите:

$ apt remove имя_пакета

dnf (CentOS и Fedora)

rpm (сокр. от англ. «Red Hat Package Manager») — это мощная система управления пакетами, используемая в дистрибутивах от Red Hat и производных дистрибутивах, таких как: CentOS и Fedora. С rpm также связаны команда rpm и .rpm-формат пакетов.

Чтобы установить новый пакет в дистрибутивах от Red Hat, вы можете использовать команду yum или dnf:

$ dnf install имя_пакета

Чтобы обновить установленные пакеты до последних версий, введите:

Удаление пакетов так же просто, как:

$ dnf remove имя_пакета

Справка

Параметр help

Команда man

Почти все команды в Linux распространяются вместе с man-страницами (от англ. «manual») — документацией, которая объясняет, что делает команда, приводит примеры того, как следует применять команду и какие параметры и опции она поддерживает.

Команда man применяется для отображения страницы руководства по заданной команде:

Для навигации по справочным страницам используйте клавиши со стрелочками вверх и вниз. Также вы можете нажать:

клавишу Enter для перемещения на одну строку за раз;

клавишу (Пробел) для перехода к следующему экрану;

клавишу b для возврата на один экран назад;

клавишу q для выхода из справочной страницы.

Команда history

Если вы используете Linux в течение определенного периода времени, вы быстро заметите, что можете выполнять десятки (если не сотни) команд каждый день. Таким образом, запуск команды history особенно полезен, если вы хотите просмотреть ранее введенные команды:

Команда whereis

Команда whereis отображает полный путь к исполняемому файлу программы (или к исходным файлам, если они присутствуют в системе). Например:

gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/gcc

Дополнительно

Команда clear используется для очистки терминала, если он загроможден слишком большим количеством данных от прошлых команд

Сочетания клавиш:

Ctrl+C — останавливает и завершает команду;

Ctrl+Z — ставит выполнение команды на паузу;

Ctrl+S — временно приостанавливает вывод информации в терминал;

Ctrl+Q — продолжает вывод информации в терминал;

Ctrl+A — перемещает вас в начало строки;

Ctrl+E — перемещает вас в конец строки.

$ Command1; Command2; Command3

Поделиться в социальных сетях:

Установка Linux совместно с Windows 10 через WSL

Добавить комментарий Отменить ответ

Источник

Linux полный путь к текущей директории

В этой статье пойдет речь про команды навигации в терминале.

Решил написать несколько статей на тему терминала Linux. Постараюсь объяснять наиболее доходчиво.

Что из себя представляет корневая файловая система Linux?

Прежде, чем приступить к командам навигации в терминале, поговорим о директориях в Linux. Здесь нет дисков C:, D: и прочих.

Когда я начинал свой путь в Linux, для меня это было наиболее непонятно. Поэтому хочу пояснить этот момент.

Неважно, на сколько разделов вы разобьёте ваш диск, в системе будет:

Затем идут все остальные каталоги, которые служат для своих целей.

Остальные каталоги системные, рассказу о них стоит выделить целую статью.

Перейдем к командам в терминале.

Команды навигации в терминале.

Когда вы открываете терминал в Ubuntu, то вы находитесь в своем домашнем каталоге:

Чтобы узнать текущую директорию (отобразить полный путь к текущей директории),достаточно набрать команду в терминале:

Выполнение данной команды представлено на скриншоте выше.

Сначала пишется команда cd, а затем путь, куда нужно перейти.

Вот так выглядит переход в каталог /home:

Но это не всё, что можно делать с помощью команды cd :

Перейти в директорию уровнем выше:

Перейти в директорию двумя уровнями выше:

Перейти в домашнюю директорию вашего пользователя:

Перейти в домашнюю директорию пользователя user_name:

Перейти в директорию, в которой находились до перехода в текущую директорию:

Если ввести в терминале:

отобразится содержимое текущей директории:

Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих их тип:

Показать детализированное представление файлов и директорий в текущей директории:

Показать скрытые файлы и директории в текущей директории:

Ключи можно комбинировать вместе:

Кроме того, у команды ls очень много других ключей, которые можно посмотреть, выполнив команду:

Автодополение названий директорий в терминале.

Когда вы вводите команду cd, вам необязательно вводить полностью имя директории, достаточно нажать на клавиатуре клавишу «TAB», произойдет автодополнение названия каталога.

Если имя не заполнилось, значит, есть еще один каталог с таким названием. Нажав дважды клавишу «TAB», выведется список с каталогами, которые имеют в своём имени начальные буквы, которые вы ввели.

Если список огромнейший, то для отмены его просмотра нажмите клавишу N.

Это касается не только «cd», но и других команд. Например, когда вы хотите отредактировать какой-то файл. Вы выполнили команду ls, увидели, что у файла имя состоит из 30 знаков, то достаточно ввести первые буквы его имени и нажать клавишу «TAB» и произойдет автодополнение.

Это основные команды навигации в терминале Linux.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Linux: команды для работы с файлами и директориями

Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.

rocket

Основы

Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:

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

Команды для работы с файлами и директориями

Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:

В примере выше, команда tail вывела только последние 11 строк.

Работа с архивами

Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком 🙂

Про жёсткие диски

1

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

В этом разделе вы познакомитесь с основами навигации по системе. Для множества задач нужно уметь добираться до конкретного места в системе, и эти навыки формируют фундамент вашего успеха в работе с 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. Постарайтесь почаще использовать автодополнение. Зачем напрягаться, если компьютер может что-то делать за вас?

I am going through some Git tutorials. The concept of a «working directory» keeps being mentioned, however, none of the tutorials or documents I read points out where or what this «working directory» is.

I have thought that it was actually the .git‘s parent directory, a.k.a the directory I run git init in. But the video tutorial I am watching talks about the state of nothing to commit and «working directory clean«:

In fact you can actually make a copy of the repository, and make that
copy so that it does not have a working directory, this is actually
called the bare clone. This is actually what GitHub uses.

If my understanding of the «working directory» is correct, how can a repository not have a «working directory«? And what does it mean, when it says that GitHub uses a «bare clone«?

Sascha Wolf's user avatar

Sascha Wolf

18.6k4 gold badges51 silver badges72 bronze badges

asked Mar 24, 2016 at 13:27

shenkwen's user avatar

4

This should hopefully clear things up for us:

What is the difference between a repository created using the git init
command and the git init —bare command?

Repositories created with the git init command are called working
directories. In the top level folder of the repository you will find
two things:

A .git subfolder with all the git related revision history of your repo
A working tree, or checked out copies of your project files.

Repositories created with git init —bare are called bare repos. They
are structured a bit differently from working directories. First off,
they contain no working or checked out copy of your source files. And
second, bare repos store git revision history of your repo in the root
folder of your repository instead of in a .git subfolder. Note… bare
repositories are customarily given a .git extension.

Taken from John Saints — What is a bare git repository?

A bare git clone does not contain a working directory of checked out code, in other words.
Think of it as just the .git directory (the Git database) without anything else.

answered Mar 24, 2016 at 13:50

jacmoe's user avatar

jacmoejacmoe

1,61713 silver badges17 bronze badges

2

It’s wherever you have checked out the project. For example the directory within which you have checked out a branch of your project. It’s typically the folder that contains the .git folder. That is the working directory. When you make changes to files in your checked out branch you make changes to the working directory. At this point the working directory has uncommitted changes. So initially, when you haven’t made any commits, the working directory will be clean as there are no changes.

nCardot's user avatar

nCardot

5,7215 gold badges44 silver badges82 bronze badges

answered Mar 24, 2016 at 13:34

Som Bhattacharyya's user avatar

The working directory is simply, your current local directory that you are working on.
e.g if you have master, dev and yourname-dev as your remote branches, if you checkout from dev to yourname-dev, yourname-dev is now your working directory if you checkout from this (yourname-dev) working directory to another say dev, dev is now your new working directory

answered Mar 24, 2016 at 14:17

Babajide Apata's user avatar

To kind of combine the two other answers:

As stated in the Git Documentation:

The working directory is a single checkout of one version of the project.

This essentially means if you checkout a branch (e.g. master) and are sat on a particular commit (e.g. HEAD), your working directory is the «umbrella» term for all your files and folders.

It isn’t a particular directory/folder though. The working directory covers all directories, files…everything.
I mention this because when you want to commit some files, those files will be in the working directory and you’ll need to stage them (using git add) before committing them (using git commit).

answered Mar 24, 2016 at 13:50

Harmelodic's user avatar

HarmelodicHarmelodic

5,5921 gold badge28 silver badges31 bronze badges

1

According to the documentation:

Finally, you have your working directory. The other two trees store their content in an efficient but inconvenient manner, inside the .git folder. The Working Directory unpacks them into actual files, which makes it much easier for you to edit them. Think of the Working Directory as a sandbox, where you can try changes out before committing them to your staging area (index) and then to history.

answered Mar 22, 2017 at 3:33

Michael Ma's user avatar

Michael MaMichael Ma

8728 silver badges20 bronze badges

1

Do you work directly in the local repos?

When I follow Microsoft’s instructions [ref. https://learn.microsoft.com/en-us/azure/devops/repos/git/clone?view=azure-devops&tabs=visual-studio ], that’s where I end up opening the .sln solution file. That seems wrong to me and unfortunate, because I prefer to work on code on my massive D: drive (D:dev) rather than in C:Users\sourcerepos, where the repos are kept by default (I don’t mind the local repos being kept there — it’s not ideal — as long as I can work in my D:dev area).

answered Mar 29, 2019 at 9:23

Zeek2's user avatar

Zeek2Zeek2

3884 silver badges8 bronze badges

1

Если вы запускаете скрипт C:Scriptsscript.py из D:work папки:

D:work> py C:Scriptsscript.py

то:

  • D:work — это текущая рабочая директория на момент старта скрипта. open('file.txt') будет пытаться открыть D:workfile.txt файл
  • C:Scripts — это директория со скриптом.

Текущая рабочая директория

Текущая рабочая директория возвращается os.getcwd() функцией, где CWD это Current Working Directory («текущая рабочая директория»). os.getcwdb() возвращает путь в виде байт. Происхождение функции от POSIX getcwd(3). Другие способы могут вернуть разные результаты в зависимости от настроек доступа промежуточных директорий, общей длины (от платформы зависит) итд—не изобретайте своих способов, если не осознаёте всех последствий возможного изменения в поведении функции. Также нетрадиционные способы получения рабочей директории могут ухудшить читаемость другими Питон-программистами. Из The Zen of Python
:

There should be one— and preferably only one —obvious way to do it.

По умолчанию относительные пути используют именно эту директорию, поэтому явно вызывать os.getcwd() редко нужно. Например, open('file.txt') вызов открывает файл 'file.txt' в текущей директории. Если необходимо передать полный путь в виде строки, то можно использовать os.path.abspath('file.txt')getcwd() снова явно не используется.

Path.cwd() из pathlib модуля возвращает путь к текущей директории как объект c разными полезными и удобными методами такими как .glob('**/*.py').

Директория со скриптом

Текущая рабочая директория может отличаться от директории с текущим Питон-скриптом. Часто, но не всегда можно os.path.dirname(os.path.abspath(__file__)) использовать, чтобы получить директорию с текущим Питон скриптом, но это не всегда работает. Посмотрите на get_script_dir() функцию, которая поддерживает более общий случай.

Если хочется получить данные из файла, расположенного относительно установленного Питон-модуля, то используйте pkgutil.get_data() или setuptools’ pkg_resources.resource_string() вместо построения путей c помощью __file__. Это работает даже, если ваш пакет упакован в архив. В Python 3.7 появился importlib.resources модуль. К примеру, если у вас есть Питон пакет data внутри которого лежит файл.txt, то чтобы достать текст:

import importlib.resources

text = importlib.resources.read_text('data', 'файл.txt') 

Если вы хотите найти место куда пользовательские данные можно положить, то appdirs модуль предоставляет переносимый способ:

import appdirs   # $ pip install appdirs

user_data_dir = appdirs.user_data_dir("Название приложения", "Кто создал")

Разные платформы (Windows, MacOS, Linux) используют разные соглашения, appdirs позволяет не плодить сущностей и использовать на каждой платформе подходящие директории.

Понравилась статья? Поделить с друзьями:
  • Как найти своего нотариуса по месту прописки
  • После наращивания ресницы стали прямыми как исправить
  • Как исправить ошибку critical structure corruption на windows 10
  • Как составить синквейн биосфера
  • Как найти оклад в рублях