Ultieme lijst van ongebruikelijke maar echt nuttige Linux Shell commando's
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“!
[...] 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 [...].