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.
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:
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 webbutveckling – backend, 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:
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 move
som 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.
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.
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!
Lämna ett svar