Python är för närvarande ett av de mest populära programmeringsspråken. Det är ett kraftfullt men ändå enkelt språk som kan användas i nästan alla utvecklingsmiljöer.

En undersökning av Stack Overflow från 2021 visar att Python är det programmeringsspråk som de flesta utvecklare vill arbeta med.

Stack Overflow-undersökning.
Stack Overflow-undersökning.

Tack vare verktyg som Jupyter Notebook, Google Colaboratory och online-kompilatorer så kan du komma igång med det här språket utan att behöva installera något.

Men du kanske verkligen vill njuta av kraften i ett allmängiltigt språk som Python (särskilt genom att skapa komplexa appar)? I så fall måste du förr eller senare lära dig att använda CLI, eller kommandoradsgränssnittet.

De flesta utvecklare är överens om att en av de mest skrämmande delarna med att lära sig Python är CLI. Men med endast några få kommandon under bältet kommer du att behärska detta på nolltid.

I den här artikeln så får du lära dig de mest användbara kommandona för Python-utveckling.

Vad är kommandoradsgränssnittet?

Kommandoradsgränssnittet – ofta förkortat CLI – är en textbaserad applikation. Den används för att köra applikationer och utföra uppgifter som rör operativsystemet (OS). DEt kan handla om att skapa och hantera filer.

CLI tar emot inmatning från tangentbordet i form av kommandon och skickar dem till ett shell eller en kommandotolk. Dessa shells tolkar de kommandon som användaren ger, utför dem och returnerar ett resultat som ofta kallas utmatning.

En CLI kan köra olika shells. Denna skärmdump visar två olika CLI: er, en med Python-shell och en med Bash:

Python- och Bash-shells.
Python- och Bash-shells.

Dessa två begrepp förväxlas ofta, så här är skillnaden:

  • CLI är det textbaserade gränssnittet där du skriver in kommandon och får utdata från dessa kommandon. Det kan exekvera olika shells.
  • Ett shell är en kommandotolk som kan interagera med operativsystemet.

Tro det eller ej, men varje applikation som körs i ditt system innehåller ett kommando. Fönstren (GUI) som du interagerar med varje dag består av bindningar som utlöser kommandon. Dessa låter dig sedan interagera med operativsystemet.

Behöver du CLI i Pythonutvecklingen?

För att vara en effektiv fullstack-utvecklare så måste du ha gedigna kunskaper om kommandoraden. Detta beror på att de flesta backend-ramverk kräver någon form av interaktion med ett CLI direkt. Om du planerar att distribuera en app själv så kommer kommandoraden att vara din bästa vän.

Numera så kan du köra Python från otaliga tjänster på nätet. Du kan även köra IDE: er som gör det mycket enklare att exekvera dina applikationer. Men du kanske ägnar dig åt webbutvecklingbackend, automatisering av uppgifter, blockkedjor, användning av en fjärrdator via SSH eller hantering av Python-vänliga verktyg som Docker? Då behöver du definitivt hantera CLI.

Faktum är att Python har massor av bibliotek för att bygga CLI-applikationer som Types Argsparse och Click. Du kan gå från att bara vara en CLI-användare till att skapa dina egna CLI-applikationer! Detta visar den starka kopplingen mellan CLI-miljöer och Python.

När du väl behärskar CLI så blir det mycket lättare att utföra dina uppgifter som Python-programmerare, och du kommer att se en stor fördel när du använder andra programmeringsspråk som PHP, C, C++ eller Java.

Introduktion till CLI

Beroende på vilket operativsystem som du kör så kommer du att hitta skillnader i hur du använder kommandoraden. Varje operativsystem har sitt eget sätt att öppna och interagera med ett CLI på grund av deras olika filorganisationsstrukturer och standardkommando-shells.

Låt oss ta en titt på de tre operativsystem som oftast används av utvecklare: Windows, Mac och Linux.

Windows

Windows är det mest populära operativsystemet för datorer, främst tack vare dess prislapp och användarvänlighet. Om du vill komma åt CLI i Windows så måste du antingen öppna applikationen ”Kommandoprompten” eller ”Windows Powershell”.

Kom ihåg att Windows inte använder / för sökvägar. Du bör ha detta i åtanke när du navigerar i kataloger.

Även i Windows så har du alternativet att installera Git Bash, en kommandorad som emulerar beteendet hos Bash-shells i Windows. Detta skulle göra de flesta Unix-kommandon som visas nedan kompatibla med ditt system.

Mac

När det gäller Mac så är kommandoraden tillgänglig från en inbyggd applikation som kallas ”Terminal”. Du kan söka efter den med Launchpad eller hitta den i mappen ”Verktyg” under ”Applikationer”.

Linux

På Linux så har du massor av olika alternativ beroende på vilken distro du använder, men kommandot ”Ctrl + Alt + T” utlöser vanligtvis standardterminalen i ditt system.

Nu bör du få ett fönster som liknar det som visas nedan:

 CLI.
CLI.

De 20+ mest användbara CLI-kommandona för Pythonutveckling

När du har öppnat ditt CLI så är det dags att dyka ner i de bästa shell-kommandona som kommer att göra ditt liv som Python-utvecklare mycket enklare.

Installationskommandon

Du har förmodligen snubblat över en miljon sätt att installera Python på. Men det är mycket bekvämare att göra det med endast ett kommando.

Här är de olika kommandona som hjälper dig att installera Python på olika operativsystem.

1. Chocolatey

Windows har som standard ingen pakethanterare. Ett alternativ för att komma förbi detta är Chocolatey, som ger dig applikationer som du kan installera direkt från kommandoraden – naturligtvis inklusive Python.

Se till att du installerar Chocolatey innan du kör följande kommando:

choco install python --pre 

2. Homebrew och Pyenv

macOS har Python 2.7 installerat som standard. Python 2.7 är dock numera föråldrat. Hela Python’s community har övergått till Python 3. För att hantera dina Python-versioner på ett effektivt sätt så kan du använda en applikation som pyenv.

Öppna en kommandorad och installera den senaste versionen av Homebrew (en pakethanterare som Chocolatey) med följande kommando:

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

Du kan sedan nstallera pyenv med det här enkla kommandot:

brew install pyenv

Du kan installera en viss Python-version och ställa in den som den globala Python-körbara versionen i stället för Python 2:

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

Om du nu kallar på Python så kommer det att vara den version som du ställt in med pyenv:

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

3. apt, pacman och dnf

Med den omfattande användningen av Python i öppen källkodsprogramvara så är Python förinstallerat på ett stort antal Linux-distribueringar. Om ditt system inte gör det så kan du istället installera Python med en pakethanterare.

I Debianbaserade distribueringar (Ubuntu, Linux Mint, Kali Linux) använder du apt, som står för ”advanced package tool”:

sudo apt update
sudo apt install python3

Om du dessutom vill ställa in Python 3 som din standardmässiga Python-tolkare så kan du använda följande kommando:

sudo apt install python-is-python3

I Arch-baserade distribueringar så kan du använda den officiella pakethanteraren pacman:

sudo pacman -S python

I Fedora och RPM-baserade Linuxdistribueringar (Red Hat, CentOS) använder du dnf:

sudo dnf install python3

Interpreterkommandon

Låt oss snabbt gå igenom de viktigaste flaggorna – kommandoradsalternativen – för Python-kommandot och dess pakethanterare, pip.

4. python

Kommandot python har flera flaggor, det vill säga alternativ som ändrar beteendet vid exekvering av kod.

För att exekvera en Python-fil så är det bara att anropa tolken och lägga till namnet på filen, inklusive tillägget .py:

python helloworld.py

Om du behöver komma ihåg vad en flagga gör så kan du använda flaggan help i någon av dessa tre presentationer:

python -?
python -h
python --help

För att skriva ut vilken version av Python du kör, använd följande:

python -V
python --version

Om du vill köra Pythonkod utan att öppna och redigera en .py-fil så kan du köra den direkt från terminalen med kommandoflaggan:

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

Med flaggan m körs en Pythonmodul som ett skript. Detta är verkligen användbart när du vill skapa en virtuell miljö med den inbyggda modulen venv:

python -m venv .venv

5. pip

Kommandot pip letar efter paket i Python Package Index (PyPI), löser beroenden och installerar den version av paketet som du har angett.

För att installera ett Pythonpaket så skriver du bara pip och namnet på det paket som du vill installera.

Följande kommando installerar den senaste versionen av paketet:

pip install django

Om du vill ha en viss version så kör du följande kommando:

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

När du arbetar med samarbetsprojekt aå måste du hålla reda på beroenden, vanligtvis med en kravfil. Med flaggan r kan du läsa och installera paket från en textfil:

pip install -r requirements.txt

En annan vanligt förekommande funktion är flaggan freeze. Den används för att skriva ut en lista över de paketversioner som du har installerat i din miljö. Du kan använda den för att skriva ut dina beroenden till en kravfil:

pip freeze >> requirements.txt

Kommandon för behörighet

Python är riktigt bra på skript och filhantering. För att kunna arbeta med dessa uppgifter så måste du ha viss kunskap om hur behörigheter fungerar i ditt operativsystem.

6. sudo, runas

I Unix-baserade system (macOS, Linux, BSD) så måste du ha superanvändarrättigheter för att utföra vissa uppgifter. Exempelvis för att installera en applikation, som vi gjorde ovan.

Med kommandot sudo så kan du få en tillfällig administratörsbehörighet för att utföra ett av dessa kommandon.

Nedan visas ett exempel på att installera ueberzug (ett Python-paket för förhandsgranskning av bilder) globalt:

sudo pip install ueberzug

Motsvarigheten i Windows är Runas, som utför ett skript som en annan användare eller som administratör:

runas /noprofile /user:Administrator cmd

Det finns även andra projekt som Gsudo, som gör det mycket enklare att höja behörigheten än med andra inbyggda Windows-kommandon:

:: Installs gsudo
choco install gsudo

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

7. chmod

chmod används för att ändra behörigheter för filer och kataloger i Unix.

Ett vanligt användningsområde är att göra ett Python-skript körbart:

# Makes mypythonscript.py executablechmod +x
mypythonscript.py

När du har gjort ett skript körbart så kan du köra det direkt med hjälp av notationen ./:

# Runs the script
./mypythonscript.py

Navigeringskommandon

Att navigera i filsystemet för ett kommandoradsgränssnitt är en vardaglig uppgift för Python-utvecklare. Här är några viktiga kommandon som används för att navigera i systemet när du programmerar med Python.

8. ls, dir

För att lista innehållet i en katalog (mapp) så måste du använda kommandot ls (Unix) eller dir (Windows). Detta var troligtvis det första kommandot som du lärde dig när du först stötte på CLI.

Här är syntaxen som används:

ls # Shows the contents of the working directory
ls mydirectory

Och här är ett exempel på innehållet i en mapp i ett lokalt filsystem:

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

Det här kommandot har många användbara flaggor. Det är faktiskt ofta ett alias till ls -al för att visa dolda filer (de med en punkt i början) och läget, storleken och datumet för varje 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

När det gäller Windows så kan du använda ls med Git Bash, eller använda det inbyggda dir-kommandot:

dir

9. pwd

pwd står för ”print working directory” och det ger dig den fullständiga sökvägen till den katalog som du befinner dig i:

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

Om du någonsin har gått vilse i din terminal är det här kommandot en livräddare.

Du kan få samma utdata i Windows genom att använda kommandot cd utan parametrar (observera att samma kommando i Unix skulle ta dig till hemkatalogen):

# Only on Windows
cd
# D:FoldersubFolder

10. cp

Att kopiera filer med en grafisk filhanterare är intuitivt men ineffektivt. Med det här kommandot så kan du kopiera alla typer av filer på ditt system:

cp old_file.txt copy_old_file.txt

Om du vill kopiera hela innehållet i en katalog så måste du använda cp -r:

cp -r originaldirectory/ newdir

Motsvarigheten till cp i Windows är copy:

copy old_file.txt copy_old_file.txt /a

11. cat, skriv

Om du vill skriva ut innehållet i en textfil i terminalen utan att öppna filen med en redigerare så kan du använda cat, more, eller less i Unix och type i 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, flytta

Kommandot mv flyttar filer och kataloger från en katalog till en annan – i princip ett urklipp och en inklistring – eller byter namn på en fil om destinationen inte finns:

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

Du kan även använda mönster-matchning för att flytta filer. Flytta exempelvis alla .py-filer till en annan mapp:

mv *.py mypythondir/

Ett motsvarande kommando i Windows är movesom har nästan samma funktionalitet som ovanstående:

# Windows
move source_file.txt renamed_file.txt

13. rm, del

Du kan använda kommandot rm för att ta bort filer och kataloger.

För att ta bort en fil, och inte en katalog, använder du:

rm file_to_remove.txt

Om du vill ta bort en tom katalog så kan du använda flaggan rekursiv (-r):

rm -r dir_to_remove/

Om du vill ta bort en katalog med innehåll inuti så använder du flaggorna force (-f) och recursive:

rm -rf dir_with_content/

På liknande sätt hittar du del i Windows. Var ännu mer försiktig här eftersom detta kommando inte har de förhindrande flaggorna som ses ovan:

del mywindowsdir

14. avsluta

När du är klar med din Python-programmering så bör du kunna avsluta din shell-session. I de flesta fall stänger detta även terminalen som du använder:

exit

Observera att det här kommandot fungerar både på Windows och Unix.

Kommandoradsredigerare

När du väl har vant dig vid kommandoraden så kommer du att märka att det är långsammare att byta fönster eller till och med använda musen för att redigera din kod.

Att ha möjlighet att koda medan du håller dig på kommandoraden är inte bara ett bra sätt att spara tid. Det får dig även att se ut som en superhjälte bland dina lagkamrater!

Här är några av de mest använda kommandoradsredigerarna.

15. Vim/Neovim

Vim och dess efterföljare Neovim är tangentbordsbaserade textredigerare som huvudsakligen används på kommandoraden. Enligt en undersökning av Stack Overflow från 2021 ligger de på fjärde och första plats bland de mest älskade redigerarna bland utvecklare.

Favoritkodredigerare.
Favoritkodredigerare.

Vim är förinstallerad på Linux och macOS. Det är faktiskt den redigerare som du kommer att stöta på mest när du interagerar med servrar. På Windows så måste du installera den med hjälp av det körbara installationsprogrammet från Vim’s sida.

Nu kan du njuta av Vim’s kraft genom att bara skriva in dess namn på kommandoraden:

vim

Detta kommer att utlösa ett textbaserat gränssnitt med flera tangentbordskombinationer för varje åtgärd som du kan behöva när du kodar i Python.

Vim har en brant inlärningskurva, men när du väl behärskar det så kommer du knappast att byta till något annat.

Vi IMproved.
Vi IMproved.

16. Nano

Nano är en annan kommandorads-textredigerare som mest används för snabba redigeringar.

Säg att du har infört ett syntaxfel i din kod men inte vill öppna din redigerare för att rätta till detta. Nano hjälper dig att rätta till det direkt från din CLI:

nano

17. Emacs

Emacs är en av de mest utbyggbara och anpassningsbara textredigerare som du kan hitta. Det har en hel sektion som är tillägnad Python-programmering där du hittar massor av plugins för att förbättra din utvecklingsupplevelse.

Emacs finns i nästan alla operativsystem. Om du inte redan redan har installerat detta så kan du kolla in nedladdningsinstruktionerna.

För att öppna Emacs från kommandoraden, använd systemflaggan no window (-nw):

emacs -nw

Utvecklingsverktyg

Utveckling av Python innebär inte bara kodning utan även hantering av ytterligare verktyg som virtuella miljöer, versionskontrollsystem och distribueringsverktyg.

Genom att lära dig kommandona nedan så får du en fördel när du utvecklar alla typer av appar med Python.

18. virtualenv/venv

Virtuella miljöer är en viktig teknik som används vid utveckling av Python. Med dem så kan du isolera de paket som används i olika projekt i en lättviktig mapp, som oftast heter .venv.

Med Python 3.3 eller senare kan du använda den inbyggda venv-modulen för att skapa en virtuell miljö:

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

virtualenv är ett externt projekt som är snabbare och mer utbyggbart jämfört med det inbyggda alternativet. För att skapa en virtuell miljö så installerar du först paketet virtualenv:

# Installs virtualenv
pip install --user virtualenv

# Creates a .venv virtual environment
virtualenv .venv

Därefter så måste du aktivera den virtuella miljön. I Windows så kör du ett av följande kommandon beroende på om du använder cmd eller PowerShell (rekommenderas):

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

På Linux eller macOs:

source .venv/bin/activate

19. Git

Versionskontroll är en av de viktigaste metoderna inom programvaruutveckling. Den gör det möjligt att hålla reda på alla kodändringar, samarbeta med andra utvecklare och få en tydlig bild av utvecklingsprocessen som helhet.

Git är det överlägset mest använda versionskontrollsystemet. Du kan installera det från dess nedladdningssida.

När det är installerat så kan du öppna en terminal och få en första titt på alla tillgängliga alternativ med det här kommandot:

git help

För att skapa ett arkiv så använder du git init och skriver namnet på ditt arkiv:

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

Observera att detta endast skapar ett lokalt Git-arkiv. Om du vill ha ett fjärr-arkiv där du lagrar alla dina ändringar på nätet så bör du använda en plattform som GitHub eller BitBucket.

För att klona ett fjärrarkiv så använder du git clone och källkoden till arkivet. I exemplet nedan klonar vi ett GitHub-arkiv via 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 enklare att paketera och leverera dina Python-applikationer som lättviktiga, bärbara och självförsörjande containers. Det underlättar både vid utveckling och distribuering och gör att alla medarbetare kan arbeta med samma inställningar.

För att använda Docker så måste du strikt följa den installationsprocess som visas för ditt operativsystem på sidan Get Docker.

Kör följande för att få en lista över tillgängliga Docker-kommandon:

docker help 

Det skulle vara svårt att förklara hur man kör Docker compose i det här smala avsnittet, så se till att kolla in den officiella dokumentationen.

21. Grep

Grep är ett viktigt kommandoradsverktyg som används för att matcha mönster i vanliga textfiler.

Ett vanligt användningsområde är att ta reda på hur många gånger som ett ord upprepas i en fil:

grep -ic python pythondocument.txt
2

I exemplet ovan så får vi fram hur många gånger Python (oberoende av stora och små bokstäver) förekommer i filen pythondocument.txt.

Windows motsvarighet till grep är findstr. Det är dock inte riktigt samma applikation. Du kan använda Git Bash för att utnyttja grep i Windows:

findstr /i /C python pythondocument.txt
2

22. HTTPie

HTTPie är en HTTP-klient med kommandorad som gör det lättare att interagera med webbtjänster. Du kan exempelvis använda den för att testa dina Python-API: er eller för att interagera med webbplatser från tredje part.

Detta CLI-verktyg finns i nästan alla pakethanterare, vilket framgår av HTTPies officiella dokumentation. Det finns dock även som ett Pythonpaket, så att du kan installera det med pip.

pip install httpie

Så här frågar du ut ett fjärr-API – i det här fallet 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 är ett CLI-kommando som är tillgängligt som standard på nästan alla operativsystem. Det skickar datapaket till en IP-adress och testar hur lång tid som det tar att sända data och få ett svar. Efter detta så visas resultatet i millisekunder.

Det här kommandot används främst för att verifiera anslutningen mellan två maskiner, nämligen din maskin och din Python-app på en webbserver:

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

Tabell över kommandoreferenser

Nedan så hittar du en snabbreferens för varje kommando som vi har diskuterat:

Kommando Användning
choco Installerar paket på Windows
brew macOS-pakethanteraren
apt, pacman, dnf Pakethanterare på olika Linux-distribueringar
python Kör Python-tolkare
pip Python-pakethanteraren
sudo, runas Unix- och Windows-applikationer som används för att skala behörigheter
chmod Ändrar filbehörigheter
ls Visar innehållet i en katalog
pwd Skriver ut arbetskatalogen
cp Kopierar filer och kataloger
cat Skriver ut filinnehåll
mv, move Flyttar (byter namn på) filer och kataloger
rm, del Tar bort filer och kataloger
exit Avslutar den aktuella shell-sessionen
vim, neovim Effektiv textredigering
nano Textredigerare för snabba redigeringar
emacs Den mest anpassningsbara redigeraren
virtualenv, venv Generatorer för virtuella miljöer
git System för versionskontroll
docker Containerisera appar
grep Verktyg för mönstermatchning
http Verktyg för testning av webbtjänster
ping Testar nätverksanslutning
kill Avslutar applikation

Sammanfattning

Python är ett av de enklaste programmeringsspråken att lära sig. Du får det endast jobbigt om du går in på kommandoraden utan att förstå vilka kommandon som du behöver.

I den här artikeln så har du lärt dig om kommandoraden och några av de mest populära kommandona som används för Python-utveckling.

Vilka andra kommandon har du funnit användbara i Python-utveckling? Dela med dig av dem i kommentarerna nedan!

Daniel Diaz

Daniel is a self-taught Python Developer, Technical Writer, and long-life learner. He enjoys creating software from scratch and explaining this process through stunning articles. Follow him on Twitter: @DaniDiazTech