Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[bashrc] - Trucos para bash
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, 4  Next  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
the incredible hurd
Guru
Guru


Joined: 01 Jan 2007
Posts: 381

PostPosted: Sun Jan 11, 2009 11:36 am    Post subject: Reply with quote

i92guboj wrote:
the incredible hurd, todo debería salir alineado si usas code tags en lugar de quote. Los bloques code usan la fuente monotype. Así que todo debería quedar bien alineado con code, siempre que tengas una fuente monotipo configurada correctamente para el caso en tu browser.

En cuanto a los tabuladores, la cosa es más compleja, porque depende del mecanismo que uses para copiar y pegar, la procedencia (editor, terminal), el browser y varias cosas más. Lo más seguro es convertirlo todo a espacios (o simplemente copiarlo desde un terminal, supongo).

Lo pongo en práctica:
Code:

Binary value    Octal value     Text value

000             0               ---
001             1               --x
010             2               -w-
011             3               -wx
100             4               r--
101             5               r-x
110             6               rw-
111             7               rwx



Advanced file permissions

suid bit (set user ID)          4000
sgid bit (set group ID)         2000
sticky bit                      1000

Sí señor, justo como me aprece en consola o en gnome-terminal. Evidentemente estaba copiado desde un terminal yno, con quote no aparece correctamente y con code sí (en los foros).

Muchas gracias por la solución al problema, si alguien se atreve a ponerlo como función, me alegraría. Soy muy :? y estoy intentando hacerlo con un printf, como todos los Ceporros (conste en acta: sin ánimo de ofender, todo lo contrario).
_________________
Nunca preguntes el camino a alguien que ya lo conoce. Podrías no perderte. (Nahman de Braslaw)
Back to top
View user's profile Send private message
pcmaster
Advocate
Advocate


Joined: 04 Dec 2003
Posts: 2219
Location: Barcelona

PostPosted: Sun Jan 11, 2009 12:05 pm    Post subject: Reply with quote

He visto ceporros ahogarse en un vaso de agua :D :D :D

Ahora en serio, no es tan difícil:

r=4 (lectura) - 100 en binario
w=2 (escritura) - 010 en binario
x=1 (ejecución) - 001 en binario

Se suman los valores para cada usuario y se ponen. Ejemplo: Queremos que el propietario tenga TODOS los permisos, que el grupo tenga lectura + ejecución, y los demás nada:

todos= 1+2+4=7
el grupo: 1+4=5
los demás =0

hacemos un chmod 750 archivo, y ya está.
_________________
pcmaster
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Sun Jan 11, 2009 1:13 pm    Post subject: Reply with quote

Code:

Binary value    Octal value     Text value

000             0               ---
001             1               --x
010             2               -w-
011             3               -wx
100             4               r--
101             5               r-x
110             6               rw-
111             7               rwx


Ésta tabla es la base de todo. La cosa es bien sencilla, tres permisos distintos: rwx. Para cada uno de ellos 1 es activado y 0 desactivado. Así 101 activa read and exec, pero no write. Convirtiendo ese número a octal tenemos un 5. Si repetimos el proceso para cada uno de user, group y others tenemos el numerito de 3 cifras que se usa como abreviatura a la hora de ejecutar chmod.

Por supuesto tanta conversión es un poco molesta, lo más sencillo es recordar que 4 es read, 2 es write y 1 es exec. Luego es tan solo sumar, como pcmaster muy bien dice arriba. Así 5 es 4+1, read and exec, 7 es 4+2+1 (todos los permisos), etc. etc. Es simple álgebra, y una vez que se tiene soltura los números empiezan a resultar tan naturales como si vieras los permisos escritos uno por uno delante de tus narices. ;)


the incredible hurd, no entiendo lo que quieres decir con lo de escribir ésto como una función. Si me das los detalles de lo que quieres hacer seguramente pueda echarte un cable con eso :)
Back to top
View user's profile Send private message
the incredible hurd
Guru
Guru


Joined: 01 Jan 2007
Posts: 381

PostPosted: Sun Jan 11, 2009 2:25 pm    Post subject: Reply with quote

i92guboj wrote:
the incredible hurd, no entiendo lo que quieres decir con lo de escribir ésto como una función. Si me das los detalles de lo que quieres hacer seguramente pueda echarte un cable con eso :)


Algo así ha quedado...
Code:

permisos () {
printf "Binary value    Octal value     Text value\n\n";
printf "000             0               ---\n";
printf "001             1               --x\n";
printf "010             2               -w-\n";
printf "011             3               -wx\n";
printf "100             4               r--\n";
printf "101             5               r-x\n";
printf "110             6               rw-\n";
printf "111             7               rwx\n\n\n";
printf "Advanced file permissions\n\n";
printf "suid bit (set user ID)          4000\n";
printf "sgid bit (set group ID)         2000\n";
printf "sticky bit                      1000\n\n";
}

Estaba pensando en añadir subrayados y demás, pero así basta y sobra...

Lo de Ceporro es porque he tenido que pensar 3 veces antes de no añadir un
#include <stdio.h>
:D
_________________
Nunca preguntes el camino a alguien que ya lo conoce. Podrías no perderte. (Nahman de Braslaw)
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Sun Jan 11, 2009 3:09 pm    Post subject: Reply with quote

the incredible hurd wrote:
i92guboj wrote:
the incredible hurd, no entiendo lo que quieres decir con lo de escribir ésto como una función. Si me das los detalles de lo que quieres hacer seguramente pueda echarte un cable con eso :)


Algo así ha quedado...
Code:

permisos () {
printf "Binary value    Octal value     Text value\n\n";
printf "000             0               ---\n";
printf "001             1               --x\n";
printf "010             2               -w-\n";
printf "011             3               -wx\n";
printf "100             4               r--\n";
printf "101             5               r-x\n";
printf "110             6               rw-\n";
printf "111             7               rwx\n\n\n";
printf "Advanced file permissions\n\n";
printf "suid bit (set user ID)          4000\n";
printf "sgid bit (set group ID)         2000\n";
printf "sticky bit                      1000\n\n";
}

Estaba pensando en añadir subrayados y demás, pero así basta y sobra...

Lo de Ceporro es porque he tenido que pensar 3 veces antes de no añadir un
#include <stdio.h>
:D


:lol: Tampoco habría hecho daño, por el '#' jeje 8)

Por cierto, los punto y coma finales tampoco son necesarios en bash (tampoco es que hagan daño igualmente).
Back to top
View user's profile Send private message
edgar_uriel84
Guru
Guru


Joined: 21 Dec 2008
Posts: 485
Location: Tultitlan, México

PostPosted: Wed Jan 14, 2009 5:38 pm    Post subject: Reply with quote

the incredible hurd wrote:

Code:

Binary value    Octal value     Text value

000             0               ---
001             1               --x
010             2               -w-
011             3               -wx
100             4               r--
101             5               r-x
110             6               rw-
111             7               rwx



Advanced file permissions

suid bit (set user ID)          4000
sgid bit (set group ID)         2000
sticky bit                      1000



Pues a mi esto del archivo me ha dado la idea de hacer apuntes de cosas que suelo enseñar y/o olvidar porque aunque son importantes no realizo tareas realizas con eso muy seguido. Soy miembro de LIDSOL un laboratorio de la UNAM (México) donde nos dedicamos al Software Libre y me he fijado que los que apenas están aprendiendo no se les olvida como funciona "ls" se les olvida que comando se usa para listar el contenido de un directorio. Por eso creo que es una buena idea, además no conozco un software que lo haga, si existe avísenme (Excluir Firefox-Google :lol: ).

Entonces serviría hacer una guía de comandos básicos para que los novatos la consulten mientras aprender a usar la consola, esto con solo teclear "$ayuda_comandos" o algo similar. Haré esto que les comento y lo subiré (en un rato porque mi tiempo es limitado) haber que opinan.

Aprovecho para agregar una función sencilla y que uso mucho, copiar un DVD al HDD:

Code:

copydvd() {
        dvdbackup -M -i $1 -o $2
}
Back to top
View user's profile Send private message
jgascon
Apprentice
Apprentice


Joined: 08 Dec 2006
Posts: 252

PostPosted: Sun Jan 25, 2009 12:15 pm    Post subject: Reply with quote

He escrito una pequeña mejora para la función avijoin poder pasarle 2 ó 3 ficheros para unir. El último fichero que le pasemos será el resultado de la unión de los anteriores ficheros. Además comprueba si el archivo que le pasamos como resultado existe y si existe sale de la función sin hacer nada.

Code:

function avijoin {
  case $# in
    3) [ -f "$3" ] && { echo "$3 file exists!" ; return 1; }
       mencoder -quiet -oac copy -ovc copy -idx "$1" "$2" -o "$3" ;;
    4) [ -f "$4" ] && { echo "$4 file exists!" ; return 1; }
       mencoder -quiet -oac copy -ovc copy -idx "$1" "$2" "$3" -o "$4" ;;
    *) echo "Usage: avijoin part1 part2 [part3] output_file" ;;
  esac
}
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Fri Jul 10, 2009 9:22 am    Post subject: Reply with quote

hola que tal , creo es el lugar ideal para hacer esta pregunta :)

no consigo saber la diferencia entre el .bashrc y el .bash_profile, si alguien me lo explicara bien, asi entendería la diferencia de poner alias o comandos en uno u otro y el porque de hacerlo en uno y no en otro.

Seguidamente os paso mis comandos ( que no creo interesen a nadie)

bashrc:
Code:
#ALIAS
        alias re='sudo shutdown -r now'
        alias st='sudo shutdown -h now'
        alias rR='sudo rm -R'
        alias e1n='sudo emerge -avuDN  --keep-going world'
        alias e1='sudo emerge -avuD  --keep-going world'
        alias av='sudo emerge -av'
        alias sx='startx'
        alias l='ls -a'
        alias ll='ls -lah'
        alias n='sudo nano -w'
        alias ocz='sudo mount -t vfat /dev/disk/by-id/usb-OCZ_ATV_AA04012700129708-0\:0-part1 /mnt/ocz/'
        alias ey='sudo eix-sync'
        alias ..="cd .."
        alias h="history"


y estos en el bash_profile:
Code:
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
export LANG="ca_ES.UTF-8"
export LC_COLLATE="C"

el comando referente al lenguaje me permite tener entornos idiomaticos a escojer por cada usuario.

:)
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Fri Jul 10, 2009 9:46 am    Post subject: Reply with quote

papu wrote:
hola que tal , creo es el lugar ideal para hacer esta pregunta :)

no consigo saber la diferencia entre el .bashrc y el .bash_profile, si alguien me lo explicara bien, asi entendería la diferencia de poner alias o comandos en uno u otro y el porque de hacerlo en uno y no en otro.


~/.bashrc se lee cada vez que se inicia una sesión de bash que sea interactiva y que no sea de login. Traducido al castellano plano: cada vez que abres un terminal como xterm, konsole, urxvt o el que tú uses.

~/.bash_profile se lee cada vez que se inicia una sesión de bash que sea interactiva y que sea de login. Por ejemplo, cuando haces login en una consola de texto fuera de X.
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 245

PostPosted: Fri Jul 10, 2009 9:51 am    Post subject: Reply with quote

A ver si puedo ayudarte un poco que yo empecé en esto de bash hace poco:

bash_profile es el archivo para cada entorno de bash individual, es decir, para cada usuario. Y como te han dicho, bashrc es para shells que no requieren login (por ejemplo, las arrancadas desde X).

Te recomiendo que te leas La Guía Bash para principiantes (en inglés). Ahí vienen explicadas, entre otras, las dudas que planteas.

¡Saludos!
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Fri Jul 10, 2009 9:57 am    Post subject: Reply with quote

i92guboj wrote:
papu wrote:
hola que tal , creo es el lugar ideal para hacer esta pregunta :)

no consigo saber la diferencia entre el .bashrc y el .bash_profile, si alguien me lo explicara bien, asi entendería la diferencia de poner alias o comandos en uno u otro y el porque de hacerlo en uno y no en otro.


~/.bashrc se lee cada vez que se inicia una sesión de bash que sea interactiva y que no sea de login. Traducido al castellano plano: cada vez que abres un terminal como xterm, konsole, urxvt o el que tú uses.

~/.bash_profile se lee cada vez que se inicia una sesión de bash que sea interactiva y que sea de login. Por ejemplo, cuando haces login en una consola de texto fuera de X.


aja ya si eso lo entendia en ingles pero me quedaba igual como no se el concepto de consola interactiva pues es por eso, entonces el orden de carga es bash_profile(la consola inicio en modo texto) y luego se carga el bashrc?

es curioso esto
Code:
export LANG="ca_ES.UTF-8"
export LC_COLLATE="C"

si inicio con kdm si no lo pongo en bash_profile no lo detecta pero hasta ahora que usaba startx dejandolo en bashrc si funcionaba, no tengo claro los conceptos entre las consolas :D

saludos, adéu.
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Fri Jul 10, 2009 10:19 am    Post subject: Reply with quote

papu wrote:
i92guboj wrote:
papu wrote:
hola que tal , creo es el lugar ideal para hacer esta pregunta :)

no consigo saber la diferencia entre el .bashrc y el .bash_profile, si alguien me lo explicara bien, asi entendería la diferencia de poner alias o comandos en uno u otro y el porque de hacerlo en uno y no en otro.


~/.bashrc se lee cada vez que se inicia una sesión de bash que sea interactiva y que no sea de login. Traducido al castellano plano: cada vez que abres un terminal como xterm, konsole, urxvt o el que tú uses.

~/.bash_profile se lee cada vez que se inicia una sesión de bash que sea interactiva y que sea de login. Por ejemplo, cuando haces login en una consola de texto fuera de X.


aja ya si eso lo entendia en ingles pero me quedaba igual como no se el concepto de consola interactiva pues es por eso, entonces el orden de carga es bash_profile(la consola inicio en modo texto) y luego se carga el bashrc?


No necesariamente, aunque usualmente si. Siempre hay un primer shell de login, tarde o temprano. ~/.bashrc no tiene por qué cargarse en absoluto, si no inicias ningún shell interactivo a mano.

Quote:
es curioso esto
Code:
export LANG="ca_ES.UTF-8"
export LC_COLLATE="C"

si inicio con kdm si no lo pongo en bash_profile no lo detecta pero hasta ahora que usaba startx dejandolo en bashrc si funcionaba, no tengo claro los conceptos entre las consolas :D


Un mejor sitio para estas cosas es /etc/env.d/02locales, por ejemplo. Si lo quieres para un usuario solo entonces lo mejor es ponerlo en ambos, ~/.bashrc y ~/.bash_profile, así entres como entres a tus shells y al resto del sistema debería estar todo correcto.
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Fri Jul 10, 2009 1:27 pm    Post subject: Reply with quote

i92guboj wrote:
papu wrote:
i92guboj wrote:
papu wrote:
hola que tal , creo es el lugar ideal para hacer esta pregunta :)

no consigo saber la diferencia entre el .bashrc y el .bash_profile, si alguien me lo explicara bien, asi entendería la diferencia de poner alias o comandos en uno u otro y el porque de hacerlo en uno y no en otro.


~/.bashrc se lee cada vez que se inicia una sesión de bash que sea interactiva y que no sea de login. Traducido al castellano plano: cada vez que abres un terminal como xterm, konsole, urxvt o el que tú uses.

~/.bash_profile se lee cada vez que se inicia una sesión de bash que sea interactiva y que sea de login. Por ejemplo, cuando haces login en una consola de texto fuera de X.


aja ya si eso lo entendia en ingles pero me quedaba igual como no se el concepto de consola interactiva pues es por eso, entonces el orden de carga es bash_profile(la consola inicio en modo texto) y luego se carga el bashrc?


No necesariamente, aunque usualmente si. Siempre hay un primer shell de login, tarde o temprano. ~/.bashrc no tiene por qué cargarse en absoluto, si no inicias ningún shell interactivo a mano.

Quote:
es curioso esto
Code:
export LANG="ca_ES.UTF-8"
export LC_COLLATE="C"

si inicio con kdm si no lo pongo en bash_profile no lo detecta pero hasta ahora que usaba startx dejandolo en bashrc si funcionaba, no tengo claro los conceptos entre las consolas :D


Un mejor sitio para estas cosas es /etc/env.d/02locales, por ejemplo. Si lo quieres para un usuario solo entonces lo mejor es ponerlo en ambos, ~/.bashrc y ~/.bash_profile, así entres como entres a tus shells y al resto del sistema debería estar todo correcto.


el /etc/env.d/02locales afecta a la sesión root la cual tengo configurada identico que en usario pero para idioma ingles, luego en mi usuario tengo lo anteriormente puesto que me carga el idioma catalan en concreto.

Un shell interactivo exactamente que es? o sea al inicio de del s.o en modo consola se carga un shell, luego si le doy a alt+fx para cargar algun otro shell eso es considerado interactivo?

Porque sin usar kdm me bastaba con tenerlo en .bashrc todo y me lo detectaba tras un startx. ¿Entonces el orden logico del shell es como he dicho yo no?

Los comandos que yo desee poner entonces pueden ponerse tanto en .bashrc como en bash_profile, es decir acepta los mismos sin problema ¿verdad?
o como tu dices poner los mismos en ambos para que la deteccion sea correcta en cualquier circunstancia.
es un poco lioso esto de los dos bash estos :O

saludos, adéu.
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Fri Jul 10, 2009 1:35 pm    Post subject: Reply with quote

Code:
# /etc/skel/.bash_profile

# This file is sourced by bash for login shells.  The following line
# runs your .bashrc and is recommended by the bash info pages.
[[ -f ~/.bashrc ]] && . ~/.bashrc

Esté código es el que se queda en $HOME/.bash_profile al crear cada usuario. Es bastante claro que lee .bashrc si este existe, por lo tanto de la forma que inicies un terminal siempre se leerá tu .bashrc. Con esto ya no será necesario añadir nada más a .bash_profile, déjalo todo en tu .bashrc y lo tendrás mejor ordenado y sin líos de si debe estar en un lado o en otro.
_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Fri Jul 10, 2009 1:44 pm    Post subject: Reply with quote

Coghan wrote:
Code:
# /etc/skel/.bash_profile

# This file is sourced by bash for login shells.  The following line
# runs your .bashrc and is recommended by the bash info pages.
[[ -f ~/.bashrc ]] && . ~/.bashrc

Esté código es el que se queda en $HOME/.bash_profile al crear cada usuario. Es bastante claro que lee .bashrc si este existe, por lo tanto de la forma que inicies un terminal siempre se leerá tu .bashrc. Con esto ya no será necesario añadir nada más a .bash_profile, déjalo todo en tu .bashrc y lo tendrás mejor ordenado y sin líos de si debe estar en un lado o en otro.


sin duda lo tenía asi hasta ahora que iniciaba con startx , pero dado un problema al respecto del cual tengo puesto un post , ahora inicio mediante kdm y si tengo el idioma puesto en .basrc (como hasta ahora) no me carga en las X , si lo pongo en bash_profile si lo hace.

saludos, adéu.
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Fri Jul 10, 2009 5:22 pm    Post subject: Reply with quote

papu wrote:

el /etc/env.d/02locales afecta a la sesión root la cual tengo configurada identico que en usario pero para idioma ingles, luego en mi usuario tengo lo anteriormente puesto que me carga el idioma catalan en concreto.


Comprendo.

Quote:
Un shell interactivo exactamente que es? o sea al inicio de del s.o en modo consola se carga un shell, luego si le doy a alt+fx para cargar algun otro shell eso es considerado interactivo?


Un shell interactivo es un shell en el que tú puedes escribir y ejecutar comandos. Un shell the login en una vt es interactivo. Un shell dentro de un xterm es interactivo. El shell the se abre cuando ejecutar un script que comienza por "#!/bin/bash" no es interactivo, porque su entrada no está asociada a un terminal en el que tú puedas escribir, sino al script.

Quote:
Porque sin usar kdm me bastaba con tenerlo en .bashrc todo y me lo detectaba tras un startx. ¿Entonces el orden logico del shell es como he dicho yo no?


No se como hace las cosas kdm. Es más, startkde es un script bash él mismo, y puede que use el comando source o similar para incorporar los archivos de inicialización del shell o algo. Por tanto, sobre el tema kde no puedo ayudar, no lo tengo instalado.

Quote:
Los comandos que yo desee poner entonces pueden ponerse tanto en .bashrc como en bash_profile, es decir acepta los mismos sin problema ¿verdad?


En principio, ambos son scripts de bash. Cualquier cosa que bash entienda puede ir en dichos ficheros. Sin embargo, ten en cuenta que son ficheros de inicialización, no librerías de código universales. Recomiendo sobriedad :p

Quote:
o como tu dices poner los mismos en ambos para que la deteccion sea correcta en cualquier circunstancia.
es un poco lioso esto de los dos bash estos :O


Puede haber casos en los que quieras que una tarea se ejecute al hacer login, pero no cada vez que abres un xterm, es el propósito de todo este lío de archivos. Sí que es cierto que hay formas más elegantes de implementarlo que yo habría escogido, en lugar de la marea de archivos de inicialización que bash soporta.
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Fri Jul 10, 2009 5:45 pm    Post subject: Reply with quote

[quote="i92guboj"]
papu wrote:

Puede haber casos en los que quieras que una tarea se ejecute al hacer login, pero no cada vez que abres un xterm, es el propósito de todo este lío de archivos. Sí que es cierto que hay formas más elegantes de implementarlo que yo habría escogido, en lugar de la marea de archivos de inicialización que bash soporta.


mmm ya , te refiers a cargar archivos a parte mediante el comando source dentro de el/los .bash ¿no?
Quote:

source /home/usuario/.idioma
source /home/usuario/.alias


o algo parecido...mmm haciendo eso recuerdo que tube algun problema con la deteccion al inicio de session pero ya on recuerdo quizás fue por lo mismo que ahora he de cambiar los EXPORT al bash_profile(usando kdm) en lugar de como antes los tenia en bashrc usando startx.

Yo tampoco me gusta usar kdm pero es que no me va la X y no se como arreglarlo como explico aquí:
https://forums.gentoo.org/viewtopic-t-778922.html

saludos, adéu.
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Fri Jul 10, 2009 6:23 pm    Post subject: Reply with quote

papu wrote:
i92guboj wrote:

Puede haber casos en los que quieras que una tarea se ejecute al hacer login, pero no cada vez que abres un xterm, es el propósito de todo este lío de archivos. Sí que es cierto que hay formas más elegantes de implementarlo que yo habría escogido, en lugar de la marea de archivos de inicialización que bash soporta.


mmm ya , te refiers a cargar archivos a parte mediante el comando source dentro de el/los .bash ¿no?


Me refiero a nivel interno de bash. Si yo hubiera programado bash probablemente habría incluído algún tipo de flag que pudiera ser chequeada desde dentro de bash para ver si la sesión actual es de login, interactiva o lo que sea, eliminando la necesidad de tanto archivo de inicio. Habría uno solo, y podríamos hacer cosas como

Code:
if [[ <this is a login session> ]]
then
   whatever
fi


Para mi es más práctico que tener montones de archivos separados. La cosa con bash es incluso más complicada, hay varios archivos más, todos (o casi) están listados en la sección "INVOCATION" de la página man de bash.

Quote:

Yo tampoco me gusta usar kdm pero es que no me va la X y no se como arreglarlo como explico aquí:
https://forums.gentoo.org/viewtopic-t-778922.html

saludos, adéu.


He colgado una respuesta en ese hilo.
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Fri Jul 10, 2009 7:23 pm    Post subject: Reply with quote

i92guboj wrote:
papu wrote:
i92guboj wrote:

Puede haber casos en los que quieras que una tarea se ejecute al hacer login, pero no cada vez que abres un xterm, es el propósito de todo este lío de archivos. Sí que es cierto que hay formas más elegantes de implementarlo que yo habría escogido, en lugar de la marea de archivos de inicialización que bash soporta.


mmm ya , te refiers a cargar archivos a parte mediante el comando source dentro de el/los .bash ¿no?


Me refiero a nivel interno de bash. Si yo hubiera programado bash probablemente habría incluído algún tipo de flag que pudiera ser chequeada desde dentro de bash para ver si la sesión actual es de login, interactiva o lo que sea, eliminando la necesidad de tanto archivo de inicio. Habría uno solo, y podríamos hacer cosas como

Code:
if [[ <this is a login session> ]]
then
   whatever
fi


Para mi es más práctico que tener montones de archivos separados. La cosa con bash es incluso más complicada, hay varios archivos más, todos (o casi) están listados en la sección "INVOCATION" de la página man de bash.

Quote:

Yo tampoco me gusta usar kdm pero es que no me va la X y no se como arreglarlo como explico aquí:
https://forums.gentoo.org/viewtopic-t-778922.html

saludos, adéu.


He colgado una respuesta en ese hilo.


aja, yo olvidé hace mucho tiempo programar en script y tampoco sabía mucho entonces me resulta más practico hacerlo asi ya que tampoco es que sea molesto y me funciona, la ventaja es que en linux se pueden hacer las cosas de muchas maneras y mas en gentoo, pero en mi caso por ahora no sabría como.
La otra respuesta la miro luego y te contesto por el otro hilo.

saludos, adéu.
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
carlos plaza
Guru
Guru


Joined: 22 Jan 2005
Posts: 341
Location: Venezuela

PostPosted: Fri Jul 10, 2009 11:42 pm    Post subject: Reply with quote

Como disfruto de Gentoo y de este foro, tengo que hacer mas tiempo para poder digerir toda este maravilloso ingenio y sabiduría gracias a todos, lastima que no tenga nada que aportar ya que tengo el vicio de escribir todos los comandos y como sufro cuando alguno se me olvida. pero ya tengo soluciones gracias a ustedes, se les admira.
_________________
“La amabilidad es un idioma que el sordo puede oír y el ciego puede ver.”

linux user 384810
Back to top
View user's profile Send private message
ensarman
Guru
Guru


Joined: 13 Apr 2006
Posts: 492

PostPosted: Sat Jul 11, 2009 2:47 am    Post subject: Reply with quote

este tema esta interesantisimo... buenos posts,nunca lo habia visto, weno esto es lo unico propio que hace con el .bashrc

Code:
if [ ! -S /tmp/.X11-unix/X0 ]; then
    startx &
else
    if [[ `ps ax |grep SCREEN |grep -v grep |wc -l` = 0 && ${DISPLAY} ]]; then
        screen
    else
        screen -r
    fi
    clear
fi


hace esto:

# iniciar el Xorg al loguearme en cualquer consola virtual
# solamente ejecutar Xorg si esque no existe otro Xorg
# ejecutar GNUscreen solo en la consola grafica(xterm, rxvt, gnome-terminal)
# si existe una sesion de screen abierta entrar a ella(solo en una consola grafica)
# en una consola virtual(consola modo texto) no se debe ejecutar GNUscren
Back to top
View user's profile Send private message
Txema
l33t
l33t


Joined: 20 May 2008
Posts: 772
Location: Granada

PostPosted: Sun Dec 20, 2009 9:58 am    Post subject: Reply with quote

Bueno pues voy a contribuir yo también ^^

Estos son dos script que hice y llevo usando un tiempo ya, y me pareció que ya iba siendo hora de compartirlos con la comunidad para que pueda usarlos el que quiera ;)

upgrade (de este he tomado muchas cosas de este mismo foro, como elogv, e incluso el comentario de revdep-rebuild xDD aunque no recuerdo de quien, de alguno de los grandes gurús fue):
Code:
#!/bin/bash

layman -S

eix-sync

emerge -avuND --keep-going system

emerge -avuND --keep-going world

elogv

env-update && source /etc/profile && cfg-update -u

emerge -a --depclean

revdep-rebuild -p  # En caso de que cante paquetes a recompilar vuelvo a ejecutarlo sin la opción -p

eclean-dist -d

Para su correcto funcionamiento requiere elogv, cfg-update, eix, gentoolkit y layman si tenéis overlays, si no comentad la primera línea


KernelInstall (funciona tanto para x86 como para amd64):
Code:
#!/bin/bash                                     

echo "Selecciona el kernel a compilar:"
echo "-------------------------------------"
echo "`eselect kernel list`"               
echo "-------------------------------------"
echo "[Indique el número o presione enter para seleccionar el actual]"
echo ""                                                               
read LINK                                                             
case "$LINK" in                                                       
        "" )                               
                echo "Kernel ya seleccionado, se continúa el proceso"
                echo ""                                               
        ;;                                                           
        * )                                                           
                echo "Nuevo kernel seleccionado, se continúa el proceso"
                echo ""                                     
                eselect kernel set $LINK                 
        ;;                         
esac                       
                             
cd /usr/src/linux/           
                                     
echo " ------ Intentando copia de .config de kernel anterior ------ "       
cp /usr/src/linux-`uname -r`/.config /usr/src/linux/               
                                                                         
if [ -s .config ]                                                 
then                                                                 
        echo "Encontrado archivo de configuración .config"       
        echo ""                                       
else                                               
        echo "No hay archivo previo de configuración. Saliendo"     
        echo ""                                                   
        exit                                               
fi                                                         

echo " ------ Configurando Kernel... ------ "
echo ""
make oldconfig
make menuconfig

echo " ------ Compilando Kernel... ------ "
echo ""
make && make modules_install

KERNEL=`ls -l /usr/src/linux|sed 's/^.*linux-//'`
ACTUAL1=`grep -m 1 /kernel /boot/grub/grub.conf|sed 's/^.*\/boot\/kernel-//g'|sed 's/ root.*//g'`
ACTUAL2=`grep /kernel /boot/grub/grub.conf|sed 's/^.*\/boot\/kernel-//g'|sed 's/ root.*//g'|sed 's/ root.*//g'|sed -e '1d'`

echo " ------ Recompilando drivers ------ "
module-rebuild -X rebuild

echo " ------ Copiando nueva imagen a /boot ------ "
echo ""
cp /usr/src/linux/arch/x86/boot/bzImage /boot/kernel-${KERNEL}

echo " ------ Modificando grub ------ "

if [[ $KERNEL != $ACTUAL1 && $KERNEL != $ACTUAL2  ]]
then
        sed -i "s/${ACTUAL1}/borrado/" /boot/grub/grub.conf
        sed -i "s/${ACTUAL2}/${ACTUAL1}/" /boot/grub/grub.conf
        sed -i "s/borrado/${KERNEL}/" /boot/grub/grub.conf

        BORRAR=`ls /boot/kernel*|sed 's/  /\n/g'|sed 's/\/boot\/kernel-//g'`
        for i in $BORRAR
        do
                if [[ $i != $KERNEL && $i != $ACTUAL1 ]]
                then
                        rm /boot/kernel-$i
                fi
        done

elif [[ $KERNEL = $ACTUAL1 ]]
then
        # No se hace nada
        echo "Versión idéntica de kernel, grub.conf no modificado."

elif [[ $KERNEL = $ACTUAL2 ]]
then
        echo "Versión idéntica de kernel, Entrada antigua colocada en primer lugar"
        sed -i "s/${ACTUAL1}/borrado/" /boot/grub/grub.conf
        sed -i "s/${ACTUAL2}/${ACTUAL1}/" /boot/grub/grub.conf
        sed -i "s/borrado/${KERNEL}/" /boot/grub/grub.conf
fi


Este último compila un nuevo kernel (o recompila el mismo) y modifica grub para actualizar las entradas, dejando sólo dos, el recién compilado y el anterior.

Seguro que son muy mejorables, pero aquí los dejo para el que quiera echarles un ojo ;)

Saludos.
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Wed Dec 23, 2009 10:16 pm    Post subject: Reply with quote

Hola @Txema.

He visto tu script para actualizar el sistema, en principio te puedes ahorrar dos líneas:
  • Layman -S: veo que usas eix-sync para actualizar el árbol de portage, éste también es capaz de actualizar los overlays, simplemente crea el fichero /etc/eix-sync.conf con un asterisco [*] como primera línea. De esta manera eix-sync actualiza primero los overlays y luego el portage oficial y al finalizar realiza un update y lista los ebuilds nuevos de todo el conjunto. En la manpage de eix tienes más ayuda sobre este archivo.

  • emerge -avuND --keep-going system : también te los puedes ahorar, al actualizar world este también incluirá los ebuild que formen parte de system del perfil que estés usando. Usar sytem puede ser útil por ejemplo al actualizar gcc para dejar sanos los ebuild importantes sin necesidad de pasar por un -e world, o si tienes roto el toolchain y necesitas reparar un sistema mínimo.

_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
Txema
l33t
l33t


Joined: 20 May 2008
Posts: 772
Location: Granada

PostPosted: Wed Dec 23, 2009 11:05 pm    Post subject: Reply with quote

Muchas gracias por los consejos, el primero no lo conocía y lo pondré en práctica desde ya. El segundo ya lo sabía pero tengo la costumbre de separar el system del world, para asegurarme de que se actualicen los paquetes importantes primero y por si no quiero actualizar world sino sólo system ;)

Saludos.
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 707
Location: Sota algun pi o alzina...

PostPosted: Thu Dec 24, 2009 12:36 am    Post subject: Reply with quote

Code:
#!/bin/bash

layman -S

eix-sync

emerge -avuND --keep-going system

emerge -avuND --keep-going world

elogv

env-update && source /etc/profile && cfg-update -u

emerge -a --depclean

revdep-rebuild -p  # En caso de que cante paquetes a recompilar vuelvo a ejecutarlo sin la opción -p

eclean-dist -d


no conocia elogv ni cfg-update, elogv exactamente que es lo que hace?ya que no le veo mucha utilidad; y cfg-update es como un etc-update?

lo que no conocia tampoco eclean-dist -d que limpia /usr/portage/distfiles? es lo mismo que eclean distfiles supongo, entonces eclean que limpia exactamente?


lo del depclean lo entiendo supongo para mirar si se ve algo que uno mismo sabe que puede quitar, porque ni harto de vino haría un depclean tampoco ( malas experiencias).

saludos, adéu.
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470


Last edited by papu on Thu Dec 24, 2009 12:50 am; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page Previous  1, 2, 3, 4  Next
Page 3 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum