Kirjoittaja Aihe: Aloittelijan komentotulkkikysymyksiä  (Luettu 3317 kertaa)

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Aloittelijan komentotulkkikysymyksiä
« : 16.03.21 - klo:11.53 »
Avasin tällaisen tukiketjun, kun tulee koko ajan pientä kysyttävää tuosta komentotulkista ja sen käytöstä.

1. Millä valitsimella saa nano-ohjelman avattua niin, että kursori menee tiedoston loppuun? -

Esim. komentosarjalla:

Koodia: [Valitse]
$ date -u >> tiedosto.txt
$ nano [valitsin] tiedosto.txt

kursori jää tiedoston alkuun, vaikka tuo pvm kirjottautuu sen loppuun.

2. Entä millä komennoll/optiolla saa kirjoitettua pelkän rivinvaihdon tiedoston loppuun

Koodia: [Valitse]
$ echo [rivinvaihto] >> tiedosto.txt
« Viimeksi muokattu: 16.03.21 - klo:11.59 kirjoittanut Snufkin »
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #1 : 16.03.21 - klo:12.19 »
.......
2. Entä millä komennoll/optiolla saa kirjoitettua pelkän rivinvaihdon tiedoston loppuun

Koodia: [Valitse]
$ echo [rivinvaihto] >> tiedosto.txt

Oletuksena ehco ilman lisävipuja lähettää rivinaihdon.

Kokeilepa:
Koodia: [Valitse]
$ echo >> tiedosto.txt

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #2 : 16.03.21 - klo:12.25 »
Oletuksena ehco ilman lisävipuja lähettää rivinaihdon.

Kokeilepa:
Koodia: [Valitse]
$ echo >> tiedosto.txt

Joo, kiitos.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

jarmala

  • Käyttäjä
  • Viestejä: 790
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #3 : 16.03.21 - klo:14.05 »
1. Millä valitsimella saa nano-ohjelman avattua niin, että kursori menee tiedoston loppuun? -

Nanosta en tiedä, mutta ainakin joe avaa tiedoston siitä kohtaa, jossa kohdistin suljettaessa oli.
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB
Ubuntu 22.04 LTS, KDE Plasma, Celeron N5105, 8 GB

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #4 : 16.03.21 - klo:14.18 »
1. Millä valitsimella saa nano-ohjelman avattua niin, että kursori menee tiedoston loppuun? -

Nanosta en tiedä, mutta ainakin joe avaa tiedoston siitä kohtaa, jossa kohdistin suljettaessa oli.

Niin se tekee nanokin, mutta ei huomioi noita muilla komennoilla lisättyjä tekstirivejä. Siksi kaipaisin valitsinta, joka ohjaa kursorin aina vikalle riville.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

kamara

  • Käyttäjä
  • Viestejä: 3031
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #5 : 16.03.21 - klo:14.33 »
1. Millä valitsimella saa nano-ohjelman avattua niin, että kursori menee tiedoston loppuun? -

Nanosta en tiedä, mutta ainakin joe avaa tiedoston siitä kohtaa, jossa kohdistin suljettaessa oli.

Niin se tekee nanokin, mutta ei huomioi noita muilla komennoilla lisättyjä tekstirivejä. Siksi kaipaisin valitsinta, joka ohjaa kursorin aina vikalle riville.

En tiedä minäkään vipua, jolla pääsisi tekstin loppuun, mutta painamalla ctrl+End menee kursori tekstin loppuun nanossa. Myöskään man-sivuista en löytänyt sopivaa vipua tarkoitukseesi.

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #6 : 16.03.21 - klo:15.31 »
Manuaalista löytyy tietoa:

Koodia: [Valitse]
man nano
Lainaus
SYNOPSIS
       nano [OPTIONS] [[+LINE,COLUMN] FILE]...

DESCRIPTION
       This manual page briefly documents the nano command.

       nano  is  a small, free and friendly editor which aims to replace Pico,
       the default editor included in the non-free Pine package.  Rather  than
       just  copying  Pico's  look and feel, nano also implements some missing
       (or disabled by default) features in Pico, such as "search and replace"
       and "go to line and column number".

OPTIONS
       +LINE,COLUMN
              Places  cursor  at line number LINE and column number COLUMN (at
              least one of which must be specified) on startup, instead of the
              default of line 1, column 1.


Eli komentorivillä voi antaa rivinumeron, johon editori avautuessaan siirtää kursorin:

Koodia: [Valitse]
nano +321 tiedosto.txt
Tiedoston loppuun pääsee helposti antamalla rivinumeroksi suuren luvun. Tai voit laskea rivit wc -l -komennolla:

Koodia: [Valitse]
nano +$(wc -l < tiedosto.txt) tiedosto.txt
(Tässä tiedosto.txt syötetään wc:lle standard inputin kautta < -operaattorilla, koska muuten wc listaa myös tiedoston nimen, mikä puolestaan sotkee nanon komentorivin.)

Esimerkkiskripti, joka avaa annetun tiedoston nanoon siten että osoitin on viimeisellä rivillä, jos tiedosto on ennestään olemassa:

Koodia: [Valitse]
#!/bin/sh

tiedosto="$1"

if [ -f "$tiedosto" ]; then
    viimeinenrivi=$(wc -l < "$tiedosto")
else
    viimeinenrivi=1
fi

nano "+$viimeinenrivi" "$tiedosto"


Jos editoinnin sijaan on tarve seurata jatkuvasti kasvavaa tiedostoa, kuten sovelluksen tai käyttöjärjestelmän lokia, tail -f on erittäin hyödyllinen komento:

Koodia: [Valitse]
tail -f /var/log/syslog
Tail listaa siis oletuksena tiedoston viimeiset 10 riviä. Valitsimella -f se jää seuraamaan tiedoston loppua ja listaa sinne ilmaantuvat uudet rivit. Suorituksen voi lopettaa Ctrl+C:llä.

Jos haluat listata vaikka vain viimeisen rivin kertaalleen, aseta rivien määrä vivulla -n:

Koodia: [Valitse]
tail -n 1 tiedosto.txt
« Viimeksi muokattu: 16.03.21 - klo:15.33 kirjoittanut nm »

kuutio

  • Käyttäjä
  • Viestejä: 162
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #7 : 16.03.21 - klo:15.35 »
Nanoon voi myös huoletta laittaa "tarpeeksi ison" rivinumeron, menee loppuun.

esim. "nano +999999 tiedosto" riittää useimmiten.

EDIT: nm ehtikin jo mainita
« Viimeksi muokattu: 16.03.21 - klo:15.37 kirjoittanut kuutio »

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #8 : 16.03.21 - klo:15.41 »

Koodia: [Valitse]
nano +321 tiedosto.txt
Tiedoston loppuun pääsee helposti antamalla rivinumeroksi suuren luvun.

Kiitos, tämä toimi oikein hyvin. En vielä sotke itseäni noilla ohjelmoinneilla, vaan etenen askel kerrallaan. :)

Luin siis kyllä tuota "man nano", mutta ihan pitää rehellisesti sanoa, että suurin osa on yhä melkoista hepreaa. Ehkä nämä hieman aukeavat enemmän kun pääsen sen oppaan loppuun asti. :)



Xubuntu 22.04 LTS, Fujitsu Lifebook E754

elohope

  • Käyttäjä
  • Viestejä: 148
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #9 : 16.03.21 - klo:20.50 »
F1:llä ta Ctrl-g:llä saa näkyviin nanon oman ohjetekstin. Miten meidän pitäisi toimia sen päivittämiseksi ja suomennoksen täydentämiseksi?

Leko

  • Käyttäjä
  • Viestejä: 337
    • Profiili
    • taistop.kapsi.fi
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #10 : 16.03.21 - klo:21.31 »
Sen verran asian vierestä että onhan noita editoreita. Aloitellessani aikanaan oli muodissa vi ja emacs. Nyt vanhennuttuani ja laiskistuttuani pelkästään gedittiä  käytän, silloinharvoin kun enää yleensä. Gedit tuntuu tarpeeksi yksinkertaiselta minulle.


Vika/fiba

  • Käyttäjä
  • Viestejä: 660
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #11 : 17.03.21 - klo:18.08 »

Luin siis kyllä tuota "man nano", mutta ihan pitää rehellisesti sanoa, että suurin osa on yhä melkoista hepreaa. Ehkä nämä hieman aukeavat enemmän kun pääsen sen oppaan loppuun asti. :)

Heprealta tai muulta vieraalta kieleltä man-sivut minustakin vaikuttivat, mutta, ihme kyllä, nykyisin ymmärrän niistä jo jotakin, vaikka tuskin kaikkea vieläkään.
Kannattaa lukea myös muiden ohjelmien man-sivuja, niissä on kaikissa samanlainen logiikka, joka minulle valkenee parhaiten joidenkin man-sivujen käyttöesimerkkien kautta. Lisäksi monilla ohjelmilla on help-sivut, niin Nanollakin, osittain suomennettuna:
Koodia: [Valitse]
nano -htai
Koodia: [Valitse]
nano --helpJos avaat man-sivun ja helpin päätteen eri ikkunoihin, voit vertailla vähän erilaisia ohjeita. Ja nanon käytön aikana elohopen mainitsema ohje auttaa.

Mutta, asiaan, man nano siis kyllä vastaa ensimmäiseen kysymykseesi, mutta ei nyt millään varsinaisella selkokielellä:
Lainaus
When  giving a filename on the command line, the cursor can be put on a
       specific line by adding the line number with a plus sign (+) before the
       filename,  and  even  in  a  specific column by adding it with a comma.
       (Negative numbers count from the end of the file or line.)

Tästä siis tyhmempikin ymmärtää, että päätteeseen kirjoitetaan:
Koodia: [Valitse]
nano +-1 tiedosto.txt
Kokeilin fstab-tiedostolla muutamankin kerran, ennenkuin sain oikean komennon kasattua
Koodia: [Valitse]
sudo nano +-1 /etc/fstab
Ja siellähän se kursori sykkii fstabin viimeisen rivin jälkeen! fstab vaatii pääkäyttäjän oikeudet editointiin, siksi sudo



nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #12 : 17.03.21 - klo:18.18 »
Mutta, asiaan, man nano siis kyllä vastaa ensimmäiseen kysymykseesi, mutta ei nyt millään varsinaisella selkokielellä:
Lainaus
When  giving a filename on the command line, the cursor can be put on a
       specific line by adding the line number with a plus sign (+) before the
       filename,  and  even  in  a  specific column by adding it with a comma.
       (Negative numbers count from the end of the file or line.)

Tästä siis tyhmempikin ymmärtää, että päätteeseen kirjoitetaan:
Koodia: [Valitse]
nano +-1 tiedosto.txt

Hyvä huomio, että tukee nykyisin myös negatiivisia rivinumeroita tiedoston lopusta laskettuna. Manuaalisivulle on näemmä päivitetty tuo kohta Ubuntu 20.04:n nanossa.

Vika/fiba

  • Käyttäjä
  • Viestejä: 660
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #13 : 17.03.21 - klo:18.53 »
Ja negatiiviset numerot lasketaan hauskasti, niin että +-1 vie kursorin viimeisen rivin jälkeiselle riville ja +-2 viimeiselle riville. Ja niin edelleen rivinumeroita vähentäen ikäänkuin vähennyslasku alkaisi rivinumerosta viimeisen rivin numero +2. Sinne ei kuitenkaan pääse +-0 -merkinnällä.

kuutio

  • Käyttäjä
  • Viestejä: 162
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #14 : 17.03.21 - klo:19.03 »
Ja negatiiviset numerot lasketaan hauskasti, niin että +-1 vie kursorin viimeisen rivin jälkeiselle riville ja +-2 viimeiselle riville. Ja niin edelleen rivinumeroita vähentäen ikäänkuin vähennyslasku alkaisi rivinumerosta viimeisen rivin numero +2. Sinne ei kuitenkaan pääse +-0 -merkinnällä.
Johtunee siitä, että sulla se "viimeinen tekstirivi" (-2) päättyy rivinvaihtoon eli tiedostossa on lopussa tyhjä rivi (-1). Jos tyhjää riviä ei ole, ei se +-1 uutta tyhjää riviä luo. Eli -1 on viimeinen rivi, -2 toiseksi viimeinen jne.

Mutta hyvä tieto, että nykyään tukee myös +-rivi syntaksia.
« Viimeksi muokattu: 17.03.21 - klo:19.08 kirjoittanut kuutio »

Vika/fiba

  • Käyttäjä
  • Viestejä: 660
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #15 : 17.03.21 - klo:21.14 »
Kokeilitko? Minä kokeilin laittamalla viimeisen rivin loppuun rivinvaihdon. +-1 vei kursorin kaksi riviä viimeistä tekstiriviä alemmaksi.

kuutio

  • Käyttäjä
  • Viestejä: 162
    • Profiili
Vs: Aloittelijan komentotulkkikysymyksiä
« Vastaus #16 : 17.03.21 - klo:21.41 »
Kokeilitko? Minä kokeilin laittamalla viimeisen rivin loppuun rivinvaihdon. +-1 vei kursorin kaksi riviä viimeistä tekstiriviä alemmaksi.
Kyllä se mulla toimii ihan loogisesti kuten kuvailin, sulla nyt luultavasti sitten kaksi tyhjää riviä siellä lopussa (se siis tietenkin laskee myös tyhjät rivit eikä vain rivejä, jolla on tekstiä)?

Kokeile avata (ja tallentaa) se sama tiedosto useamman kerran +-1 optiolla meneekö se aina sille samalle riville vai luoko aina uuden rivin loppuun (minkä sen pitäisi tehdä, jos toimii kuvailemallasi tavalla).

EDIT: Ja nano siis oletuksena lisää aina viimeisen rivinvaihdon/tyhjän rivin (jos sellaista ei ole itse tehnyt), eli sitä viimeistä rivinvaihtoa ei voi poistaa ellei aseta "set nonewlines" .nanorc:ssä.
(mulla tuo asetus ei ole käytössä ja tuo +-1 toimii silti ihan oikein ja loogisesti, mutta sen voi kokeeksi ottaa käyttöön tilapäisesti ja poistaa sen viimeisen rivinvaihdon tiedostosta nähdäkseen, miten tuo viimeinen rivinvaihto vaikuttaa +-1 toimintaan...jos viimeistä rivinvaihtoa ei tiedoston lopussa ole, optio menee viimeiselle tekstiriville [koska tyhjää riviä ei sen jälkeen ole], muutoin se menee sille viimeiselle tyhjälle riville)
« Viimeksi muokattu: 18.03.21 - klo:07.29 kirjoittanut kuutio »