Résumé (TL; DR)
- Utilisez
pwdpour savoir où vous êtes (ou regardez entre le :et le $dans votre invite).
- Utilisez
cdpour changer de répertoire ailleurs. Contrairement à Windows, cddoit toujours être suivi d'un espace; des commandes comme cd/et cd..ne fonctionneront pas, mais cd /et le cd ..seront.
Savoir où vous êtes
Voie 1: Courez pwd.
Le répertoire dans lequel vous vous trouvez est spécifique au shell (et plus généralement, spécifique à l'application). Vous pourriez exécuter un shell où vous êtes dans un répertoire et un autre shell où vous êtes dans un autre répertoire.
Pour savoir dans quel répertoire vous vous trouvez actuellement, exécutez:
pwd
Par exemple (à partir d'un shell que j'ai ouvert maintenant, sur ma machine):
ek@Kip:~$ pwd
/home/ek
Cela me dit que je suis dans le répertoire /home/ek. /homeest ( un peu confusément) le répertoire qui contient des utilisateurs humains répertoires personnels (ce n'est pas lui - même le répertoire d'un utilisateur). L'utilisateur humain usernamea un répertoire personnel ./home/username
L' rootutilisateur n'a pas de répertoire personnel dans /home. Au lieu de cela, rootle répertoire personnel de est /root. Cela ne doit pas être confondu avec le répertoire racine , qui est /.
Méthode 2: examinez votre invite.
La configuration par défaut de votre invite est qu'elle vous indique dans quel répertoire vous vous trouvez actuellement. Votre invite est le texte qui apparaît pour vous informer que le shell est prêt à accepter une commande.
Dans l'exemple que vous nous avez montré dans votre question, votre invite est:
christy@ubuntu:~$
christyest votre nom d'utilisateur. Le @caractère le sépare du ubuntunom d'hôte de votre ordinateur. (Si vous exécutez un CD live, son nom d'hôte le sera ubuntu, et certaines personnes le choisissent également comme nom d'ordinateur pendant l'installation.)
Le :caractère le sépare du nom du répertoire dans lequel vous vous trouvez actuellement. Dans ce cas, il est représenté par ~. ~est un raccourci pour votre répertoire personnel. Lorsque vous n'êtes pas dans votre répertoire personnel, vous devriez voir un nom de répertoire complet. Par exemple:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(Pour terminer ce que signifie chaque partie de l'invite: pour les invites qui suivent cette convention, un $ou un #caractère apparaît. $, Comme dans ce cas, signifie qu'il s'agit d'un shell utilisateur normal. Un #caractère signifierait qu'il s'agit d'un rootshell.)
Changer où vous êtes
Pourquoi votre commande "cd" n'a pas fonctionné.
Pour changer de répertoire, utilisez la cdcommande.
Tu as couru cd/. Cela ne fonctionne pas car vous n'avez pas réellement exécuté la cdcommande. Dans Ubuntu et d'autres systèmes d'exploitation de type Unix (en fait, dans les shells de style Unix comme bash, le shell que vous utilisez), le nom d'une commande est considéré comme se terminant uniquement à un espace ou à la fin de la ligne.
Donc, contrairement à l'invite de commandes de Windows (où cd\est interprété de la même manière que cd \et cd..est interprété de la même manière que cd ..), dans bash(le shell que vous utilisez dans Ubuntu), cd/n'est pas une commande valide. Vous devez utiliser cd /.
cd/signifie "l'entrée dans le répertoire courant dont le nom est cdet qui est aussi un répertoire". Qu'un tel sous-répertoire existe ou non, il ne peut pas être exécuté comme une commande, donc dans les deux cas, vous obtiendrez une erreur (bien que l' erreur que vous obtiendrez diffère):
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
Déplacement vers votre répertoire personnel
Pour accéder à votre répertoire personnel, exécutez cd-le sans aucun argument:
cd
Certaines personnes préfèrent nommer explicitement leur répertoire personnel. Vous pouvez utiliser son nom complet ou
cd ~
Mais cden soi, c'est suffisant.
Remonter d'un répertoire
Pour changer de répertoire en répertoire parent du répertoire actuel (c'est-à-dire le répertoire qui le contient), utilisez:
cd ..
..représente le répertoire parent du répertoire actuel. Si vous êtes dans le répertoire racine ( /), il y a une exception: ..représente juste /. Ainsi, l'exécution cd ..remonte d'un répertoire lorsqu'elle est exécutée n'importe où mais /; lorsque /vous vous précipitez , vous restez /.
Chaque répertoire contient une ..entrée. Ils contiennent également tous une .entrée qui fait référence au répertoire actuel lui-même. Ce n'est pas très courant cd .cependant. Vous restez toujours où vous êtes.
Chemins absolus et relatifs
Si vous accédez cdà quelque chose qui ne commence pas par un /, il essaie d'accéder à ce répertoire dans le répertoire actuel .
Par exemple, si vous avez exécuté
cd var/log
Ensuite, il essaierait d'aller dans le varsous - répertoire de l'endroit où vous vous trouvez actuellement, et dans le logsous - répertoire de cela. À moins que les deux n'existent et à ces endroits, cette cdcommande échouera (et vous resterez où vous étiez à l'origine).
Si vous souhaitez accéder au logsous - répertoire du sous - répertoire du varrépertoire racine , exécutez-le à la place:
cd /var/log
Seulement si vous êtes actuellement en /est cd var/logéquivalent à cd /var/log.
Un chemin qui commence par /est absolu. La façon dont il est résolu ne dépend pas de l'endroit où vous vous trouvez actuellement.
Le chemin ~est également absolu, car il est (essentiellement) un raccourci pour $HOME. HOMEest une variable d'environnement , et l'expression se $HOMEdéveloppe jusqu'au chemin absolu complet du répertoire personnel de l'utilisateur actuel.
~la notation peut également être utilisée pour représenter le répertoire personnel d' un autre utilisateur. Si vous écrivez , cela représente le répertoire personnel de.~usernameusername
Retour à l'endroit où vous étiez avant
Le répertoire dans lequel vous vous trouvez actuellement est stocké dans la PWDvariable d'environnement. Le dernier répertoire dans lequel vous vous trouviez est stocké dans la OLDPWDvariable d'environnement. Vous pouvez afficher OLDPWDla même manière que vous afficheriez n'importe quelle variable d'environnement:
echo $OLDPWD
Parce que ces informations sont stockées, cdest en mesure d'avoir un moyen spécial, rapide et facile de revenir là où vous étiez auparavant. Comme le dit pst007x , pour accéder au dernier répertoire dans lequel vous vous trouviez, exécutez:
cd -
S'il n'y a jamais eu de répertoire antérieur dans lequel vous vous trouviez dans ce shell , alors la OLDPWDvariable d'environnement n'aura pas été définie, et essayer de s'exécuter cd -entraînera une erreur (et vous resterez où vous êtes):
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
Changer où vous êtes comme un boss
pushdet popd: la pile de répertoires
Imaginez une pile de noms de répertoires. Par une pile , je veux dire quelque chose où lorsque vous ajoutez quelque chose, il va en haut, et vous ne pouvez supprimer qu'une seule chose à la fois, et la chose que vous supprimez est toujours ce qui est actuellement en haut.
Vous pouvez pousser n'importe quel répertoire dirsur la pile en exécutant:
pushd dir
Si vous voulez pousser le répertoire courant vers le haut de la pile, vous pouvez utiliser .(qui, comme expliqué ci-dessus, représente toujours le répertoire courant):
pushd .
Ensuite, vous pouvez vaquer à vos occupations, changer de répertoire autant que vous le souhaitez. Lorsque vous souhaitez revenir au dernier répertoire avec lequel vous avez poussé sur la pile pushd, exécutez:
popd
Cela va dans ce répertoire, et aussi apparaît hors tension de la pile. Maintenant, la pile est un répertoire plus court. Si c'était le seul répertoire de la pile, alors la pile est maintenant vide.
Vous pouvez avoir une pile de taille supérieure à 1. Autrement dit, vous pouvez utiliser des pushdcommandes distinctes pour pousser plusieurs répertoires sur la pile. Chaque popdcommande suivante ira (et sautera, c'est-à-dire, supprimera de la pile ) le répertoire poussé le plus récent non encore sauté.
Voici un exemple:
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$
pushdet popdsont utilisés beaucoup moins fréquemment que cd. Ils ont également d'autres utilisations encore plus avancées. Exécutez help pushdet help popdpour plus de détails.
En savoir plus et accéder à la documentation
cdet pwdont également des utilisations plus avancées. Pour en savoir plus, lancez help cdet man pwd.
helpest pour les commandes internes de shell . manest pour les commandes autonomes - commandes qui s'exécutent en tant que processus distincts et existent en tant qu'exécutables séparés. La typecommande révèle si une commande est un shell intégré ou non et, sinon, où se trouve le programme qu'elle exécute. Par exemple, vous pouvez exécuter type help, type typeou type man.