Ultimat lista över ovanliga men mycket användbara Linux Shell-kommandon

Den ultimata listan över Linux-kommandon Titelbild

Det här är en sammanställning av mindre kända Linux-skalkommandon - men riktigt användbara. Användbara som i: sparar tid, ger dig ytterligare verktyg för att göra saker du inte kunde göra tidigare, men också underhållande. Ha en trevlig läsning, och låt oss veta i kommentarerna om det finns ytterligare verktyg som vi borde lägga till!

Installationsinstruktionerna kommer att vara för Debianbaserade system, de har testats på Raspberry Pi OS, på en Raspberry Pi 4 / 1 GB. YMMV på andra system, men prova att använda dessa kommandon 🙂 .

sudo !!

Detta kommer att utföra det föregående kommandot med sudo som tillägg. Väldigt användbart om du glömt att sätta sudo före ett kommando:

apt-get update
sudo !!

Du behöver inte installera det, om sudo finns i ditt system borde det fungera. Observera mellanslaget mellan sudo och utropstecken.

Det sudo-förberedda kommandot kommer också att läggas till i din bash-historik, så att du enkelt kan komma åt det genom att trycka på pilknappen "uppåt" för att upprepa det. (Jag har demonstrerat detta i animationen ovan. sudo !! kommer INTE att läggas till i din historik)

tac (katt baklänges)

Denna praktiska instruktion är inbyggd tillsammans med sin mer kända bror, cat. Överlämna en fil till den för att få den att vända på radordningen i filen och skriva ut den sista raden först:

tac /etc/magic

Det här kommandot kan vara mycket praktiskt om du till exempel tittar på loggfiler.

tldr - manualsidor, förenklat!

manpages är användbara, men ibland ganska långa. Har du upptäckt att du googlar istället för att titta på manpage? Helt enkelt för att du vill ha verkliga exempel för vardaglig användning, istället för alla klockor och visselpipor som ett kommando har att erbjuda? tldr delivers "collaborative cheatsheets for console commands"

TL;DR: tldr är det bästa verktyget för snabba sammanfattningar av Linuxkommandon.

Det finns också en PDF-version (tldr.sh) som innehåller alla tillgängliga tldr-sidor.

installation av tldr

Obs: Detta kräver att npm / node.js är installerat på ditt Linuxsystem.

npm install -g tldr

använda tldr

helt enkelt skriva tldr följt av det kommando du är intresserad av. Vid den första körningen kommer tldr att uppdatera sin cache och skapa ett index, vilket kommer att ta ett litet tag. Om du till exempel vill se tldr-sidan om gzip, kör:

tldr gzip

alternativ till bidrag och tldr

Om du vill bidra till tldr kan du ta en titt på GitHub - tldr-pages/tldr: 📚 Samarbetande fusklappar för konsolkommandon, och deras riktlinjer för bidragsgivning.

Det finns några alternativ:

  • Fusk
  • Bro sidor ("kom bara till saken")
  • Navi - låter dig bläddra igenom fuskblad på ett interaktivt sätt och bygga upp det kommando du vill utföra.
  • cheat.sh - kan användas utan att installera något, genom att använda curl

how2 - stackoverflow från terminalen

tldr och kusiner är verkligen användbara om du redan vet vilket kommando du söker. Men vad kan du göra om du bara vet vad du måste göra, men inte ännu hur? Vi vet alla hur distraherande webbläsare kan bli. Verktyget how2 hjälper dig att få ett snabbt svar utan att lämna kommandoraden.

how2 installation

Kräver att node.js och npm-pakethanteraren är installerade på ditt system.

sudo npm install -g how-2

how2 användning

how2 mount an NTFS drive in Raspbian

Om du är nöjd med svaret trycker du på Enter för att avsluta how2 - annars trycker du på mellanslag för att få fler alternativ. Använd piltangenterna på tangentbordet för att navigera och Esc för att avsluta.

howdoi - få svar på kodningsfrågor från kommandoraden

Om du letar efter svar på kodningsfrågor på kommandoraden, utan att behöva byta till en webbläsare, kan du kolla in hur gör jag:

Hur gör man en installation?

sudo apt-get update
sudo apt-get install libxml2-dev libxslt-dev python3-lxml python-lxml python-dev
sudo pip3 install howdoi

hurkan jag använda mig av

howdoi howdoi
howdoi use tensorflow in python
howdoi -c shut down the system with Python

The -c flaggan kommer att aktivera färgad utskrift. Som standard söker howdoi med Google, men du kan också välja att använda bing eller duckduckgo.

autojump - ett snabbare sätt att navigera i filsystemet

autojump upprätthåller en databas över de kataloger som du oftast besöker från kommandoraden och låter dig hoppa till katalogen genom att bara ange en del av dess namn. Du behöver inte upprepade gånger cd i målkatalogen längre!

installation av autojump

sudo apt-get update
sudo apt-get install autojump

Av principiella skäl måste du sedan lägga till autojump manuellt i ~/.bashrc för interaktiva skal utan inloggning och i ~/.bash_profile för inloggade skal:

nano ~/.bashrc

och lägg till följande rad längst ner:

. /usr/share/autojump/autojump.sh

Observera: du måste öppna terminalen på nytt/återansluta via SSH för att detta ska kunna tillämpas.

använda autojump

autojump har en praktisk genväg, "j", som hjälper dig att skriva mindre. För att komma igång med autojump måste du förinställa katalogsökvägarna. Navigera normalt, t.ex.

cd /etc/python

När du har byggt upp en cache över kataloger som du besöker (autojump håller reda på hur ofta du besöker dem!) kan du hoppa till dem genom att skriva en del av namnet, t.ex:

j pyt

Liknande verktyg som autojump

Det finns ett par liknande program som autojump:

mtr - en kombination av ping och traceroute

mtr visar vägen som nätverkspaketen tar till en värd från din Raspberry Pi. Detta är användbart för nätverksdiagnostik, till exempel för att analysera latenstid. Men det är också helt enkelt intressant att se hur Internet fungerar, genom att skicka dina paket från en värd till en annan 🙂 .

installation av mtr

sudo apt-get update
sudo apt-get install mtr

Användning av mtr

mtr

mtr skickar paket med avsiktligt låga TTL:er (time to live) och fortsätter att öka dem för att analysera nätverksvägarna. En plötslig ökning av paketförlust eller svarstid är ofta en indikation på en dålig (eller helt enkelt överbelastad) länk.

bat: kat-kodfiler med syntaxmarkering

Det finns många kattkloner: fladdermus är en kattklon med vingar. Den har ett par ytterligare funktioner under sina vingar som gör den till en kraftfull ersättare för cat:

  • Syntaxmarkering för många programmerings- och markup-språk.
  • integrering med git för att visa ändringar
  • visa icke utskrivbara tecken (med hjälp av -A flagga)

Som standard kommer bat också att leda sin egen utdata till en sökare (t.ex. mindre) om resultatet är för stort för en skärm.

installation av fladdermöss

The bat GitHub-sida ger installationsinstruktioner för olika Linuxsystem (och även Windows!).

bat är för närvarande endast tillgänglig i Debianversionen "sid" (instabil). För att installera den på Raspberry Pi OS, gå till https://github.com/sharkdp/bat/releasesoch hämta det lämpliga paketet. (Om du kör ett 32-bitars Raspberry Pi OS använder du bat_*.armhf.deb, för 64-bitars använder du bat_*_arm64.deb; om du ställer in detta på ett x86 / AMD64-system finns dessa paket också tillgängliga).

cd /tmp
wget https://github.com/sharkdp/bat/releases/download/v0.17.1/bat_0.17.1_armhf.deb
sudo apt-get install ./bat_0.17.1_armhf.deb

användning av fladdermöss

Använd helt enkelt fladdermus som du skulle använda cat:

bat example.py

Syntaxmarkering bestäms från den första raden i en fil (helst en shebang som #!/bin/sh).

asciinema & svg-term-cli: skapa SVG-filmer från skalinteraktioner

Observera: detta är asciinema, inte asciicinema 🙂

Du kan använda OBS Studio för att fånga skärmen och skapa en film för YouTube som visar upp skalet. Men - det är en video, vilket har vissa nackdelar:

  • storlek
  • Upplösningen är fast.

asciinema gör det möjligt att fånga upp dessa som textströmmar och publicera dem som en så kallad asciicast. Du kan bädda in dem i dina sidor genom att inkludera ett litet JavaScript-stycke som de tillhandahåller. Kolla in ett exempel på asciicast som vi har spelat in för det här blogginlägget.

När den används med svg-term-cli, det gör det möjligt att skapa SVG-animationer! De här filmerna är vektoranimationer som passar perfekt för interaktioner i skalet. De är mindre än videofiler och kan zoomas utan kvalitetsförlust. Dessutom behövs inget JavaScript. När man inkluderar många av dessa asciicasts rekommenderar jag dock att man använder JavaScript-alternativen - annars kommer sidans prestanda att bli lidande.

Installation av asciinema

Här är en länk till installationsinstruktioner för asciinemaVi ska titta på dem för Raspberry Pi OS (Debian):

sudo apt-get update
sudo apt-get install asciinema

Dessutom bör du skapa ett konto på asciinema.org - Du behöver bara din e-postadress och koppla ditt konto till asciinema-installationen på ditt Raspberry Pi genom att köra:

asciinema auth

Detta kommer att generera en URL för dig - genom att besöka URL:n, medan du är inloggad, kommer du att länka den lokala asciinema-installationen till ditt asciinema.org-konto. På så sätt kan du hantera inspelningarna (ange titlar, redigera beskrivningar, offentliggöra dem) och undvika att inspelningarna automatiskt arkiveras efter sju dagar.

Installation av svg-term-cli

Observera: Detta kräver node.js och pakethanterare npm att arbeta. Detta är endast nödvändigt om du vill skapa animerade SVG-filer från dina asciicasts.

sudo npm install -g svg-term-cli

Användning av asciinema

För att starta inspelningen skriver du:

asciinema rec

Detta kommer att starta en ny skalinstans och börja registrera terminalinteraktioner. För att avsluta inspelningen trycker du på Ctrl + D eller skriva avsluta

asciinema kommer nu att fråga dig om du vill ladda upp din inspelning till asciinema.org (genom att trycka på Gå in på), eller för att spara den lokalt (genom att trycka på Ctrl + C). I det senare fallet kan a .cast kommer att skapas i den tillfälliga katalogen:

asciinema: inspelningen avslutad
asciinema: tryck på för att ladda upp till asciinema.org, för att spara lokalt
asciinema: asciicast sparad till /tmp/tmp21kux252-ascii.cast

Du kan också ange vilken utdatafil som ska användas:

asciinema rec /tmp/example.cast

Tips: skala terminalfönstret till den kolumn- och radupplösning som du vill ha i animationen innan du startar inspelningen; svg-term-clis alternativ -width och -height beskär helt enkelt utdata.

För att ladda upp filen till asciinema kan du nu köra:

asciinema upload /tmp/example.cast

Se denna sida för mer utförliga instruktioner om användning av asciinema.

Konvertera asciinema .cast-fil till .svg-fil med hjälp av svg-term-cli

Ett alternativ (och det som rekommenderas av prestandaskäl) är att lägga upp dina .cast-filer på asciinema.org - som är väldokumenterat på deras sida. Här ska vi utforska möjligheten att konvertera inspelningen till en animerad .svg-fil.

svg-term --in /tmp/tmp21kux252-ascii.cast --out /tmp/example.svg

Obs: WordPress inaktiverar SVG-uppladdning som standard av säkerhetsskäl. Det finns plugins för att tillåta SVG-uppladdningar på ett säkert sätt.

exa: en modern ersättning för ls

Även om ls kan visas i färger, använder exa färgerna på ett mycket optimerat sätt och ger dig ytterligare information.

Till exempel finns en trädvy inbyggd som visar information om dina filer i hierarkin. exa känner också till olika filtyper och visar dem i olika färger. Dessutom har den inbyggt Git-stöd för att visa staged / unstaged-status i standardvyn.

installation av exa

sudo apt-get update
sudo apt-get install exa

med hjälp av exa

exa

exa fungerar på samma sätt som ls. Använd flaggorna -l för att visa en lista med information om dina filer och kataloger, -T för att visa en trädvy inklusive underkataloger, och -Tl för att visa en kombinerad träd- och detaljvy. Se exa-dokumentation för mer information.

shuf: slumpmässiga rader i en fil

Låt oss säga att du vill skapa en slumpmässig lista (över användare, aktiviteter, välj själv!) genom att blanda poster i en fil. Då har du tur med det här verktyget (som redan borde vara förinstallerat):

shuf example.txt

rig: skapa falska identiteter

Ibland tvingar en sida dig att registrera dig med din identitet. Dessa sidor är smarta: de kontrollerar till exempel att din stad stämmer överens med ditt postnummer. rig gör det möjligt för dig att hantera denna utmaning genom att förse dig med obegränsat antal falska identiteter på begäran (USA), som bör vara någorlunda korrekta geografiskt sett. rig i sig självt är baserat på det lämpligt namngivna programmet "fake" MSDOS.

Installation av riggen

sudo apt-get update
sudo apt-get install rig

Användning av riggen

rig

browsh - en modern textbaserad webbläsare

Vi känner alla till lodjurLynx är den äldsta webbläsaren som fortfarande underhålls, eftersom den började användas 1992.

Men hur är det med de tillfällen då lodjuret inte räcker till? När du vill spela upp YouTube-videor, komma åt webbsidor som använder JavaScript för att återge innehåll osv.

Du har tur. browshEn särskild höjdpunkt i denna samling ovanliga kommandoradsverktyg är en fullt modern textbaserad webbläsare. Den använder Firefox i backend för att återge din sida i huvudlöst läge.

Observera: en Pi 4 rekommenderas för att köra just den här applikationen, och den kommer fortfarande att verka ganska långsam - du ber Pi att utföra en hel del tunga lyft med den här applikationen! Men det är roligt och kommer säkert att vara användbart för användare med kraftfullare system.

installera browsh

Gå över till browsh nedladdningar sidan och hämta det lämpliga paketet. Till exempel för Debian ARMv7:

cd /tmp
wget https://github.com/browsh-org/browsh/releases/download/v1.6.4/browsh_1.6.4_linux_armv7.deb
sudo apt-get install ./browsh_1.6.4_linux_armv7.deb

Detta kommer också automatiskt att dra in Firefox om du inte har det ännu.

använda browsh

browsh https://google.com

och förbereda sig för att vänta ganska mycket.

browsh har bra dokumentation. här är några tips:

  • Använd Ctrl+q för att avsluta browsh
  • piltangenterna för att bläddra
  • backspace för att gå tillbaka i historien
  • ctrl + l fokuserar på URL-fältet

browsh stöder till och med surfning med flikar! Den stöder också en intressant teknik som kallas mosh vilket möjliggör snabbare, förutsägande skal över långsamma länkar.

nohup: Fortsätt att köra ett program när du lämnar SSH-sessionen.

Jag minns detta som "inget hängande". När du lämnar en SSH-session brukar det program som har körts i din session få en SIGHUP signal. Detta leder vanligtvis till att programmet avslutas.

I vissa fall är det bättre att inte ha det - till exempel om du konverterar en video, kör en server eller någon annan batchprocess.

genom att sätta kommandot i början av kommandot med nohup gör att den kan fortsätta att köras även när skalet stängs eller SSH kopplas bort. Jag brukar kombinera detta med ett ampersand (&) för att starta kommandot i bakgrunden:

nohup ./myscript.sh &

lolcat: färglägg din skalutgång. Jag menar, färga den verkligen!

Känner du ibland att världen, och i synnerhet skalet, saknar färg? Oroa dig inte längre - lolcat kommer till undsättning.

installera lolcat

sudo apt-get update
sudo apt-get install lolcat

använda lolcat

lolcat kan användas som cat för att skriva ut filer på skalet:

lolcat /etc/magic

Liksom cat kan den läsa från stdin och ha inmatning i den, för att ge lite mer färg åt ditt liv:

man lolcat | lolcat
sudo apt-get update | lolcat

cal: inbyggd kalender

Linux har små överraskningar, som en inbyggd kalender.

cal

Om du vill se den föregående och nästa månad till den aktuella månaden, skriver du

cal -3

Slutsats

Så där har ni det, gott folk! Den ultimata listan över alla Linux-kommandon som du aldrig visste att du behövde!

Letar du efter fler tips om programmering? Kolla in vår artikel "9 Tricks med Python REPL“!

1 Kommentarer

  1. [...] Om du ännu inte behärskar de ultimata Linux-terminalkommandona kommer du garanterat att bli inspirerad av att bygga ett cyberdäck som detta [...]

Lämna en kommentar