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;; esac
sivut=("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