Comment changer de répertoire dans le terminal et savoir dans quel répertoire je me trouve?

15

Je suis les instructions @ Aide de la communauté Ubuntu ; cependant, je suis encore confus à propos de certaines choses. Je l'ai recherché et trouvé ce post: utiliser le terminal pour changer de répertoire , mais il est au-dessus de moi et je ne sais toujours pas comment m'y prendre. Je suis nouveau et j'ai besoin d'un peu plus de direction alors restez avec moi! ;-) Voici le script de mon terminal:

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

Comment savoir ce qui se trouve dans quel répertoire et comment naviguer dans le répertoire. Je sais que je dois laisser de côté quelque chose de simple.

user74713
la source
4
Vous avez toujours besoin d'un espace après la commande tel que "cd". Votre commande fonctionnerait si vous entrez "cd /" et se déplacerait vers le répertoire racine.
Marty Fried
Fantastique, Marty! Votre aide est grandement appréciée. ;-)
user74713

Réponses:

19

Dans votre session lsaffiche le contenu du répertoire en cours (mais pas les fichiers cachés commençant par un point dans le nom de fichier). Vous accédez à un autre répertoire en tapant cd dirname. Ici, vous devez remplacer "dirname" par le nom d'un répertoire dans lequel vous souhaitez vous changer. Normalement, vous commencez avec votre répertoire personnel comme répertoire de travail actuel. Dans votre cas, c'est très probable /home/christy. Si lsvous montre un répertoire appelé "Template", vous pouvez le changer en "Template" (= faites-en votre répertoire de travail actuel) en tapant (attention à l'espace) la commande:

cd Templates

vous changerez votre répertoire de travail actuel en "Modèles" ou imprimerez "Aucun fichier ou répertoire", si un répertoire de ce nom n'existe pas dans votre répertoire actuel. La saisie pwdvous donnera toujours le patch complet de votre répertoire de travail actuel, y compris les parents.

Vous pouvez fournir des arguments facultatifs à chaque commande. Pour cdla chaîne "Templates" était un tel argument facultatif. Si vous tapez ls -apar exemple, la lscommande imprimera également les fichiers cachés. Ou alors, ls Templatesil imprimera le contenu du répertoire Tempaltes au lieu du contenu de votre répertoire de travail actuel. Les arguments doivent être séparés d'au moins un espace du nom de la commande et les uns des autres. Le manque d'espace entre les deux est la raison pour laquelle votre commande n'a pas fonctionné.

Étant donné que le caractère espace a une signification particulière, vous devrez le citer ou l'échapper, s'il fait partie d'un argument. Donc, par exemple, si vous souhaitez changer votre répertoire de travail actuel en "Fichiers source", vous devez taper l'une de ces commandes:

cd Source\ Files
cd "Source Files"

La ligne supérieure étant "échappée" tandis que la ligne inférieure est "citée".

Si vous voulez en savoir plus, le meilleur guide pour vous pourrait être: Introduction à Linux ( pdf ) ( html )


Modifier :

D'accord, désolé de ne pas avoir vu votre lien ici. Votre message était un peu trompeur, maintenant je pense que je vous ai:

Vous voulez donc installer tex-live à partir de l' archive source qui est liée dans le guide "Getting Started" que vous avez publié. Pour ce faire, vous devez d'abord supprimer toute installation préexistante de tex-live. Vous faites cela en ouvrant un terminal en faisant ceci:

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

À ce stade, vous devez entrer votre mot de passe et vous serez récompensé par quelques messages ennuyeux, que je vais omettre ici. Ensuite, vous devrez télécharger l'archive nommée install-tl-unx.tar.gz(vous l'avez déjà fait et ne devez pas la télécharger à nouveau, mais je vous montre comment le faire néanmoins au cas où):

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]

Maintenant que vous avez téléchargé l'archive, vous pouvez la déballer

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

Maintenant que vous avez décompressé l'archive, vous pouvez changer dans le répertoire qui a été décompressé.

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

Le numéro "20120701" est un horodatage indiquant la version de tex-live que vous possédez. Ce numéro peut être différent pour vous, mais la commande ls | grep install-t1-vous indiquera quoi utiliser à la place. Si tout cela a fonctionné, vous pouvez exécuter le script d'installation à partir d'ici:

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 ...

À partir de là, répondez simplement aux questions posées par le script d'installation et tout devrait bien se passer.

embrouiller
la source
@ con-f-use: Grande info! Maintenant, en référence au script de terminal dans mon article d'origine: dans quel répertoire se trouve install-tl-unx.tar.gz et comment puis-je l'exécuter? Je connais les commandes d'installation, mais je suppose que je dois installer des packages? Les commandes pour décompresser l'archive tar sont @ ubuntu-manual.org/getinvolved/editors . Si vous pouvez m'orienter dans la bonne direction ... Merci beaucoup; vous avez été extrêmement informatif.
user74713
Aucun problème. Je ne sais pas exactement quel est votre objectif final, il est donc un peu difficile de vous aider sans plus d'informations. Apparemment, vous essayez d'installer TeX-Live à partir de l'archive 'install-tl-unx.tar.gz'. Pour ce faire, vous devez d'abord décompresser l'archive, puis exécuter le script d'installation. Je modifierai mon article ci-dessus avec quelques instructions pour le faire bientôt.
con-f-use du
10

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.

Eliah Kagan
la source
5

Par exemple:

cd Desktop/ Accède au répertoire Desktop si vous êtes dans votre répertoire personnel.

cd - Retourne au répertoire précédent.

cd / Vous amène au répertoire racine.

cd ~/Desktop Vous amènera à votre répertoire de bureau, où que vous soyez.

pst007x
la source