Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Snufkin - 06.08.25 - klo:14.20

Otsikko: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: Snufkin - 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$
Otsikko: Vs: Bash-kehotteen muotoilu
Kirjoitti: janne - 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.
Otsikko: Vs: Bash-kehotteen muotoilu
Kirjoitti: Snufkin - 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$
Otsikko: Vs: Bash-kehotteen muotoilu
Kirjoitti: janne - 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.
Otsikko: Vs: Bash-kehotteen muotoilu
Kirjoitti: Snufkin - 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ö.
Otsikko: Vs: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: janne - 12.08.25 - klo:17.19
Sitten vielä alias c='clear', niin kummasti selkeytyy tuo komentotulkin käyttö.
Mites ctrl+l?
Otsikko: Vs: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: Snufkin - 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.
Otsikko: Vs: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: Snufkin - 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.
Otsikko: Vs: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: AimoE - 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.
Otsikko: Vs: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: SuperOscar - 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
Otsikko: Vs: Bash-kehotteen muotoilu [RATKAISTU]
Kirjoitti: Snufkin - 12.08.25 - klo:18.46

Katso pdw -P ja cd -P.

Kiitos, tämä toimi

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