Resumo Executivo (TL; DR)
- Use
pwdpara saber onde você está (ou procure entre o :e o $em seu prompt).
- Use
cdpara alterar o diretório em outro lugar. Ao contrário do Windows, semprecd deve ser seguido por um espaço; comandos como e não funcionarão, mas e serão.cd/cd..cd /cd ..
Saber onde você está
Caminho 1: Execute pwd.
O diretório em que você está atualmente é específico do shell (e, geralmente, específico do aplicativo). Você pode estar executando um shell em um diretório e outro em outro diretório.
Para saber em que diretório você está atualmente, execute:
pwd
Por exemplo (a partir de um shell que agora abri na minha máquina):
ek@Kip:~$ pwd
/home/ek
Isso me diz que eu estou no diretório /home/ek. /homeé (um tanto confuso) o diretório que contém os diretórios pessoais de usuários humanos (ele não é o diretório pessoal de nenhum usuário). O usuário humano usernamepossui o diretório inicial ./home/username
O rootusuário não possui um diretório inicial no /home. Em vez disso, rooto diretório inicial do /root. Isso não deve ser confundido com o diretório raiz , que é /.
Caminho 2: Examine seu prompt.
A configuração padrão para seu prompt é que ele informa em que diretório você está atualmente. Seu prompt é o texto que aparece para notificá-lo de que o shell está pronto para aceitar um comando.
No exemplo que você nos mostrou em sua pergunta, seu prompt é:
christy@ubuntu:~$
christyé o seu nome de usuário. O @caractere o separa do ubuntunome do host do seu computador. (Se você estiver executando um CD ao vivo, o nome do host será ubuntue algumas pessoas o escolherão como o nome do computador durante a instalação também.)
O :caractere o separa do nome do diretório em que você está atualmente. Nesse caso, isso é representado por ~. ~é uma abreviação para seu diretório inicial. Quando você não estiver no diretório inicial, deverá ver um nome completo do diretório. Por exemplo:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(Para finalizar o significado de cada parte do prompt: Para os prompts que seguem esta convenção, um $ou um #caractere aparece. $, Como nesse caso, significa que é um shell de usuário normal. Um #caractere significa que é um rootshell.)
Mudando onde você está
Por que o seu comando "cd" não funcionou.
Para alterar o diretório, use o cdcomando
Você correu cd/. Isso não funciona porque você realmente não executou o cdcomando. No Ubuntu e em outros sistemas operacionais semelhantes ao Unix (na verdade, em shells no estilo Unixbash , como o shell que você está usando), o nome de um comando é considerado terminado apenas em um espaço ou no final da linha.
Portanto, diferente do Prompt de Comando no Windows (onde cd\é interpretado da mesma forma cd \e cd..é interpretado da mesma forma que cd ..), em bash(o shell que você está usando no Ubuntu), cd/não é um comando válido. Você deve usar cd /.
cd/significa "a entrada no diretório atual cujo nome é cde que também é um diretório". Se esse subdiretório existe ou não, ele não pode ser executado como um comando; portanto, de qualquer maneira, você receberá um erro (embora o erro recebido seja diferente):
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
Movendo para o seu diretório pessoal
Para ir para o diretório inicial, execute cd-o sem argumentos:
cd
Algumas pessoas preferem nomear explicitamente o diretório inicial. Você pode usar o nome completo ou
cd ~
Mas cdpor si só é suficiente.
Subindo um diretório
Para alterar o diretório para o diretório pai do diretório atual (ou seja, o diretório que o contém), use:
cd ..
..representa o diretório pai do diretório atual. Se você estiver no diretório raiz ( /), há uma exceção: ..apenas representa /. Portanto, a execução cd ..move um diretório para cima quando é executada em qualquer lugar, exceto /; quando entra /, você fica /.
Todo diretório contém uma ..entrada. Todos eles também contêm uma .entrada que se refere ao próprio diretório atual. Não é muito para correr cd .embora. Você sempre fica onde está.
Caminhos absolutos e relativos
Se você cdescolher algo que não comece com a /, ele tentará ir para esse diretório no diretório atual .
Por exemplo, se você executou
cd var/log
Em seguida, tentaria entrar no varsubdiretório onde você está atualmente e no logsubdiretório. A menos que ambos existam e nesses locais, esse cdcomando falhará (e você permanecerá onde estava originalmente).
Se você deseja acessar o logsubdiretório do varsubdiretório do diretório raiz , execute isso:
cd /var/log
Somente se você estiver atualmente /é cd var/logequivalente a cd /var/log.
Um caminho que começa com /é absoluto. A maneira como é resolvida não depende de onde você está atualmente.
O caminho também ~é absoluto, porque é (essencialmente) uma abreviação para $HOME. HOMEé uma variável de ambiente e a expressão se $HOMEexpande para o caminho completo e absoluto do diretório inicial do usuário atual.
~A notação também pode ser usada para representar o diretório inicial de outro usuário. Se você escrever , isso representa o diretório inicial do.~usernameusername
Voltando para onde você estava antes
O diretório em que você está atualmente é armazenado na PWDvariável de ambiente. O último diretório em que você estava é armazenado na OLDPWDvariável de ambiente. Você pode visualizar OLDPWDda mesma maneira que visualiza qualquer variável de ambiente:
echo $OLDPWD
Como essas informações são armazenadas, cdé possível ter uma maneira especial, rápida e fácil de voltar para onde você estava antes. Como o pst007x diz , para ir para o último diretório em que você estava, execute:
cd -
Se nunca houve um diretório anterior em que você estava nesse shell , a OLDPWDvariável de ambiente não foi definida e a tentativa de executar cd -resultará em um erro (e você permanecerá onde está):
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
Mudando de onde você é como um chefe
pushde popd: A pilha de diretórios
Imagine uma pilha de nomes de diretório. Por uma pilha , quero dizer algo em que, quando você adiciona algo, ela aparece no topo, e você pode remover apenas uma coisa de cada vez, e a coisa que você remove é sempre o que está atualmente no topo.
Você pode enviar qualquer diretório dirpara a pilha executando:
pushd dir
Se você deseja colocar o diretório atual no topo da pilha, pode usar .(o que, como explicado acima, sempre representa o diretório atual):
pushd .
Depois, você pode cuidar dos seus negócios, alterando os diretórios o quanto quiser. Quando você quiser voltar ao último diretório com o qual você inseriu a pilha pushd, execute:
popd
Isso vai para esse diretório e também o expulsa da pilha. Agora a pilha é um diretório mais curto. Se esse era o único diretório da pilha, a pilha agora está vazia.
Você pode ter uma pilha de tamanho maior que 1. Ou seja, você pode usar pushdcomandos separados para enviar vários diretórios para a pilha. Cada popdcomando subseqüente irá para (e removerá, ou seja, removerá da pilha ) o diretório enviado mais recente ainda não exibido.
Aqui está um exemplo:
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$
pushde popdsão usados com muito menos frequência do que cd. Eles também têm outros usos ainda mais avançados. Execute help pushde help popdpara obter detalhes.
Aprendendo mais e acessando a documentação
cde pwdtem usos mais avançados também. Para aprender sobre eles, corra help cde man pwd.
helpé para shell embutido . mané para comandos independentes - comandos que são executados como processos separados e existem como executáveis separados. O typecomando revela se um comando é um shell embutido ou não e, se não, onde o programa executado está localizado. Por exemplo, você pode executar type help, type typeou type man.