Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Snufkin - 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:
$ 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
$ echo [rivinvaihto] >> tiedosto.txt
-
.......
2. Entä millä komennoll/optiolla saa kirjoitettua pelkän rivinvaihdon tiedoston loppuun
$ echo [rivinvaihto] >> tiedosto.txt
Oletuksena ehco ilman lisävipuja lähettää rivinaihdon.
Kokeilepa:
$ echo >> tiedosto.txt
-
Oletuksena ehco ilman lisävipuja lähettää rivinaihdon.
Kokeilepa:
$ echo >> tiedosto.txt
Joo, kiitos.
-
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.
-
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.
-
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.
-
Manuaalista löytyy tietoa:
man nano
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:
nano +321 tiedosto.txt
Tiedoston loppuun pääsee helposti antamalla rivinumeroksi suuren luvun. Tai voit laskea rivit wc -l -komennolla:
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:
#!/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:
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:
tail -n 1 tiedosto.txt
-
Nanoon voi myös huoletta laittaa "tarpeeksi ison" rivinumeron, menee loppuun.
esim. "nano +999999 tiedosto" riittää useimmiten.
EDIT: nm ehtikin jo mainita
-
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. :)
-
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?
-
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.
-
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:
nano -h
tai
nano --help
Jos 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ä:
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:
nano +-1 tiedosto.txt
Kokeilin fstab-tiedostolla muutamankin kerran, ennenkuin sain oikean komennon kasattua
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
-
Mutta, asiaan, man nano siis kyllä vastaa ensimmäiseen kysymykseesi, mutta ei nyt millään varsinaisella selkokielellä:
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:
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.
-
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ä.
-
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.
-
Kokeilitko? Minä kokeilin laittamalla viimeisen rivin loppuun rivinvaihdon. +-1 vei kursorin kaksi riviä viimeistä tekstiriviä alemmaksi.
-
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)