Как изменить каталоги в терминале и узнать, в каком каталоге я нахожусь?

Я следую указаниям @ Справка сообщества Ubuntu ; Тем не менее, я все еще запутался в нескольких вещах. Я исследовал это & ​​amp; нашел этот пост: используя терминал для смены каталога , но он выше меня & amp; Я до сих пор не знаю, как это сделать. Я новичок нужно немного дополнительного направления, так что оставайтесь со мной! ;-) Ниже приведен скрипт из моего терминала:

christy@ubuntu:~$ ls
Desktop    examples.desktop     install-tl-unx.tar.gz  Pictures  Templates
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
christy@ubuntu:~$ cd/
bash: cd/: No such file or directory

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

14
задан 13 April 2017 в 15:24

3 ответа

Например:

cd Desktop/ Переход в каталог рабочего стола, если вы находитесь в своем домашнем каталоге.

cd - Возвращается к предыдущему каталогу.

cd / Перейдите в корневой каталог.

cd ~/Desktop Перенаправит вас в каталог рабочего стола, где бы вы ни находились.

0
ответ дан 13 April 2017 в 15:24

В вашем сеансе ls отображает содержимое текущего каталога (но не скрытых файлов, начинающихся с точки в имени файла). Вы перейдете в другой каталог, набрав cd dirname. Здесь вы должны заменить «dirname» именем каталога, на который хотите изменить. Обычно вы начинаете с вашего домашнего каталога в качестве текущего рабочего каталога. В вашем случае это наиболее вероятно /home/christy. Если ls показывает вам каталог с именем «Шаблон», вы можете изменить его на «Шаблон» (= сделать его текущим рабочим каталогом), набрав (запомните пробел) команду:

cd Templates

вы измените в текущем рабочем каталоге выберите «Шаблоны» или напечатайте «Нет такого файла или каталога», если каталог с таким именем не существует в вашей текущей директории. Ввод pwd всегда даст вам полный патч для вашего текущего рабочего каталога, включая родителей.

Вы можете предоставить необязательные аргументы для каждой команды. Для cd строка «Шаблоны» была таким необязательным аргументом. Например, если вы введете ls -a, команда ls также распечатает скрытые файлы. Или с ls Templates он напечатает содержимое каталога Tempaltes вместо содержимого текущего рабочего каталога. Аргументы должны быть отделены хотя бы одним пробелом от имени команды и друг от друга. Недостаток пробела между ними был причиной того, что ваша команда не сработала.

Поскольку символ пробела имеет особое значение, вам нужно будет заключить его в кавычки или экранировать, если это часть аргумента. Так, например, если вы хотите изменить текущий рабочий каталог на «Исходные файлы», вам нужно ввести одну из следующих команд:

cd Source\ Files
cd "Source Files"

Верхняя строка «экранирована», а нижняя строка «заключена в кавычки» .

Если вы хотите узнать больше, лучшее руководство для вас может быть: Введение в Linux ( pdf ) ( html )


Редактировать :

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

Итак, вы хотите установить tex-live из исходного архива , который связан с «Getting Started» руководство вы опубликовали. Для этого вы должны сначала удалить все существующие ранее установки tex-live. Вы делаете это, открывая терминал, выполняя это:

christy@ubuntu:~$ pwd 
/home/christy # <---- This is the directory you are working in
christy@ubuntu:~$ sudo apt-get remove texlive-*
[sudo] password for christy: 

В этот момент вы должны ввести свой пароль и будете вознаграждены несколькими скучными сообщениями, которые я здесь опущу. Затем вам нужно будет загрузить архив с именем install-tl-unx.tar.gz (вы уже сделали это, и вам не нужно загружать его снова, но я покажу вам, как это сделать, на всякий случай):

christy@ubuntu:~$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

--2012-07-09 15:08:23--  http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Resolving mirror.ctan.org... 80.237.159.15
Connecting to mirror.ctan.org|80.237.159.15|:80... connected.
HTTP request sent, awaiting response... 302 Found
# ... some more stuff like this ...
Saving to: `install-tl-unx.tar.gz'

100%[=====================================>] 2,530,831   --.-K/s   in 0.1s    

2012-07-09 15:08:23 (17.3 MB/s) - `install-tl-unx.tar.gz' saved [2530831/2530831]

Теперь, когда вы загрузили архив, вы можете распаковать его

christy@ubuntu:~$ tar xvf install-tl-unx.tar.gz
install-tl-20120701/
install-tl-20120701/readme-txt.dir/
install-tl-20120701/readme-txt.dir/README.RU-cp1251
# ... bla bla skipping over some more messages like this ...
install-tl-20120701/readme-html.dir/readme.sr.html
install-tl-20120701/readme-html.dir/readme.ru.html
install-tl-20120701/readme-html.dir/readme.de.html

Теперь, когда вы распаковали архив, вы можете перейти в каталог, который был распакован.

christy@ubunut:~$ ls | grep install-tl-  # <---- with this line you find out the number
install-tl-20120701                      # <---- in this case "20120701"
install-tl-unx.tar.gz                    # <---- if just this is present with no number you did something wrong
christy@ubuntu:~$ cd install-tl-20120701 # <---- enter this number here
christy@ubuntu:~$ pwd
/home/christy/install-tl-20120701/       # <--- this is your new working directory

Число «20120701» - это отметка времени, указывающая, какая у вас версия tex-live. Это число может отличаться для вас, но команда ls | grep install-t1- скажет вам, что использовать вместо этого. Если все это сработало, вы можете запустить скрипт установки отсюда:

christy@ubuntu:~$ sudo ./install-tl
[sudo] password for jan: 
Loading http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet/tlpkg/texlive.tlpdb
Installing TeX Live 2012 from: http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet
Platform: x86_64-linux => 'x86_64 with GNU/Linux'
# ... bla bla and so on bla ...
Actions:
  <I> start installation to hard disk
  <H> help
  <Q> quit

Enter command: I
# ... and so on ...

С этого момента просто отвечайте на вопросы, которые вам задает скрипт установки, и с вами все будет в порядке.

0
ответ дан 13 April 2017 в 15:24

Резюме (TL; DR)

  • Используйте pwd, чтобы узнать, где вы находитесь (или посмотрите между : и $ в вашем приглашении).
  • Используйте cd, чтобы сменить каталог в другом месте. В отличие от Windows, cd должен всегда сопровождаться пробелом; такие команды, как cd/ и cd.. не будут работать, но cd / и cd .. будут работать.

Знание того, где вы находитесь

Способ 1: Выполнить pwd .

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

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

pwd

Например (из оболочки, которую я сейчас открыл на моей машине):

ek@Kip:~$ pwd
/home/ek

Это говорит мне, что я нахожусь в каталоге /home/ek. /home - это (несколько странно) каталог, который содержит домашних каталогов пользователей-людей (сам по себе он не является домашним каталогом любого пользователя). Пользователь username имеет домашний каталог /home/username. ​​

У пользователя root нет домашнего каталога в /home. Вместо этого домашний каталог root - /root . Это не следует путать с корневым каталогом , который является /.

Способ 2: проверьте вашу подсказку.

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

В примере, который вы показали нам в своем вопросе, ваш запрос:

christy@ubuntu:~$

christy - ваше имя пользователя. Символ @ отделяет его от ubuntu, имени хоста вашего компьютера. (Если вы работаете с живым CD, его имя хоста будет ubuntu, и некоторые люди выбирают его в качестве имени своего компьютера и во время установки.)

Символ : отделяет его от название каталога, в котором вы сейчас находитесь. В этом случае это представлено ~. ~ является сокращением для вашего домашнего каталога. Когда вы не в своем домашнем каталоге, вы должны увидеть полное имя каталога. Например:

ek@Kip:~$ cd /var/log
ek@Kip:/var/log$

(Чтобы закончить, что означает каждая часть приглашения: для приглашений, которые следуют этому соглашению, появляется символ $ или #. $, как в этот случай означает, что это обычная пользовательская оболочка. Символ # будет означать, что это оболочка root.)

Изменение места нахождения

Почему ваша команда "cd" не работа.

Чтобы изменить каталог, используйте команду cd.

11175 Вы побежали cd/. Это не работает, потому что вы на самом деле не выполняли команду cd. В Ubuntu и других Unix-подобных операционных системах (фактически, в оболочках Unix-стиля , таких как bash , используемая вами оболочка), имя считается, что команда заканчивается только пробелом или концом строки.

Так, в отличие от командной строки в Windows (где cd\ интерпретируется так же, как cd \, а cd.. интерпретируется так же, как cd ..), в bash (оболочка, которую вы используете в Ubuntu), cd/ не является допустимой командой. Вы должны использовать cd /.

cd/ означает «запись в текущем каталоге, имя которой - cd и которая также является каталогом». Независимо от того, существует ли такой подкаталог, его нельзя запустить как команду, поэтому в любом случае вы получите ошибку (хотя какая ошибка вы получите, будет отличаться):

ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory

Перемещение в ваш домашний каталог

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

cd

Некоторые люди предпочитают называть свой домашний каталог явно. Вы можете использовать его полное имя или

cd ~

Но для этого достаточно cd.

Перемещение вверх на один каталог

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

cd ..

.. представляет родительский каталог текущего каталога. Если вы находитесь в корневом каталоге (/), есть исключение: .. просто представляет /. Таким образом, выполнение cd .. перемещает вверх на один каталог, когда выполняется где угодно, но не /; при запуске в / вы остаетесь в /.

Каждый каталог содержит запись ... Все они также содержат запись ., которая ссылается на сам текущий каталог. Это не очень для запуска cd ., хотя. Ты всегда остаешься там, где ты есть.

Абсолютный и относительный пути

Если вы cd к чему-то, что делает , а не , начинаете с /, то он пытается перейти в этот каталог в пределах текущего каталог .

Например, если вы запустили

cd var/log

, то он попытается перейти в подкаталог var того места, где вы сейчас находитесь, и в подкаталог log этого. Если и то и другое не существует, и в тех местах эта команда cd не будет выполнена (и вы останетесь там, где были изначально).

Если вы хотите перейти в подкаталог log подкаталога var корневого каталога , запустите вместо этого:

cd /var/log

Только если вы находитесь в данный момент в / равно cd var/log эквивалентно cd /var/log.

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

Путь ~ также является абсолютным, потому что это (по существу) сокращение от $HOME. HOME является переменной среды , и выражение $HOME расширяется до полного абсолютного пути к домашнему каталогу текущего пользователя.

~ нотация также может использоваться для представления домашнего каталога другого пользователя. Если вы напишите ~username, это будет домашний каталог username .

Возвращение туда, где вы были до

Каталог, в котором вы находитесь в данный момент, хранится в переменной среды PWD. последний каталог , в котором вы были, хранится в переменной среды OLDPWD. Вы можете просматривать OLDPWD так же, как и любую переменную среды:

echo $OLDPWD

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

cd -

Если в этой оболочке никогда не было более раннего каталога, в котором вы были тогда переменная окружения OLDPWD не будет установлена, и попытка запустить cd - приведет к ошибке (и вы останетесь на месте):

ek@Kip:~$ cd -
bash: cd: OLDPWD not set

Изменение места, где вы находитесь Как A Boss

pushd и popd: стек каталогов

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

Вы можете поместить любой каталог dir в стек, выполнив:

pushd dir

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

pushd .

Затем вы можете заняться своими делами, изменяя каталоги так, как вам нравится. Если вы хотите вернуться к последнему каталогу, который вы поместили в стек с помощью pushd, запустите:

popd

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

Вы можете иметь размер стека больше 1. То есть вы можете использовать отдельные команды pushd, чтобы поместить несколько каталогов в стек. Каждая последующая команда popd будет отправлять (и извлекать, то есть удалять из стека ) самый последний извлеченный каталог, еще не извлеченный.

Вот пример:

ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$

pushd и popd используются гораздо реже, чем cd. У них также есть другое, даже более продвинутое использование. Запустите help pushd и help popd для деталей.

Дополнительные сведения и доступ к документации

cd и pwd также имеют более продвинутые области применения. Чтобы узнать о них, запустите help cd и man pwd .

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

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: