>> [Jouer de la musique]
>> DOUG LLOYD: OK.
Donc, nous allons parler de la façon de utiliser la ligne de commande Linux.
Maintenant, le CS50 IDE, ou fait, même un appareil de CS50,
si vous êtes familier avec cela, ou vous prenez une ancienne version du CS50,
est une machine basée sur le cloud qui se déroule Ubuntu,
qui est l'un des nombreux arômes du système d'exploitation Linux.
Système d'exploitation Linux est favorisée par les programmeurs,
car il est juste refroidisseur, non?
>> De nombreuses distributions Linux modernes avoir des interfaces utilisateur graphiques,
que nous appelons aussi des interfaces graphiques, G-U-I, permettre la navigation sur la base de la souris facile,
que vous êtes probablement familier avec, si vous êtes un utilisateur Windows ou Mac,
déplacer votre souris, double-cliquant sur les icônes, et ainsi de suite.
Toujours cependant, en tant que programmeur, et même si l'IDE
contient la capacité de faire quelques utilisateur graphique
des trucs, clic, et glisser, et tout ce qui,
vous aurez toujours utiliser votre fenêtre de terminal assez souvent.
Et vous pouvez faire beaucoup de mêmes tâches que vous pouvez
faire avec une souris avec des commandes clavier.
Et nous allons parler un peu à propos de ce que certains de ces commandes
sont en ce moment.
>> Maintenant, ces commandes peuvent être utilisées sur une exploitation basé sur Unix
système qui comprend Linux, mais comprend également Mac OS.
Si vous ouvrez un Terminal sur votre Mac, vous pouvez utiliser ces commandes exactes.
Windows dispose également de commandes Prompt, mais certaines des commandes
sont légèrement différentes, de sorte il ne fait fonctionne pas,
parce que Windows est pas un système basé sur Unix.
>> Donc, nous allons jeter un oeil à certains de ces commandes Linux.
Le premier que vous aurez utiliser probablement un lot est ls.
Voilà un L minuscule, suivie d'une minuscules s, qui est court pour la liste.
Et ce que la commande de la liste fait est qu'il vous donne une lecture de tous les fichiers
et dossiers de votre répertoire courant.
Donc vous pouvez voir tout ce que vous pouvez accès à partir de là où vous êtes actuellement.
>> Donc, je l'ai ouvert ici l'IDE CS50.
Et je vais faire un zoom-in dans un seconde pour vous donner un peu plus près,
mais voici l'image large de ce que l'IDE ressemble.
Sur la gauche, vous pouvez voir que nous avons une arborescence de fichiers, que vous êtes probablement
familier avec, un double-clic, et les fichiers et dossiers, et tout ça.
Voilà donc toujours là dans l'appareil de CS50.
Au centre de la partie supérieure est l'endroit où vous êtes va être l'écriture de votre code, une fois
vous cliquez sur un fichier.
Et en bas, nous avoir une fenêtre de terminal,
qui est l'endroit où nous pouvons exécuter ces commandes du terminal.
>> Je vais faire un zoom-in et la tête de plus ici,
pour vous montrer que, en fait, je ne peux cliquer sur ces fichiers et dossiers.
Donc, clairement, là où je suis actuellement, je dois deux dossiers, appelés pset0 et pset1,
et trois fichiers, l'un appelé bonjour, un appelé hello.c,
et un autre appelé hello.txt.
>> Donc, nous allons descendre à la borne fenêtre et voir de plus près.
Donc, nous venons de parler, encore une fois, sur le fait que nous avons trois fichiers et deux
dossiers dans le répertoire courant.
Si je tape ls, qui encore une fois est la commande à la liste
le contenu du courant répertoire, puis je frappe Entrez,
regarde ce que je vois, bonjour, hello.c, hello.txt, pset0 et pset1.
>> pset0 et sont pset1 de couleur bleue, pour indiquer
vous que ce sont des répertoires que nous pourrions naviguer dans.
Et nous allons en apprendre un peu peu sur la façon de naviguer
dans des répertoires dans une minute.
Et toute autre chose est de couleur noire, si elle est un fichier texte ou d'un code source
déposer, et vert, si il est un fichier exécutable.
Donc, clairement, cela signifie que je pourrait lancer un programme appelé, bonjour.
Voilà ce que le vert signifie il.
Mais fondamentalement, tapant la commande ls a permis
je regarde tout ce qui existe dans mon répertoire courant, qui
correspond à ce que nous voyons ici, dans le affichage graphique de la même.
La prochaine commande vous aurez utiliser probablement un peu
est cd, minuscules c, d minuscule, qui est court pour changer de répertoire.
Cela nous permet de faire ce que je étais parler une seconde il ya, qui
est de naviguer entre répertoires à la commande
ligne, par opposition à double-cliquant sur les dossiers.
Donc, si nous tapez cd puis le nom d'un répertoire,
nous pouvons obtenir dans ce répertoire.
>> En aparté, sachez que le nom du répertoire courant est toujours
point, et le nom du répertoire un niveau au-dessus où nous sommes maintenant,
qui est le nom du dossier dans que notre dossier est, point, dot--
ou dans laquelle notre dossier est, est dot, dot.
Et si jamais vous êtes curieux de savoir le nom de votre répertoire,
vous pouvez taper pwd, qui se tient pour le répertoire de travail actuel.
Nous allons jeter un oeil à tous ces maintenant, par retourner à l'IDE CS50.
Donc, je suis de retour dans mon espace de travail maintenant.
Et je vais agrandir encore sur la terminal, afin que nous puissions jeter un oeil
à se déplacer au sein de l'IDE.
Donc, je vais à la liste du contenu de mon répertoire
encore une fois, juste pour refonder nous où nous en sommes.
Donc, si je tape ls, qui est pour la liste à nouveau,
Je vois que je peux arriver à pset0 et pset1.
Ce sont les répertoires Je peux obtenir à partir d'ici.
Je sais que, parce que l'IDE donne -moi un indice en coloriant les bleu.
>> Disons que je veux entrer dans mon répertoire pset1,
parce que je travaille sur le problème réglé 1.
Je peux taper cd-- nouveau, court pour changer directory-- espace, pset1.
Et si je appuyez sur Entrée, notez ce qui se passe.
Il ne ressemble pas a beaucoup évolué.
Mais si vous regardez à l'invite, maintenant me dit que je suis dans ~ / espace de travail / pset1.
Je l'ai navigué dans le pset1 dossier qui était dans mon espace de travail.
>> Et si je tape ls, je vois certains choses différentes ici, non?
Cela ne veut pas le même liste que je voyais devant.
Je l'ai navigué dans pset1.
Et maintenant, quand je tape ls, je suis obtenir le contexte de ce que je peux
voir à partir du dossier de pset1.
>> Maintenant, je vais taper commande l, ce qui efface tout l'écran.
Et je vais à la liste du contenu du répertoire
encore une fois, juste pour que vous pouvez voir.
Je voulais juste faire ça effacer certaines des choses
que vous avez vu en bas et à empêcher ce
d'aller trop loin hors de portée.
>> Maintenant, je l'ai dit plus tôt que, si je veux pour naviguer dans le répertoire courant,
Je peux taper cd espace dot.
Appuyez sur Entrée.
Il ne fait rien, non?
Je change répertoires dans le répertoire courant.
Vous n'êtes pas toujours aller à trouver un besoin pour un seul point,
mais vous aurez l'occasion.
>> Disons que je veux pour monter d'un niveau.
Je veux revenir à mon répertoire d'espace de travail.
Je ne peux pas taper cd espace de travail, il n'y a pas de fichier ou de répertoire.
Et la raison pour that-- si je tape un ls plus time--
est qu'il n'y a pas de répertoire nommé espace de travail à l'intérieur de mon répertoire de pset1.
Je vais me vider écran à nouveau avec la commande l.
Se souvenir de ce que je disais plus haut, cependant, que nous
peut naviguer de retour avec dot, dot.
Voilà le nom du répertoire parent.
Donc, si je tape cd, de l'espace, point, point, puis appuyez sur Entrée,
maintenant regarder ce qui est arrivé.
Mon invite de commande me dit que je suis de retour dans mon répertoire ~ / espace de travail.
Je suis passé d'un niveau, grâce à dot, dot.
>> Maintenant, disons que je suis en utilisant un système d'exploitation qui est basé sur Linux,
mais ne signifie pas nécessairement me dire où je suis.
Celui-ci arrive à nous dire que Je suis dans ~ / espace de travail en ce moment,
droit à l'invite.
Mais je ne pouvais être complètement perdu dans un tas de dossiers,
et je ne sais pas où je suis et aucune idée où je veux revenir à.
Il ya deux choses que je peux faire.
>> Tout d'abord, je peux comprendre où je suis, en tapant passwd.
Voilà mon répertoire de travail actuel.
Et si je appuyez sur Entrée, il me dit exactement où je suis.
Maintenant / home / ubuntu est le long chemin de dire, tilde,
qui est votre répertoire personnel.
Mais il me dit que je suis dans Accueil / ubuntu / espace de travail, ou ~ / espace de travail.
>> Je vais pour naviguer mon répertoire pset1 nouveau,
et je vais à la liste du contenu.
Et je vois que je ai une autre répertoire là, appelé extras.
Donc, je vais au CD en extras, et alors je vais effacer mon écran.
>> Alors maintenant, je suis assez loin dans, non?
Que faire si je veux sauvegarder à l'espace de travail tout de suite?
Il ya quelques choses que je pouvais faire.
Je pourrais taper cd, point, point, barre oblique, point, dot, pour remonter d'un niveau, puis
autre niveau.
Mais cela est assez ennuyeux.
>> Donc, si je veux plus jamais revenir à tout mon répertoire, tilde,
Je peux taper cd avec rien après.
Cd, Entrée.
Et maintenant, je suis dans tilde.
Et si je veux arriver à l'espace de travail, Je peux juste taper cd espace de travail.
Et voilà comment vous travaillez changement de répertoire
au sein de l'IDE CS50 ou tout Linux système d'exploitation à la ligne de commande.
Bien.
Le prochain qui pourrait venir dans maniable est mkdir,
qui est court pour faire un répertoire, si je dois créer un nouveau dossier.
Si vous êtes familier avec le système d'exploitation de l'interface graphique,
vous pourriez clic-droit.
Et puis, quand le menu contextuel apparaît, choisissez Nouveau dossier.
Voilà probablement comment vous l'avez fait auparavant.
Mais nous pouvons aussi créer répertoires en ligne de commande.
Donc, nous sommes de retour dans l'IDE.
Je vais Zoom sur le terminal et lister le contenu de mon répertoire
encore une fois, juste pour nous donner un cadre de référence.
Disons que, maintenant, je l'ai Fin du contrat sur le problème réglé 0
et le problème réglé 1.
Je tiens donc à créer un nouveau répertoire pour travailler sur des problèmes set 2.
Comment je fais ca?
>> Eh bien, encore une fois, je ne pouvais clic droit dans le côté gauche là et choisissez Nouveau dossier
et de créer un répertoire de pset2.
Ce serait trop de travail.
Mais alors, je fais également au ligne de commande assez rapidement,
en tapant mkdir, je space-- tapé dans n, mais-- espace pset2.
Si je frappe Entrez et puis je énumérer les contenu de mon répertoire nouveau,
Je vois que, regardez, maintenant Je dois un dossier de pset2.
Et je peux naviguer dans que l'utilisation de cd et de faire
tout le travail que je dois faire pour pset2.
Incidemment, je vais juste POP sur ici très rapidement à l'arborescence des fichiers.
Et vous pouvez voir que, aussi, dans l'Explorateur de fichiers graphique,
nous pouvons voir que le répertoire de pset2 il a également été créé.
Et je peux naviguer à elle, en utilisant l'interface graphique ainsi.
La prochaine fois et voilà va probablement venir dans maniable
est cp, qui est court pour la copie.
Copiez, contrairement à tous les autres commandes nous avons vu auparavant,
prend deux arguments, une source, la nom du fichier que vous souhaitez copier,
et une destination, où vous vouloir copier le fichier.
Il est assez facile à copier un fichier, nous allons donc le faire.
>> Donc, nous sommes de retour dans l'IDE.
Je vais lister le contenu de mon répertoire courant avec ls.
Maintenant, disons que je veux de faire une copie de hello.txt.
Encore une fois, à partir de l'arborescence des fichiers sur le à gauche, l'interface graphique,
Je pourrais clic-droit sur hello.txt, faire une copie, coller la copie.
Mais je peux le faire assez rapidement à la ligne de commande trop.
>> Disons que je veux copier hello.txt à hi.txt.
Je peux CP, l'espace, hello.txt.
Voilà mon fichier source, voilà pourquoi Je vais choisir que l'un d'abord.
Et puis je dois nommer le fichier de destination, hi.txt.
Je frappe sur Entrée.
Et si je liste le contenu de mon répertoire nouveau, il est hi.txt.
Je fis une copie de celui-ci.
Et en fait, si je suis allé dans hi.txt, je pouvais
voir que ce serait un exact un double de tout ce qui
existé dans mon fichier hello.txt.
>> Voilà donc comment vous copiez un fichier.
Mais que faire si vous voulez copier un répertoire entier?
Donc, pour une seconde, nous allons jeter un coup d'oeil à ce qui est dans mon répertoire pset0.
Si je pset0 cd et lister le contenu, Je dois un répertoire appelé, échantillon,
et un fichier de zéro, scratch.sb2.
Donc, ce qui est bon à savoir.
Donc, nous allons effacer l'écran, et je vais revenir
à mon répertoire d'espace de travail pour une seconde.
>> Disons que, maintenant, je veux faire une copie de mon répertoire pset0.
Je ne peux pas juste dire cp pset0 pset3, par exemple.
Vous obtenez ce message bizarre, omettant répertoire pset0.
Pourquoi ne pas vous obtenez ce message?
Eh bien, il se trouve que, lorsque vous avez un répertoire
a d'autres choses à l'intérieur de celui-ci, la commande cp n'a pas vraiment
nécessairement savoir quoi faire avec elle.
>> Nous devons explicitement dire Linux, le terminal,
Je veux que vous le copiez répertoire pset0 et copie
chaque dossier qui existe à l'intérieur de celui-ci et tous les fichiers
existe à l'intérieur de celui-ci.
En d'autres termes, je dois vous récursive plonger dans pset0
et de faire une copie de tout là-dedans.
>> Si je veux faire, ce que je peux faire est cp-r, pour récursif, pset3 pset0.
Appuyez sur Entrée.
Maintenant, si je énumérer les contenu de mon répertoire,
Je vois qu'il ya la pset3 répertoire que je peux travailler avec.
Et si je cd dans pset3 maintenant et alors lister le contenu, regardez,
il ya échantillon et scratch.sb2 nouveau.
Voilà donc assez cool.
Voilà donc comment vous pouvez copier un ensemble répertoire, et pas seulement un seul fichier.
Donc, si vous souhaitez copier un répertoire, rappelez-vous juste
d'utiliser l'option -r lorsque vous êtes travailler avec la commande cp.
Bien.
Donc, je l'ai copié un fichier, mais Je l'ai fait par erreur.
Et maintenant, je veux me débarrasser de lui.
Comment je fais ca?
Encore une fois, si vous êtes familier avec une interface graphique,
vous pouvez cliquer droit et juste choisissez Supprimer.
Et il va l'envoyer au poubelle ou la Corbeille.
Mais à la ligne de commande, nous peut il suffit de taper rm, pour supprimer,
puis le nom de la fichier que nous voulons nous débarrasser de.
>> Maintenant, rm est très prudent.
Il fait beaucoup de double contrôle, pour vous assurer que vous avez réellement
vouloir supprimer le fichier.
Il ne veut pas faire d'erreurs, car il n'y a pas Corbeille ici.
Une fois que nous supprimer un fichier, il est parti.
Et il n'y a vraiment aucun moyen de le récupérer.
Donc, nous devons être assez attention, et ainsi de rm
va être très prudent pour nous.
>> Donc, revenons à l'IDE et de se débarrasser de ce fichier hi.txt
que je créé il ya une minute avec copie.
Donc, nous sommes dans l'IDE.
Et je liste le contenu de mon répertoire encore une fois, juste pour nous donner un peu de contexte.
Je veux dire, vous pouvez voir qu'il ya hi.txt, que je créé il ya un peu de temps.
Maintenant, je veux me débarrasser de lui.
Comment fait-on ça?
>> Encore une fois, rm.
Donc, je peux taper rm hi.txt et appuyez sur Entrée.
Et il ya rm être très prudent pour nous
et faire en sorte que nous fait vouloir supprimer ce fichier.
Voulez-vous vraiment supprimer fichier régulier hi.txt vide?
Voilà juste comme un fonctionnement système, comme Windows ou Mac,
que vous seriez peut-être familier avec popping up
cette boîte dit vous êtes vraiment sûr que vous voulez faire.
>> Je suis assez sûr que je veux ceci, donc je vais taper, yes--
Ou je pourrais aussi juste tapez y-- et appuyez sur Entrée.
Et si je liste le contenu de mon répertoire nouveau, hi.txt est parti.
Pas mal, non?
Appuyez sur Ctrl la L Let, juste de se débarrasser de tous ces trucs
et nous amener au retour le haut de l'écran.
>> Maintenant, il ya une façon de court-circuit rm, donc
qu'il ne nous demande pas à cette question.
Nous savons vraiment nous voulons de se débarrasser de ce fichier,
et nous ne voulons même pas être posé la question.
Comment fait-on cela?
Eh bien, nous pouvons spécifier une drapeau supplémentaire, tout comme nous
fait avec cp où nous pourrait ajouter l'option -r,
de copier récursivement dans un répertoire.
Il ya un autre drapeau rm, qui est -f,
qui est de forcer rm à faire exactement ce que nous sommes, il dit de faire.
>> Donc, disons que, maintenant, je veux pour se débarrasser de mon fichier hello.txt.
Je ne veux pas que l'on soit.
Que puis-je faire?
Eh bien, je peux rm hello.txt -f.
Que pensez-vous est qui va se passer ici?
C'est parti.
Ne m'a même pas poser la question.
Et en fait, si je lister le contenu de mon répertoire nouveau, il a disparu.
Il n'y a pas défaire ici.
hello.txt est parti, et je ne même demandé si je voulais le supprimer.
Que faire si je veux me débarrasser d'un répertoire entier?
La façon dont vous faites cela est très similaire à copier.
Si vous voulez supprimer un répertoire, vous faites non seulement
voulez supprimer le répertoire, vous voulez de supprimer tout à l'intérieur de celui-ci.
Et si vous utilisez -r, à récursive supprimer un répertoire.
>> Donc, nous allons rm -r pset2.
Je ne suis pas réellement travailler sur pset2, donc je peux me débarrasser de ce répertoire.
Je frappe sur Entrée.
Dois-je veux supprimer le répertoire, pset2?
Oui.
Et si je lister le contenu du mon répertoire nouveau, il a disparu.
Bien?
>> Une autre variation sur ce thème.
Donc, je vais effacer de nouveau l'écran, de mettre tout en haut.
Hit ls.
Maintenant, je veux me débarrasser de mon répertoire de pset3,
et je sais que je veux vraiment me débarrasser de mon répertoire pset3.
Je peux récursive et de force retirer mon répertoire pset3.
>> Maintenant, vous allez être vraiment prudent lorsque vous utilisez rm -rf.
Comme vous programmez plus, ce sera quelque chose que vous venez de le faire très rapidement.
Et en fait, je le fais tout le temps.
Mais il peut conduire à une certaine conséquences désastreuses,
si vous avez accidentellement supprimer la mauvaise chose.
Donc, je veux que vous soyez conscient que cela est une option disponible pour vous,
mais l'utiliser avec parcimonie, et l'utiliser avec prudence.
>> Je sais que pour un fait je ne travaille pas sur mon problème posé 3 plus, donc je suis
va se débarrasser de tous ces fichiers.
Et je sais que je ne veux pas être demandé à chaque fois si je veux supprimer
un fichier, donc je vais rm -rf pset3.
N'a même pas me demander si je voulait se débarrasser de lui.
Je frappe ls.
pset3 est parti.
Voilà donc toutes les variations que vous peuvent utiliser pour se débarrasser des fichiers avec rm.
>> La commande de la dernière ligne de commande qui est va très utile pour vous
est mv, qui est court pour déménagement.
Move est essentiellement équivalente à renommer.
Il déplace un fichier d'un emplacement à l'autre, la source à la destination.
Voyons où en utilisant une force de déplacement être utile à la fenêtre de terminal.
>> Donc, je suis dans mon pset1 répertoire, et je l'ai remarqué
quelque chose a un peu de mal.
Je travaillais sur mon problème gourmand, mais je accidentellement nommé il Greddy.
Donc, quand je tente de le lancer à travers check50, il ne fonctionne pas vraiment.
Je faire avoir un couple d'options.
Nous pourrions faire ce que nous avons fait auparavant, qui est de faire une copie du fichier.
Je pourrais copier greddy.c à greedy.c, non?
Appuyez sur Entrée.
Je vois que les deux fichiers sont là.
Et puis je ne pouvais RM, de supprimer, greddy.c.
Qui se débarrasse de lui.
Donc, ce serait de travailler, après que je confirme que je veux me débarrasser de lui.
Et je dois efficacement greddy.c renommé greedy.c.
Je l'ai copié, puis retiré de l'original.
>> Mais cela est un processus en plusieurs étapes.
Et certainement, il ya une meilleure façon.
En fait, il est.
Donc, nous allons taper control L, juste pour ramener cette place,
et lister le contenu de mon répertoire nouveau.
>> Donc, disons que, oh, je me suis trompé.
En fait, je ne voulais vraiment d'appeler ce fichier greddy.c.
D'un seul coup, je peux taper déplacer greedy.c à greddy.c.
Appuyez sur Entrée.
Et maintenant, je ne dois copier et supprimer,
Je viens été en mesure de le renommer.
Un guichet unique.
>> Maintenant, il ya beaucoup d'autres les services publics de base en ligne de commande
que vous pouvez utiliser avec la ligne de commande Linux.
Et nous allons discuter beaucoup d'entre eux à l'avenir dans CS50.
Mais pour l'instant, juste de vos pieds humide de travailler avec ce terminal
environnement, ces cinq commandes Si vous obtenez assez loin
à naviguer autour et travailler avec des fichiers dans votre IDE
ou basé sur Linux-quelle que soit la système d'exploitation que vous utilisez.
>> Si vous êtes curieux et que vous voulez regarder vers l'avenir un peu à un certain
des commandes de ligne de commande nous utiliserons à l'avenir,
voici une liste d'un couple des plus communs.
Je suis Doug Lloyd.
Ceci est CS50.