Kirjoittaja Aihe: Bash-kehotteen muotoilu [RATKAISTU]  (Luettu 762 kertaa)

Snufkin

  • Käyttäjä
  • Viestejä: 469
    • Profiili
Bash-kehotteen muotoilu [RATKAISTU]
« : 06.08.25 - klo:14.20 »
Moi!

Saako Bashin $PS1-muuttujaan jotenkin sellaista asetusta, että näyttäisi vain hakemistopolun viimeisen kansion? Pelkkä polku kasvaa helpsoti pidemmäksi kuin koko rivi.

Esim.
user@kone: ~/Documents/Pictures/Home/Summer$
näkyisi muodossa
user@kone: .../Summer$
« Viimeksi muokattu: 12.08.25 - klo:16.18 kirjoittanut Snufkin »
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

janne

  • Käyttäjä
  • Viestejä: 5153
    • Profiili
Vs: Bash-kehotteen muotoilu
« Vastaus #1 : 09.08.25 - klo:00.22 »
Muuttujaan voisi asettaa hakemistokohtaan jotain tämän tyylistä, tosin juurihakemistossa se palauttaa tyhjän:
Koodia: [Valitse]
${PWD##*/}
Onko tarkoitus säästää tilaa pelkästään sivusuunnassa. Itselläni on prompt kahdella rivillä, jolloin komentojen kirjoitus alkaa aina ikkunan vasemmasta laidasta. Tai on siinä mahdollisesti edellisen komennon paluuarvoa ja versionhallinnan statustietoja, mutta kuitenkin. Toki jos haluaa säästää tilaa myös korkeussuunnassa, niin silloin tämä ei ole vaihtoehto.
Janne

Snufkin

  • Käyttäjä
  • Viestejä: 469
    • Profiili
Vs: Bash-kehotteen muotoilu
« Vastaus #2 : 12.08.25 - klo:11.16 »

Onko tarkoitus säästää tilaa pelkästään sivusuunnassa. Itselläni on prompt kahdella rivillä, jolloin komentojen kirjoitus alkaa aina ikkunan vasemmasta laidasta. Tai on siinä mahdollisesti edellisen komennon paluuarvoa ja versionhallinnan statustietoja, mutta kuitenkin. Toki jos haluaa säästää tilaa myös korkeussuunnassa, niin silloin tämä ei ole vaihtoehto.

Joo, haluaisin saada tuon kehotteen hyvin kompaktiksi, eli säästää tilaa kummassakin suunnassa, mutta tuo viim. kansion nimi olisi tärkeä info.

Miten saan tuon ehdottamasi tähän niin, että polun loppuosa näkyy kehotteen jälkeen?

Koodia: [Valitse]
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
user@kone: ~/Kansio1/Kansio2$
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

janne

  • Käyttäjä
  • Viestejä: 5153
    • Profiili
Vs: Bash-kehotteen muotoilu
« Vastaus #3 : 12.08.25 - klo:15.19 »
Se tulisi tuohon \w:n tilalle.

Siinä on siis "muuttujia" tällä hetkellä \u \h ja \w (user, host ja working directory)
Kiinteitä merkkejä @ : ja $
Alkuun lisätään debian_chroot jos ollaan chroot-ympäristössä ja loput on väri- ja kontrollikoodeja.
« Viimeksi muokattu: 12.08.25 - klo:15.29 kirjoittanut janne »
Janne

Snufkin

  • Käyttäjä
  • Viestejä: 469
    • Profiili
Vs: Bash-kehotteen muotoilu
« Vastaus #4 : 12.08.25 - klo:16.14 »
Se tulisi tuohon \w:n tilalle.

Kiitos, nyt pelaa. En aluksi tajunnut laittaa tuota $-merkkiä mukaan, mutta kun koko rimpsun laittoi \w tilalle, niin nyt pelaa.

On todella näppärä. Kehote luokkaa <30 merkkiä ja pwd:llä saa helposti koko polun näyttöön. Siitäkin tein aliaksen p.

Sitten vielä alias c='clear', niin kummasti selkeytyy tuo komentotulkin käyttö.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

janne

  • Käyttäjä
  • Viestejä: 5153
    • Profiili
Vs: Bash-kehotteen muotoilu [RATKAISTU]
« Vastaus #5 : 12.08.25 - klo:17.19 »
Sitten vielä alias c='clear', niin kummasti selkeytyy tuo komentotulkin käyttö.
Mites ctrl+l?
Janne

Snufkin

  • Käyttäjä
  • Viestejä: 469
    • Profiili
Vs: Bash-kehotteen muotoilu [RATKAISTU]
« Vastaus #6 : 12.08.25 - klo:17.21 »
Sitten vielä alias c='clear', niin kummasti selkeytyy tuo komentotulkin käyttö.
Mites ctrl+l?

Toimii sekin, jotenkin vaan tykkään enemmän ihan kirjaimista.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

Snufkin

  • Käyttäjä
  • Viestejä: 469
    • Profiili
Vs: Bash-kehotteen muotoilu [RATKAISTU]
« Vastaus #7 : 12.08.25 - klo:17.29 »
Onko bashissa muuten sellaista ominaisuutta, että kun siirtyy linkin kautta uuteen kansioon, niin työhakemisto siirtyisi aidosti sinne linkin osoittamaan kansioon? Eli palaa sieltä esim. cd .. komennolla uuteen polkuun, jossa tuo linkin kohde. Nyt minulla palaa sinne, missä linkki oli.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

AimoE

  • Käyttäjä
  • Viestejä: 2872
    • Profiili
Vs: Bash-kehotteen muotoilu [RATKAISTU]
« Vastaus #8 : 12.08.25 - klo:18.14 »
Onko bashissa muuten sellaista ominaisuutta, että kun siirtyy linkin kautta uuteen kansioon, niin työhakemisto siirtyisi aidosti sinne linkin osoittamaan kansioon? Eli palaa sieltä esim. cd .. komennolla uuteen polkuun, jossa tuo linkin kohde. Nyt minulla palaa sinne, missä linkki oli.

Katso pdw -P ja cd -P. Oletushakemistohan ei ole oleiluhakemisto, sinne ei oikeasti "siirrytä". Oletushakemisto tarkoittaa oletusarvoa, jota järjestelmä käyttää kun et anna polkua kokonaan (kun annat vain loppuosan). Siinä on sama logiikka kuin oletusarvoissa yleensäkin: jos teet oharin, järjestelmä käyttää oletusarvoa paikkaamaan sen oharin. Esimerkiksi kun osoitat kohdistimella tiedostoa ja painat Ctrl-P, jätät kertomatta tulostusjonon ja kaikki tulostusasetukset. Järjestelmä sitten nappaa ne tiedot oletusasetuksista.

Me vaan käytetään sellaista sanontaa että siirrytään johonkin.
« Viimeksi muokattu: 12.08.25 - klo:18.23 kirjoittanut AimoE »

SuperOscar

  • Käyttäjä
  • Viestejä: 4218
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Bash-kehotteen muotoilu [RATKAISTU]
« Vastaus #9 : 12.08.25 - klo:18.27 »
No nyt kun asia on Bashissakin ratkennut, voi jo todeta, että Zsh:ssa olisi helpompaa.

Zsh:ssa Bashin \w-muuttujaa vastaa %~ (tilde), johon voi kirjoittaa numeerisen etuliitteen osoittamaa, montako hakemistotasoa (lopusta laskien) halutaan näkyviin. Esimerkiksi %3~ jättää näkyviin kolme viimeistä kansiota.

Jollei tämäkään riitä, %<…< ja %>…> antavat mahdollisuuden vapaasti leikata muuttujien tulostamasta jonosta halutun mittaisen pätkän.

Lisäksi tuo cd .. -ongelma olisi ratkaistavissa yksinkertaisesti asettamalla valinta CHASE_LINKS:
Koodia: [Valitse]
setopt chase_links
pöytäkone 1, kannettavat 1–2: Debian GNU/Linux 13;  NUC, kannettava 3: openSUSE Leap 15.6; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

Snufkin

  • Käyttäjä
  • Viestejä: 469
    • Profiili
Vs: Bash-kehotteen muotoilu [RATKAISTU]
« Vastaus #10 : 12.08.25 - klo:18.46 »

Katso pdw -P ja cd -P.

Kiitos, tämä toimi

Koodia: [Valitse]
cd -P Linkki siirtyy sinne kohdehakemistoon.

Xubuntu 22.04 LTS, Fujitsu Lifebook E754