Kirjoittaja Aihe: Miten poistetaan symbolinen linkki? [RATKAISTU]  (Luettu 4039 kertaa)

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Eli vi-vihaajana olen tehnyt näin
Koodia: [Valitse]
sudo mv /usr/bin/vi /usr/bin/vi-orig
Koodia: [Valitse]
sudo ln -s /usr/bin/nano /usr/bin/vi
Nyt kuitenkin haluaisin kokeilla ~/.zshrc tiedostoon
Koodia: [Valitse]
EDITOR=/usr/bin/nano
VISUAL=$EDITOR
että tehoaako?

En kuitenkaan pääse symbolisesta linkistä eroon mitenkään, olen poistanut sekä nano:n että vi:n
Silti kun komennan uudeleenasennuksen jälkeen  vi nano aukeaa.

Poistin unlinkillä sekä rm, sama lopputulos, linkki on ja pysyy.

edit: zsh on käytössä jos se jotain vaikuttaa ja Manjaro käyttiksenä.

Se etsii nanoa vaika molemmat on poistettu niin tämä tulee
Koodia: [Valitse]
raimo@kone-3% vi
zsh: command not found: nano
raimo@kone-3%                                                                   [/usr/bin]

Tämä on tietenkin unelmatilanne vi päivitys ei poista symlinkkiä joten nano on ja pysyy :D
Olisi kuitenkin ihan opettelun kannalta hyvä titää miten ZSH:ssa poistetaan symbolinen linkki tai ainakin sen toiminnallisuus.

Koodia: [Valitse]
raimo@kone-3% sudo unlink /usr/bin/vi
[sudo] password for raimo:
raimo@kone-3% vi
raimo@kone-3% sudo unlink /usr/bin/nano
raimo@kone-3% vi
zsh: command not found: nano
raimo@kone-3%
« Viimeksi muokattu: 16.02.25 - klo:21.07 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #1 : 16.02.25 - klo:05.38 »
Mitäs kummaa se tämä ex on?
Koodia: [Valitse]
raimo@kone-3% ls -la vi
lrwxrwxrwx 1 root root 2 loka    6  2022 vi -> ex

Koodia: [Valitse]
raimo@kone-3% ls -la nano
-rwxr-xr-x 1 root root 279056 tammi   4 23:19 nano

Koodia: [Valitse]
raimo@kone-3% ls -la vi
lrwxrwxrwx 1 root root 2 loka    6  2022 vi -> ex
raimo@kone-3% ls -la nano
-rwxr-xr-x 1 root root 279056 tammi   4 23:19 nano
raimo@kone-3% ls -la ex
-rwxr-xr-t 1 root root 260096 loka    6  2022 ex
raimo@kone-3% sudo mv ex ex-orig
[sudo] password for raimo:
raimo@kone-3% sudo unlink vi
raimo@kone-3% vi
raimo@kone-3% ls vi
ls: cannot access 'vi': No such file or directory
raimo@kone-3% vi
raimo@kone-3% sudo unlink nano
raimo@kone-3% vi
zsh: command not found: nano
raimo@kone-3% 

Komento vi aukaisee nanon vaikka sitä ei tiedostolistauksessa ole, siis vi tiedostoa.
Foliohattu syvälle pääähän. :o

« Viimeksi muokattu: 16.02.25 - klo:05.54 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #2 : 16.02.25 - klo:06.04 »
Koodia: [Valitse]
raimo@kone-3% sudo unlink vi
unlink: cannot unlink 'vi': No such file or directory
raimo@kone-3% sudo pacman -S vi
warning: vi-1:070224-6 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) vi-1:070224-6

Total Installed Size:  0,31 MiB
Net Upgrade Size:      0,00 MiB

:: Proceed with installation? [Y/n] n
raimo@kone-3% sudo unlink vi-1:070224-6
unlink: cannot unlink 'vi-1:070224-6': No such file or directory
raimo@kone-3% sudo unlink vi-1
unlink: cannot unlink 'vi-1': No such file or directory
raimo@kone-3% whereis vi
vi: /usr/share/man/man1p/vi.1p.gz /usr/share/man/man1/vi.1.gz
raimo@kone-3% sudo pacman -S vi
warning: vi-1:070224-6 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) vi-1:070224-6

Total Installed Size:  0,31 MiB
Net Upgrade Size:      0,00 MiB

:: Proceed with installation? [Y/n] Y
(1/1) checking keys in keyring                                                      [################################################] 100%
(1/1) checking package integrity                                                    [################################################] 100%
(1/1) loading package files                                                         [################################################] 100%
(1/1) checking for file conflicts                                                   [################################################] 100%
(1/1) checking available disk space                                                 [################################################] 100%
warning: could not get file information for usr/bin/vi
:: Running pre-transaction hooks...
(1/1) Creating Timeshift snapshot before upgrade...
==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.
:: Processing package changes...
(1/1) reinstalling vi                                                               [################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
raimo@kone-3% vi
raimo@kone-3% nano aukeaa...
raimo@kone-3% whereis vi
vi: /usr/bin/vi /usr/share/man/man1p/vi.1p.gz /usr/share/man/man1/vi.1.gz
raimo@kone-3%                                                                                                                   [/usr/bin]


Se on jossain: koska pacman vain uudelleenasentaa sen:
Koodia: [Valitse]
raimo@kone-3% sudo pacman -S vi
warning: vi-1:070224-6 is up to date -- reinstalling
« Viimeksi muokattu: 16.02.25 - klo:06.17 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #3 : 16.02.25 - klo:06.57 »
Koodia: [Valitse]
raimo@kone-3% vi
raimo@kone-3% sudo pamac remove vi
[sudo] password for raimo:
Preparing...
Checking dependencies...

To remove (1):
  vi  1:070224-6    core

Total removed size: 327,1 kB

Apply transaction ? [y/N] Y
Removing vi (1:070224-6)...                                                                                                           [1/1]
Transaction successfully finished.
raimo@kone-3% vi
raimo@kone-3% vi
raimo@kone-3% ls /usr/bin/vi
ls: cannot access '/usr/bin/vi': No such file or directory
raimo@kone-3% whereis vi
vi: /usr/share/man/man1p/vi.1p.gz
raimo@kone-3% vi
raimo@kone-3% nano aukeaa vaikka vi komentoa tai tiedostoa ei ole missään                                                              [~]
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #4 : 16.02.25 - klo:07.00 »
Koodia: [Valitse]
raimo@kone-3% vi
raimo@kone-3% vi
raimo@kone-3% whereis nano
nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
raimo@kone-3% sudo pamac remove nano
Preparing...
Checking dependencies...
Error: Failed to prepare transaction:
could not satisfy dependencies:
- removing nano breaks dependency 'nano' required by nano-syntax-highlighting
raimo@kone-3% sudo pamac remove nano nano-syntax-highlighting
Preparing...
Checking dependencies...

To remove (2):
  nano-syntax-highlighting  2022.11.02.r102.gbb94603-1    extra
  nano                      8.3-1                         core

Total removed size: 2,9 MB

Apply transaction ? [y/N] y
Running pre-transaction hooks...
Removing old entries from the info directory file...                                                                                  [1/1]
Removing nano-syntax-highlighting (2022.11.02.r102.gbb94603-1)...                                                                     [1/2]
Removing nano (8.3-1)...                                                                                                              [2/2]
Running post-transaction hooks...
Arming ConditionNeedsUpdate...                                                                                                        [1/1]
Transaction successfully finished.
raimo@kone-3% nano
zsh: command not found: nano
raimo@kone-3% vi
zsh: command not found: nano
raimo@kone-3% 

Senhän pitäisi lähteä komennolla
Koodia: [Valitse]
sudo unlink /usr/bin/vi
Mutta kun ei lähde, ei sitten millään.

« Viimeksi muokattu: 16.02.25 - klo:07.18 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

SuperOscar

  • Käyttäjä
  • Viestejä: 4130
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #5 : 16.02.25 - klo:10.16 »
Aivan ensiksi sanoisin, että kannattaa oppia eroon siitä Windows-tavasta, että ensimmäinen reaktio kaikkeen on aina ”poista asennus ja asenna uudelleen”. Linuxissa se harvoin auttaa, mutta harmia siitä voi olla.

Seuraavaksi kokeile, mihin ”vi” oikein viittaa:

Koodia: [Valitse]
whence -v vi
Minulla tulokseksi tulee:

Koodia: [Valitse]
vi is /usr/bin/vi
Symlinkit ovat tuiki tavallisia tiedostoja, joten ne voi poistaa rm-komennolla.

”ex” taas on se varsinainen muokkain, jonka ”visuaalinen tila” vi on.

MUOKS: Tuli mieleen, että asiaan voi puuttua alternatives-järjestelmäkin (en tiedä, käyttääkö Manjaro sitä). Voisi kokeilla myös:

Koodia: [Valitse]
update-alternatives --display vi
« Viimeksi muokattu: 16.02.25 - klo:13.51 kirjoittanut SuperOscar »
pöytäkone 1, NUC, kannettava 1: openSUSE Leap 15.6, kannettavat 2–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ä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #6 : 16.02.25 - klo:19.55 »
Koodia: [Valitse]
raimo@kone-3% whence -v vi
vi is an alias for nano

Ei löydy komentoa update-alternatives?
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #7 : 16.02.25 - klo:20.11 »
Lainaus
Symlinkit ovat tuiki tavallisia tiedostoja, joten ne voi poistaa rm-komennolla.

Mutta kun se ei poistu vaikka vi tiedoston poistaa, rm tai unlink -komennoilla.
Linkki jää edelleen voimaan.

Sitähän minä olen tässä yrittänyt selostaa jo useiden viestien ajan.
« Viimeksi muokattu: 16.02.25 - klo:20.16 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

SuperOscar

  • Käyttäjä
  • Viestejä: 4130
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #8 : 16.02.25 - klo:20.24 »
Lainaus
Symlinkit ovat tuiki tavallisia tiedostoja, joten ne voi poistaa rm-komennolla.

Mutta kun se ei poistu vaikka vi tiedoston poistaa, rm tai unlink -komennoilla.

Puhut päällekkäin kahdesta asiasta: linkin olemassaolosta ja siitä, mitä vi-komento käynnistää.

MUOKS: Korjaan vastaustani, koska huomasin yltä tämän:

Koodia: [Valitse]
raimo@kone-3% whence -v vi
vi is an alias for nano

Näin ollen on yhdentekevää, onko vi-symlinkki olemassa vai ei, koska olet tehnyt vi:stä aliaksen!

MUOKS 2: Teen juotuani jatkan…

Kun Zsh-komentotulkkiin kirjoittaa komennon ”vi”, Zsh kokeilee ensin, onko kyseessä alias. Se korvataan sitä vastaavalla jonolla, tässä tapauksessa siis ”nano”. (Tässä välissä itse asiassa kokeiltaisiin vielä, onko ”vi” funktio, jollei sitä olisi jo lavennettu.) Vasta tämän jälkeen lähdetään kokeilemaan, löytyykö $PATH-hakupolun varrelta komentoa ”vi” missään muodossa – symlinkkinä tai suoraan ohjelmatiedostona.

Sinun pitää siis kurkistaa Zsh:n käynnistystiedostoihin ja etsiä, missä alias määritellään. Oleellisia tiedostoja ovat /etc/zsh/zshrc tai /etc/zshrc (järjestelmänlaajuinen) sekä ~/.zshrc (käyttäjäkohtainen), koska lähinnä noissa tai niiden lukemissa tiedostoissa on tarkoitus määritellä aliakset.
« Viimeksi muokattu: 16.02.25 - klo:20.45 kirjoittanut SuperOscar »
pöytäkone 1, NUC, kannettava 1: openSUSE Leap 15.6, kannettavat 2–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ä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki?
« Vastaus #9 : 16.02.25 - klo:21.06 »
OK, super Kiitos! Siellähän se oli, alias vi='nano ' en kyllä yhtän muista tuota tehneeni...
No ei sitä kukaan muukaan ole tehnyt. :) Tämähän ratkesi, nam! :D
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Vika/fiba

  • Käyttäjä
  • Viestejä: 671
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #10 : 16.02.25 - klo:21.18 »
Tämä oli kovin kiinnostava ongelma. Minulle jäi vielä epäselväksi poistuiko /usr/bin/vi vai eikö poistunut niillä poistokäskyillä.

Ja olisiko alias voitu kiertää Zsh:ssa komennolla
Koodia: [Valitse]
\vi

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #11 : 16.02.25 - klo:21.44 »
Tämä oli kovin kiinnostava ongelma. Minulle jäi vielä epäselväksi poistuiko /usr/bin/vi vai eikö poistunut niillä poistokäskyillä.

Ja olisiko alias voitu kiertää Zsh:ssa komennolla
Koodia: [Valitse]
\vi

Poistui kyllä ja nano jatkoi aukeamista. komennolla vi vaikka vi oli poistettu, no tietenkin koska siellä oli alias.
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #12 : 16.02.25 - klo:22.19 »
Iltaa!  :)

Koodia: [Valitse]
EDITOR=/usr/bin/nano
VISUAL=$EDITOR

~/.zshrc tiedostoon laitettuna toimii, nyt se on hyvä.

Mutta miten laitetaan sudo:lle sama /root/.zshrc tiedostoon laitettu tuo sama ei tehoa?
Aluksi luulin etä se toimii, mutta ei toimi.

esim sudo crontab -e aukeaa vi:llä kun normikäyttäjän crontab -e aukeaa nanolla?

Eli onko se symbolinen linkki sittenkin ainoa vaihtoehto?
 
« Viimeksi muokattu: 16.02.25 - klo:23.31 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #13 : 16.02.25 - klo:23.43 »
Tämä toimii kaikissa mahdollisissa muodoissa, haittapuolena on se että pitää uusia kun vi päivittyy.
Koodia: [Valitse]
cd /usr/bin/
sudo mv vi vi-orig
sudo ln -s nano vi

Toimii! :)
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #14 : 17.02.25 - klo:02.21 »
Microsoftin tekoälyn kanssa oltiin samoilla linjoilla kun kokeiltiin jopa visudo:n erinäisiä asetuksia ja mikään ei auta.
Miksi Microsoft, no se on Edgessä kiinteästi. Ja näemmä osaa Linuxia siinä kuin minäkin :D

Miten on tarviiko noi muuttujat tms mitä ne onkaan export:n eteen, jossain sitä näkee ja jossain taas ei?
Kokeiltu on molemmilla tavoilla ja ei apuja.
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Vika/fiba

  • Käyttäjä
  • Viestejä: 671
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #15 : 17.02.25 - klo:08.44 »

Eli onko se symbolinen linkki sittenkin ainoa vaihtoehto?

Miten olis jo toimivaksi havaittu alias? Et varmaan enää niin helposti unohda, kuka sen teki.  ;)

SuperOscar

  • Käyttäjä
  • Viestejä: 4130
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #16 : 17.02.25 - klo:08.50 »
Ainakin pari ongelmaa vastassa:

Ensinnäkin, oletko vaihtanut rootinkin oletuskomentotulkin Zsh:ksi vai onko se yhä Bash? Tämän voi tarkistaa näin:

Koodia: [Valitse]
getent passwd root | cut -d: -f7
Jos root käyttää Bashia, siihen eivät tietenkään vaikuta Zsh:n alustusskriptit.

Toisekseen, sudon käyttämä ympäristö on eri asia kuin rootin oma ympäristö. $EDITOR-muuttujan voi lisätä ”säilytettäviin” (ts. niihin, joiden arvo viedään nykyiseltä käyttäjältä ylläpitäjäkäyttäjälle) visudolla joko etsimällä rivi

Koodia: [Valitse]
Defaults env_keep = "…"
…ja lisäämällä EDITOR-muuttuja tuonne lainausmerkkien sisään tai sitten lisäämällä uuden rivin:

Koodia: [Valitse]
env_keep += "EDITOR"
pöytäkone 1, NUC, kannettava 1: openSUSE Leap 15.6, kannettavat 2–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ä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #17 : 17.02.25 - klo:13.22 »
Joo, Bashihan sieltä ilmestyi, mten vaihdetaa ZSH:ksi? Olen sen tehnyt normikäyttäjälle mutta en muista miten?

Defaults env_keep += "EDITOR" visudoon auttoi, nyt kaikki rokkaa. :)

Kiitos paljon!
« Viimeksi muokattu: 17.02.25 - klo:13.40 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

raimo

  • Käyttäjä
  • Viestejä: 4400
  • Tumbleweed
    • Profiili
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #18 : 17.02.25 - klo:23.57 »
Joo, Bashihan sieltä ilmestyi, miten vaihdetaa ZSH:ksi? Olen sen tehnyt normikäyttäjälle mutta en muista miten?

Root (tai mikä vaan) shell vaihdetaan yksinkertaisesti näin:
Koodia: [Valitse]
cd /root
sudo chsh -s $(which zsh)
Tavallinen käyttäjä ilman sudoa.

Tälläistä jälkeä komento antaa:
Koodia: [Valitse]
raimo@kone-3% cd /root
raimo@kone-3% sudo chsh -s $(which zsh)
[sudo] password for raimo:
Changing shell for root.
Shell changed.
raimo@kone-3% sudo getent passwd root | cut -d: -f7
/usr/bin/zsh
raimo@kone-3%
« Viimeksi muokattu: 18.02.25 - klo:00.40 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

SuperOscar

  • Käyttäjä
  • Viestejä: 4130
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Miten poistetaan symbolinen linkki? [RATKAISTU]
« Vastaus #19 : 18.02.25 - klo:10.25 »
Root (tai mikä vaan) shell vaihdetaan yksinkertaisesti näin:
Koodia: [Valitse]
cd /root
sudo chsh -s $(which zsh)

Tai vielä yksinkertaisemmin:

Koodia: [Valitse]
# Vaihtaa vuorovaikutteisesti komennon ajavan käyttäjän komentotulkin
chsh

# Vaihtaa vuorovaikutteisesti root-käyttäjän komentotulkin
sudo chsh root
pöytäkone 1, NUC, kannettava 1: openSUSE Leap 15.6, kannettavat 2–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11