Я следую указаниям @ Справка сообщества 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
Как мне узнать, что находится в каком каталоге и как мне перемещаться по каталогу. Я знаю, что, должно быть, упускаю что-то простое.
Например:
cd Desktop/
Переход в каталог рабочего стола, если вы находитесь в своем домашнем каталоге.
cd -
Возвращается к предыдущему каталогу.
cd /
Перейдите в корневой каталог.
cd ~/Desktop
Перенаправит вас в каталог рабочего стола, где бы вы ни находились.
В вашем сеансе 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 ...
С этого момента просто отвечайте на вопросы, которые вам задает скрипт установки, и с вами все будет в порядке.
pwd
, чтобы узнать, где вы находитесь (или посмотрите между :
и $
в вашем приглашении). cd
, чтобы сменить каталог в другом месте. В отличие от Windows, cd
должен всегда сопровождаться пробелом; такие команды, как cd/
и cd..
не будут работать, но cd /
и cd ..
будут работать. pwd
. В каком каталоге вы сейчас находитесь, зависит от оболочки (и, в более общем случае, от конкретного приложения). Вы можете запустить одну оболочку, где вы находитесь в одном каталоге, и другую оболочку, где вы находитесь в другом каталоге.
Чтобы узнать, в каком каталоге вы сейчас находитесь, выполните:
pwd
Например (из оболочки, которую я сейчас открыл на моей машине):
ek@Kip:~$ pwd
/home/ek
Это говорит мне, что я нахожусь в каталоге /home/ek
. /home
- это (несколько странно) каталог, который содержит домашних каталогов пользователей-людей (сам по себе он не является домашним каталогом любого пользователя). Пользователь username
имеет домашний каталог /home/username
.
У пользователя root
нет домашнего каталога в /home
. Вместо этого домашний каталог root
- /root
. Это не следует путать с корневым каталогом , который является /
.
Конфигурация по умолчанию для вашего приглашения заключается в том, что он сообщает вам, в каком каталоге вы сейчас находитесь. Ваше приглашение - это текст, который уведомляет вас о том, что оболочка готова принять команду.
В примере, который вы показали нам в своем вопросе, ваш запрос:
christy@ubuntu:~$
christy
- ваше имя пользователя. Символ @
отделяет его от ubuntu
, имени хоста вашего компьютера. (Если вы работаете с живым CD, его имя хоста будет ubuntu
, и некоторые люди выбирают его в качестве имени своего компьютера и во время установки.)
Символ :
отделяет его от название каталога, в котором вы сейчас находитесь. В этом случае это представлено ~
. ~
является сокращением для вашего домашнего каталога. Когда вы не в своем домашнем каталоге, вы должны увидеть полное имя каталога. Например:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(Чтобы закончить, что означает каждая часть приглашения: для приглашений, которые следуют этому соглашению, появляется символ $
или #
. $
, как в этот случай означает, что это обычная пользовательская оболочка. Символ #
будет означать, что это оболочка root
.)
Чтобы изменить каталог, используйте команду cd
.
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
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
.