Programmering i Ruby. Begynderens terminal - del 1
Damian Watroba
Software Engineer
Det er tid til at diskutere det andet punkt (Terminal) fra indlægget Sådan kommer du i gang med at programmere i Ruby i 7 trin. Uden videre inviterer jeg dig til at læse indholdet og følge op med nogle praktiske øvelser, som jeg har forberedt til dig. Lad os komme i gang!
Terminal - teori
Terminalen er et grundlæggende værktøj i ethvert operativsystem, også kaldet en konsol eller en kommandolinje. Hver gang du hører et af disse udtryk, ved du, at det handler om det. Den gør det muligt at kommunikere med systemets shell, f.eks. med bass (standardshellen i Ubuntu). Shellen fungerer som et mellemled mellem operativsystemet eller programmerne og brugeren. Kort sagt giver konsollen dig mulighed for at give kommandoer til systemet. Det er ligegyldigt, hvilket sprog du programmerer på - jo før du mestrer dette værktøj, jo bedre. Terminalen bruges til at installere/køre programmer på din maskine, administrere computerressourcer, navigere gennem mapper, oprette filer eller køre tidligere forberedte scripts. Disse færdigheder er nødvendige, når man administrerer en server, der ikke har en grafisk brugergrænseflade (GUI).
Tastaturgenvejen, der åbner terminalen, er ctrl + alt + t
Mange mennesker prøver at udskyde at lære kommandolinjen og leder efter versioner af programmer med en flot grafisk grænseflade. Men hvis du vil starte eventyret med programmering, vil terminalen være et uundværligt element i indlæringen, så det er på tide at blive venner. Begyndelsen kan være svær, men bare rolig.
Terminal - praksis
På billedet ovenfor har vi en allerede åben Ubuntu-terminal, hvor du kan se:
damian@rubydev:~$
Den første del, før kolon, er ikke andet end det brugernavn, vi valgte, da vi installerede Ubuntu, og navnet på vores computer. Men tilden ~ betyder hjemmebiblioteket. Det sidste tegn $ er den såkaldte "prompt". Derefter kan man indtaste kommandoer.
Hvor er jeg?
pwd (Print Working Directory) - den returnerer altid stien til det sted, hvor du er i øjeblikket. Når du farer vild, kan du altid bruge pwd kommando.
På dette tidspunkt er det værd at bemærke, at du umiddelbart efter at have startet konsollen altid er i dit hjemmekatalog, dvs. / home / USER_NAME, hvor BRUGERNAVN betyder dit brugernavn.
Vis mig, hvad du kan!
ls (List) - det er en af de mest brugte kommandoer til at vise indholdet af den mappe, du befinder dig i.
Kommandoer kan også tage argumenter (optioner), som ændrer dine kommandoers opførsel på en eller anden måde. Du kan skrive dem sammen eller hver for sig, f.eks:
damian@rubydev:~$ ls -la
eller:
damian@rubydev:~$ ls -l -a
-l er en mulighed, der udskriver filer og mapper i form af en liste med detaljerede oplysninger, mens -a eller --alle udskriver også skjulte filer (dvs. filer med navne, der begynder med et punktum).
De afgivne indstillinger indledes normalt med - eller --. Et andet nyttigt trick er at indtaste stien til den mappe, hvis indhold du vil tjekke, lige efter ls eller efter de afgivne indstillinger (hvis du bruger dem). På den måde kan du gøre det uden at ændre din nuværende placering.
I dette tilfælde fandt vi ud af, hvilke filer vi har i Dokumenter uden at flytte fra hjemmebiblioteket.
Lad os komme af sted!
Det er tid til at udforske dit system lidt og lære at navigere i det. Vi vil bruge cd (skift mappe) for at flytte.
Hvis du vil gå til Dokumenter fra dit hjemmekatalog, vil kommandoen se sådan ud: cd-dokumenter. For at være sikker på, at du er det rigtige sted, kan du tjekke det med den allerede kendte pwd kommando:
Hvis du vil gå tilbage, kan du bruge cd ...men husk, at .. vil føre dig tilbage til den overordnede mappe, ikke til det sted, hvor du indtastede kommandoen. Måske illustrerer denne skærm problemet bedre:
Det er også værd at kende nogle genveje, der kan hjælpe dig med at arbejde mere effektivt. Den cd eller cd ~ selv vil føre dig direkte til hjemmebiblioteket, uanset hvor i systemet du befinder dig.
damian@rubydev:~/Pulpit/Praca$ cd
damian@rubydev:~$ pwd
Vælg /, hvis du har brug for at komme til rodmappen, den såkaldte "root". Det er systemets grundmappe, som indeholder mapper med konfigurationsfiler, installerede programmer og brugermapper (inklusive din hjemmemappe).
damian@rubydev:~$ cd /
damian@rubydev:/$ pwd
/
En anden ting, der vil lette dit arbejde, er at bruge TAB-knappen. Du behøver ikke at indtaste det fulde navn på den mappe, du vil gå til, hver gang, og du behøver heller ikke at huske det fulde navn. Ved at indtaste det første bogstav i kataloget og trykke på TAB vil terminalen foreslå de tilgængelige muligheder eller fuldføre kommandoen med det samme, hvis der kun er én mulighed. Lad os prøve det:
damian@rubydev:/$ cd P[tab]
Pobrane/ Publiczny/ Prædikestol/
damian@rubydev:/$ cd P
damian@rubydev:~$ cd D[tab]
damian@rubydev:/$ cd Dokumenty/
Vi vil bruge tabulatoren ret ofte i denne træningssession.
Hjælp?
Har du glemt, hvilke muligheder <codecd'en har? Du kan bruge den dokumentationsstøtte, som dit system tilbyder. Den mand (manuel) kommando bruges til dette:
damian@rubydev:/$ man cd
Dette er ikke den eneste måde. Du kan også bruge --hjælp eller -h som f.eks. vil vise dig en hurtig hjælpeguide:
damian@rubydev:~$ ls --help
Opgaver:
1. Find ud af, hvilke andre muligheder end -l -a den ls kommandoen kan acceptere, og hvilke detaljer -l mulighed returnerer nøjagtigt.
2. Da du kan navigere gennem mapperne, skal du gøre dig bekendt med filstrukturen i dit system.
Tid til at tilføje og ændre noget!
For at oprette nye mapper, hvor du vil opbevare dine projekter, skal du bruge kommandoen mkdir (make directory) efterfulgt af det navn, du ønsker.
damian@rubydev:~/Pulpit$ mkdir Projekty
damian@rubydev:~/Pulpit$ ls
Praca Projekty
Hvis du vil oprette en fil, kan du bruge berøring kommando:
damian@rubydev:~/Pulpit/Projekty$ touch rubydev.rb
damian@rubydev:~/Pulpit/Projekty$ ls
rubydev.rb
Da du kan tilføje nye mapper og filer, kan du også kopiere dem! For at kopiere filerne skal du bruge cp (copy), og for at kopiere mapper cp Tilføj den -r (rekursiv) mulighed. Ved kopiering af en fil/mappe tager kommandoen to parametre:
den fil, du vil kopiere, f.eks. den tidligere oprettede rubydev.rb fil,
det sted, du kopierer til (du kan give kopien et nyt navn ved at indsætte det i slutningen af destinationsstien).
Jeg kopierede rubydev.rb-filen til den overordnede mappe, dvs. mappen Desktop
Du kan også overføre filer. Lad os prøve at flytte den tidligere kopierede fil tilbage til den mappe, du befinder dig i, og samtidig ændre dens navn.
Vi flytter filen rubydev_copy.rb fra den overordnede mappe til den mappe, hvor vi befinder os i øjeblikket
For at flytte filer og mapper skal du bruge mv (flyt), som - ligesom cp - tager to input: hvad og hvor der skal flyttes.
Unødvendigt? Lad os slette!
Som det normalt sker, vil du efter et stykke tid have filer og mapper, som du ikke længere har brug for eller bruger. Der findes også passende kommandoer til at slette sådanne filer og mapper.
rmdir (remove directory) - fjerner den tomme mappe, du har angivet som parameter. Hvis du angiver flere stier til mapper, vil den slette dem alle.
rm (remove) - fjerner filen. Hvis du vil slette en mappe med denne kommando, skal du bruge kommandoen -r -f mulighed. Denne kommando accepterer kun én parameter, nemlig stien til filen eller biblioteket. Hvis du vil slette alle filer i den mappe, du befinder dig i, kan du give kommandoen * tegn som en parameter. Kommandoen vil så se sådan ud: rm *
damian@rubydev:~/Pulpit/Projekty$ ls rubydev_move.rb rubydev.rb
damian@rubydev:~/Pulpit/Projekty$ rm *
damian@rubydev:~/Pulpit/Projekty$ ls
damian@rubydev:~/Pulpit/Projekty$
Før brug *Sørg for (med pwd), at du er det rigtige sted, så du ikke sletter vigtige filer.
De tidligere nævnte muligheder -r (rekursiv, sletter filer i underkataloger) og -f (tvinge, slette uden bekræftelse, inklusive filer, der er beskyttet mod sletning) bruges sammen til at fjerne en mappe med alt dens indhold. Derfor skal du, før du bruger rm -rfskal du være sikker på, hvad du fjerner.
Opgaver:
1. Brug man til at læse dokumentationen for de kommandoer, der er omtalt ovenfor,
2. Opret to mapper: projekt_1, projekt_2
3. Opret tre filer i projekt_1-biblioteket (alle navne), f.eks. application.rb, routes.rb, puma.rb
4. Kopier alle filer fra projekt_1 til projekt_2og derefter slette projekt_1.
Sammenfatning
Som du kan se, er det ikke svært at håndtere terminalen, det kræver bare lidt øvelse. For virkelig at mestre det, anbefaler jeg at bruge terminalen til alle simple operationer. I anden del af denne vejledning vil jeg vise dig nogle andre kommandoer, som er værd at kende. Farvel og tak!