Ero sivun ”Valitsin” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(erityyppiset valitsimet, käytännöt)
 
pEi muokkausyhteenvetoa
Merkkaukset: Mobiilimuokkaus mobiilisivusto-muokkaus
 
(5 välissä olevaa versiota 5 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
'''Valitsin''' eli vipu eli optio on [[komentorivi]]llä annettava ohjelman toimintaan vaikuttava lisäohje, joka yleensä kirjoitetaan ennen käsiteltävien tiedostojen nimiä. Tässä esitellään tavallisimpia käytäntöjä.
'''Valitsin''', '''vipu''', '''argumentti''', '''parametri''', '''lippu''' eli '''optio''' on [[komentorivi]]llä annettava ohjelman toimintaan vaikuttava lisäohje, joka yleensä kirjoitetaan ennen mahdollisten käsiteltävien tiedostojen nimiä. Tässä esitellään tavallisimpia käytäntöjä.


Unixin komennot annetaan tavallisimmin tyyliin
== Perusteet ==
komento -a -b -c tiedosto ...
komento -abc tiedosto ...


Toisella komentorivillä valitsimet on yhdistetty yhteen ryhmään.
Unix-pohjaisten käyttöjärjestelmien, kuten Linux-jakeluitten kanssa, komennot annetaan tavallisimmin tyyliin
$ komento -a -b -c tiedosto ...
 
Valitsimet on myös mahdollista listata yhtenäisenä ryhminä.
$ komento -abc tiedosto ...
 
== Antaminen ==
Kaikki ohjelmat eivät aina ota valitsimia.
$ [[true]] '''valitsin'''
'''Paksulla''' merkitty teksti on valitsin. [[true]] ei välitä valitsimista, joita käyttäjä sille antaa, joten sen käyttäytyminen ei muutu.
 
Jotkin ohjelmat eivät tarvitse valitsimia.
$ [[cat]]
cat ottaa muutaman valitsimen, jos se niitä saa, mutta se ei tarvitse niitä toimiakseen. [[GNU]]-versio cat:ista ottaa muun muassa tämän:
$ cat '''--version'''
Tämä tulostaa näytölle versiotiedot.
cat (GNU coreutils) 9.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Kirjoittaneet Torbjorn Granlund ja Richard M. Stallman.


Valitsimet ja niiden käsittely on ohjelmakohtaisia, mutta joitakin valitsimia käytetään usein tiettyihin tarkoituksiin.
Valitsimet ja niiden käsittely on ohjelmakohtaisia, mutta joitakin valitsimia käytetään usein tiettyihin tarkoituksiin.
Jotkin ohjelmat vaativat valitsimia.
$ [[gcc]]
'''gcc: <span style="color: red;">fatal error:</span>''' no input files
compilation terminated.
$ gcc '''ohjelma.c -o ohjelma'''
[ei tulostetta]
Joillain valitsimilla on tarkentajia, jotka annetaan kyseisen valitsimen jälkeen. Yleensä tarkentaja erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat sen kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan tarkentajistaan "="-merkillä. Jos tarkentajia on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä.
valitsin, jolla voi olla tarkentaja, pitää laittaa valitsinryhmän viimeiseksi:
komento -vglo tulostiedosto -d erotin tiedosto ...
Jos haluat käyttää tiedostoa, joka alkaa "-"-merkillä (''"-ihmetiedosto"'') tai jos viimeisellä valitsimella on tarkentaja, jota nyt ei käytetä, valitsimien ja niiden tarkentajien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan [[Standardivirrat|standardivirtoja]].
=== Kuinka selvittää ohjelman valitsimet? ===
Voit tarkistaa valitsimet hakemalla netistä, katsomalla [[man]]-ohjelmalla ja usein valitsimilla ''-h'' tai ''--help''.
=== Yleisiä valitsimia ===
{{Huomautus|Ota huomioon, että kaikki ohjelmat eivät käytä samoja valitsimia samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi valitsimia.}}
  -f "force", "tiedän mitä teen, älä huoli"
  -f "force", "tiedän mitä teen, älä huoli"
  -h "help", lyhyt [[dokumentaatio|ohje]] komennon käytöstä
  -h "help", lyhyt [[dokumentaatio|ohje]] komennon käytöstä
  -v "verbose", enemmän tietoa ohjelman edistymisestä tai tekemisistä suorituksen aikana
  -v "verbose", enemmän tietoa ohjelman edistymisestä tai tekemisistä suorituksen aikana (joissakin ohjelmissa <tt>-v</tt>:n määrittely useampaan kertaan (esimerkiksi <tt>-vvv</tt>) tuottaa vielä tarkempaa tietoa)
  -V "version", ohjelman versio
  -V "version", ohjelman versio
  -o "output", luotava tiedosto ([[GNU]]-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto)
  -o "output", luotava tiedosto ([[GNU]]-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto)
== Erilaisia valitsintyylejä ==


Valitsimilla voi olla parametreja, jotka annetaan kyseisen valitsimen jälkeen. Yleensä parametri erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat parametrin kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan parametreistään "="-merkillä. Jos parametrejä on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä.
Valitsimilla voi olla parametreja, jotka annetaan kyseisen valitsimen jälkeen. Yleensä parametri erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat parametrin kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan parametreistään "="-merkillä. Jos parametrejä on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä.
Rivi 20: Rivi 63:
  komento -vglo tulostiedosto -d erotin tiedosto ...
  komento -vglo tulostiedosto -d erotin tiedosto ...


Jos halutaan käyttää tiedostoa, joka alkaa "-"-merkillä tai jos viimeisellä valitsimella voisi olla parametri, jota nyt ei käytetä, valitsimien ja niiden parametrien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan [[Standardivirrat|standardivirtoja]].
Jos halutaan käyttää tiedostoa, joka alkaa "-"-merkillä (''"-ihmetiedosto"'') tai jos viimeisellä valitsimella voisi olla parametri, jota nyt ei käytetä, valitsimien ja niiden parametrien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan [[Standardivirrat|standardivirtoja]].


  komento -o - -d : -- -ihmetiedosto
  komento -o - -d : -- -ihmetiedosto
  txt2ps -header - tiedosto.txt > tiedosto.ps
  txt2ps -header - tiedosto.txt > tiedosto.ps
[[GNU]]-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen valitsimia ja omia kahdella viivalla alkavia pitkiä valitsimiaan:
-h
--help
-v
--verbose
-V
--version
-o tiedosto
--output=tiedosto


[[BSD]]-perinteessä (?) valitsimien edessä ei käytetä viivoja eikä valitsimia voi jakaa ryhmiin:
[[BSD]]-perinteessä (?) valitsimien edessä ei käytetä viivoja eikä valitsimia voi jakaa ryhmiin:
Rivi 30: Rivi 83:
  [[tar]] xzf kohdetiedosto.tar tiedosto1 tiedosto2 ...
  [[tar]] xzf kohdetiedosto.tar tiedosto1 tiedosto2 ...


[[X Window System|X]]-ohjelmissa käytetän valitsimina lyhenteitä tai kokonaisia sanoja.
[[X Window System|X]]-ohjelmissa käytetään valitsimina lyhenteitä tai kokonaisia sanoja. GNU-standardista poiketen kokonaisina sanoina määriteltäviä valitsimia ei edellä kuin yksi viiva (-).


  -help
  -help
Rivi 37: Rivi 90:
  -bg taustaväri
  -bg taustaväri


[[GNU]]-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen valitsimia ja omia kahdella viivalla alkavia pitkiä valitsimia
Monet ohjelmat käyttävät useamman perinteen mukaisia valitsimia, esimerkiksi jotta ne käyttäytyisivät odotusten mukaisesti riippumatta siitä, mikä perinne on käyttäjälle tutumpi tai minkä perinteen mukaista ohjelmaa skripti on kirjoitettu käyttämään.
  -h
 
  --help
== Ottaminen ==
  -v
=== [[C]] ===
  --verbose
C-kielellä valitsimet menevät pääfunktiolle. Yksi on kokonaisluku ja toinen taulukko merkkijonoista. Näille voi periaatteessa antaa mitkä tahansa nimet, mutta tyypillisesti ne ovat '''argc''' (argument count) ja '''argv''' (argument vector).
  -V
 
  --version
<syntaxhighlight lang="c">
  -o tiedosto
#include <stdio.h>
  --output=tiedosto
 
int main(int argc, char *argv[]) {
//argv sisältää valitsimet, argc kertoo argv:n pituuden
//argv:n ensimmäinen solu sisältää ohjelman nimen
 
printf("Valitsimien lukumäärä on %i\n", argc);
 
for(int i=0; i<argc; ++i)
printf("valitsin no. %i on: %s\n", i, argv[i]);
}
</syntaxhighlight>
Jos käännät tuon ohjelman tiedostoon "valitsinotto", nämä tulostukset syntyvät:
$ ./valitsinotto
  Valitsimien lukumäärä on 1
  valitsin no. 0 on: ./valitsinotto
   
  $ ./valitsinotto jgaoirjg igaoierj
  Valitsimien lukumäärä on 3
  valitsin no. 0 on: ./valitsinotto
  valitsin no. 1 on: jgaoirjg
  valitsin no. 2 on: igaoierj
 
=== [[Python]] ===
Python varastoi valitsimensä taulukossa sys.argv, joka kuuluu sys-kirjastoon.
<syntaxhighlight lang="python">
#!/usr/bin/python3
 
import sys
 
print("Valitsimien lukumäärä on", len(sys.argv));


Monet ohjelmat käyttävät useamman perinteen mukaisia valitsimia, esimerkiksi jotta ne käyttäytyisivät odotusten mukaisesti riippumatta siitä mikä perinne on käyttäjälle tutumpi tai minkä perinteen mukaista ohjelmaa skripti on kirjoitettu käyttämään.
for i in range(len(sys.argv)):
print("valitsin no.", i, "on:", sys.argv[i])
</syntaxhighlight>
Jos tallennat tuon ohjelman tiedostoon "valitsinotto.py", nämä tulostukset syntyvät:
$ ./valitsinotto.py
Valitsimien lukumäärä on 1
valitsin no. 0 on: ./valitsinotto.py
$ ./valitsinotto.py jgaoirjg igaoierj
Valitsimien lukumäärä on 3
valitsin no. 0 on: ./valitsinotto.py
valitsin no. 1 on: jgaoirjg
valitsin no. 2 on: igaoierj


[[Luokka:Komentorivi]]
[[Luokka:Komentorivi]]
[[Luokka:Käsitteet]]
[[Luokka:Käsitteet]]

Nykyinen versio 31. toukokuuta 2022 kello 11.18

Valitsin, vipu, argumentti, parametri, lippu eli optio on komentorivillä annettava ohjelman toimintaan vaikuttava lisäohje, joka yleensä kirjoitetaan ennen mahdollisten käsiteltävien tiedostojen nimiä. Tässä esitellään tavallisimpia käytäntöjä.

Perusteet[muokkaa]

Unix-pohjaisten käyttöjärjestelmien, kuten Linux-jakeluitten kanssa, komennot annetaan tavallisimmin tyyliin

$ komento -a -b -c tiedosto ...

Valitsimet on myös mahdollista listata yhtenäisenä ryhminä.

$ komento -abc tiedosto ...

Antaminen[muokkaa]

Kaikki ohjelmat eivät aina ota valitsimia.

$ true valitsin

Paksulla merkitty teksti on valitsin. true ei välitä valitsimista, joita käyttäjä sille antaa, joten sen käyttäytyminen ei muutu.

Jotkin ohjelmat eivät tarvitse valitsimia.

$ cat

cat ottaa muutaman valitsimen, jos se niitä saa, mutta se ei tarvitse niitä toimiakseen. GNU-versio cat:ista ottaa muun muassa tämän:

$ cat --version

Tämä tulostaa näytölle versiotiedot.

cat (GNU coreutils) 9.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Kirjoittaneet Torbjorn Granlund ja Richard M. Stallman.

Valitsimet ja niiden käsittely on ohjelmakohtaisia, mutta joitakin valitsimia käytetään usein tiettyihin tarkoituksiin.


Jotkin ohjelmat vaativat valitsimia.

$ gcc
gcc: fatal error: no input files
compilation terminated.

$ gcc ohjelma.c -o ohjelma
[ei tulostetta]

Joillain valitsimilla on tarkentajia, jotka annetaan kyseisen valitsimen jälkeen. Yleensä tarkentaja erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat sen kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan tarkentajistaan "="-merkillä. Jos tarkentajia on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä.

valitsin, jolla voi olla tarkentaja, pitää laittaa valitsinryhmän viimeiseksi:

komento -vglo tulostiedosto -d erotin tiedosto ...

Jos haluat käyttää tiedostoa, joka alkaa "-"-merkillä ("-ihmetiedosto") tai jos viimeisellä valitsimella on tarkentaja, jota nyt ei käytetä, valitsimien ja niiden tarkentajien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan standardivirtoja.

Kuinka selvittää ohjelman valitsimet?[muokkaa]

Voit tarkistaa valitsimet hakemalla netistä, katsomalla man-ohjelmalla ja usein valitsimilla -h tai --help.

Yleisiä valitsimia[muokkaa]

Huomautus: Ota huomioon, että kaikki ohjelmat eivät käytä samoja valitsimia samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi valitsimia.
-f "force", "tiedän mitä teen, älä huoli"
-h "help", lyhyt ohje komennon käytöstä
-v "verbose", enemmän tietoa ohjelman edistymisestä tai tekemisistä suorituksen aikana (joissakin ohjelmissa -v:n määrittely useampaan kertaan (esimerkiksi -vvv) tuottaa vielä tarkempaa tietoa)
-V "version", ohjelman versio
-o "output", luotava tiedosto (GNU-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto)

Erilaisia valitsintyylejä[muokkaa]

Valitsimilla voi olla parametreja, jotka annetaan kyseisen valitsimen jälkeen. Yleensä parametri erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat parametrin kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan parametreistään "="-merkillä. Jos parametrejä on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä.

Valitsin, jolla voi olla parametri, pitää laittaa valitsinryhmän viimeiseksi:

komento -vglo tulostiedosto -d erotin tiedosto ...

Jos halutaan käyttää tiedostoa, joka alkaa "-"-merkillä ("-ihmetiedosto") tai jos viimeisellä valitsimella voisi olla parametri, jota nyt ei käytetä, valitsimien ja niiden parametrien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan standardivirtoja.

komento -o - -d : -- -ihmetiedosto
txt2ps -header - tiedosto.txt > tiedosto.ps

GNU-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen valitsimia ja omia kahdella viivalla alkavia pitkiä valitsimiaan:

-h
--help
-v
--verbose
-V
--version
-o tiedosto
--output=tiedosto

BSD-perinteessä (?) valitsimien edessä ei käytetä viivoja eikä valitsimia voi jakaa ryhmiin:

ps aux
tar xzf kohdetiedosto.tar tiedosto1 tiedosto2 ...

X-ohjelmissa käytetään valitsimina lyhenteitä tai kokonaisia sanoja. GNU-standardista poiketen kokonaisina sanoina määriteltäviä valitsimia ei edellä kuin yksi viiva (-).

-help
-version
-geometry 100x100
-bg taustaväri

Monet ohjelmat käyttävät useamman perinteen mukaisia valitsimia, esimerkiksi jotta ne käyttäytyisivät odotusten mukaisesti riippumatta siitä, mikä perinne on käyttäjälle tutumpi tai minkä perinteen mukaista ohjelmaa skripti on kirjoitettu käyttämään.

Ottaminen[muokkaa]

C[muokkaa]

C-kielellä valitsimet menevät pääfunktiolle. Yksi on kokonaisluku ja toinen taulukko merkkijonoista. Näille voi periaatteessa antaa mitkä tahansa nimet, mutta tyypillisesti ne ovat argc (argument count) ja argv (argument vector).

#include <stdio.h>

int main(int argc, char *argv[]) {
 //argv sisältää valitsimet, argc kertoo argv:n pituuden 
 //argv:n ensimmäinen solu sisältää ohjelman nimen

 printf("Valitsimien lukumäärä on %i\n", argc);

 for(int i=0; i<argc; ++i)
 	printf("valitsin no. %i on: %s\n", i, argv[i]);
}

Jos käännät tuon ohjelman tiedostoon "valitsinotto", nämä tulostukset syntyvät:

$ ./valitsinotto
Valitsimien lukumäärä on 1
valitsin no. 0 on: ./valitsinotto

$ ./valitsinotto jgaoirjg igaoierj
Valitsimien lukumäärä on 3
valitsin no. 0 on: ./valitsinotto
valitsin no. 1 on: jgaoirjg
valitsin no. 2 on: igaoierj

Python[muokkaa]

Python varastoi valitsimensä taulukossa sys.argv, joka kuuluu sys-kirjastoon.

#!/usr/bin/python3

import sys

print("Valitsimien lukumäärä on", len(sys.argv));

for i in range(len(sys.argv)):
	print("valitsin no.", i, "on:", sys.argv[i])

Jos tallennat tuon ohjelman tiedostoon "valitsinotto.py", nämä tulostukset syntyvät:

$ ./valitsinotto.py
Valitsimien lukumäärä on 1
valitsin no. 0 on: ./valitsinotto.py

$ ./valitsinotto.py jgaoirjg igaoierj
Valitsimien lukumäärä on 3
valitsin no. 0 on: ./valitsinotto.py
valitsin no. 1 on: jgaoirjg
valitsin no. 2 on: igaoierj