<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Trilog</id>
	<title>Linux.fi - Käyttäjän muokkaukset [fi]</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Trilog"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/wiki/Toiminnot:Muokkaukset/Trilog"/>
	<updated>2026-05-03T19:42:27Z</updated>
	<subtitle>Käyttäjän muokkaukset</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tietoturva&amp;diff=17868</id>
		<title>Tietoturva</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tietoturva&amp;diff=17868"/>
		<updated>2007-10-19T15:53:48Z</updated>

		<summary type="html">&lt;p&gt;Trilog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rant ==&lt;br /&gt;
Tietoturvassa on monesti kysymys asenteista, tosin onneksi Linuxille on erittäin vähän viruksia ja spywarea. Kannattaa silti huolehtia järjestelmän tärkeimmät päivitykset ajantasalle. Lisävarmuuden tuomiseksi voi myös käyttää [[Palomuurit|palomuuria]], [[tcp-wrapper]]ia, SELinuxia ja [[IDS]]ia (eli hyökkäyksentunnistusjärjestelmiä). *NIX-tyylisten järjestelmien vanhimpia tietoturvaetuja on [[root|pääkäyttäjän]] säästeliäs käyttö, jatka tätä perinnettä! Hyvä tapa olisi jättää pääkäyttäjäterminaali kokonaan avaamatta, ja hoitaa pääkäyttäjäoikeuksia vaativat hommat [[su]]:n tai [[sudo]]n avulla.&lt;br /&gt;
&lt;br /&gt;
== Käyttöjärjestelmän päivittäminen ==&lt;br /&gt;
&lt;br /&gt;
Kaikista käyttöjärjestelmistä löytyy ajoittain ohjelmointivirheitä,&lt;br /&gt;
jotka heikentävät koneen turvallisuutta. Valmistajat julkaisevat&lt;br /&gt;
päivityksiä jotka korjaavat virheet, mutta päivitysten asentaminen on käyttäjän vastuulla.&lt;br /&gt;
Linuxin tapauksessa tarvittavat toimenpiteet riippuvat jonkin verran siitä, minkä valmistajan jakelupaketti on käytössä.&lt;br /&gt;
&lt;br /&gt;
Kannattaa tarkistaa säännöllisesti (ehkä kerran viikossa) joko uusia turvapäivityksiä olisi saatavilla, ellei muistutuksia tule automaattisesti.&lt;br /&gt;
Yleensä linux-jakelulla on myös sähköpostilista, millä tiedotetaan tietoturvaan liittyvistä päivityksistä yms.&lt;br /&gt;
Tietoturvapäivitykset asentuvat yleensä muutamalla klikkauksella tai parilla komennolla, kunhan &amp;quot;asennuslähteet&amp;quot; on oikein säädetty. &lt;br /&gt;
&lt;br /&gt;
Alla on annettu ohjeet yleisimpien jakeluiden päivittämiseen.&lt;br /&gt;
Mikäli käytössäsi niin vanha jakelu että valmistajalta ei enää saa&lt;br /&gt;
siihen tietoturvapäivityksiä lainkaan, on koko järjestelmä syytä&lt;br /&gt;
päivittää uudempaan versioon.&lt;br /&gt;
&lt;br /&gt;
* [[Debianin päivittäminen|Debian GNU/Linux]]&lt;br /&gt;
* [[Fedoran ja Red Hatin päivittäminen|Fedora Linux]]&lt;br /&gt;
* [[Gentoon päivittäminen|Gentoo Linux]]&lt;br /&gt;
* IT Linux, Lineox ja Spectra Linux: Kts. [http://www.raimokoski.com http://www.raimokoski.com]&lt;br /&gt;
* [[Mandrivan päivittäminen|Mandriva Linux]]&lt;br /&gt;
* [[Fedoran ja Red Hatin päivittäminen|Red Hat Linux]]&lt;br /&gt;
* SOT Linux: Päivityksiä ei enää julkaista, käyttäjiä suositellaan vaihtamaan johonkin toiseen jakeluun.&lt;br /&gt;
* [[SUSEn päivittäminen|SUSE Linux]]&lt;br /&gt;
* [[Ubuntun päivittäminen|Ubuntu Linux]]&lt;br /&gt;
* [[Slackware|Slackware Linux]]&lt;br /&gt;
&lt;br /&gt;
== Käyttöoikeuksien hallinta ==&lt;br /&gt;
Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa [[käyttäjä|käyttäjien]] oikeuksia [[tiedostojärjestelmä|tiedostojärjestelmään]]. Käyttöoikeudet määritetään käyttäjä- ja ryhmäkohtaisesti. Lisäksi Linuxin [[Linuxin hakemistorakenne|hakemistorakenteessa]] määritetään tarkkaan hakemistojen [[tiedoston oikeudet|käyttöoikeudet]] niiden tarkoituksen ja käyttöoikeuksien mukaan. Nämä yhdessä luovat pohjan tietoturvalliselle käyttöjärjestelmälle.&lt;br /&gt;
&lt;br /&gt;
Linuxin tietoturvaa parantaa tavallisen- ja pääkäyttäjän erottaminen toisistaan. Pääkäyttäjällä eli erityisellä [[käyttäjä|root-tunnuksella]], on kaikki oikeudet käyttöjärjestelmään ja näin myös suurin riski vahingoittaa käyttöjärjestelmää. Tavallisen käyttäjän oikeudet taas ovat hyvin rajoitetut, mahdollistaen kuitenkin normaalin päivittäisen toiminnan kuten dokumenttien kirjoittamiseen ja musiikin kuuntelemiseen.&lt;br /&gt;
&lt;br /&gt;
Vaikka kotikäyttäjälle kahden käyttäjätunnuksen ja salasanan muistaminen kuulostaa absurdilta, on se ehdottomasti helpoin keino parantaa henkilökohtaista tietoturvaa. Esimerkiksi virusten ja haittaohjelmien levittäminen internetissä on helppoa ja ohjelmien virheiden vuoksi sellainen voi joutua myös omalle koneelle. Käyttämällä aina rajoitettua käyttäjätunnusta vähennät huomattavasti riskiä sotkea koko käyttöjärjestelmää.&lt;br /&gt;
&lt;br /&gt;
Siis ohje yksinkertaistettuna:&lt;br /&gt;
&lt;br /&gt;
# Kirjaudu sisään aina tavallisen &amp;quot;matti&amp;quot;-käyttäjän tunnuksilla, ei root-tunnuksilla!&lt;br /&gt;
# Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse&lt;br /&gt;
# Käytä root-tunnusta ainoastaan ohjelmien ja järjestelmän asennukseen ja kaikkia käyttäjiä koskeviin säätöihin, ei mihinkään muuhun&lt;br /&gt;
# Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön!&lt;br /&gt;
&lt;br /&gt;
Suorittaaksesi ohjelman pääkäyttäjän tunnuksilla sinun ei tarvitse kirjautua ulos järjestelmästä. Voit kirjautua pääkäyttäjäksi eri [[virtuaalikonsoli|virtuaalikonsolilla]] tai [[terminaaliemulaattori|pääteikkunassa]]. Komentoriviltä minkä tahansa yksittäisen ohjelman voi suorittaa pääkäyttäjän oikeuksilla komennoilla [[su]] tai [[sudo]]. Pelkkä &amp;quot;su&amp;quot; vaihtaa pääkäyttäjän oikeuksiin &amp;quot;exit&amp;quot;-käskyyn saakka.&lt;br /&gt;
&lt;br /&gt;
[[Työpöytäympäristö|Työpöytäympäristöistä]] löytyy vastaavat ohjelmat myös graafisena. [[GNOME|GNOMEssa]] sudo-komentoa vastaa [[gksudo]] ja [[KDE|KDE:ssä]] [[ksud]]. Esimerkiksi Ubuntussa Synaptic-paketinhallinnan käynnistäminen kysyy pääkäyttäjän salasanan automaattisesti, käyttäen kyseistä [[gksudo]]-ohjelmaa.&lt;br /&gt;
&lt;br /&gt;
==Käynnistettävät tiedostot ja &amp;quot;autorun&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
GNU/Linuxissa sähköpostiohjelmia ei yleensä ole säädetty ajamaan liitteenä tulevia ohjelmia, vaikka liitettä klikattaisiinkin.&lt;br /&gt;
&lt;br /&gt;
Kun tiedosto on tallennettu tiedostojärjestelmään, se, tulkitaanko se ohjelmaksi, määräytyy [[Tiedoston_oikeudet|tiedoston oikeuksiin]]&lt;br /&gt;
sisältyvien suoritusoikeusbittien, ei tiedostopäätteen tai edes tiedoston sisällön perusteella. Näin ohjelmaa ei tallennuksen jälkeenkään pääse vahingossa ajamaan. Käyttäjä voi niin halutessaan erikseen asettaa tiedostolle suoritusoikeudet.&lt;br /&gt;
&lt;br /&gt;
Sähköpostiohjelma tai tiedostoselain voidaan toki ohjelmoida niinkin, että ohjelmia pääsee klikkaamalla ajamaan, mutta tämä olisi turhaa tietoturvan vaarantamista.&lt;br /&gt;
&lt;br /&gt;
Sama koskee [[CD-levy|CD-levyjen]] ja muitten irrotettavien medioitten autorun-ohjelmia: niitä ei yleensä ajeta ellei käyttäjä erikseen sitä pyydä.&lt;br /&gt;
Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin automaattikäynnistys on helppo tapa tehdä CD:stä [[troijan hevonen]] (katso [[wikipedia:en:2005_Sony_BMG_CD_copy_prevention_scandal|Sonyn rootkit]]).&lt;br /&gt;
&lt;br /&gt;
===Binäärien ajaminen ja pakettien kautta leviävät virukset===&lt;br /&gt;
&lt;br /&gt;
Mitä siis tehdä, jos netistä löytyy (tai sähköpostissa tulee) ohjelma, jonka haluaa ajaa. Jos kyseessä on valmis ajettava tiedosto, riittää että tallettaa sen jonnekin, asettaa suoritusoikeudet ja ajaa sen:&lt;br /&gt;
 chmod a+x trojan_hevonen&lt;br /&gt;
 ./trojan_hevonen&lt;br /&gt;
&lt;br /&gt;
Ohjelmalla on yleensä kaikki samat oikeudet kuin sen käynnistäjälläkin, eli ellei ohjelmaan luota, se pitää vähintään ajaa tähän tarkoitukseen erikseen luodulla tunnuksella, mieluiten ei ollenkaan.&lt;br /&gt;
&lt;br /&gt;
Etuliite ./ (millä kerrotaan, että ohjelma on työhakemistossa) tarvitaan, jollei ohjelmaa ole asennettu ohjelmille tarkoitettuun hakemistoon (jotka on lueteltu [[PATH]]-muuttujassa). Tällä järjestelyllä estetään (pää)käyttäjää vahingossa ajamasta ohjelmaa, jolle on annettu jonkin toisen ohjelman nimi (tai sellaisen väärinkirjoitettu muoto).&lt;br /&gt;
&lt;br /&gt;
Jos ohjelma tulee paketoituna ([[tar]], [[RPM]], [[Deb]] tms.), paketin asentaminen asentaa tiedostot paketoijan määräämään paikkaan, mahdollisesti ylikirjoittaen muita tiedostoja (varsinkin jos paketin asentaa pääkäyttäjänä) ja asettaen tiedosto-oikeudet kohdalleen. Pakettiin saattaa kuulua myös asennuksessa ajettavia skriptejä. Pakettia ei siis pidä asentaa epämääräisistä lähteistä ja hiukankin epävarmoissa tapauksissa se pitäisi asentaa tarkoitukseen erikseen luodulla tunnuksella (jolle annetaan vain tarvittavat oikeudet asennuksen ajaksi).&lt;br /&gt;
&lt;br /&gt;
== SELinux ja GRSecurity ==&lt;br /&gt;
&lt;br /&gt;
[http://www.nsa.gov/selinux/ SELinux] on patchi (&amp;quot;korjaus&amp;quot;) joka mahdollistaa tarkemman auditoinnin (&amp;quot;turvallisuustarkastelut&amp;quot;) järjestelmän suorittamien toimenpiteiden suhteen. Lähes kaikille tapahtumille on mahdollista määrittää &amp;quot;turvatasot&amp;quot;. NSA on kehittänyt SELinuxin, jonka takia voidaankin olettaa sen täyttävän erittäin korkean turvallisuusluokituksen. &lt;br /&gt;
&lt;br /&gt;
Säädettävyyden mukana tulee vaikeus; kuka jaksaa säätää kaiken pilkkua viilaten? Tämä on SELinuxin suurin ongelma: sen käyttöönotto on erittäin työläs.&lt;br /&gt;
&lt;br /&gt;
SELinux on 2.6-sarjan kernelissä (&amp;quot;ytimessä&amp;quot;) mukana ja sen kehitys tapahtuu ytimen ohessa. 2.4-sarjalaisiin tämä on saatavissa erillisenä patch-settinä (&amp;quot;korjaussarjana&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
[http://www.grsecurity.net/ GRSecurity] on kilpaileva &amp;quot;tuote&amp;quot; joka ei ole mukana valtavirrassa, mutta se tekijän mukaan mahdollistaa vielä suuremmat tietoturvatason säädöt. &lt;br /&gt;
&lt;br /&gt;
Molemmat tuotteet ovat hyödyllisiä jos niille on tarvetta. Yleensä pärjätään normaaleillakin turva-asetuksilla, mutta vaihtoehdot ovat hyväksi.&lt;br /&gt;
&lt;br /&gt;
== TCP-wrapper ==&lt;br /&gt;
&lt;br /&gt;
TCP-wrapper on käyttöoikeuskirjasto, jolla voidaan määritellä monimutkaisempia sääntöjä, ketkä pääsevät mihinkin verkkopalveluun ottamaan yhteyttä. Komennolla ldd /polku/ohjelmistoon | grep libwrap voi tarkistaa tukeeko palvelinohjelma TCP-wrapperia.&lt;br /&gt;
&lt;br /&gt;
Säännöt rakentuvat niin, että ensin pitää kieltää kaikki &amp;lt;tt&amp;gt;[[hosts.deny]]&amp;lt;/tt&amp;gt;-tiedostossa ja sitten sallia yhteyksiä &amp;lt;tt&amp;gt;hosts.allow&amp;lt;/tt&amp;gt;-tiedostossa.&lt;br /&gt;
&lt;br /&gt;
Esimerkki perussäädöistä, joissa sallitaan vain .omalafka.fi verkko-osoitteiden yhteydenotto SSHD-palvelinohjelmistoon.&lt;br /&gt;
&lt;br /&gt;
/etc/hosts.deny:&lt;br /&gt;
 SSHD: ALL&lt;br /&gt;
&lt;br /&gt;
/etc/hosts.allow:&lt;br /&gt;
 SSHD: .omalafka.fi&lt;br /&gt;
&lt;br /&gt;
Nimien käyttö ip-osoitteiden sijaan aiheuttaa turvallisuusreiän: se, joka itse hallitsee omat nimipalvelimensa, voi asettaa koneen nimen haluamakseen. Ylläolevat säännöt kuitenkin riittävät automaattisten hyökkäysten torjumiseen, ainakin jollei omalafka.fi ole arvattavissa koneen oman nimen tms. perusteella.&lt;br /&gt;
&lt;br /&gt;
== Palomuuri ==&lt;br /&gt;
&lt;br /&gt;
Useimmiten verkkoon liitettävät laitteet on syytä suojata palomuurilla. Linux-palomuureista tietoutta löytyy [[Palomuurit]]-artikkelista.&lt;br /&gt;
&lt;br /&gt;
== Virustorjunta ==&lt;br /&gt;
&lt;br /&gt;
Linuxille on tehty todella vähän viruksia, mutta esim. Windows-järjestelmien sähköpostia liikuttavissa palvelimissa tai tiedostosäilöissä voi olla tarpeen käyttää virustorjuntaa. Aiheesta lisää sivulla [[Virustorjunta]].&lt;br /&gt;
&lt;br /&gt;
==SSH==&lt;br /&gt;
Jos ajat [[SSH]]-palvelinta, kannattaa tarkistaa että soveltuvat [[SSH-turvatoimet]] on tehty. sshd käyttää yleensä sekä omia asetuksiaan, että pam-kirjastoa ja normaaleja unix-salasanoja. Asetusten yhteisvaikutus ei ole intuitiivinen, joten asiaa koskevien varoitusten lukeminen on hyvin suotavaa. Parasta on rajoittaa yhteydet muutamaan luotettavaan ip-osoitteeseen.&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Langattoman verkon tietoturva]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tietoturva]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tietoturva&amp;diff=17867</id>
		<title>Tietoturva</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tietoturva&amp;diff=17867"/>
		<updated>2007-10-19T15:52:29Z</updated>

		<summary type="html">&lt;p&gt;Trilog: /* Binäärien ajaminen ja pakettien kautta leviävät virukset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rant ==&lt;br /&gt;
Tietoturvassa on monesti kysymys asenteista, tosin onneksi Linuxille on erittäin vähän viruksia ja spywarea. Kannattaa silti huolehtia järjestelmän tärkeimmät päivitykset ajantasalle. Lisävarmuuden tuomiseksi voi myös käyttää [[Palomuurit|palomuuria]], [[tcp-wrapper]]ia, SELinuxia ja [[IDS]]ia (eli hyökkäyksentunnistusjärjestelmiä). *NIX-tyylisten järjestelmien vanhimpia tietoturvaetuja on [[root|pääkäyttäjän]] säästeliäs käyttö, jatka tätä perinnettä! Hyvä tapa olisi jättää pääkäyttäjäterminaali kokonaan avaamatta, ja hoitaa pääkäyttäjäoikeuksia vaativat hommat [[su]]:n tai [[sudo]]n avulla.&lt;br /&gt;
&lt;br /&gt;
== Käyttöjärjestelmän päivittäminen ==&lt;br /&gt;
&lt;br /&gt;
Kaikista käyttöjärjestelmistä löytyy ajoittain ohjelmointivirheitä,&lt;br /&gt;
jotka heikentävät koneen turvallisuutta. Valmistajat julkaisevat&lt;br /&gt;
päivityksiä jotka korjaavat virheet, mutta päivitysten asentaminen on käyttäjän vastuulla.&lt;br /&gt;
Linuxin tapauksessa tarvittavat toimenpiteet riippuvat jonkin verran siitä, minkä valmistajan jakelupaketti on käytössä.&lt;br /&gt;
&lt;br /&gt;
Kannattaa tarkistaa säännöllisesti (ehkä kerran viikossa) joko uusia turvapäivityksiä olisi saatavilla, ellei muistutuksia tule automaattisesti.&lt;br /&gt;
Yleensä linux-jakelulla on myös sähköpostilista, millä tiedotetaan tietoturvaan liittyvistä päivityksistä yms.&lt;br /&gt;
Tietoturvapäivitykset asentuvat yleensä muutamalla klikkauksella tai parilla komennolla, kunhan &amp;quot;asennuslähteet&amp;quot; on oikein säädetty. &lt;br /&gt;
&lt;br /&gt;
Alla on annettu ohjeet yleisimpien jakeluiden päivittämiseen.&lt;br /&gt;
Mikäli käytössäsi niin vanha jakelu että valmistajalta ei enää saa&lt;br /&gt;
siihen tietoturvapäivityksiä lainkaan, on koko järjestelmä syytä&lt;br /&gt;
päivittää uudempaan versioon.&lt;br /&gt;
&lt;br /&gt;
* [[Debianin päivittäminen|Debian GNU/Linux]]&lt;br /&gt;
* [[Fedoran ja Red Hatin päivittäminen|Fedora Linux]]&lt;br /&gt;
* [[Gentoon päivittäminen|Gentoo Linux]]&lt;br /&gt;
* IT Linux, Lineox ja Spectra Linux: Kts. [http://www.raimokoski.com http://www.raimokoski.com]&lt;br /&gt;
* [[Mandrivan päivittäminen|Mandriva Linux]]&lt;br /&gt;
* [[Fedoran ja Red Hatin päivittäminen|Red Hat Linux]]&lt;br /&gt;
* SOT Linux: Päivityksiä ei enää julkaista, käyttäjiä suositellaan vaihtamaan johonkin toiseen jakeluun.&lt;br /&gt;
* [[SUSEn päivittäminen|SUSE Linux]]&lt;br /&gt;
* [[Ubuntun päivittäminen|Ubuntu Linux]]&lt;br /&gt;
* [[Slackware|Slackware Linux]]&lt;br /&gt;
&lt;br /&gt;
== Käyttöoikeuksien hallinta ==&lt;br /&gt;
Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa [[käyttäjä|käyttäjien]] oikeuksia [[tiedostojärjestelmä|tiedostojärjestelmään]]. Käyttöoikeudet määritetään käyttäjä- ja ryhmäkohtaisesti. Lisäksi Linuxin [[Linuxin hakemistorakenne|hakemistorakenteessa]] määritetään tarkkaan hakemistojen [[tiedoston oikeudet|käyttöoikeudet]] niiden tarkoituksen ja käyttöoikeuksien mukaan. Nämä yhdessä luovat pohjan tietoturvalliselle käyttöjärjestelmälle.&lt;br /&gt;
&lt;br /&gt;
Linuxin tietoturvaa parantaa tavallisen- ja pääkäyttäjän erottaminen toisistaan. Pääkäyttäjällä eli erityisellä [[käyttäjä|root-tunnuksella]], on kaikki oikeudet käyttöjärjestelmään ja näin myös suurin riski vahingoittaa käyttöjärjestelmää. Tavallisen käyttäjän oikeudet taas ovat hyvin rajoitetut, mahdollistaen kuitenkin normaalin päivittäisen toiminnan kuten dokumenttien kirjoittamiseen ja musiikin kuuntelemiseen.&lt;br /&gt;
&lt;br /&gt;
Vaikka kotikäyttäjälle kahden käyttäjätunnuksen ja salasanan muistaminen kuulostaa absurdilta, on se ehdottomasti helpoin keino parantaa henkilökohtaista tietoturvaa. Esimerkiksi virusten ja haittaohjelmien levittäminen internetissä on helppoa ja ohjelmien virheiden vuoksi sellainen voi joutua myös omalle koneelle. Käyttämällä aina rajoitettua käyttäjätunnusta vähennät huomattavasti riskiä sotkea koko käyttöjärjestelmää.&lt;br /&gt;
&lt;br /&gt;
Siis ohje yksinkertaistettuna:&lt;br /&gt;
&lt;br /&gt;
# Kirjaudu sisään aina tavallisen &amp;quot;matti&amp;quot;-käyttäjän tunnuksilla, ei root-tunnuksilla!&lt;br /&gt;
# Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse&lt;br /&gt;
# Käytä root-tunnusta ainoastaan ohjelmien ja järjestelmän asennukseen ja kaikkia käyttäjiä koskeviin säätöihin, ei mihinkään muuhun&lt;br /&gt;
# Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön!&lt;br /&gt;
&lt;br /&gt;
Suorittaaksesi ohjelman pääkäyttäjän tunnuksilla sinun ei tarvitse kirjautua ulos järjestelmästä. Voit kirjautua pääkäyttäjäksi eri [[virtuaalikonsoli|virtuaalikonsolilla]] tai [[terminaaliemulaattori|pääteikkunassa]]. Komentoriviltä minkä tahansa yksittäisen ohjelman voi suorittaa pääkäyttäjän oikeuksilla komennoilla [[su]] tai [[sudo]]. Pelkkä &amp;quot;su&amp;quot; vaihtaa pääkäyttäjän oikeuksiin &amp;quot;exit&amp;quot;-käskyyn saakka.&lt;br /&gt;
&lt;br /&gt;
[[Työpöytäympäristö|Työpöytäympäristöistä]] löytyy vastaavat ohjelmat myös graafisena. [[GNOME|GNOMEssa]] sudo-komentoa vastaa [[gksudo]] ja [[KDE|KDE:ssä]] [[ksud]]. Esimerkiksi Ubuntussa Synaptic-paketinhallinnan käynnistäminen kysyy pääkäyttäjän salasanan automaattisesti, käyttäen kyseistä [[gksudo]]-ohjelmaa.&lt;br /&gt;
&lt;br /&gt;
==Käynnistettävät tiedostot ja &amp;quot;autorun&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
GNU/Linuxissa sähköpostiohjelmia ei yleensä ole säädetty ajamaan liitteenä tulevia ohjelmia, vaikka liitettä klikattaisiinkin.&lt;br /&gt;
&lt;br /&gt;
Kun tiedosto on tallennettu tiedostojärjestelmään, se, tulkitaanko se ohjelmaksi, määräytyy [[Tiedoston_oikeudet|tiedoston oikeuksiin]]&lt;br /&gt;
sisältyvien suoritusoikeusbittien, ei tiedostopäätteen tai edes tiedoston sisällön perusteella. Näin ohjelmaa ei tallennuksen jälkeenkään pääse vahingossa ajamaan. Käyttäjä voi niin halutessaan erikseen asettaa tiedostolle suoritusoikeudet.&lt;br /&gt;
&lt;br /&gt;
Sähköpostiohjelma tai tiedostoselain voidaan toki ohjelmoida niinkin, että ohjelmia pääsee klikkaamalla ajamaan, mutta tämä olisi turhaa tietoturvan vaarantamista.&lt;br /&gt;
&lt;br /&gt;
Sama koskee [[CD-levy|CD-levyjen]] ja muitten irrotettavien medioitten autorun-ohjelmia: niitä ei yleensä ajeta ellei käyttäjä erikseen sitä pyydä.&lt;br /&gt;
Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin automaattikäynnistys on helppo tapa tehdä CD:stä [[troijan hevonen]] (katso [[wikipedia:en:2005_Sony_BMG_CD_copy_prevention_scandal|Sonyn rootkit]]).&lt;br /&gt;
&lt;br /&gt;
===Binäärien ajaminen ja pakettien kautta leviävät virukset===&lt;br /&gt;
&lt;br /&gt;
Mitä siis tehdä, jos netistä löytyy (tai sähköpostissa tulee) ohjelma, jonka haluaa ajaa. Jos kyseessä on valmis ajettava tiedosto, riittää että tallettaa sen jonnekin, asettaa suoritusoikeudet ja ajaa sen:&lt;br /&gt;
 chmod a+x trojan_hevonen&lt;br /&gt;
 ./trojan_hevonen&lt;br /&gt;
&lt;br /&gt;
Ohjelmalla on yleensä kaikki samat oikeudet kuin sen käynnistäjälläkin, eli ellei ohjelmaan luota, se pitää vähintään ajaa tähän tarkoitukseen erikseen luodulla tunnuksella, mieluiten ei ollenkaan.&lt;br /&gt;
&lt;br /&gt;
Etuliite ./ (millä kerrotaan, että ohjelma on työhakemistossa) tarvitaan, jollei ohjelmaa ole asennettu ohjelmille tarkoitettuun hakemistoon (jotka on lueteltu [[PATH]]-muuttujassa). Tällä järjestelyllä estetään (pää)käyttäjää vahingossa ajamasta ohjelmaa, jolle on annettu jonkin toisen ohjelman nimi (tai sellaisen väärinkirjoitettu muoto).&lt;br /&gt;
&lt;br /&gt;
Jos ohjelma tulee paketoituna ([[tar]], [[RPM]], [[DEB]] tms.), paketin asentaminen asentaa tiedostot paketoijan määräämään paikkaan, mahdollisesti ylikirjoittaen muita tiedostoja (varsinkin jos paketin asentaa pääkäyttäjänä) ja asettaen tiedosto-oikeudet kohdalleen. Pakettiin saattaa kuulua myös asennuksessa ajettavia skriptejä. Pakettia ei siis pidä asentaa epämääräisistä lähteistä ja hiukankin epävarmoissa tapauksissa se pitäisi asentaa tarkoitukseen erikseen luodulla tunnuksella (jolle annetaan vain tarvittavat oikeudet asennuksen ajaksi).&lt;br /&gt;
&lt;br /&gt;
== SELinux ja GRSecurity ==&lt;br /&gt;
&lt;br /&gt;
[http://www.nsa.gov/selinux/ SELinux] on patchi (&amp;quot;korjaus&amp;quot;) joka mahdollistaa tarkemman auditoinnin (&amp;quot;turvallisuustarkastelut&amp;quot;) järjestelmän suorittamien toimenpiteiden suhteen. Lähes kaikille tapahtumille on mahdollista määrittää &amp;quot;turvatasot&amp;quot;. NSA on kehittänyt SELinuxin, jonka takia voidaankin olettaa sen täyttävän erittäin korkean turvallisuusluokituksen. &lt;br /&gt;
&lt;br /&gt;
Säädettävyyden mukana tulee vaikeus; kuka jaksaa säätää kaiken pilkkua viilaten? Tämä on SELinuxin suurin ongelma: sen käyttöönotto on erittäin työläs.&lt;br /&gt;
&lt;br /&gt;
SELinux on 2.6-sarjan kernelissä (&amp;quot;ytimessä&amp;quot;) mukana ja sen kehitys tapahtuu ytimen ohessa. 2.4-sarjalaisiin tämä on saatavissa erillisenä patch-settinä (&amp;quot;korjaussarjana&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
[http://www.grsecurity.net/ GRSecurity] on kilpaileva &amp;quot;tuote&amp;quot; joka ei ole mukana valtavirrassa, mutta se tekijän mukaan mahdollistaa vielä suuremmat tietoturvatason säädöt. &lt;br /&gt;
&lt;br /&gt;
Molemmat tuotteet ovat hyödyllisiä jos niille on tarvetta. Yleensä pärjätään normaaleillakin turva-asetuksilla, mutta vaihtoehdot ovat hyväksi.&lt;br /&gt;
&lt;br /&gt;
== TCP-wrapper ==&lt;br /&gt;
&lt;br /&gt;
TCP-wrapper on käyttöoikeuskirjasto, jolla voidaan määritellä monimutkaisempia sääntöjä, ketkä pääsevät mihinkin verkkopalveluun ottamaan yhteyttä. Komennolla ldd /polku/ohjelmistoon | grep libwrap voi tarkistaa tukeeko palvelinohjelma TCP-wrapperia.&lt;br /&gt;
&lt;br /&gt;
Säännöt rakentuvat niin, että ensin pitää kieltää kaikki &amp;lt;tt&amp;gt;[[hosts.deny]]&amp;lt;/tt&amp;gt;-tiedostossa ja sitten sallia yhteyksiä &amp;lt;tt&amp;gt;hosts.allow&amp;lt;/tt&amp;gt;-tiedostossa.&lt;br /&gt;
&lt;br /&gt;
Esimerkki perussäädöistä, joissa sallitaan vain .omalafka.fi verkko-osoitteiden yhteydenotto SSHD-palvelinohjelmistoon.&lt;br /&gt;
&lt;br /&gt;
/etc/hosts.deny:&lt;br /&gt;
 SSHD: ALL&lt;br /&gt;
&lt;br /&gt;
/etc/hosts.allow:&lt;br /&gt;
 SSHD: .omalafka.fi&lt;br /&gt;
&lt;br /&gt;
Nimien käyttö ip-osoitteiden sijaan aiheuttaa turvallisuusreiän: se, joka itse hallitsee omat nimipalvelimensa, voi asettaa koneen nimen haluamakseen. Ylläolevat säännöt kuitenkin riittävät automaattisten hyökkäysten torjumiseen, ainakin jollei omalafka.fi ole arvattavissa koneen oman nimen tms. perusteella.&lt;br /&gt;
&lt;br /&gt;
== Palomuuri ==&lt;br /&gt;
&lt;br /&gt;
Useimmiten verkkoon liitettävät laitteet on syytä suojata palomuurilla. Linux-palomuureista tietoutta löytyy [[Palomuurit]]-artikkelista.&lt;br /&gt;
&lt;br /&gt;
== Virustorjunta ==&lt;br /&gt;
&lt;br /&gt;
Linuxille on tehty todella vähän viruksia, mutta esim. Windows-järjestelmien sähköpostia liikuttavissa palvelimissa tai tiedostosäilöissä voi olla tarpeen käyttää virustorjuntaa. Aiheesta lisää sivulla [[Virustorjunta]].&lt;br /&gt;
&lt;br /&gt;
==SSH==&lt;br /&gt;
Jos ajat [[SSH]]-palvelinta, kannattaa tarkistaa että soveltuvat [[SSH-turvatoimet]] on tehty. sshd käyttää yleensä sekä omia asetuksiaan, että pam-kirjastoa ja normaaleja unix-salasanoja. Asetusten yhteisvaikutus ei ole intuitiivinen, joten asiaa koskevien varoitusten lukeminen on hyvin suotavaa. Parasta on rajoittaa yhteydet muutamaan luotettavaan ip-osoitteeseen.&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Langattoman verkon tietoturva]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tietoturva]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Pacman&amp;diff=17829</id>
		<title>Pacman</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Pacman&amp;diff=17829"/>
		<updated>2007-10-15T14:54:33Z</updated>

		<summary type="html">&lt;p&gt;Trilog: /* Käyttö */ - pacman -Rc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pacman on [[Archlinux|Arch Linuxin]] ja [[Frugalware|Frugalwaren]] käyttämä paketinhallintaohjelma, joka seuraa järjestelmään asennettuja ohjelmapaketteja. Siinä on tuki riippuvuuksien hallintaan sekä kyky ottaa yhteys etäpalvelimeen ja automaattisesti päivittää tai asentaa paketteja paikalliseen järjestelmään. Arch Linuxin paketit ovat [[gzip]]attuja [[tarball]]eja ja Frugalwaren paketit ovat [[bzip2]]-pakattuja tarballeja. Pacmanin [[asetustiedostojen perusteet|asetustiedosto]] on [[pacman.conf|/etc/pacman.conf]]&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 pacman -Sy zsh&lt;br /&gt;
Asentaa paketin zsh synkronoiden sitä ennen pakettitietokannan (valitsin -y)&lt;br /&gt;
&lt;br /&gt;
 pacman -Syu&lt;br /&gt;
Päivittää koko järjestelmän (valitsin -u) synkronoiden sitä ennen pakettitietokannan&lt;br /&gt;
&lt;br /&gt;
 pacman -Ss chess&lt;br /&gt;
Etsii hakusanan &amp;quot;chess&amp;quot; sisältävät paketit pakettitietokannasta&lt;br /&gt;
&lt;br /&gt;
 pacman -R libdvdcss&lt;br /&gt;
Poistaa paketin libdvdcss&lt;br /&gt;
&lt;br /&gt;
 pacman -Rc libdvdcss&lt;br /&gt;
Poistaa paketin libdvdcss ja kaikki sen riippuvuudet&lt;br /&gt;
&lt;br /&gt;
 pacman -Qs alsa&lt;br /&gt;
Etsii kaikki koneelle asennetut paketit, jotka sisältävät hakusanan &amp;quot;alsa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 pacman -Si gnome-terminal&lt;br /&gt;
Näyttää asentamattoman (pakettitietokannasta löytyvän) paketin gnome-terminal tiedot&lt;br /&gt;
&lt;br /&gt;
 pacman -Qi yakuake&lt;br /&gt;
Näyttää koneelle asennetun paketin yakuake tiedot&lt;br /&gt;
&lt;br /&gt;
 pacman -Qo /usr/bin/recode&lt;br /&gt;
Näyttää mihin pakettiin tiedosto /usr/bin/recode kuuluu.&lt;br /&gt;
&lt;br /&gt;
 pacman -Scc&lt;br /&gt;
Poistaa kaikki pacmanin lataamat paketit hakemistosta /var/cache/pacman/pkg. Mikäli valitsin annetaan muodossa -Sc, poistetaan vain vain vanhentuneet paketit. Mikäli paketteja ei poisteta tarpeeksi usein, kertyy niitä helposti useiden gigatavujen verran. &lt;br /&gt;
&lt;br /&gt;
 pacman -U foobar-0.1.4-2.pkg.tar.gz&lt;br /&gt;
Päivittää/asentaa itsetehdyn ohjelmapaketin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Komentorivin erikoisohjelmat]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Arch_Linux&amp;diff=17784</id>
		<title>Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Arch_Linux&amp;diff=17784"/>
		<updated>2007-10-08T11:54:33Z</updated>

		<summary type="html">&lt;p&gt;Trilog: Äitijakelu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Jakelu &lt;br /&gt;
| nimi=Arch Linux&lt;br /&gt;
| logo=[[Kuva:Archlinux.logo.png|250px]]&lt;br /&gt;
| kuva=&lt;br /&gt;
| kuvateksti=&lt;br /&gt;
| yritys=Arch Linux -yhteisö&lt;br /&gt;
| viimeisin versio=2007.08.2 (Don&#039;t Panic)&lt;br /&gt;
| päivämäärä=7. lokakuuta 2007&lt;br /&gt;
| pakettienhallinta=[[Pacman]]&lt;br /&gt;
| tila=toiminnassa&lt;br /&gt;
| äitijakelu=[[CRUX]]&lt;br /&gt;
| sukulaisjakelut=-&lt;br /&gt;
| kotisivu=[http://www.archlinux.org/ archlinux.org]}}&lt;br /&gt;
&lt;br /&gt;
Arch Linux on i686-arkkitehtuurille optimoitu [[jakelu]], joka on suunnattu hieman edistyneemmille käyttäjille (tai vasta-alkajille jotka eivät pelkää komentoriviä ja ohjesivuja). Monet Arch Linuxin käyttäjistä ovat entisiä [[Slackware]]n tai [[Gentoo]]n käyttäjiä.&lt;br /&gt;
&lt;br /&gt;
Arch Linuxin perusperiaatteena on &amp;quot;yksinkertainen on kaunista&amp;quot;. Oletuksena asennetaan vain välttämättömät ohjelmat, käyttäjä voi itse muokata järjestelmästään haluamansa kaltaisen. Järjestelmän paketinhallintaohjelmana on kevyt ja nopea [[pacman]]. Arch Linux on luonteeltaan &amp;quot;[[bleeding edge]]&amp;quot;, eli paketeista tulee hyvin tiuhaan uusia versioita, jotka usein ovat vielä betoja tai RC:itä. Tästä syystä on hyvä pitää silmällä jakelun kotisivun uutis- ja tiedotuspalstaa, jottei vahingossa tule rikkoneeksi asennustaan odottamattomilla päivityksillä. Ohjelmista, joista ei ole virallista pakettia, voi tehdä asennuspaketteja ABS:n (Arch Build System) avulla. Myös AURista (ArchLinux User-community Repository) voi löytää paketteja, joita Arch Linuxin viralliset asennuslähteet (current, extra ja community) eivät tarjoa. AURin paketit ovat täysin epävirallisia, eikä niiden toimivuudesta anneta mitään takuita. Laadukkaimmat AUR-paketit päätyvät community-asennuslähteeseen.&lt;br /&gt;
&lt;br /&gt;
Arch Linux käyttää ns. &amp;quot;Rolling release&amp;quot;-tapaa jakelun julkaisuun. Järjestelmästä on kaksi versiota: Current ja Release. Current sisältää aina viimeisimmät versiot kaikista ohjelmista. Aina kun paketteja päivitetään niistä tulee osa Currentia. Release on julkaisuhetken Currentia vastaava kokoelma paketteja. Release päivittyy säännöllisen epäsäännöllisesti uuden julkaisun ilmestyessä. Tarkoitus on kuitenkin että järjestelmä päivitetään Current-versioon säännöllisesti pacmanin avulla. Maaliskuussa 2007 julkaistusta 0.8-versiosta lähtien uusia asennuslevyjä julkaistaan Linux-[[ydin|ytimen]] julkaisuaikataulun mukaan. Kun esimerkiksi ytimen versio 2.6.29 julkaistaan, tehdään sen pohjalta uudet asennuslevyt, jotka nimetään julkaisuajankohdan mukaan muodossa VVVVKK.&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
* [[wikipedia:fi:Arch Linux|Arch Linux suomenkielisessä Wikipediassa]]&lt;br /&gt;
* [http://archlinux.org/ Arch Linux]&lt;br /&gt;
* [http://wiki.archlinux.org/ ArchWiki]&lt;br /&gt;
* [http://aur.archlinux.org/ AUR]&lt;br /&gt;
* [http://www.linux-paja.com/arch-install-guide.html Suomenkielinen asennusopas]&lt;br /&gt;
* [http://distrowatch.com/dwres.php?resource=interview-arch Arch Linuxin pääkehittäjän haastattelu]&lt;br /&gt;
* [http://cactuswax.net/blog/archlinux-mini-review/ Erinomainen esittely Arch Linuxin uudelle käyttäjälle]&lt;br /&gt;
[[Luokka:Jakelut]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Bash-skriptaus&amp;diff=17683</id>
		<title>Bash-skriptaus</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Bash-skriptaus&amp;diff=17683"/>
		<updated>2007-10-05T11:36:00Z</updated>

		<summary type="html">&lt;p&gt;Trilog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komentorivi on jo yksinään [[Komentorivin perusteet|monipuolinen]] työkalu, mutta skriptien avulla on mahdollista toteuttaa huomattavasti monipuolisempia prosesseja pienellä vaivalla. Tässä oppaassa käsitellään skriptien kirjoittamista [[bash]]-[[komentotulkki|komentotulkille]].&lt;br /&gt;
&lt;br /&gt;
== Alkuun ==&lt;br /&gt;
Skripti aloitetaan rivillä&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
Joka kertoo, että skripti suoritetaan käyttäen bashia riippumatta siitä, mitä komentotulkkia käyttäjä käyttää ajaessaan skriptin. Huomaa, että vaikka rivi alkaa #-merkillä, se ei ole kommentti. Muualla skriptissä #:llä alkavat rivit ovat kommentteja, eikä niitä huomioida.&lt;br /&gt;
&lt;br /&gt;
Skriptejä ei kuitenkaan ole pakko kirjoittaa erilliseen tiedostoon, vaan ne voi kirjoittaa myös suoraan komentoriville. Tällöin eri komentojen väliin laitetaan erottimeksi puolipiste (;).&lt;br /&gt;
&lt;br /&gt;
=== Ensimmäinen skripti ===&lt;br /&gt;
Tehdään aluksi yksinkertainen skripti, joka esittelee muutamia perustoimintoja:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;Hei, `whoami`, mitä kuuluu&amp;quot;&lt;br /&gt;
 echo &amp;quot;Olet hakemistossa $PWD, tiedostolistaus:&amp;quot;&lt;br /&gt;
 ls&lt;br /&gt;
Kuten huomaat, skripteissä käytetään tavallisia komentorivikomentoja, jotka sitten suoritetaan järjestyksessä. Toisaalta kuten myöhemmin huomaamme, skriptit tarjoavat paljon enemmän mahdollisuuksia kuin pelkkä komentojen näpyttely konsoliin.&lt;br /&gt;
&lt;br /&gt;
Tallenna skripti vaikka nimellä &amp;lt;tt&amp;gt;eka.sh&amp;lt;/tt&amp;gt; (sh-päätettä käytetään yleensä skriptien kanssa), anna sille [[chmod|suoritusoikeudet]] ja aja skripti, jolloin tulostus on suunnilleen seuraavanlainen:&lt;br /&gt;
 Hei, käyttäjä, mitä kuuluu&lt;br /&gt;
 Olet hakemistossa /home/kayttaja/ohjelmointi/skriptit, tiedostolistaus:&lt;br /&gt;
 eka.sh&lt;br /&gt;
Esimerkistä nähdään heti muutama perusasia. Ensinnäkin toisella rivillä käytetään ohjelmaa [[whoami]], joka tulostaa käyttäjänimen. Kun ohjelma on `-merkkein välissä, kyseiseen kohtaan &amp;quot;kopioidaan&amp;quot; ajetun ohjelman tuloste.&lt;br /&gt;
&lt;br /&gt;
Toisella rivillä käytetään muuttujaa. Muuttujien edessä on dollarimerkki ($), ja niitä voidaan tunkea vaikka merkkijonojen (jotka erotetaan lainausmerkillä) sisälle. Muuttujia käsitellään tarkemmin myöhemmin. Esimerkissä käyttämämme muuttuja &amp;lt;tt&amp;gt;$PWD&amp;lt;/tt&amp;gt; on [[ympäristömuuttuja]], jonka arvona on aina se hakemisto, jossa käyttäjä on. Voit kokeilla tätä esimerkiksi kirjoittamalla komentoriville komennon &amp;lt;tt&amp;gt;echo $PWD&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Viimeisellä rivillä ajetaan normaalisti komentoriviohjelma [[ls]]. Voit myös kokeilla korvata tämän rivin rivillä&lt;br /&gt;
 echo &amp;quot;`ls`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Skrpti voitaisiin myös kirjoittaa suoraan komentoriville muodossa&lt;br /&gt;
 echo &amp;quot;Hei, `whoami`, mitä kuuluu&amp;quot;; echo &amp;quot;Olet hakemistossa $PWD, tiedostolistaus:&amp;quot;; ls;&lt;br /&gt;
&lt;br /&gt;
== Muuttujat ==&lt;br /&gt;
Muuttujat määritellään syntaksilla&lt;br /&gt;
 nimi=arvo&lt;br /&gt;
ja niihin viitataan laittamalla muuttujan eteen $&lt;br /&gt;
 $nimi&lt;br /&gt;
Tapauksia, joissa käyttäjän tarkoittama muuttuja on epäselvä, tulee käyttää aaltosulkuja muuttujan ympärillä&lt;br /&gt;
 ${foo}bar&lt;br /&gt;
kun halutaan tulostaa teksti &amp;lt;tt&amp;gt;bar&amp;lt;/tt&amp;gt; muuttujan &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; jälkeen.&lt;br /&gt;
&lt;br /&gt;
Ensimmäisen skriptimme tapauksessa käytimme jo ympäristömuuttujaa $PWD echo:n kanssa. Tehdäänpä samantyyppinen skripti nyt käyttäen itse määrittelemäämme muuttujaa:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 HEI=&amp;quot;Hei, `whoami`, mitä kuuluu?&amp;quot;&lt;br /&gt;
 echo $HEI&lt;br /&gt;
Kuten huomaat, kun muuttujaan sijoitetaan arvo, voidaan käyttää samoja &amp;quot;kikkoja&amp;quot; kuin muuallakin skriptissä, esimerkiksi tässä tapauksessa sijoitamme muuttujaan merkkijonon jonka sisällä on ohjelman &amp;lt;tt&amp;gt;whoami&amp;lt;/tt&amp;gt; tuloste.&lt;br /&gt;
&lt;br /&gt;
Huomaa, että yhtäsuuruusmerkin on oltava kiinni muuttujan nimessä ja arvossa, eli seuraavat muodot eivät käy:&lt;br /&gt;
 MUUTTUJA = &amp;quot;terve vaan&amp;quot;&lt;br /&gt;
 MUUTTUJA= &amp;quot;moi&amp;quot;&lt;br /&gt;
 MUUTTUJA =&amp;quot;moi&amp;quot;&lt;br /&gt;
Lisäksi muuttujaan sijoitettavan arvon on oltava lainausmerkkien sisällä, jos siihen kuuluu välilyönti. Yksittäisen sanan tai numeron voi sijoittaa ilman lainausmerkkejä:&lt;br /&gt;
 numero=43&lt;br /&gt;
&lt;br /&gt;
== Ehtolauseet ==&lt;br /&gt;
Ehdollisia rakenteita luodaan bashille if, then, else ja fi -avainsanoilla. Rakenteen syntaksi on seuraava:&lt;br /&gt;
 if [ ehto ]&lt;br /&gt;
 then&lt;br /&gt;
    lauseita&lt;br /&gt;
 elif [ toinen ehto ]&lt;br /&gt;
    lauseita&lt;br /&gt;
 else&lt;br /&gt;
    muita lauseita&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Ehdot merkitään hakasulkeiden sisään esimerkiksi seuraavalla tavalla&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 if [ $PWD = &amp;quot;/&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
         echo &amp;quot;Tämä skripti suoritetaan juurihakemistossa&amp;quot;;&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Skripti suoritetaan hakemistossa $PWD&amp;quot;;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Tässä käytetään vertailuoperaattoria =, joka on tosi, jos merkkijonot ovat samat. Muita vertailuoperaattoreita ovat&lt;br /&gt;
{|&amp;lt;!--taulukon määrite--&amp;gt; {{siistitaulukko}}&lt;br /&gt;
|-&lt;br /&gt;
! Operaattori&lt;br /&gt;
! Kuvaus&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- taulukko alkaa tästä --&amp;gt;&lt;br /&gt;
| -n || Pituus ei ole 0&lt;br /&gt;
|- &lt;br /&gt;
| -z || Pituus on 0&lt;br /&gt;
|- &lt;br /&gt;
| -d || Hakemisto on olemassa&lt;br /&gt;
|- &lt;br /&gt;
| -f || Tavallinen tiedosto on olemassa&lt;br /&gt;
|- &lt;br /&gt;
| -r || Onko tiedostoon lukuoikeus&lt;br /&gt;
|-&lt;br /&gt;
| -w || Onko tiedostoon kirjoitusoikeus&lt;br /&gt;
|-&lt;br /&gt;
| -x || Onko tiedostoon ajo-oikeus&lt;br /&gt;
|-&lt;br /&gt;
| -eq || Kokonaisluvut ovat yhtäsuuret (a = b)&lt;br /&gt;
|- &lt;br /&gt;
| -ne || Kokonaisluvut eivät ole yhtä suuret (a != b)&lt;br /&gt;
|- &lt;br /&gt;
| = || Merkkijonot ovat samat (myös ==)&lt;br /&gt;
|- &lt;br /&gt;
| != || Merkkijonot eivät ole samat&lt;br /&gt;
|- &lt;br /&gt;
| -lt || Kokonaisluku on pienempi kuin toinen&lt;br /&gt;
|- &lt;br /&gt;
| -gt || Kokonaisluku on suurempi kuin toinen (a &amp;gt; b)&lt;br /&gt;
|- &lt;br /&gt;
| -le || Kokonaisluku on pienempi tai yhtäsuuri kuin toinen (a &amp;lt;= b)&lt;br /&gt;
|- &lt;br /&gt;
| -ge || Kokonaisluku on suurempi tai yhtäsuuri kuin toinen (a &amp;gt;= b)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Esimerkiksi seuraavat ehdot ovat tosia&lt;br /&gt;
 [ 2 -lt 5 ]&lt;br /&gt;
 [ &amp;quot;moi&amp;quot; != &amp;quot;linux&amp;quot; ]&lt;br /&gt;
 [ 54 -ge 53 ]&lt;br /&gt;
 [ -f &amp;quot;/etc/fstab&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
== Silmukat ==&lt;br /&gt;
=== For ===&lt;br /&gt;
For-silmukka on näppärä monessa tapauksessa, tässä esimerkkinä hakemiston kaikkien tiedostojen läpikäynti.&lt;br /&gt;
&lt;br /&gt;
 for muuttuja in `ls` &lt;br /&gt;
 do&lt;br /&gt;
   echo $muuttuja&lt;br /&gt;
 done&lt;br /&gt;
Silmukassa suoritettavat rivit laitetaan siis sanojen &amp;lt;tt&amp;gt;do&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;done&amp;lt;/tt&amp;gt; väliin. Laskurimuuttujaan sijoitetaan vuorotellen &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt;:n jälkeen olevat sanat, esimerkiksi tässä tapauksessa konennon [[ls]] tuloste (eli hakemistossa olevien tiedostojen nimet). Ohjelman tuloste voidaan merkitä myös seuraavasti: &amp;lt;tt&amp;gt;$(komento)&amp;lt;/tt&amp;gt;. Jos silmukalla on käytävä läpi kaikki kokonaisluvut tietyltä väliltä, voi käyttää komentoa [[seq]], joka tulostaa kokonaisluvut väliltä 1-annettu parametri. Esimerkiksi&lt;br /&gt;
 echo &amp;quot;Lasketaan kymmeneen:&amp;quot;&lt;br /&gt;
 for luku in $(seq 10)&lt;br /&gt;
 do&lt;br /&gt;
  echo $luku&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Läpi käytävä joukko voidaan merkitä myös syntaksilla &amp;lt;tt&amp;gt;{alku..loppu}&amp;lt;/tt&amp;gt;. Jos esimerkiksi halutaan käydä läpi kaikki merkit c-o, kokeile vaikka kirjoittaa&lt;br /&gt;
 for muuttuja in {c..o}; { echo -n &amp;quot;$muuttuja &amp;quot;; sleep 1;}&lt;br /&gt;
=== While ===&lt;br /&gt;
While suorittaa lausekkeita niin kauan kunnes ehto on epätosi. Kun ehto on epätosi poistutaan loopista joilloin skriptin suoritus jatkuu seuraavalta loogiselta riviltä (while-lausekkeen jälkseiseltä riviltä).&lt;br /&gt;
 while [ ehto ]&lt;br /&gt;
 do&lt;br /&gt;
  lauseita&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Esimerkki:&lt;br /&gt;
 while [ -f &amp;quot;testi&amp;quot; ]&lt;br /&gt;
 do&lt;br /&gt;
  echo &amp;quot;Tiedosto on olemassa.&amp;quot;&lt;br /&gt;
  [[sleep]] 1&lt;br /&gt;
 done&lt;br /&gt;
Edellä oleva skripti tarkistaa, onko samassa hakemistossa oleva tiedosto &amp;lt;tt&amp;gt;testi&amp;lt;/tt&amp;gt; olemassa. Tätä jatketaan niin kauan kunnes tiedostoa ei enää ole. &lt;br /&gt;
=== Until ===&lt;br /&gt;
Until on while:n vastakohta. Until-lauseke jatkaa suoritusta niin kauan kunnes ehto on tosi. &lt;br /&gt;
 until [ ehto ]&lt;br /&gt;
 do&lt;br /&gt;
  lauseita&lt;br /&gt;
 done&lt;br /&gt;
== Funktiot ==&lt;br /&gt;
Kuten &amp;quot;oikeissa&amp;quot; ohjelmointikielissä, myös bash-skripteissä on mahdollista käyttää funktioita seuraavalla tavalla&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
function Käyttis {&lt;br /&gt;
        os=&amp;quot;Linux&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
os=&amp;quot;Windows&amp;quot;&lt;br /&gt;
#Kutsutaan funktiota&lt;br /&gt;
Funktio&lt;br /&gt;
echo $os&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tulostaisi &amp;quot;Linux&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funktio määritellään siis syntaksilla&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function Funktio {&lt;br /&gt;
 #koodi&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jos halutaan skriptin toimivan myös [[Sh]]-komentotulkkia käytettäessä, funktion kanssa on käytettävä syntaksia&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Funktio() { ... }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jos muuttujia ei funktiossa erikseen määritellä yksityisiksi, ne ovat julkisia. Eli kun esimerkkiskriptissämme muutimme muuttujan $os arvoa funktiossa, tämä muutos näkyi myös funktion ulkopuolella. Muuttuja voidaan määritellä yksityiseksi avainsanalla &amp;lt;tt&amp;gt;local&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
function Käyttis {&lt;br /&gt;
        local os        # os paikallinen muuttuja&lt;br /&gt;
        os=&amp;quot;Gentoo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
os=&amp;quot;Debian&amp;quot;&lt;br /&gt;
#Kutsutaan funktiota&lt;br /&gt;
Käyttis&lt;br /&gt;
echo $os&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tulostaisi &amp;quot;Debian&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Vinkkejä ==&lt;br /&gt;
=== Joukot ===&lt;br /&gt;
Käytimme jo aiemmin merkintätapaa &amp;lt;tt&amp;gt;{1..4}&amp;lt;/tt&amp;gt; merkitsemään joukkoa, johon kuuluu kaikki välin merkit (esimerkissä 1,2,3,4). Tämä ominaisuus on kuitenkin monipuolisempi. Esimerkiksi jos haluamme luoda Matille, Martalle ja Mikolle työ- ja kotihakemistot, voisimme kirjoittaa lyhyesti näin&lt;br /&gt;
 mkdir {ma{ti,rta},jorma}n_{työ,koti}hakemisto&lt;br /&gt;
Jolloin luotaisiin hakemistot matin_työhakemisto, matin_kotihakemisto, martan_työhakemisto, martan_kotihakemisto, jorman_työhakemisto ja jorman_kotihakemisto.&lt;br /&gt;
&lt;br /&gt;
Puretaanpa hieman tuota komentoa. &amp;lt;tt&amp;gt;ma{ti,rta}&amp;lt;/tt&amp;gt; tuottaa sanat mati ja marta. Kun joukon merkinnän ulkopuolella on n, liitetään jokaisen joukon sisällä olevan alkion perään n, jolloin alaviivaa edellä oleva osuus tuottaa sanat matin, martan ja jorman. Jälkimmäinen osuus toimii samalla tavalla, sanojen työ ja koti perään liitetään sana hakemisto. Näin saamme lyhyellä komennolla aikaan paljon.&lt;br /&gt;
&lt;br /&gt;
Tässä huomataan myös, että komentoja voi käyttää aivan normaalien [[Komentorivikomennot|komentoriviohjelmien]] kanssa, sillä bash käsittelee syötteen, ja suorittaa skriptit antaen ohjelmalle syötteenä skriptin tulosteen.&lt;br /&gt;
&lt;br /&gt;
=== Hyödyllisiä ohjelmia ===&lt;br /&gt;
Unixin filosofian mukaisesti Linuxissa on lukuisia ohjelmia, jotka hoitavat jonkin yksittäisen tehtävän ja tekevät sen hyvin. Näitä pikkuohjelmia käytetäänkin usein skripteissä hoitamaan erilaisia tehtäviä.&lt;br /&gt;
&lt;br /&gt;
Kaikista Linux-järjestelmistä löytyviä ohjelmia on listattu luokkaan [[:Luokka:Komentorivin perustyökalut|Komentorivin perustyökalut]]. Näitä ohjelmia kannattaa selailla. Komentoriviohjelmia on listattu käyttötarkoituksen mukaan myös artikkelissa [[komentorivikomennot]]&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Komentorivin perusteet]]&lt;br /&gt;
*[[Komentorivivinkkejä]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[http://tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide] - laaja englanninkielinen opas bash-skriptaukseen&lt;br /&gt;
*[http://www.panix.com/~elflord/unix/bash-tute.html Pikaopas bash-skriptaukseen] (englanniksi)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivi]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Bash-skriptaus&amp;diff=17018</id>
		<title>Bash-skriptaus</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Bash-skriptaus&amp;diff=17018"/>
		<updated>2007-09-19T11:55:25Z</updated>

		<summary type="html">&lt;p&gt;Trilog: Lisäsin whilen ja untilin, sekä pari operaattoria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komentorivi on jo yksinään [[Komentorivin perusteet|monipuolinen]] työkalu, mutta skriptien avulla on mahdollista toteuttaa huomattavasti monipuolisempia prosesseja pienellä vaivalla. Tässä oppaassa käsitellään skriptien kirjoittamista [[bash]]-[[komentotulkki|komentotulkille]].&lt;br /&gt;
&lt;br /&gt;
== Alkuun ==&lt;br /&gt;
Skripti aloitetaan rivillä&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
Joka kertoo, että skripti suoritetaan käyttäen bashia riippumatta siitä, mitä komentotulkkia käyttäjä käyttää ajaessaan skriptin. Huomaa, että vaikka rivi alkaa #-merkillä, se ei ole kommentti. Muualla skriptissä #:llä alkavat rivit ovat kommentteja, eikä niitä huomioida.&lt;br /&gt;
&lt;br /&gt;
Skriptejä ei kuitenkaan ole pakko kirjoittaa erilliseen tiedostoon, vaan ne voi kirjoittaa myös suoraan komentoriville. Tällöin eri komentojen väliin laitetaan erottimeksi puolipiste (;).&lt;br /&gt;
&lt;br /&gt;
=== Ensimmäinen skripti ===&lt;br /&gt;
Tehdään aluksi yksinkertainen skripti, joka esittelee muutamia perustoimintoja:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;Hei, `whoami`, mitä kuuluu&amp;quot;&lt;br /&gt;
 echo &amp;quot;Olet hakemistossa $PWD, tiedostolistaus:&amp;quot;&lt;br /&gt;
 ls&lt;br /&gt;
Kuten huomaat, skripteissä käytetään tavallisia komentorivikomentoja, jotka sitten suoritetaan järjestyksessä. Toisaalta kuten myöhemmin huomaamme, skriptit tarjoavat paljon enemmän mahdollisuuksia kuin pelkkä komentojen näpyttely konsoliin.&lt;br /&gt;
&lt;br /&gt;
Tallenna skripti vaikka nimellä &amp;lt;tt&amp;gt;eka.sh&amp;lt;/tt&amp;gt; (sh-päätettä käytetään yleensä skriptien kanssa), anna sille [[chmod|suoritusoikeudet]] ja aja skripti, jolloin tulostus on suunnilleen seuraavanlainen:&lt;br /&gt;
 Hei, käyttäjä, mitä kuuluu&lt;br /&gt;
 Olet hakemistossa /home/kayttaja/ohjelmointi/skriptit, tiedostolistaus:&lt;br /&gt;
 eka.sh&lt;br /&gt;
Esimerkistä nähdään heti muutama perusasia. Ensinnäkin toisella rivillä käytetään ohjelmaa [[whoami]], joka tulostaa käyttäjänimen. Kun ohjelma on `-merkkein välissä, kyseiseen kohtaan &amp;quot;kopioidaan&amp;quot; ajetun ohjelman tuloste.&lt;br /&gt;
&lt;br /&gt;
Toisella rivillä käytetään muuttujaa. Muuttujien edessä on dollarimerkki ($), ja niitä voidaan tunkea vaikka merkkijonojen (jotka erotetaan lainausmerkillä) sisälle. Muuttujia käsitellään tarkemmin myöhemmin. Esimerkissä käyttämämme muuttuja &amp;lt;tt&amp;gt;$PWD&amp;lt;/tt&amp;gt; on [[ympäristömuuttuja]], jonka arvona on aina se hakemisto, jossa käyttäjä on. Voit kokeilla tätä esimerkiksi kirjoittamalla komentoriville komennon &amp;lt;tt&amp;gt;echo $PWD&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Viimeisellä rivillä ajetaan normaalisti komentoriviohjelma [[ls]]. Voit myös kokeilla korvata tämän rivin rivillä&lt;br /&gt;
 echo &amp;quot;`ls`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Skrpti voitaisiin myös kirjoittaa suoraan komentoriville muodossa&lt;br /&gt;
 echo &amp;quot;Hei, `whoami`, mitä kuuluu&amp;quot;; echo &amp;quot;Olet hakemistossa $PWD, tiedostolistaus:&amp;quot;; ls;&lt;br /&gt;
&lt;br /&gt;
== Muuttujat ==&lt;br /&gt;
Muuttujat määritellään syntaksilla&lt;br /&gt;
 nimi=arvo&lt;br /&gt;
ja niihin viitataan laittamalla muuttujan eteen $&lt;br /&gt;
 $nimi&lt;br /&gt;
Tapauksia, joissa käyttäjän tarkoittama muuttuja on epäselvä, tulee käyttää aaltosulkuja muuttujan ympärillä&lt;br /&gt;
 ${foo}bar&lt;br /&gt;
kun halutaan tulostaa teksti &amp;lt;tt&amp;gt;bar&amp;lt;/tt&amp;gt; muuttujan &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; jälkeen.&lt;br /&gt;
&lt;br /&gt;
Ensimmäisen skriptimme tapauksessa käytimme jo ympäristömuuttujaa $PWD echo:n kanssa. Tehdäänpä samantyyppinen skripti nyt käyttäen itse määrittelemäämme muuttujaa:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 HEI=&amp;quot;Hei, `whoami`, mitä kuuluu?&amp;quot;&lt;br /&gt;
 echo $HEI&lt;br /&gt;
Kuten huomaat, kun muuttujaan sijoitetaan arvo, voidaan käyttää samoja &amp;quot;kikkoja&amp;quot; kuin muuallakin skriptissä, esimerkiksi tässä tapauksessa sijoitamme muuttujaan merkkijonon jonka sisällä on ohjelman &amp;lt;tt&amp;gt;whoami&amp;lt;/tt&amp;gt; tuloste.&lt;br /&gt;
&lt;br /&gt;
Huomaa, että yhtäsuuruusmerkin on oltava kiinni muuttujan nimessä ja arvossa, eli seuraavat muodot eivät käy:&lt;br /&gt;
 MUUTTUJA = &amp;quot;terve vaan&amp;quot;&lt;br /&gt;
 MUUTTUJA= &amp;quot;moi&amp;quot;&lt;br /&gt;
 MUUTTUJA =&amp;quot;moi&amp;quot;&lt;br /&gt;
Lisäksi muuttujaan sijoitettavan arvon on oltava lainausmerkkien sisällä, jos siihen kuuluu välilyönti. Yksittäisen sanan tai numeron voi sijoittaa ilman lainausmerkkejä:&lt;br /&gt;
 numero=43&lt;br /&gt;
&lt;br /&gt;
== Ehtolauseet ==&lt;br /&gt;
Ehdollisia rakenteita luodaan bashille if, then, else ja fi -avainsanoilla. Rakenteen syntaksi on seuraava:&lt;br /&gt;
 if [ ehto ]&lt;br /&gt;
 then&lt;br /&gt;
    lauseita&lt;br /&gt;
 elif [ toinen ehto ]&lt;br /&gt;
    lauseita&lt;br /&gt;
 else&lt;br /&gt;
    muita lauseita&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Ehdot merkitään hakasulkeiden sisään esimerkiksi seuraavalla tavalla&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 if [ $PWD = &amp;quot;/&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
         echo &amp;quot;Tämä skripti suoritetaan juurihakemistossa&amp;quot;;&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Skripti suoritetaan hakemistossa $PWD&amp;quot;;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Tässä käytetään vertailuoperaattoria =, joka on tosi, jos merkkijonot ovat samat. Muita vertailuoperaattoreita ovat&lt;br /&gt;
{|&amp;lt;!--taulukon määrite--&amp;gt; {{siistitaulukko}}&lt;br /&gt;
|-&lt;br /&gt;
! Operaattori&lt;br /&gt;
! Kuvaus&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- taulukko alkaa tästä --&amp;gt;&lt;br /&gt;
| -n || Pituus ei ole 0&lt;br /&gt;
|- &lt;br /&gt;
| -z || Pituus on 0&lt;br /&gt;
|- &lt;br /&gt;
| -d || Hakemisto on olemassa&lt;br /&gt;
|- &lt;br /&gt;
| -f || Tavallinen tiedosto on olemassa&lt;br /&gt;
|- &lt;br /&gt;
| -r || Onko tiedostoon lukuoikeus&lt;br /&gt;
|-&lt;br /&gt;
| -w || Onko tiedostoon kirjoitusoikeus&lt;br /&gt;
|-&lt;br /&gt;
| -x || Onko tiedostoon ajo-oikeus&lt;br /&gt;
|-&lt;br /&gt;
| -eq || Kokonaisluvut ovat yhtäsuuret (a = b)&lt;br /&gt;
|- &lt;br /&gt;
| -ne || Kokonaisluvut eivät ole yhtä suuret (a != b)&lt;br /&gt;
|- &lt;br /&gt;
| = || Merkkijonot ovat samat (myös ==)&lt;br /&gt;
|- &lt;br /&gt;
| != || Merkkijonot eivät ole samat&lt;br /&gt;
|- &lt;br /&gt;
| -lt || Kokonaisluku on pienempi kuin toinen&lt;br /&gt;
|- &lt;br /&gt;
| -gt || Kokonaisluku on suurempi kuin toinen (a &amp;gt; b)&lt;br /&gt;
|- &lt;br /&gt;
| -le || Kokonaisluku on pienempi tai yhtäsuuri kuin toinen (a &amp;lt;= b)&lt;br /&gt;
|- &lt;br /&gt;
| -ge || Kokonaisluku on suurempi tai yhtäsuuri kuin toinen (a &amp;gt;= b)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Esimerkiksi seuraavat ehdot ovat tosia&lt;br /&gt;
 [ 2 -lt 5 ]&lt;br /&gt;
 [ &amp;quot;moi&amp;quot; != &amp;quot;linux&amp;quot; ]&lt;br /&gt;
 [ 54 -ge 53 ]&lt;br /&gt;
 [ -f &amp;quot;/etc/fstab&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
== Silmukat ==&lt;br /&gt;
=== For ===&lt;br /&gt;
For-silmukka on näppärä monessa tapauksessa, tässä esimerkkinä hakemiston kaikkien tiedostojen läpikäynti.&lt;br /&gt;
&lt;br /&gt;
 for muuttuja in `ls` &lt;br /&gt;
 do&lt;br /&gt;
   echo $muuttuja&lt;br /&gt;
 done&lt;br /&gt;
Silmukassa suoritettavat rivit laitetaan siis sanojen &amp;lt;tt&amp;gt;do&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;done&amp;lt;/tt&amp;gt; väliin. Laskurimuuttujaan sijoitetaan vuorotellen &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt;:n jälkeen olevat sanat, esimerkiksi tässä tapauksessa konennon [[ls]] tuloste (eli hakemistossa olevien tiedostojen nimet). Ohjelman tuloste voidaan merkitä myös seuraavasti: &amp;lt;tt&amp;gt;$(komento)&amp;lt;/tt&amp;gt;. Jos silmukalla on käytävä läpi kaikki kokonaisluvut tietyltä väliltä, voi käyttää komentoa [[seq]], joka tulostaa kokonaisluvut väliltä 1-annettu parametri. Esimerkiksi&lt;br /&gt;
 echo &amp;quot;Lasketaan kymmeneen:&amp;quot;&lt;br /&gt;
 for luku in $(seq 10)&lt;br /&gt;
 do&lt;br /&gt;
  echo $luku&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Läpi käytävä joukko voidaan merkitä myös syntaksilla &amp;lt;tt&amp;gt;{alku..loppu}&amp;lt;/tt&amp;gt;. Jos esimerkiksi halutaan käydä läpi kaikki merkit c-o, kokeile vaikka kirjoittaa&lt;br /&gt;
 for muuttuja in {c..o}; { echo -n &amp;quot;$muuttuja &amp;quot;; sleep 1;}&lt;br /&gt;
=== While ===&lt;br /&gt;
While suorittaa lausekkeita niin kauan kunnes ehto on tosi. Kun ehto on epätosi poistutaan loopista joilloin skriptin suoritus jatkuu seuraavalta loogiselta riviltä (while-lausekkeen jälkseiseltä riviltä).&lt;br /&gt;
 while [ ehto ]&lt;br /&gt;
 do&lt;br /&gt;
  lauseita&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Esimerkki:&lt;br /&gt;
 while [ -f &amp;quot;testi&amp;quot; ]&lt;br /&gt;
 do&lt;br /&gt;
  echo &amp;quot;Tiedosto on olemassa.&amp;quot;&lt;br /&gt;
  [[sleep]] 1&lt;br /&gt;
 done&lt;br /&gt;
Edellä oleva skripti tarkistaa, onko samassa hakemistossa oleva tiedosto &amp;lt;tt&amp;gt;testi&amp;lt;/tt&amp;gt; olemassa. Tätä jatketaan niin kauan kunnes tiedostoa ei enää ole. &lt;br /&gt;
=== Until ===&lt;br /&gt;
Until on while:n vastakohta. Until-lauseke jatkaa suoritusta niin kauan kunnes ehto on tosi. &lt;br /&gt;
 until [ ehto ]&lt;br /&gt;
 do&lt;br /&gt;
  lauseita&lt;br /&gt;
 done&lt;br /&gt;
== Funktiot ==&lt;br /&gt;
Kuten &amp;quot;oikeissa&amp;quot; ohjelmointikielissä, myös bash-skripteissä on mahdollista käyttää funktioita seuraavalla tavalla&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
function Käyttis {&lt;br /&gt;
        os=&amp;quot;Linux&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
os=&amp;quot;Windows&amp;quot;&lt;br /&gt;
#Kutsutaan funktiota&lt;br /&gt;
Funktio&lt;br /&gt;
echo $os&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tulostaisi &amp;quot;Linux&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funktio määritellään siis syntaksilla&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function Funktio {&lt;br /&gt;
 #koodi&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jos halutaan skriptin toimivan myös [[Sh]]-komentotulkkia käytettäessä, funktion kanssa on käytettävä syntaksia&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Funktio() { ... }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jos muuttujia ei funktiossa erikseen määritellä yksityisiksi, ne ovat julkisia. Eli kun esimerkkiskriptissämme muutimme muuttujan $os arvoa funktiossa, tämä muutos näkyi myös funktion ulkopuolella. Muuttuja voidaan määritellä yksityiseksi avainsanalla &amp;lt;tt&amp;gt;local&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
function Käyttis {&lt;br /&gt;
        local os        # os paikallinen muuttuja&lt;br /&gt;
        os=&amp;quot;Gentoo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
os=&amp;quot;Debian&amp;quot;&lt;br /&gt;
#Kutsutaan funktiota&lt;br /&gt;
Käyttis&lt;br /&gt;
echo $os&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tulostaisi &amp;quot;Debian&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Vinkkejä ==&lt;br /&gt;
=== Joukot ===&lt;br /&gt;
Käytimme jo aiemmin merkintätapaa &amp;lt;tt&amp;gt;{1..4}&amp;lt;/tt&amp;gt; merkitsemään joukkoa, johon kuuluu kaikki välin merkit (esimerkissä 1,2,3,4). Tämä ominaisuus on kuitenkin monipuolisempi. Esimerkiksi jos haluamme luoda Matille, Martalle ja Mikolle työ- ja kotihakemistot, voisimme kirjoittaa lyhyesti näin&lt;br /&gt;
 mkdir {ma{ti,rta},jorma}n_{työ,koti}hakemisto&lt;br /&gt;
Jolloin luotaisiin hakemistot matin_työhakemisto, matin_kotihakemisto, martan_työhakemisto, martan_kotihakemisto, jorman_työhakemisto ja jorman_kotihakemisto.&lt;br /&gt;
&lt;br /&gt;
Puretaanpa hieman tuota komentoa. &amp;lt;tt&amp;gt;ma{ti,rta}&amp;lt;/tt&amp;gt; tuottaa sanat mati ja marta. Kun joukon merkinnän ulkopuolella on n, liitetään jokaisen joukon sisällä olevan alkion perään n, jolloin alaviivaa edellä oleva osuus tuottaa sanat matin, martan ja jorman. Jälkimmäinen osuus toimii samalla tavalla, sanojen työ ja koti perään liitetään sana hakemisto. Näin saamme lyhyellä komennolla aikaan paljon.&lt;br /&gt;
&lt;br /&gt;
Tässä huomataan myös, että komentoja voi käyttää aivan normaalien [[Komentorivikomennot|komentoriviohjelmien]] kanssa, sillä bash käsittelee syötteen, ja suorittaa skriptit antaen ohjelmalle syötteenä skriptin tulosteen.&lt;br /&gt;
&lt;br /&gt;
=== Hyödyllisiä ohjelmia ===&lt;br /&gt;
Unixin filosofian mukaisesti Linuxissa on lukuisia ohjelmia, jotka hoitavat jonkin yksittäisen tehtävän ja tekevät sen hyvin. Näitä pikkuohjelmia käytetäänkin usein skripteissä hoitamaan erilaisia tehtäviä.&lt;br /&gt;
&lt;br /&gt;
Kaikista Linux-järjestelmistä löytyviä ohjelmia on listattu luokkaan [[:Luokka:Komentorivin perustyökalut|Komentorivin perustyökalut]]. Näitä ohjelmia kannattaa selailla. Komentoriviohjelmia on listattu käyttötarkoituksen mukaan myös artikkelissa [[komentorivikomennot]]&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Komentorivin perusteet]]&lt;br /&gt;
*[[Komentorivivinkkejä]]&lt;br /&gt;
&lt;br /&gt;
== Linkkejä ==&lt;br /&gt;
*[http://tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide] - laaja englanninkielinen opas bash-skriptaukseen&lt;br /&gt;
*[http://www.panix.com/~elflord/unix/bash-tute.html Pikaopas bash-skriptaukseen] (englanniksi)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivi]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Thunar&amp;diff=16832</id>
		<title>Thunar</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Thunar&amp;diff=16832"/>
		<updated>2007-08-31T14:19:19Z</updated>

		<summary type="html">&lt;p&gt;Trilog: Luokka ja kuva&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kuva:Thunar_fm.png|200px|right|thumb|Thunar näyttämässä hakemiston /usr tiedostolistauksen.]]&lt;br /&gt;
&#039;&#039;&#039;Thunar&#039;&#039;&#039; on moderni tiedostoselain [[Xfce]]-työpöytäympäristöön. Thunarin kehityksessä on painoitettu nopeuteen ja helppokäyttöisyyteen. Käyttöliittymä on yksinkertainen ja intuitiivinen.&lt;br /&gt;
&lt;br /&gt;
Thunarissa on kaikki perustiedostoselaimen ominaisuudet, mutta siinä on myös liitännäisiä, jotka luovat etumatkaa muihin tiedostoselaimiin nähden.&lt;br /&gt;
&lt;br /&gt;
== Liitännäiset ==&lt;br /&gt;
* Lisäominaisuudet (thunar-apr)&lt;br /&gt;
* Paketinhallinta (thunar-archive-plugin)&lt;br /&gt;
* Mediatagit (thunar-media-tags-plugin)&lt;br /&gt;
* Uudelleennimeäjä (thunar-sbr)&lt;br /&gt;
* Peukalonkynsien eli esikatselukuvien luoja (thunar-thumbnailers)&lt;br /&gt;
* Käyttäjän omat mukautetut toiminnot (thunar-uca)&lt;br /&gt;
&lt;br /&gt;
== Linkkejä ==&lt;br /&gt;
* [http://thunar.xfce.org/ Thunarin kotisivu]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tiedostonhallinta]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tiedosto:Thunar_fm.png&amp;diff=16831</id>
		<title>Tiedosto:Thunar fm.png</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tiedosto:Thunar_fm.png&amp;diff=16831"/>
		<updated>2007-08-31T14:18:35Z</updated>

		<summary type="html">&lt;p&gt;Trilog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Thunar&amp;diff=16830</id>
		<title>Thunar</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Thunar&amp;diff=16830"/>
		<updated>2007-08-31T14:10:01Z</updated>

		<summary type="html">&lt;p&gt;Trilog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Thunar&#039;&#039;&#039; on moderni tiedostoselain [[Xfce]]-työpöytäympäristöön. Thunarin kehityksessä on painoitettu nopeuteen ja helppokäyttöisyyteen. Käyttöliittymä on yksinkertainen ja intuitiivinen.&lt;br /&gt;
&lt;br /&gt;
Thunarissa on kaikki perustiedostoselaimen ominaisuudet, mutta siinä on myös liitännäisiä, jotka luovat etumatkaa muihin tiedostoselaimiin nähden.&lt;br /&gt;
&lt;br /&gt;
== Liitännäiset ==&lt;br /&gt;
* Lisäominaisuudet (thunar-apr)&lt;br /&gt;
* Paketinhallinta (thunar-archive-plugin)&lt;br /&gt;
* Mediatagit (thunar-media-tags-plugin)&lt;br /&gt;
* Uudelleennimeäjä (thunar-sbr)&lt;br /&gt;
* Peukalonkynsien eli esikatselukuvien luoja (thunar-thumbnailers)&lt;br /&gt;
* Käyttäjän omat mukautetut toiminnot (thunar-uca)&lt;br /&gt;
&lt;br /&gt;
== Linkkejä ==&lt;br /&gt;
* [http://thunar.xfce.org/ Thunarin kotisivu]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=FireStarter&amp;diff=16244</id>
		<title>FireStarter</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=FireStarter&amp;diff=16244"/>
		<updated>2007-08-01T08:50:38Z</updated>

		<summary type="html">&lt;p&gt;Trilog: Ominaisuudet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firestarter on [[X]]:ssä ajettava helppokäyttöinen [[palomuuri]]asetusohjelma. Firestarter ei ole mikään erillinen palomuuriohjelma, vaan sillä vain luodaan sääntöjä [[iptables]]-ohjelmalle, jolla hallitaan Linuxin [[ydin|ytimen]] [[Netfilter]]-palomuuritoimintoja.&lt;br /&gt;
&lt;br /&gt;
== Ominaisuudet ==&lt;br /&gt;
*Avoin lähdekoodi -ohjelma, joten kuka tahansa voi kehittää sitä&lt;br /&gt;
*Käyttäjäystävällinen, helppokäyttöinen, [[GUI]]&lt;br /&gt;
*Asennusvelho, joka opastaa asetusten läpi&lt;br /&gt;
*Sopii työpöytiin ja palvelimiin&lt;br /&gt;
*Aktiivinen seuranta kun palomuuriin otetaan yhteyksiä&lt;br /&gt;
*Internetyhteyksien jako, valinnaisesti [[DHCP]] -palvelulla asiakaskoneisiin&lt;br /&gt;
*Mahdollisuus määrittää asetukset sisä- ja ulkoliikenteelle&lt;br /&gt;
*Porttien avaus muutamalla klikkauksella&lt;br /&gt;
*Mahdollistaa porttiohjauksen paikalliselle verkolle&lt;br /&gt;
*Asetus valko- ja mustalistalle&lt;br /&gt;
*Seuranta aktiivisille yhteyksille, mukaan lukien kaikki liikenne joka kulkee [[palomuuri]]n läpi&lt;br /&gt;
*Linux [[ydin|ytimen]] mahdollistamat suojaukset floodaukselle, broadcastingille ja mainonnalle&lt;br /&gt;
*Suoja DoS -tyyppisiä hyökkäyksiä vastaan&lt;br /&gt;
*Tukee ToS parametreja parantaakseen palveluja asiakaskoneille&lt;br /&gt;
*Mahdollisuus ajaa käyttäjän määrittämiä skriptejä tai sääntölista kun palomuuri aktivoituu&lt;br /&gt;
*Tukee Linux [[ydin|ytimiä]] 2.4 ja 2.6&lt;br /&gt;
*Käännetty monelle eri kielelle (38 kieltä marraskuussa 2004)&lt;br /&gt;
&lt;br /&gt;
== Linkkejä ==&lt;br /&gt;
*[http://www.fs-security.com Firestarterin kotisivu]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=FireStarter&amp;diff=16240</id>
		<title>FireStarter</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=FireStarter&amp;diff=16240"/>
		<updated>2007-07-31T08:51:29Z</updated>

		<summary type="html">&lt;p&gt;Trilog: Hieman tarkennusta&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firestarter on X-[[työpöytäympäristö]]ssä ajettava helppokäyttöinen [[palomuuri]]ohjelmisto. Firestarter ei ole mikään erillinen [[palomuuri]]ohjelma, vaan se on [[GUI|graafinen]] muokkain [[iptables]] -ohjelmalle. Se siis luo [[iptables]] -säännöt graafisesti. &lt;br /&gt;
&lt;br /&gt;
== Linkkejä ==&lt;br /&gt;
*[http://www.fs-security.com Firestarter Ohjelmiston kotisivu]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Trilog&amp;diff=16132</id>
		<title>Käyttäjä:Trilog</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Trilog&amp;diff=16132"/>
		<updated>2007-07-10T22:26:54Z</updated>

		<summary type="html">&lt;p&gt;Trilog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;trilog @ qnet &amp;amp; ircnet&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=DC%2B%2B:n_asennusohje&amp;diff=16131</id>
		<title>DC++:n asennusohje</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=DC%2B%2B:n_asennusohje&amp;diff=16131"/>
		<updated>2007-07-10T21:03:44Z</updated>

		<summary type="html">&lt;p&gt;Trilog: Gentoon lisääminen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tämä ohje toimii suoraan [[Debian]]issa ja siihen pohjautuvissa jakeluissa (esim. [[Ubuntu]]). Muissa jakeluissa ohjetta joutuu ehkä soveltamaan! &lt;br /&gt;
&lt;br /&gt;
Monilla on ollut ongelmia DCgui-qt/Valknutin kanssa, vaikka sen sanotaankin olevan Windowsissa yleisesti käytetyn DC++:n klooni. DC++ ei myöskään toimi erityisen hyvin [[Wine|Winellä]]. Muitakaan kunnollisia DirectConnect-asiakasohjelmia ei Linuxille juurikaan ole. Tämä opas perustuu Ubuntun foorumeila olleeseen DC++:n kääntämisohjeeseen. Kääntäminen ei ole vaikea, ja tulos on suunnilleen [http://members.surfeu.fi/stede9/DCpp.jpg tämän] näköinen. &#039;&#039;&#039;Huom!!&#039;&#039;&#039; Lähdekoodeista kääntäminen ei ole tarpeen Debian Etch:ssä.&lt;br /&gt;
&lt;br /&gt;
== Asentaminen ==&lt;br /&gt;
&lt;br /&gt;
===Debian ===&lt;br /&gt;
Linuxdcpp löytyy valmiina asennuskelpoisena pakettina [[Debian]] Etch:n virallisesta pakettilähteistä. Se voidaan asentaa siis yksinkertaisesti komennolla:&lt;br /&gt;
 [[apt-get]] install linuxdcpp&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{epävirallinen pakettilähde}}&lt;br /&gt;
[[Ubuntu]]lle on saatavissa epävirallinen [[deb]]-paketti, joka voidaan asentaa seuraavasti:&lt;br /&gt;
 [[sudo]] apt-get install libglade2-0 libbz2-1.0 libssl0.9.8     (paketin riippuvuudet)&lt;br /&gt;
 [[wget]] &amp;lt;nowiki&amp;gt;http://mbnet.fi/heikki_m/deb/linuxdcpp/linuxdcpp_0.00cvs20070425-0ubuntu1_i386.deb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 [[dpkg]] -i linuxdcpp_0.00cvs20070425-0ubuntu1_i386.deb&lt;br /&gt;
&lt;br /&gt;
Jonka jälkeen ohjelma käynnistyy komennolla linuxdcpp&lt;br /&gt;
&lt;br /&gt;
===Arch Linux ===&lt;br /&gt;
Linuxdcpp löytyy valmiina [[Arch Linux]]in [[Unstable]]-pakettilähteestä ja asentuu komennolla:&lt;br /&gt;
 [[pacman]] -Sy linuxdcpp-cvs&lt;br /&gt;
Unstable-pakettilähde voidaan kytkeä päälle poistamalla kommenttimerkki riviltä&lt;br /&gt;
 #Include = /etc/pacman.d/unstable&lt;br /&gt;
Pacmanin [[asetustiedostojen perusteet|asetustiedostosta]] &amp;lt;tt&amp;gt;/etc/pacman.conf&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
Linuxdcpp löytyy valmiina [[Gentoo]]n [[Portage]]sta. Se on tällä hetkellä &amp;quot;[[MASKED-_ja_TESTING-pakettien_k%C3%A4ytt%C3%A4minen_Gentoossa|Masked]] by keyword&amp;quot;.&lt;br /&gt;
 [[emerge]] -av linuxdcpp&lt;br /&gt;
&lt;br /&gt;
=== Lähdekoodeista kääntäminen ===&lt;br /&gt;
&lt;br /&gt;
Pohjatietoa: DC++:aa ei löydy useille Linux-jakeluille suoraan, joten se täytyy [[Kääntäminen|kääntää itse]] lähdekoodista. Tässä ohjeessa se asennetaan hakemistoon &amp;lt;tt&amp;gt;/~linuxdcpp/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ilman paketinhallintaa asennettaessa on varmistuttava tarvittavista riippuvuuksista käsin. Tarvitset linuxdcpp:n kääntämistä varten seuraavat paketit (nimet saattavat vaihdella käyttämäsi [[jakelu]]n mukaan):&lt;br /&gt;
*[[scons]]&lt;br /&gt;
*libgtk2.0-dev&lt;br /&gt;
*libglade2-dev [http://www.zentek-international.com/mirrors/gnome/sources/libglade/2.4/]&lt;br /&gt;
*libbz2-dev&lt;br /&gt;
*libssl-dev&lt;br /&gt;
Sekä tietysti tavalliset käännöstyökälut (mm. [[GCC]]).&lt;br /&gt;
&lt;br /&gt;
Haetaan aluksi ohjelman lähdekoodi sen [[CVS]]-varastosta. Huomaa, että CVS:stä haettu lähdekoodi ei aina toimi. Jos ohjelma ei tunnu toimivan, kokeile hakea lähdekoodi uudestaan vaikka seuraavana päivänä.&lt;br /&gt;
&lt;br /&gt;
Lähdekoodi haetaan komennolla&lt;br /&gt;
 [[cvs]] -d:pserver:anonymous@cvs.linuxdcpp.berlios.de:/cvsroot/linuxdcpp login&lt;br /&gt;
Jätä salasana-kohta tyhjäksi ja paina enter.&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@cvs.linuxdcpp.berlios.de:/cvsroot/linuxdcpp co linuxdcpp&lt;br /&gt;
&lt;br /&gt;
Nyt nykyisestä hakemistostasi pitäisi löytyä hakemisto nimeltä linuxdcpp. Sieltä löytyy ohjelman lähdekoodi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Lataa libglade osoitteesta http://www.zentek-international.com/mirrors/gnome/sources/libglade/2.4/libglade-2.4.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Seuraavaksi käännetään varsinainen DCpp. Mene hakemistoon, jossa sinun linuxdcpp on.&lt;br /&gt;
 cd linuxdcpp&lt;br /&gt;
&lt;br /&gt;
Sitten ajetaan scons, joka kääntää ohjelman&lt;br /&gt;
 scons release=1 PREFIX=/home/tunnuksesi/linuxdcpp&lt;br /&gt;
Jossa &amp;lt;tt&amp;gt;/home/tunnuksesi/linuxdcpp&amp;lt;/tt&amp;gt; on hakemisto, johon haluat linuxdcpp:n asentaa.&lt;br /&gt;
&lt;br /&gt;
Tämän jälkeen linuxdcpp on valmiina käyttöön, ja voit käynnistää sen komennolla ./linuxdcpp&lt;br /&gt;
&lt;br /&gt;
Nyt sinun kannattaa lisätä DCpp ikkunamanagerisi valikkoon. Noin yleispätevänä ohjeena ~/linuxdcpp/linuxdcpp avaa DCpp:n. Esimerkiksi [[Fluxbox]]in valikkoon se saataisiin lisäämällä tiedostoon &amp;lt;tt&amp;gt;/etc/X11/fluxbox/system.fluxbox-menu&amp;lt;/tt&amp;gt; rivi &lt;br /&gt;
 [exec] (DCpp) {/home/erkkimon/linuxdcpp/dcpp}&lt;br /&gt;
&lt;br /&gt;
Voit myös tehdä [[symbolinen linkki|linkin]] ohjelmaasi hakemistoon  &amp;lt;tt&amp;gt;/usr/bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
 [[ln]] -s ~/linuxdcpp/linuxdcpp /usr/bin/linuxdcpp&lt;br /&gt;
&lt;br /&gt;
Tämän jälkeen voit ajaa DCpp:n kuin minkä tahansa muun ohjelman, eli kirjoittamalla komentoriville tavallisena käyttäjänä&lt;br /&gt;
 linuxdcpp&lt;br /&gt;
&lt;br /&gt;
Sitten vain jakamaan Linux-isoja! :P&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;/div&gt;</summary>
		<author><name>Trilog</name></author>
	</entry>
</feed>