Kirjoittaja Aihe: Terminal-komennot tiedostoksi  (Luettu 6515 kertaa)

sjh

  • Käyttäjä
  • Viestejä: 17
    • Profiili
Terminal-komennot tiedostoksi
« : 28.05.14 - klo:11.13 »
Hei! Onko mahdollista suorittaa komentojonoja suoraan tiedostosta klikkaamalla (jos laittaa tekstieditoriin), niinkuin Windowsissa bat-tiedostot? Googlella selailin, mutta en löytänyt, kun että alkuun pitää ilmeisesti laittaa "#!/bin/bash". Millä tiedostopäätteellä tiedoston saa suoritettua?

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #1 : 28.05.14 - klo:11.19 »
Millä vaan päätteellä, tai ilman päätettä. Tiedostopäätteellä ei ole väliä Linuxissa. Kyse on tiedoston oikeuksista, eli tiedostolle pitää antaa ajo-oikeus, tosin ilman sitäkin onnistuu, mutta ei nyt puututa siihen.

Ajo-oikeus:
Koodia: [Valitse]
chmod +x tiedosto
Päätteestä ko. tiedosto käynnistetään näin:
Koodia: [Valitse]
./tiedosto
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

sjh

  • Käyttäjä
  • Viestejä: 17
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #2 : 28.05.14 - klo:11.33 »
Millä vaan päätteellä, tai ilman päätettä. Tiedostopäätteellä ei ole väliä Linuxissa. Kyse on tiedoston oikeuksista, eli tiedostolle pitää antaa ajo-oikeus, tosin ilman sitäkin onnistuu, mutta ei nyt puututa siihen.

Ajo-oikeus:
Koodia: [Valitse]
chmod +x tiedosto
Päätteestä ko. tiedosto käynnistetään näin:
Koodia: [Valitse]
./tiedosto


Oon aika tumpelo linuxin kanssa ja en ihan tajunnut mihin kohtaan kyseiset pitäisi kirjoittaa. Tässä on ne komennot, jotka pitäisi saada suoritettua tiedostosta:

Koodia: [Valitse]
sudo add-apt-repository ppa:noobslab/icons
sudo apt-get update
sudo apt-get install win-icons

sudo add-apt repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install win-xp-theme

Tosin tuossa "sudo add" jälkeen pyytää aina salasanan, voiko senkin määrittää valmiiksi. Eli millasen tekstitiedoston teen? :)

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3369
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #3 : 28.05.14 - klo:22.38 »
Sudo vaatii salasanan ja käsittääkseni sitä ei tosiaan saa automatisoitua ihan noin vaan.

Mutta siis tosiaan yksinkertaisimmillaan pistät vain nuo käskyt ihan tavalliseen ascii-muotoiseen tekstitiedostoon, ja tallennat sen. Sitten voit jos et halua tuota chmod käskyä käyttää niin ihan tiedostonhallinnalla muuttaa niitä oikeuksia, eli klikkaat oikealla napilla tiedostoa ja valikkoon ominaisuudet, ja sieltä oikeudet, ja sieltä että suoritettava.

Nopeampaa on vaan käyttää sitä chmodia.

Sen jälkeen vaan päätteeseen tosiaan ./tiedostonnimi
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 24.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #4 : 26.06.14 - klo:21.27 »
Tekstieditori auki, kirjoittelet nuo peräkkäin, mahdollisesti/mielellään laitat ensimmäiselle riville sen "#!/bin/bash" ja talletat sen jollain nimellä, vaikka "komennot" tai minkä vain helposti muistat.  Ei tarvitse "tiedostotyyppiä" ja nimikin voi olla melkein mitä vain.

Koodia: [Valitse]
#!/bin/bash
sudo add-apt-repository ppa:noobslab/icons
sudo apt-get update
sudo apt-get install win-icons

sudo add-apt repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install win-xp-theme

Linux ei suostu ajamaan tuota komentotiedostoasi ellet kerro sille erikseen että tuon "komennot" tiedoston saa ajaa:

Koodia: [Valitse]
chmod +x komennot
Tuon jälkeen sen voi ajaa kun olet samassa hakemistossa näin:

Koodia: [Valitse]
./komennot

Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #5 : 21.08.14 - klo:19.56 »
sudo salasana kyselyistä pääsee eroon, kun poistaa sudo:t ja ajaa scriptin root-oikeuksilla.
Koodia: [Valitse]
$sudo su -
#./komentojono
#exit

Taas on hieman vierähtänyt aikaa kun viimeksi olen Ubuntua käyttänyt. sudo su vai sudo su -. Noilla on se pieni ero, että su - (super user) komennolla tulee kotikansioksi /root ja su komennolla kotikansio on käyttäjän kotikansio. Eli tuo pieni viiva on tärkeä. "Oikeassa" linuxissa root oikeudet otetaan käyttöön su - komennolla. Sudo:lla ongelmia myös vähän pidemmissä komennoissa. Muistaakseni ei edes sudo komento1 && komento2 ei toimi. Tuossa komento2 suoritetaan jos komento1 on suoritettu onnistuneesti.

kuutio

  • Vieras
Vs: Terminal-komennot tiedostoksi
« Vastaus #6 : 21.08.14 - klo:20.38 »
sudo salasana kyselyistä pääsee eroon, kun poistaa sudo:t ja ajaa scriptin root-oikeuksilla.
Koodia: [Valitse]
$sudo su -
#./komentojono
#exit

Taas on hieman vierähtänyt aikaa kun viimeksi olen Ubuntua käyttänyt. sudo su vai sudo su -. Noilla on se pieni ero, että su - (super user) komennolla tulee kotikansioksi /root ja su komennolla kotikansio on käyttäjän kotikansio. Eli tuo pieni viiva on tärkeä. "Oikeassa" linuxissa root oikeudet otetaan käyttöön su - komennolla. Sudo:lla ongelmia myös vähän pidemmissä komennoissa. Muistaakseni ei edes sudo komento1 && komento2 ei toimi. Tuossa komento2 suoritetaan jos komento1 on suoritettu onnistuneesti.
Rootin shellin avaaminen tuon takia on tarpeetonta, koska skriptin voi ajaa suoraan sudolla "sudo ./komentojono" (tai "sudo -i ./komentojono", jos tarvitaan kaikki rootin ympäristömuuttujat). Halutessaan tuolle voi tehdä oman lyhyen aliaksen tai vaikka sallia tietyille käyttäjille oikeuden ajaa komentojono ilman salasanakyselyjä.

su:ta ei myöskään ole tarpeen ajaa *buntuissa sudon kautta, vaan vastaavan saa aikaan esim:
su == sudo -sH
su - == sudo -i
(Nämäkin voi laittaa aliaksiksi halutessaan, jos on tottunut su:ta käyttämään..."Oikeista" linuxeista on turha puhua, sudo on nimittäin vanhempi kuin linux, ja on sitä käytetty laajasti jo unixeissa ja niissä "oikeissakin" linuxeissa)

useammankin komennon ajaminen kyllä onnistuu sudolla, esim:
sudo sh -c 'whoami && whoami'
sudo whoami && sudo whoami
« Viimeksi muokattu: 21.08.14 - klo:20.54 kirjoittanut kuutio »

qwertyy

  • Käyttäjä
  • Viestejä: 5777
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #7 : 21.08.14 - klo:20.49 »
sudo su on siitä varmaankin perusteltu valinta, että silloin ei ainakaan oman käsityksen mukaan tule ns. "timeout" vastaan komentoja suorittaessa. Eli skripti menee kerralla loppuun asti.

kuutio

  • Vieras
Vs: Terminal-komennot tiedostoksi
« Vastaus #8 : 21.08.14 - klo:20.55 »
sudo su on siitä varmaankin perusteltu valinta, että silloin ei ainakaan oman käsityksen mukaan tule ns. "timeout" vastaan komentoja suorittaessa. Eli skripti menee kerralla loppuun asti.
Ei ne timeoutit tule vastaan, kun koko skripti ajetaan roottina. (siis skriptin kaikki komennot ajetaan roottina, jos käynnistät skriptin sudolla)
« Viimeksi muokattu: 21.08.14 - klo:21.02 kirjoittanut kuutio »

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3369
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #9 : 21.08.14 - klo:21.50 »
Taas on hieman vierähtänyt aikaa kun viimeksi olen Ubuntua käyttänyt. sudo su vai sudo su -. Noilla on se pieni ero, että su - (super user) komennolla tulee kotikansioksi /root ja su komennolla kotikansio on käyttäjän kotikansio. Eli tuo pieni viiva on tärkeä. "Oikeassa" linuxissa root oikeudet otetaan käyttöön su - komennolla. Sudo:lla ongelmia myös vähän pidemmissä komennoissa. Muistaakseni ei edes sudo komento1 && komento2 ei toimi. Tuossa komento2 suoritetaan jos komento1 on suoritettu onnistuneesti.

Ei muuta sanottavaa mutta su EI TARKOITA super user:ia, vaan substitute user. Su tyhjänä jos olet wheel groupin jäsen antaa juu rootin oikeudet, mutta sitä voi käyttää myös niin että jos koneella on toinen käyttäjätunnus (tai useampi) niin sen kuin vaan su toinentunnus ja perään salasana ja olet toisena käyttäjänä sisällä.

Tuo tietoni wheel groupista on FreeBSD:n puolelta peräisin, mutta käsittääkseni sama pätee Linuxeihinkin.
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 24.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.

SuperOscar

  • Käyttäjä
  • Viestejä: 4062
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Terminal-komennot tiedostoksi
« Vastaus #10 : 21.08.14 - klo:22.11 »
Tuo tietoni wheel groupista on FreeBSD:n puolelta peräisin, mutta käsittääkseni sama pätee Linuxeihinkin.

Ei mitenkään yleisesti, käsittääkseni. Debianissa ja openSUSEssa wheel on ja ainakin edellisessä sitä johonkin käytetäänkin (/usr/local on ainakin sen omistuksessa), mutta ei sitä kaikissa kokeilemissani distroissa ollut olemassa edes /etc/groupissa.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #11 : 21.08.14 - klo:22.14 »
Tuo tietoni wheel groupista on FreeBSD:n puolelta peräisin, mutta käsittääkseni sama pätee Linuxeihinkin.
Ubuntussa tuota wheel ryhmää ei ole oletuksena ollenkaan. sudo ryhmään kuuluvilla on sudo:n käyttöoikeus. Aikaisemmin muistini mukaan admin ryhmä oli Ubuntussa se joka oli ko. käytössä, mutta se muuttui sittemmin sudo ryhmäksi.

Mutta esim. Archissa tuo wheel ryhmä on.
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

kuutio

  • Vieras
Vs: Terminal-komennot tiedostoksi
« Vastaus #12 : 21.08.14 - klo:22.23 »
Tuo tietoni wheel groupista on FreeBSD:n puolelta peräisin, mutta käsittääkseni sama pätee Linuxeihinkin.
gnu:n su (mikä linuxeissa on käytössä) ei käytä wheel-ryhmää su "autentikointiin" (eli tarkista kenellä on oikeus ryhtyä rootiksi), tuo wheel ryhmä on unixien peruja (jollianen BSD:kin on).

Jotkut linuxit kyllä käyttää wheel ryhmää esim. sudo autentikointiin, muistaakseni oli aikoinaan Debianissakin käytössä.

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3369
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #13 : 21.08.14 - klo:22.27 »
Enpäs tiennyt tuota :) Luulin että Linuxissa olisi vastaava käytös pidetty...
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 24.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #14 : 21.08.14 - klo:22.28 »
Jotkut linuxit kyllä käyttää wheel ryhmää esim. sudo autentikointiin, muistaakseni oli aikoinaan Debianissakin käytössä.
Arch:ssa se on juuri siinä käytössä. Eli wheel -ryhmän jäsenet voi käyttää siinä sudoa.
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3369
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #15 : 21.08.14 - klo:22.29 »
Sinänsä tuo on melko turha vaatimus, ainakin jos samalta fyysiseltä koneelta käytetään, joka tapauksessa tarvitaan rootin salasana jos ne oikeudet haluaa...

PC-BSD:ssä jota olen käytellyt on oletuksena sekä sudo, että root tili. Eli isommilla oikeuksilla voi käskyjä suorittaa sudolla, tai jos enemmän tekee niin su:lla tai kirjautumalla virtuaalikonsoliin roottina...
« Viimeksi muokattu: 21.08.14 - klo:22.31 kirjoittanut JaniAlander »
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 24.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.

kuutio

  • Vieras
Vs: Terminal-komennot tiedostoksi
« Vastaus #16 : 21.08.14 - klo:22.42 »
Enpäs tiennyt tuota :) Luulin että Linuxissa olisi vastaava käytös pidetty...
Tämä oli lähinnä Stallmanin (ideologinen) valinta:
http://www.gnu.org/software/coreutils/manual/html_node/su-invocation.html#index-fascism-2365

Lainaus
PC-BSD:ssä jota olen käytellyt on oletuksena sekä sudo, että root tili. Eli isommilla oikeuksilla voi käskyjä suorittaa sudolla, tai jos enemmän tekee niin su:lla tai kirjautumalla virtuaalikonsoliin roottina...
Ei tuo harvinaista ole, mutta *buntuissa siis root shellinkin saa kyllä auki yksistään sudolla ("sudo -sH" tai "sudo -i") eikä erilliselle root-tilille (tai tarkemmin rootin salasanan asettamiselle) ole tarvetta.

« Viimeksi muokattu: 21.08.14 - klo:22.44 kirjoittanut kuutio »

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3369
    • Profiili
Vs: Terminal-komennot tiedostoksi
« Vastaus #17 : 21.08.14 - klo:22.45 »
Kiva tietää ite olen Ubuntu sukuisissa käyttänyt sellaisiin sitä sudo su:ta.

Tuo Stalmanin kanta oli muuten tietoturvamielessä jokseenkin järjetön, ainakin etäkäytössähän tuo wheel group vaatimus tarjoaa tiettyä suojaa vaikka joku olisi sen root tunnuksen saanut haltuun. Miksei yksintein olisi pistänyt su:ta olemaan kysymättä MITÄÄN salasanaa, sittenhän massoilla olisi ollut vielä enemmän pääsyä järjestelmiin...
« Viimeksi muokattu: 21.08.14 - klo:22.59 kirjoittanut JaniAlander »
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 24.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.

kuutio

  • Vieras
Vs: Terminal-komennot tiedostoksi
« Vastaus #18 : 21.08.14 - klo:23.22 »
Tuo Stalmanin kanta oli muuten tietoturvamielessä jokseenkin järjetön, ainakin etäkäytössähän tuo wheel group vaatimus tarjoaa tiettyä suojaa vaikka joku olisi sen root tunnuksen saanut haltuun. Miksei yksintein olisi pistänyt su:ta olemaan kysymättä MITÄÄN salasanaa, sittenhän massoilla olisi ollut vielä enemmän pääsyä järjestelmiin...
Kyseessä on varmaan ollut osittain se, ettei RMS halunnut wheel ryhmää "sisäänrakennettuna" su komentoon.

Yleensä, jos joku saa root-salasanan haltuun, niin ei silloin voi oikein luottaa, että wheel ryhmän jäsenten salasanatkaan on enää turvallisia.

Kyllähän tuota toimintoa voi gnu:n su-komennollakin emuloida (ainakin nykyisin) pamin avulla (editoimalla /etc/pam.d/su -tiedostoa)