Ultieme lijst van ongebruikelijke maar echt nuttige Linux Shell commando's

De ultieme lijst met Linux-commando's Titelafbeelding

Dit is een compilatie van minder bekende Linux shell commando's - maar wel hele handige. Nuttig als in: tijd besparen, je extra tools geven om dingen te doen die je voorheen niet kon, maar ook vermakelijk. Veel plezier met lezen, en laat het ons weten in de commentaren als er extra tools zijn die we zouden moeten toevoegen!

Installatie instructies zijn voor Debian gebaseerde systemen, ze zijn getest op Raspberry Pi OS, op een Raspberry Pi 4 / 1 GB. YMMV op andere systemen, maar probeer deze commando's gewoon eens 🙂

sudo !!!

Dit zal het vorige commando uitvoeren met sudo als voorinstelling. Echt handig als je vergeten bent een commando met sudo vooraf te laten gaan:

apt-get update
sudo !!

Je hoeft het niet te installeren, als sudo op je systeem staat, zou dit moeten werken. Let op de spatie tussen sudo en de uitroeptekens.

Het sudo-voorbereide commando zal ook toegevoegd worden aan je bash geschiedenis, zodat je het gemakkelijk kan openen door de "omhoog" pijltjestoets in te typen om het te herhalen. (Ik heb dit gedemonstreerd in de animatie hierboven. sudo !!! zelf zal NIET aan uw geschiedenis worden toegevoegd)

tac (kat achterstevoren)

Deze handige instructie is ingebouwd samen met zijn bekendere broer, cat. Geef er een bestand aan door, om de regelvolgorde in het bestand om te keren en de laatste regel eerst af te drukken:

tac /etc/magic

Dit commando is erg handig als je bijvoorbeeld logbestanden bekijkt.

tldr - manpages, vereenvoudigd!

manpages zijn nuttig, maar soms behoorlijk lang. Heb je jezelf wel eens zien Googlen in plaats van naar de man pagina te kijken? Gewoon omdat je voorbeelden uit de praktijk wilt voor dagelijks gebruik, in plaats van alle toeters en bellen die een commando te bieden heeft? tldr levert "collaborative cheatsheets for console commands"

TL;DR: tldr is de tool die je moet hebben voor snelle samenvattingen van Linux commando's

Er is ook een PDF-versie (tldr.sh) die alle momenteel beschikbare tldr-pagina's bevat

installatie van tldr

Opmerking: Hiervoor moet npm / node.js op uw Linux-systeem zijn geïnstalleerd.

npm install -g tldr

met behulp van tldr

gewoon typen tldr gevolgd door het commando waarin je geïnteresseerd bent. Bij de eerste run zal tldr zijn cache bijwerken en een index maken, wat even kan duren. Bijvoorbeeld, om de tldr pagina over gzip te zien, voer uit:

tldr gzip

bijdragen en tldr alternatieven

Als je wilt bijdragen aan tldr, kijk dan eens naar de GitHub - tldr-pages/tldr: 📚 Collaborative cheatsheets voor console commando'sen hun bijdragende richtlijnen.

Er zijn enkele alternatieven:

  • Bedrieger
  • Bro Pages ("gewoon ter zake komen")
  • navi - laat u toe om door cheatsheets te bladeren op een interactieve manier & het commando samen te stellen dat u wenst uit te voeren
  • bedriegen.sh - kan gebruikt worden zonder iets te installeren, door curl te gebruiken

how2 - stackoverflow vanaf de terminal

tldr en cousins zijn echt nuttig als je al weet welk commando je wilt uitvoeren. Maar wat kun je doen als je alleen weet wat je moet doen, maar nog niet hoe? We weten allemaal hoe afleidend browsers kunnen zijn. Het gereedschap how2 helpt je om snel een antwoord te krijgen zonder ooit de commandoregel te verlaten.

hoe2 installatie

Vereist dat node.js en npm package manager op uw systeem zijn geïnstalleerd.

sudo npm install -g how-2

how2 gebruik

how2 mount an NTFS drive in Raspbian

Als je tevreden bent met het antwoord, druk dan op de Enter toets om how2 te verlaten - druk anders op de spatiebalk om meer keuzes te krijgen. Gebruik de pijltjestoetsen op je toetsenbord om te navigeren, en Esc om af te sluiten.

howdoi - krijg antwoorden op codeervragen vanaf de commandoregel

In dezelfde geest, als u op zoek bent naar antwoorden op codeervragen op de commandoregel, zonder te hoeven overschakelen naar een browser, kijk dan eens naar hoe ga ik:

hoe installeer ik

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

met behulp van howdoi

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

De -c vlag zal gekleurde uitvoer inschakelen. Standaard zal howdoi zoeken met Google, maar je kunt ook kiezen om bing of duckduckgo te gebruiken.

autojump - een snellere manier om door uw bestandssysteem te navigeren

autojump houdt een database bij van de mappen die u het meest bezoekt vanaf de opdrachtregel, en laat u naar de map springen door slechts een deel van de naam op te geven. Het is niet nodig om herhaaldelijk cd in je doelmap niet meer!

autojump installatie

sudo apt-get update
sudo apt-get install autojump

Om beleidsredenen moet je dan autojump handmatig toevoegen aan je ~/.bashrc voor niet-login interactieve shells, en aan je ~/.bash_profile voor login shells:

nano ~/.bashrc

en voeg de volgende regel onderaan toe:

. /usr/share/autojump/autojump.sh

Opmerking: je moet de Terminal heropenen / opnieuw verbinden via SSH om dit toe te passen.

met behulp van autojump

autojump wordt geleverd met een handige snelkoppeling, "j", die u helpt minder te typen. Om met autojump aan de slag te gaan, moet je de directory paden van tevoren instellen. Navigeer normaal, bijv.

cd /etc/python

Nadat je een cache hebt aangelegd van de directories die je bezoekt (autojump houdt de frequentie bij!), kun je er naartoe springen door een deel van de naam in te typen, bijv:

j pyt

Soortgelijke hulpmiddelen als autojump

Er zijn een paar soortgelijke toepassingen als autojump:

mtr - een combinatie van ping en traceroute

mtr toont u het pad dat uw netwerkpakketten afleggen naar een host vanaf uw Raspberry Pi. Dit is nuttig voor netwerkdiagnostiek, om bijvoorbeeld latency te analyseren. Maar het is ook gewoon interessant om te zien hoe het internet werkt, het doorgeven van uw pakketten van de ene host naar de andere 🙂

installatie van mtr

sudo apt-get update
sudo apt-get install mtr

Gebruik van mtr

mtr

mtr zal pakketten verzenden met opzettelijk lage TTL's (tijd om te leven), en deze blijven verhogen, om de netwerkpaden te analyseren. Een plotselinge toename in pakketverlies of responstijd is vaak een indicatie van een slechte (of gewoon overbelaste) link.

bat: cat code bestanden met syntax highlighting

Er zijn veel kattenklonen: vleermuis is een kat kloon met vleugels. Het heeft een paar extra functies onder zijn vleugels, om het een krachtige vervanger voor kat te maken:

  • syntax highlighting voor vele programmeer- en opmaaktalen
  • integratie met git om wijzigingen te tonen
  • optioneel niet-afdrukbare tekens tonen (met behulp van de -A vlag)

Standaard zal bat ook zijn eigen uitvoer naar een pager pijpen (bijv. minder) als de uitvoer te groot is voor één scherm.

vleermuisinstallatie

De vleermuis GitHub pagina geeft installatie-instructies voor verschillende Linux-systemen (en zelfs Windows!)

bat is momenteel alleen beschikbaar in de "sid" (unstable) versie van Debian. Om het te installeren op Raspberry Pi OS, ga dan naar https://github.com/sharkdp/bat/releases, en download het juiste pakket. (als je een 32 bit Raspberry Pi OS draait, gebruik dan de bat_*.armhf.deb, voor 64 bit gebruik dan bat_*_arm64.deb; als je dit instelt op een x86 / AMD64 systeem, zijn deze pakketten ook beschikbaar).

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

vleermuisgebruik

Gebruik gewoon vleermuis zoals je zou gebruiken kat:

bat example.py

Syntax highlighting wordt bepaald door de eerste regel van een bestand (idealiter een shebang zoals #!/bin/sh)

asciinema & svg-term-cli: maak SVG films van shell interacties

Opmerking: dit is asciinemaniet asciicinema

Je zou kunnen gebruiken OBS Studio om je scherm op te nemen en een filmpje te maken voor YouTube, waarin je de schelp laat zien. Maar - het is een video, wat een aantal nadelen heeft:

  • maat
  • resolutie is vastgesteld

asciinema kunt u deze vastleggen als tekststromen, en ze publiceren als een zogenaamde asciicast. Je kunt ze in je pagina's insluiten door een klein JavaScript-fragment op te nemen dat zij leveren. Kijk eens naar een voorbeeld van de asciicast die we hebben opgenomen voor deze blog post.

Bij gebruik met svg-term-clikunt u SVG animaties maken! Deze films zijn vector animaties, perfect geschikt voor interacties in de schil. Ze zijn kleiner dan videobestanden, en kunnen worden ingezoomd zonder kwaliteitsverlies. Bovendien is er geen JavaScript nodig. Als je echter veel van deze asciicasts opneemt, raad ik aan om voor de JavaScript opties te gaan - anders zal de prestatie van de pagina eronder lijden.

Installatie van asciinema

Hier is een link naar installatie-instructies voor asciinemazullen we eens kijken naar die voor Raspberry Pi OS (Debian):

sudo apt-get update
sudo apt-get install asciinema

Bovendien, moet u maak een account aan op asciinema.org - je hebt enkel je e-Mail adres nodig, en link je account met de asciinema installatie op je Raspberry Pi, door te draaien:

asciinema auth

Dit zal een URL voor je genereren - door de URL te bezoeken, terwijl je ingelogd bent, zul je de lokale asciinema installatie linken aan je asciinema.org account. Dit zal je toelaten de opnames te beheren (titels instellen, beschrijvingen bewerken, ze publiek maken), en te vermijden dat de opnames automatisch gearchiveerd worden na 7 dagen.

Installatie van svg-term-cli

Opmerking: dit vereist node.js & de verpakkingsmanager npm om te werken. Dit is alleen nodig als u geanimeerde .SVG bestanden van uw asciicasts wilt maken.

sudo npm install -g svg-term-cli

Gebruik van asciinema

Om de opname te starten, type:

asciinema rec

Dit zal een nieuwe shell instantie spawnen, en beginnen met het opnemen van terminal interacties. Om de opname te beëindigen, druk op Ctrl + D of type exit

asciinema zal je nu vragen of je je opname wilt uploaden naar asciinema.org (door te drukken op Ga naar), of om het lokaal op te slaan (door op Ctrl + C). In het laatste geval moet een .cast bestand zal worden aangemaakt in de tijdelijke directory:

asciinema: opname beëindigd
asciinema: druk om te uploaden naar asciinema.org, om lokaal op te slaan
asciinema: asciicast opgeslagen in /tmp/tmp21kux252-ascii.cast

U kunt ook opgeven welk uitvoerbestand u wilt gebruiken:

asciinema rec /tmp/example.cast

Tip: schaal uw terminal venster naar de kolom en rij resolutie die u wilt hebben in de animatie voordat u de opname start; svg-term-cli's opties -width en -height zullen de uitvoer gewoon bijsnijden

Om het bestand naar asciinema te uploaden, kun je nu uitvoeren:

asciinema upload /tmp/example.cast

Zie deze bladzijde voor meer uitgebreide instructies over het gebruik van asciinema.

Converteer asciinema .cast bestand naar .svg bestand met svg-term-cli

Een optie (en de aanbevolen optie om prestatieredenen) is om je .cast-bestanden te hosten op asciinema.org - dat is goed gedocumenteerd op hun pagina. Hier zullen we de optie onderzoeken om de opname om te zetten in een geanimeerd .svg bestand.

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

Opmerking: WordPress schakelt het uploaden van SVG's standaard uit om veiligheidsredenen. Er zijn plugins om SVG uploads op een veilige manier toe te staan.

exa: een moderne vervanging voor ls

Terwijl ls kan worden gemaakt om kleuren weer te geven, gebruikt exa kleuren op een werkelijk geoptimaliseerde manier, en ondersteunt u met extra informatie.

Er is bijvoorbeeld een boomweergave ingebouwd - die u de informatie over uw bestanden naast de hiërarchie toont. exa kent ook verschillende bestandstypen, en zal ze in verschillende kleuren tonen. Verder heeft het ingebouwde Git ondersteuning om de staged / unstaged status in de standaardweergave te bekijken.

installatie van exa

sudo apt-get update
sudo apt-get install exa

met behulp van exa

exa

exa werkt hetzelfde als ls. Gebruik de vlaggen -l om een lijst weer te geven met details over uw bestanden en mappen, -T om een boomstructuur weer te geven inclusief subdirectories, en -Tl om een gecombineerde boom/detailweergave weer te geven. Raadpleeg de exa documentatie voor meer informatie.

shuf: willekeurig regels in een bestand

Laten we zeggen dat je een willekeurige lijst wilt maken (van gebruikers, activiteiten, kies maar uit!) door de ingangen in een bestand te schudden. Nou, dan heb je geluk met dit gereedschap (dat al voorgeïnstalleerd zou moeten zijn):

shuf example.txt

tuig: valse identiteiten creëren

Soms dwingt een pagina je om je aan te melden met je identiteit. Deze pagina's zijn slim: ze controleren bijvoorbeeld of je stad overeenkomt met je postcode. rig maakt het mogelijk om deze uitdaging aan te gaan door je ongelimiteerd valse identiteiten te leveren op aanvraag (US), die geografisch gezien enigszins correct zouden moeten zijn. rig op zich is gebaseerd op de toepasselijk genaamde "nep" MSDOS applicatie.

Installatie van de installatie

sudo apt-get update
sudo apt-get install rig

Gebruik van tuig

rig

browsh - een moderne tekstgebaseerde browser

We weten allemaal van lynxwaarmee je elke webpagina (bijvoorbeeld Wikipedia) kunt openen vanaf de commandoregel. lynx is vanaf 2020 de oudste webbrowser die nog wordt onderhouden, en is begonnen in 1992.

Maar hoe zit het met die keren dat lynx het gewoon niet doet? Wanneer u YouTube-video's wilt afspelen, toegang wilt tot webpagina's met JavaScript om inhoud te renderen, enzovoort?

Je hebt geluk. browsh, een bijzonder hoogtepunt in deze verzameling van ongebruikelijke opdrachtregel-tools, is een volledig moderne tekstgebaseerde browser. Het gebruikt Firefox in de backend om uw pagina in headless mode te renderen.

Opmerking: een Pi 4 is aanbevolen om deze specifieke toepassing te draaien, en het zal nog steeds vrij traag lijken - je vraagt de Pi om serieus zwaar werk te verrichten met dit! Maar het is leuk en zal zeker nuttig zijn voor gebruikers met krachtigere systemen, daar ben ik zeker van.

installeren van browsh

Ga naar de downloads pagina en haal het juiste pakket op. Bijvoorbeeld voor 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

Dit zal ook automatisch Firefox aanzetten, als u dat nog niet heeft.

met behulp van browsh

browsh https://google.com

en bereid je voor om wacht nogal wat.

browsh heeft goede documentatie. hier zijn een paar hints:

  • Gebruik Ctrl+q om de browsh te verlaten
  • pijltjestoetsen om te scrollen
  • backspace om terug te gaan in de geschiedenis
  • ctrl + l richt de URL balk

browsh ondersteunt zelfs browsen met tabbladen! Het ondersteunt ook een interessante technologie genaamd mosh die snellere, voorspellende schillen over vertraagde verbindingen mogelijk maakt.

nohup: een toepassing draaiende houden nadat u de SSH-sessie hebt verlaten

Ik herinner me dit als "no hangup". Gewoonlijk, wanneer je een SSH sessie verlaat, krijgt de applicatie die in jouw sessie draaide een SIGHUP signaal. Wat meestal zal leiden tot het beëindigen van de toepassing.

In sommige gevallen zou je dat liever niet hebben - bijvoorbeeld als je een video converteert, of een of andere server draait, of een ander batch proces.

waarbij het commando voorafgegaan wordt door nohup zorgt ervoor dat het blijft draaien, zelfs als de shell gesloten is, of SSH verbroken is. Ik combineer dit meestal met een ampersand (&), om het commando op de achtergrond te starten:

nohup ./myscript.sh &

lolcat: kleur je commandoregel uitvoer. Ik bedoel, echt inkleuren!

Heb je soms het gevoel dat de wereld, en in het bijzonder de schelp, te weinig kleur heeft? Maak je geen zorgen meer - lolcat to the rescue.

lolcat installeren

sudo apt-get update
sudo apt-get install lolcat

met behulp van lolcat

lolcat kan gebruikt worden zoals cat, om bestanden uit te voeren op je shell:

lolcat /etc/magic

Ook kan het - net als cat - van stdin lezen, en er input in laten pipen, om wat meer kleur in je leven te brengen:

man lolcat | lolcat
sudo apt-get update | lolcat

cal: ingebouwde kalender

Linux komt met kleine verrassingen, zoals een ingebouwde kalender.

cal

Als u ook de vorige en volgende maand tot de huidige maand wilt zien, typt u

cal -3

Conclusie

Dus daar heb je het, mensen! De ultieme lijst van alle Linux commando's waarvan je nooit wist dat je ze nodig had!

Op zoek naar meer programmeertips? Bekijk ons artikel "9 Trucs met de Python REPL“!

1 Commentaar

  1. [...] als je de ultieme Linux terminalcommando's nog niet onder de knie hebt, dan zal het bouwen van een cyberdeck als dit je gegarandeerd inspireren [...].

Laat een reactie achter