Jag brukar ofta slänga på flaggan `-v` till `rm`, `mv` och `cp` så ser man vad som händer medans programmet körs; åtminstone om jag ska ta bort/flytta/kopiera många filer på en gång (särskilt över långsamma medier).
En sak som jag inte sett nämnas än är att enbart `cd` också tar en tillbaka till hemkatalogen, snabbare än `cd ~`.
För att få saker case insensitive så är det ofta något i stil med `-i` som behövs. `grep -i linux` hittar exempelvis både "Linux", "LINUX" och "linux". `find . -iname '*linux*'` gör samma sak, fast för `find` då.
`clear` — rensar terminalen (testa själva). Man kan fortfarande scrolla tillbaka för att se vad som gjorts innan. Använder jag vanligen när en terminalemulator flippar vid storleksändring. `reset` gör lite mer: återställer terminalen helt om man råkat få binär output så att allt blivit skräp. Ännu enklare alias är att trycka Ctrl+L.
Flaggan `-s` använder jag ofta till `du`: visar inte alla underkataloger utan bara en sammanfattning för de argument man kallar kommandot med.
`df -h` — Kanske stod med någonstans ovan som jag missade, men tål att köras igen. Visar vilka monteringspunkter som är aktiva samt hur mycket utrymme de har, hur mycket som är använt och ledigt, osv. `-h` gör att de visas i "human readable"-enheter.
`du -m | sort -n` — Visar storleken på alla underkataloger samt aktuell katalog man står i och ordnar i storleksordning. Som vanligt, kolla manualer för `du` och `sort` för att skräddarsy. `sort` kanske ska stå som ett eget kommandotips, då det är användbart i flera olika sammanhang.
I Bash och vissa andra skal finns möjligheten att använda "shell expansions", utöver bara `*`, t ex:
expanderas till
Testa några `echo`-satser med `{}` för att se hur det fungerar. Väldigt användbart om man är lat, vilket man ska vara i vissa sammanhang .
`#` används för att beteckna början på en kommentar vilket är oumbärligt i skript, men även kan vara användbart vid vanlig användning av terminalen. Säg att man skrivit in ett monstruöst kommando och ska trycka Enter, men komer på att man ska kolla en annan sak igen. Ctrl+U, skriva in det andra kommandot och skriva om det långa är ju inte så kul — då är det roligare att slänga in ett `#` framför kommandot, trycka Enter för att spara det i historiken, köra det andra kommandot, sen med hjälp av ↑ återkalla det långa kommandot, ta bort # och köra. Det finns andra metoder som på sätt och vis är mer rättfram, men ovanstående är den som jag oftast kör i praktiken.
Annan sak som funkar i Bash (med standard Emacs-bindings):
`Alt+.` — Skriver ut det senaste argumentet. Används väldigt ofta av mig; den som vet vad motsvarigheten är för vi-bindings får gärna säga det, då detta är en av de största anledningarna till att jag aldrig bytt trots att Vim är min standardeditor.
`Ctrl+r` — "reverse incremental search". En smart historiefunktion. Väldigt användbart kan jag säga. Med hjälp av detta så finns det vissa kommandon jag inte skrivit i sin helhet på månader, utan nöjt mig med Ctrl+r och några karakteristiska tecken. Genom att trycka Ctrl+r igen så stegar man genom alternativen. Värt att experimentera med.
Som någon tipsade om innan så är det smidigare att använda syntaxen `grep sökord filnamn` till `grep` än att pipe:a från `cat`. Detta gäller fler kommandon som hanterar text, t ex `sort` och `wc`.
`echo *` för att lista innehållet i en katalog utan att ha `ls` tillgängligt har man faktiskt haft nytta av ibland . Partitioner som inte vill monteras och annat så sitter man helt plötsligt utan "småsaker" som `ls`.
while [ $# -ge 0 ]; do
något
shift
done
är en användbar konstruktion i skript som gör att man kan ta många argument utan att veta hur många som förväntas, så att säga. Men det kanske inte var det denna tråden var till för…