Ei lopullinen sijainti, älä linkitä
Nämä vinkit on testattu melko tavanomaisessa Red Hat 8.0 -asennuksessa. Pääosa näistä toiminee muissakin jakeluissa, osa soveltaen myös muissa Unix-tyyppisissä järjestelmissä.
df -h saat siistin esityksen levyosioiden
täyttöasteesta.
du -s /home/* | sort -n | tail
ja löydät levyrohmut.
find . -type f -name "*koira*" -print0 | xargs -0 grep -l "kissa"
löydät kaikki ne tiedostot työhakemiston alla, joiden nimessä on sana
"koira" ja joissa esiintyy sana "kissa".
pwd | mail -s "Komennon pwd tulos" oma.osoite@domain.example
tar cf /root/varmistus-home`date +%Y-%m-%d` Tuo aakkostuukin
oikein.
echo "echo \"Vie kukkia\" | mail -s Hääpäivä oma.osoite@jossain.com"
| at 09:00 06.04.02
alias l="ls -lda" jälkeen
pelkkä l riittää komennoksi.
bc -l saat pienen laskimen. Käytettävissä on
normaalit laskutoimitukset ja lisäksi voit sijoittaa arvoja muuttujiin
basic-kielen tapaan.
echo kanalassa | tr a b.
for i in *; do mv $i `echo $i | tr A-Z a-z`; done
ps afx näet siistin puuesityksen ajossa olevista
prosesseista.
cat tiedosto | tr -d " "
tar cvzf paketti.tar.gz /joku/hakemisto .
Purku onnistuu komennolla
tar xvzf paketti.tar.gz
identify jokukuva.gif
ls -S listaa tiedostot kokojärjestyksessä, ls -t
muokkausajan mukaan järjestettynä. "-r" kääntää järjestyksen.
file tiedostonnimi yrittää arvailla mitä tyyppiä tiedosto on.
Roottina voit jopa sanoa file -s /dev/hda1 ja näet sisältääkö
laitetiedosto jotain joka näyttää tiedostojärjestelmältä.
cat /proc/cpuinfo tulostaa.
man tar ja man mkisofs ovat esimerkkeinä parhaita.
locate condom
löytääksesi tiedostot joiden nimissä on merkkijono "condom". Locate käyttää
tiedostojen nimistä kerättyä tietokantaa, joka päivittyy joka yö.
updatedb -ohjelmalla,
jonka ajo kestää aika kauan. Miten kauan, sen saa selville komennolla
time updatedb
ypchfn, jolla vaihdetaan erillisellä
käyttäjätunnuspalvelimella olevia käyttäjätietoja, tulee sanoista
"Yellow Pages CHange FiNger". Yellow Pages oli nykyisen NIS-palvelimen
ensimmäinen nimi, mutta se vaihdettiin kun British Telecom omisti
siihen tavaramerkin. Tiedolla ei varsinaisesti tee mitään, mutta
käyttämällä sitä sopivassa tilanteessa osoitat olevasi nörtti.
man -k printer kertoo kaikki ne komennot, joiden
yksirivinen kuvaus sisältää merkkijonon "printer".
ln -s /home/www /var/www
tar cf paketti.tar /joku/hakemisto && rm -rf /joku/hakemisto
suorittaa ensin tar-komennon, ja jos se onnistuu ongelmitta,
suoritetaan rm-komento. || toimii toisinpäin, toinen komento
suoritetaan vain jos ensimmäinen epäonnistui.
psnup -2 dokumentti.ps tiivis.ps tekee tulostusta varten
version jossa kaksi sivua on laitettu yhdelle sivulle.
export PS1='[\u@\h \w]\$ '
laittaa komentokehotteeseen käyttäjätunnuksen, koneen ja työhakemiston.
mkdir -p eka/toka/kolmas
cp --recursive /home/ville /root, saa joka viikko varmuuskopion
Villen kotihakemistosta rootin kotihakemistoon.
echo "Muista katsoa
www.khdrive.fi/linkku/"
lynx --dump http://www.khdrive.fi/linkku/ |
grep --after-context=5 "Seuraavat kokoontumiset"
rm -- -foobar
grep -v kissa tiedostonnimi . Jos
taas haluat poistaa vain sanan "kissa" etkä esim. sanaa "takissani"
sisältävät rivit, sano grep -v -w kissa tiedostonnimi .
tail -f /var/log/messages näyttää ensin tiedoston
lopun ja sitten jatkuvasti tiedostoon tulevat uudet rivit.
ls -F näyttää tiedostolistauksen niin, että nimen
perässä on merkki joka kuvaa tiedoston tyyppiä.
find . -type f -mmin -30 -print hakee työhakemistosta
alaspäin kaikki tiedostot, joita on muokattu viimeisen puolen tunnin sisään.
dd if=/dev/zero of=/dev/fd0. Esimerkki tyhjentää levykkeen,
samalla tavalla voi pyyhkiä kiintolevyjä, esim. /dev/hda on IDE0-väylän
master-levy. Usein suositellaan /dev/zero -laitteen sijasta /dev/random
-laitetta, mutta silloin pyyhintä hidastuu mateluksi.
head -5 tiedostonnimi tulostaa tiedoston viisi ensimmäistä
riviä. head -c 5 tiedostonnimi tulostaa viisi ensimmäistä merkkiä.
tail -5 tiedostonnimi ja tail -c 5 tiedostonnimi
toimivat vastaavasti.
wc *.txt antaa listan hakemiston sisältämistä .txt
-päätteisistä tiedostoista ja jokaisesta rivien, sanojen ja merkkien
lukumäärän.
cat --number tiedostonnimi tulostaa tiedoston rivit
numeroituna.
strings jokudoku.doc näyttää yleensä Word-documentin sisältämän
tekstin jotenkin luettavassa muodossa.
find . -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \;
ls -l | colrm 10 30 saat tiedostolistauksesta pois
tiedoston omistajan ja ryhmän.
cut -d ' ' -f 2 tiedostonnimi voit tulostaa
tiedoston jokaisen rivin toisen sanan.
find . -name "*.html" -print |
xargs perl -e 's/<HTML>/<HTML LANG="fi">/gi' -p -i.bak
find hakemistojotaeiole >& find-tuloste.txt
which ldd
head -c 6 /dev/random | mimencode
grep --recursive "localdomain" /etc
who ja w saat tietoa järjestelmää
parhaillaan käyttävistä. Esimerkiksi w -s näyttää kätevässä
muodossa kuka tekee mitäkin.
wall 'Linux on cool!' voit lähettää viestisi
kaikkien koneen käyttäjien ruudulle.
echo 'Linux on cool!' | write maija taas kertoo saman
viestin ainoastaan Maijalle.
nohup jokukomento >& lokitiedosto & saat
komennon jäämään tausta-ajoon niin, että voit itse lopettaa yhteyden ja
komento jää suoritettavaksi.
ed tiedostonnimi saat avattua tehokkaan ja
monipuolisen, mutta resursseja säästeliäästi käyttävän editorin.
Lisätietoa edistä
eject poistaa CD-levyn asemasta. eject -t
vetää levyn sisään.
history tulostaa komentohistorian.
playmidi soittaa midejä,
play soittaa monenlaisia ääniformaatteja. mpg123
soittaa MP3-tiedostoja.
killall vi lopettaa kaikki ajossa olevat vi-ohjelmat.
sort tiedosto | uniq aakkostaa tiedoston rivit ja poistaa
moneen kertaan esiintyvät rivit. sort tiedosto | uniq -d
näyttää vain kahteen tai useampaan kertaan esiintyvät rivit.
dirname /joku/polku/tiedosto palauttaa arvon "/joku/polku".
basename /joku/polku/tiedosto palauttaa arvon "tiedosto".
tac tiedostonnimi tulostaa tiedoston rivi kerrallaan
alusta loppuun. rev tiedostonnimi tulostaa jokaisen rivin
väärinpäin, ja rev tiedostonnimi | tac tulostaa koko tiedoston
väärinpäin.
top näyttää jatkuvasti päivittyvän listan ajossa olevista
ohjelmista. Painamalla h-kirjainta saat ohjeen käytössä olevista komennoista.
q-kirjaimella pääset pois ohjelmasta.
volname kertoo CD-asemassa olevan levyn nimen.
cat tiedostonnimi | while read; do echo $REPLY; sleep 5; done
tulostaa tiedoston rivi kerrallaan viiden sekunnin välein.
temp=$IFS; IFS=$''; echo "Hei kaikki" | while read -n 1; do echo -n $REPLY; usleep 100000; done; IFS=$temp
yes voit tulostaa y-kirjaimia esim. putkessa
ohjelmalle, joka kyselee liikaa "Oletko aivan varma?". yes n
tulostaa n-kirjaimia ja yes moro tervehtii käyttäjää
ad infinitum.
lpr jokudoku.txt tai cal | lpr
cal 9 1752
find . -type f -name "*.html" | while read a; do grep --ignore-case "<META NAME=\"keywords\" CONTENT=\".*\">" $a | cut -f 4 -d "\"" | dd conv=lcase | tr "," "\n" | while read; do echo $a >> $REPLY.hakusana; done; done && ls *.hakusana | while read a; do h=`echo $a | cut -f 1 -d "."`; echo "<H2>$h</H2>"; cat $a | cut -b 3- | while read; do echo "<A HREF=\"$REPLY\">`grep --ignore-case "<title>.*</title>" $REPLY | cut -f 2 -d ">" | cut -f 1 -d "<"`</A>"; done; done && rm *.hakusana
if (($1 < 2)); then echo 1; else a=`./fib.sh $1-1`; b=`./fib.sh $1-2`; echo $((a+b)); fi
pwd -P saat selville missä hakemistossa "oikeasti"
olet, eli symbolisten linkkien kautta kuljettu polku jätetään huomiotta.
valinta=3; echo "1=pwd 2=ls 3=lynx"; read -t 5 valinta; case $valinta in 1) pwd;; 2) ls;; 3) lynx;; esacsivut=("evl.fi" "vapaa-ajattelijat.fi" "dilbert.com"); echo "0=evl, 1=vaparit, 2=dilbert"; read valinta; lynx http://www.${sivut[$valinta]}
case ja if
toimivat, miten komentoja putkitetaan ym. Sanomalla man bash
saat pitkän ohjesivun näistä ja monesta muustakin asiasta.
export LANG=fi_FI , voit katsoa koska tiedostoa teksti.txt
on viimeksi muutettu sanomalla
date --reference=teksti.txt "+%Ana %Bn %e. päivä"
join -o 1.1,2.2 -1 2 nimikunta kuntamaa
touch tiedostonnimi on helpoin tapa luoda
tyhjä tiedosto. Samalla touch-komennolla voi myös muuttaa tiedostojen
muokkauspäivämääriä, kokeile esim.
touch --date 2002-04-01 aprillia
uname on joskus kätevä, erityisesti komento
uname -a kertoo ytimen version ym. mahdollisesti kiinnostavaa.
split -b 10k jokutiedosto
seq 10 -3 1 voit tulostaa luvut 10, 7,
4 ja 1.
clear tyhjentää kuvaruudun. Kätevä joissakin skripteissä.
pdftotext tiedosto.pdf tekee tiedoston tiedosto.txt, joka
hyvällä onnella sisältää PDF:n sisältämän tekstin.
su -komennolla voit vaihtaa lennosta toiseksi käyttäjäksi.
su - vaihtaa rootiksi ja root voi sanoa su - ville
päästääkseen kokeilemaan Villen tunnusta ilman salasanaa.
wget --recursive http://www.mpoli.fi/flug/ imuroi koko
Flug ry:n WWW-sivuston omalle koneelle.
watch -n 60 --differences ls /tmp tulostaa minuutin
välein listauksen /tmp -hakemistosta ja näyttää korostettuna muuttuneet
tiedot.
bin , voit
siirtää sinne tekemäsi skriptit ym. ja käyttää niitä antamatta koko polkua,
ts. aivan kuten koneessasi valmiina olevia ohjelmiakin.
/usr/local/bin , niitä
voivat käyttää kaikki koneen käyttäjät.
cmp tulostaa tiedostojen eroavan kohdan. Käyttökelpoinen
myös skripteissä, esim.
cmp -s tiedosto1 tiedosto2 || echo "Tiedostot eroavat"
who mom loves tulostaa käyttäjätunnuksesi, käyttämäsi
konsolin ja sisäänkirjautumisajan.
who | cut -d ' ' -f 1 | sort | uniq | tr -d ' ' | finger -s -m | cut -c 11-27 | sort | uniq
kertoo keitä koneelle on kirjautunut. Sama paikallista /etc/passwd -tiedostoa
käyttäen on monimutkaisempi:
who | cut -d ' ' -f 1 | sort | uniq | tr -d ' ' | xargs -n 1 echo "^" | colrm 2 2 | grep -f - /etc/passwd | cut -d ':' -f 5