Python er i øjeblikket et af de mest populære programmeringssprog derude. Det er et kraftfuldt og alligevel simpelt sprog, der kan bruges i næsten ethvert udviklingsmiljø.

En Stack Overflow-undersøgelse fra 2021 viser, at Python er det programmeringssprog, som de fleste udviklere ønsker at arbejde mest med.

Stack Overflow-undersøgelse
Stack Overflow-undersøgelse.

Takket være værktøjer som Jupyter Notebook, Google Colaboratory og onlinekompilatorer kan du komme i gang med dette sprog uden at skulle bekymre dig om at installere noget.

Men hvis du vil gå videre og nyde den sande kraft af et alment sprog som Python (især ved at skabe komplekse apps), skal du før eller senere lære at bruge CLI, eller kommandolinjeinterface.

De fleste udviklere er enige om, at en af de mest skræmmende dele af at lære Python er CLI’en. Men med blot nogle få kommandoer under bæltet, vil du beherske det på ingen tid.

I denne artikel lærer du de mest nyttige kommandoer til Python-udvikling.

Hvad er the command line interface?

The command line interface – ofte forkortet CLI – er et tekstbaseret program, der bruges til at køre programmer og udføre opgaver i forbindelse med operativsystemet (OS), som f.eks. oprettelse og administration af filer.

CLI’er accepterer input fra tastaturet i form af kommandoer og sender dem videre til en shell eller kommandofortolker. Disse shell’er fortolker de kommandoer, som brugeren har givet, udfører dem og returnerer et resultat, der ofte kaldes output.

En CLI kan udføre forskellige shells. Dette skærmbillede viser to forskellige CLI’er, en med Python-shell og en anden med Bash:

Python- og Bash-shells.
Python- og Bash-shells.

Disse to begreber bliver ofte forvekslet, så her er opdelingen:

  • CLI er den tekstbaserede grænseflade, hvor du indtaster kommandoer og får resultatet af disse kommandoer. Den kan udføre forskellige shells.
  • En shell er en kommandofortolker, der kan interagere med operativsystemet.

Tro det eller ej, men hvert program, som dit system kører, involverer en kommando. De vinduer (GUI), som du interagerer med hver dag, består af bindinger, der udløser kommandoer, som lader dig interagere med operativsystemet.

Har du brug for CLI i Python-udvikling?

For at være en effektiv full-stack-udvikler skal du have et solidt kendskab til kommandolinjen. Dette skyldes, at de fleste backend-frameworks kræver en eller anden form for interaktion med en CLI direkte, og hvis du planlægger at distribuere en app selv, vil kommandolinjen være din bedste ven.

I dag kan du køre Python fra utallige onlinetjenester samt IDE’er, der gør det meget nemmere at udføre dine programmer. Men hvis du er til webudvikling – især backend, automatisering af opgaver, blockchain, brug af en fjerncomputer via SSH eller håndtering af Python-venlige værktøjer som Docker, skal du helt sikkert håndtere CLI’en.

Faktisk har Python masser af biblioteker til at bygge CLI-applikationer som Typer, Argsparse og Click. Du kan gå fra blot at være CLI-bruger til at være skaber af dine egne CLI-apps! Dette viser den stærke forbindelse mellem CLI-miljøer og Python.

Når du først mestrer CLI’en, bliver det meget nemmere at udføre dine opgaver som Python-programmør, og du vil se en fordel, når du bruger andre programmeringssprog som PHP, C, C++ eller Java.

Introduktion til CLI’en

Afhængigt af hvilket operativsystem du kører, vil du finde forskelle i den måde, du bruger kommandolinjen på. Hvert operativsystem har sin egen måde at åbne og interagere med en CLI på grund af deres forskellige fil-organisationsstrukturer og standardkommandoskaller.

Lad os tage et kig på de tre operativsystemer, der oftest anvendes af udviklere: Windows, Mac og Linux.

Windows

Windows er det mest populære desktop OS, mest på grund af dets pris og brugervenlighed. Hvis du ønsker at få adgang til CLI i Windows, skal du åbne enten programmet “Command Prompt” eller “Windows Powershell”.

Husk, at Windows bruger til stier i stedet for /. Det skal du være opmærksom på, når du navigerer i mapper.

Også på Windows har du alternativet til at installere Git Bash, en kommandolinje, der emulerer Bash-shellens adfærd i Windows. Dette ville gøre de fleste af de Unix-kommandoer, der er vist nedenfor, kompatible med dit system.

Mac

Hvad angår Mac, er kommandolinjen tilgængelig fra et indbygget program kaldet “Terminal”. Du kan søge efter det med Launchpad, eller du kan finde det i mappen “Utilities” under “applications”.

Linux

På Linux har du masser af forskellige muligheder alt efter hvilken distro du bruger, men kommandoen “Ctrl + Alt + T” udløser typisk standardterminalen i dit system.

Nu bør du have et vindue, der ligner det nedenfor viste:

 CLI.
CLI.

20+ mest nyttige CLI-kommandoer til Python-udvikling

Når du har fået din CLI åbnet, er det tid til at dykke ned i de bedste shell-kommandoer, der vil gøre dit liv som Python-udvikler meget nemmere.

Installationskommandoer

Du er sikkert stødt på en million måder at installere Python på. Men nogle gange er det meget mere bekvemt at gøre det med blot en kommando.

Her er de forskellige kommandoer, der hjælper dig med at installere Python på tværs af forskellige OS’er.

1. Chocolatey

På Windows har du som standard ingen pakkehåndtering. En mulighed for at komme forbi dette er Chocolatey, som giver dig programmer til installation direkte fra kommandolinjen – herunder naturligvis Python.

Sørg for at installere Chocolatey, før du kører følgende kommando:

choco install python --pre 

2. Homebrew og Pyenv

macOS leveres med Python 2.7 installeret som standard. Python 2.7 er dog nu forældet. Hele samfundet er skiftet til Python 3. Hvis du vil administrere dine Python-versioner effektivt, kan du bruge et program som pyenv.

Åbn en kommandolinje, og installer den nyeste version af Homebrew (en pakkehåndtering som Chocolatey) med følgende kommando:

/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Derefter kan du installere pyenv med denne enkle kommando:

brew install pyenv

Du kan installere en bestemt Python-version og indstille den som den globale Python-køreprogram i stedet for Python 2:

pyenv install 3.10 # Version you want
pyenv global 3.10.4 # Sets that version as default

Hvis du nu kalder Python, vil det være den version, du har indstillet med pyenv:

python
# Python 3.10.4 ....
# >>>

3. apt, pacman og dnf

Med den omfattende brug af Python til open source-software er Python præinstalleret i et stort antal Linux-distributioner. Hvis dit system ikke gør det, kan du i stedet installere Python med en pakkehåndtering.

I Debian-baserede distributioner (Ubuntu, Linux Mint, Kali Linux) bruger du apt, som står for “advanced package tool” (avanceret pakkeværktøj):

sudo apt update
sudo apt install python3

Hvis du desuden ønsker at indstille Python 3 som din standard Python-fortolker, kan du bruge følgende kommando:

sudo apt install python-is-python3

I Arch-baserede distributioner kan du bruge den officielle pakkehåndtering pacman:

sudo pacman -S python

I Fedora og RPM-baserede Linux-distributioner (Red Hat, CentOS) kan du bruge dnf:

sudo dnf install python3

Interpreter-kommandoer

Lad os hurtigt gennemgå de vigtigste flag – kommandolinjeindstillinger – for Python-kommandoen og dens pakkehåndtering, pip.

4. python

Kommandoen python har flere flag, dvs. indstillinger, der ændrer adfærd ved udførelsen af kode.

For det første skal du for at udføre en Python-fil blot kalde fortolkeren og tilføje navnet på filen, herunder udvidelsen .py:

python helloworld.py

Hvis du har brug for at huske, hvad et flag gør, kan du bruge help -flaget i en af disse 3 præsentationer:

python -?
python -h
python --help

For at udskrive (se) den version af Python, du kører, skal du bruge følgende:

python -V
python --version

Hvis du ønsker at køre Python-kode uden at åbne og redigere en .py -fil, kan du udføre den direkte fra din terminal med kommandoflaget:

# Hello, World!
python -c "print('Hello, World!')"

Flaget m udfører et Python-modul som et script. Dette er virkelig nyttigt, når du vil oprette et virtuelt miljø med det indbyggede venv-modul:

python -m venv .venv

5. pip

Kommandoen pip leder efter pakker i Python Package Index (PyPI), løser afhængigheder og installerer den version af pakken, du har angivet.

For at installere en Python-pakke skal du blot skrive pip og navnet på den pakke, du vil installere.

Følgende kommando installerer den nyeste version af pakken:

pip install django

Hvis du vil have en bestemt version, skal du køre følgende kommando:

# pip install package==version
pip install django==4.0.4

Når du arbejder på samarbejdsprojekter, er du nødt til at holde styr på afhængigheder, normalt med en kravfil. Med flaget r kan du læse og installere pakker fra en tekstfil:

pip install -r requirements.txt

En anden ofte anvendt funktion er freeze -flaget. Det bruges til at outputte en liste over de pakkeversioner, du har installeret i dit miljø. Du kan bruge det til at outputte dine afhængigheder til en kravfil:

pip freeze >> requirements.txt

Tilladelseskommandoer

Python er virkelig god til scripting og filhåndtering. For at arbejde med disse opgaver skal du have en vis viden om, hvordan tilladelserne fungerer i dit operativsystem.

6. sudo, runas

I Unix-baserede systemer (macOS, Linux, BSD) skal du have superbrugertilladelser for at udføre visse opgaver, f.eks. installere et program, som vi gjorde ovenfor.

Med kommandoen sudo kan du kortvarigt få administratortilladelser til at udføre en af disse kommandoer.

Nedenfor er et eksempel på installation af ueberzug (en Python-pakke til billedefremvisning af billeder) globalt:

sudo pip install ueberzug

Windows-ækvivalenten er Runas, som udfører et script som en anden bruger eller som administrator:

runas /noprofile /user:Administrator cmd

Der findes også andre projekter som Gsudo, som gør processen med at hæve rettighederne meget nemmere end med andre indbyggede Windows-kommandoer:

:: Installs gsudo
choco install gsudo

:: Reads a file named MySecretFile.txt
gsudo type MySecretFile.txt

7. chmod

chmod bruges til at ændre tilladelserne til filer og mapper i Unix.

En almindelig anvendelse er at gøre et Python-script eksekverbart:

# Makes mypythonscript.py executablechmod +x
mypythonscript.py

Når du har gjort et script eksekverbart, kan du køre det direkte ved hjælp af ./ notationen:

# Runs the script
./mypythonscript.py

Navigationskommandoer

At navigere i filsystemet i en kommandolinjeinterface er en dagligdags opgave for Python-udviklere. Her er nogle vigtige kommandoer, der bruges til at navigere i dit system, når du programmerer med Python.

8. ls, dir

For at opliste indholdet af en mappe (folder) skal du bruge kommandoen ls (Unix) eller dir (Windows). Dette var sandsynligvis den første kommando, du lærte, da du først stødte på CLI’en.

Her er den anvendte syntaks:

ls # Shows the contents of the working directory
ls mydirectory

Og her er et eksempel på indholdet af en mappe i et lokalt filsystem:

ls test_python/
# classes_error.py radius.py test-Django

Denne kommando har mange nyttige flag. Faktisk er den ofte aliaset til ls -al for at få vist skjulte filer (dem med en prik i starten) og tilstand, størrelse og dato for hver enkelt fil:

alias ls="ls -al"

# Results
total 20
drwx------ 3 daniel daniel 4096 ene 16 19:13 .
drwxr-xr-x 36 daniel daniel 4096 may 17 22:18 ..
-rw------- 1 daniel daniel  32 nov 17 2020 classes_error.py
-rw------- 1 daniel daniel 327 nov 10 2020 radius.py
drwx------ 4 daniel daniel 4096 ene 16 01:07 test-Django

Som for Windows kan du bruge ls ved hjælp af Git Bash, eller du kan gøre brug af den indbyggede dir kommando:

dir

9. pwd

pwd står for “print working directory” (udskriv arbejdsmappe), og den gør præcis det: den giver dig den fulde sti til den mappe, du befinder dig i:

pwd
# /home/daniel/github/HTML-site/images

Hvis du nogensinde selv er kommet på vildspor i din terminal, er denne kommando en livredder.

Du kan opnå det samme output i Windows ved at bruge kommandoen cd uden parametre (bemærk, at den samme kommando i Unix ville føre dig til hjemmemappen):

# Only on Windows
cd
# D:FoldersubFolder

10. cp

Kopiering af filer med en grafisk filhåndtering er intuitiv, men ineffektiv. Med denne kommando kan du kopiere alle slags filer over dit system:

cp old_file.txt copy_old_file.txt

Hvis du vil kopiere hele indholdet af en mappe, skal du bruge cp -r:

cp -r originaldirectory/ newdir

Det tilsvarende for cp i Windows er copy:

copy old_file.txt copy_old_file.txt /a

11. cat, skriv

Hvis du vil udskrive indholdet af en tekstfil i terminalen uden at åbne filen med en editor, kan du bruge cat, more, eller less på Unix og type på Windows:

cat old_file.txt # Unix
type old_file.txt # Windows

# Content
Hi there I hope you're enjoying the article ...
as much as I've enjoyed writing it!
End of the sample.

12. mv, move

Kommandoen mv flytter filer og mapper fra en mappe til en anden – i princippet en klip og indsæt – eller omdøber en fil, hvis destinationen ikke findes:

# Rename files
mv source_file.txt renamed_file.txt
# File to another directory
mv renamed_file.txt newdir/

Du kan også bruge mønstermatchning til at flytte filer. Flyt f.eks. alle .py -filer til en anden mappe:

mv *.py mypythondir/

En tilsvarende kommando på Windows er move, som har næsten samme funktionalitet som ovenstående:

# Windows
move source_file.txt renamed_file.txt

13. rm, del

Du kan bruge kommandoen rm til at fjerne filer og mapper.

For at slette en fil, ikke en mappe, skal du bruge:

rm file_to_remove.txt

Hvis du vil slette en tom mappe, kan du bruge flaget rekursivt (-r):

rm -r dir_to_remove/

Hvis du vil fjerne en mappe med indhold i den, skal du bruge flagene force (-f) og recursive:

rm -rf dir_with_content/

I lignende form finder du del på Windows. Vær endnu mere forsigtig, da denne kommando ikke har de forhindringsflag, der er set ovenfor:

del mywindowsdir

14. exit

Når du er færdig med din Python-programmering, bør du kunne afslutte din shell-session. I de fleste tilfælde vil dette også lukke den terminal, du bruger:

exit

Bemærk, at denne kommando virker både på Windows og Unix.

Kommandolinje-editorer

Når du først har vænnet dig til kommandolinjen, vil du opdage, at det er langsommere at skifte vindue eller endda at bruge musen for at redigere din kode.

At have mulighed for at kode, mens du forbliver i kommandolinjen, er ikke kun en god måde at spare tid på, men det får dig også til at ligne en superhelt blandt dine holdkammerater!

Her er nogle af de mest anvendte kommandolinje-editorer.

15. Vim/Neovim

Vim og dets efterfølger, Neovim, er tastaturbaserede tekstredigeringsprogrammer, der hovedsageligt bruges på kommandolinjen. Ifølge en Stack Overflow-undersøgelse fra 2021 ligger de på 4. og 1. pladsen blandt de mest elskede editorer blandt udviklere.

Favoritkode-editorer.
Favoritkode-editorer.

Vim er forudinstalleret på Linux og macOS. Faktisk er det den editor, du møder mest, når du interagerer med servere. På Windows skal du installere det ved hjælp af det eksekverbare installationsprogram fra Vims side.

Nu kan du nyde godt af Vim ved blot at skrive dets navn på kommandolinjen:

vim

Dette vil udløse en tekstbaseret grænseflade med flere tastaturkombinationer til alle de handlinger, du kan få brug for, når du koder i Python.

Vim har en stejl indlæringskurve, men når du først behersker det, vil du ikke så hurtigt skifte til noget andet.

Vi IMproved
Vi IMproved.

16. Nano

Nano er en anden kommandolinje-teksteditor, der mest bruges til hurtige redigeringer.

Lad os sige, at du har indført en syntaksfejl i din kode, men du ønsker ikke at åbne din editor for at rette den. Nano hjælper dig med at rette den direkte fra din CLI:

nano

17. Emacs

Emacs er en af de mest udvidelige og tilpasningsdygtige tekstredigeringsprogrammer, du kan finde. Det har en hel sektion dedikeret til Python-programmering, hvor du kan finde tonsvis af plugins til at forbedre din udviklingsoplevelse.

Emacs er tilgængelig i næsten alle operativsystemer, så hvis du ikke allerede har installeret det, skal du tjekke downloadvejledningen.

For at åbne Emacs fra kommandolinjen skriv, skal du bruge no window systemflaget (-nw):

emacs -nw

Udviklingsværktøjer

Udvikling af Python indebærer ikke kun kodning, men også håndtering af yderligere værktøjer såsom virtuelle miljøer, versionsstyringssystemer og implementeringsværktøjer.

Ved at lære nedenstående kommandoer får du en fordel ved at udvikle enhver form for app med Python.

18. virtualenv/venv

Virtuelle miljøer er en afgørende teknik, der bruges i Python-udvikling. Med dem kan du isolere de pakker, der bruges på tværs af forskellige projekter, i en letvægtsmappe, der oftest hedder .venv.

Med Python 3.3 eller nyere kan du bruge det indbyggede venv-modul til at oprette et virtuelt miljø:

# .venv being the name of the virtual environment
python -m venv .venv

virtualenv er et eksternt projekt, der er hurtigere og mere udvidelsesvenligt sammenlignet med den indbyggede mulighed. For at oprette et virtuelt miljø skal du først installere virtualenv-pakken:

# Installs virtualenv
pip install --user virtualenv

# Creates a .venv virtual environment
virtualenv .venv

Derefter skal du aktivere det virtuelle miljø. På Windows skal du køre en af følgende kommandoer, afhængigt af om du bruger cmd eller PowerShell (anbefales):

:: PowerShell
.venvScriptsActivate.ps1
:: Cmd
.venvScriptsactivate.bat

På Linux eller macOs:

source .venv/bin/activate

19. Git

Versionskontrol er en af de vigtigste metoder inden for softwareudvikling. Det giver os mulighed for at holde styr på alle kodemodifikationer, samarbejde med andre udviklere og få et klart billede af udviklingsprocessen som helhed.

Git er langt det mest anvendte versionsstyringssystem. Du kan installere det fra dets download-side.

Når det er installeret, kan du åbne en terminal og få et første kig på alle de tilgængelige muligheder med denne kommando:

git help

For at oprette et depot skal du bruge git init og skrive navnet på dit repo:

git init name_repository
Initialized empty Git repository in /home/daniel/name_repository/.git/

Bemærk, at dette kun vil oprette et lokalt Git-repo. Hvis du ønsker at have et eksternt depot, hvor du gemmer alle dine ændringer online, skal du bruge en platform som GitHub eller BitBucket.

For at klone et fjern-depot skal du bruge git clone og kildekoden til repo’en. I eksemplet nedenfor kloner vi et GitHub-repo over SSH:

git clone [email protected]:DaniDiazTech/HTML-site.git
...
Cloning into 'HTML-site'...
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 24 (delta 6), reused 21 (delta 4), pack-reused 0
Receiving objects: 100% (24/24), 4.98 MiB | 438.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.

20. Docker

Docker gør det lettere at pakke og sende dine Python-apps som lette, bærbare og selvforsynende containere. Det hjælper både ved udvikling og udrulning og gør det muligt for alle samarbejdspartnere at arbejde med de samme indstillinger.

For at bruge Docker skal du nøje følge den installationsproces, der vises for dit operativsystem på siden Get Docker.

Du kan få vist en liste over tilgængelige Docker-kommandoer ved at køre følgende:

docker help 

Det ville være vanskeligt at forklare, hvordan du kører Docker compose i dette snævre afsnit, så du skal sørge for at tjekke den officielle dokumentation.

21. Grep

Grep er et vigtigt kommandolinjeværktøj, der bruges til mønstermatchning i rene tekstfiler.

En almindelig anvendelse er at finde ud af, hvor mange gange et ord gentages i en fil:

grep -ic python pythondocument.txt
2

I eksemplet ovenfor får vi det antal gange Python (uden hensyn til store og små bogstaver) findes i filen pythondocument.txt.

Windows-ækvivalenten til grep er findstr. Det er dog ikke helt det samme program. Du kan bruge Git Bash til at udnytte grep i Windows:

findstr /i /C python pythondocument.txt
2

22. HTTPie

HTTPie er en HTTP-klient med kommandolinje, som gør det lettere at interagere med webtjenester. Du kan f.eks. bruge den til at teste dine Python-API’er eller interagere med tredjepartssider.

Dette CLI-værktøj er tilgængeligt i næsten alle pakkehåndteringsprogrammer, som det fremgår af HTTPies officielle dokumentation. Det er dog også tilgængeligt som en Python-pakke, så du kan installere det med pip.

pip install httpie

Her er hvordan du forespørger et fjern-API – i dette tilfælde GitHub API:

http GET https://api.github.com/users/danidiaztech
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
...

23. ping

ping er en CLI-kommando, der er tilgængelig som standard på stort set alle operativsystemer. Den fungerer ved at sende datapakker til en IP-adresse og teste, hvor lang tid det tager at sende data og modtage et svar, hvorefter den viser dig resultaterne i millisekunder

Denne kommando bruges primært til at verificere forbindelsen mellem to maskiner, nemlig din maskine og din Python-app på en webserver:

ping kinsta.com
PING kinsta.com(2606:4700:4400::ac40:917d (2606:4700:4400::ac40:917d)) 56 data bytes
64 bytes from 2606:4700:4400::ac40:917d (2606:4700:4400::ac40:917d): icmp_seq=1 ttl=50 time=686 ms

Kommandoreferencetabel

Nedenfor kan du finde en hurtig reference for hver kommando, vi har diskuteret:

Kommando Brug
choco Installerer pakker på Windows
brew macOS-pakkehåndtering
apt, pacman, dnf Pakkehåndtering på forskellige Linux-distributioner
python Kører Python-fortolke
pip Python-pakkehåndtering
sudo, runas Unix- og Windows-program, der bruges til at skalere tilladelser
chmod Ændrer filtilladelser
ls Viser indholdet af en mappe
pwd Udskriver arbejdskartoteket
cp Kopierer filer og mapper
cat Udskriver filindhold
move Flytninger (omdøber) filer og mapper
rm, del Fjerner filer og mapper
exit Afslutter den aktuelle shell-session
vim, neovim Effektiv tekstredigering
nano Teksteditor til hurtig redigering
emacs Den mest tilpassede editor
virtualenv, venv Den mest tilpassede editor
git Versionskontrolsystem
docker Containeriserer programmer
grep Hjælpeprogram til mønstermatchning
http Hjælpeprogram til test af webtjenester
ping Tester netværksforbindelser
kill Afslutter programmer

Opsummerimg

Python er et af de letteste programmeringssprog at lære. Den eneste forhindring, du vil finde, er, når du går ind på kommandolinjen uden at forstå de kommandoer, du får brug for.

I denne artikel har du lært om kommandolinjen og nogle af dens mest populære kommandoer, som bruges til Python-udvikling.

Hvilke andre kommandoer har du fundet nyttige i Python-udvikling? Del dem i kommentarerne nedenfor!

Daniel Diaz

Daniel er en selvlært Python-udvikler, teknisk skribent og langtidslærer. Han nyder at skabe software fra bunden og forklare denne proces gennem fantastiske artikler. Følg ham på X: @DaniDiazTech