Showing posts with label basicos. Show all posts
Showing posts with label basicos. Show all posts

Tuesday, September 22, 2015

La importancia de los PPAs en Ubuntu y derivados: el caso Screenfetch.

Hace uno o dos años instalé Screefetch en Luna siguiendo las indicaciones del artículo anterior:

Elementary Luna en mi computadora de escritorio. Nota: el CPU dice "modelo desconocido" porque es uno de esos Phenom II a los que se les pueden activar núcleos dormidos. Pero eso es un tema de hardware y no es relevante.


La cuestión es que para entonces-tenía menos conocimiento y voluntad que los  que tengo ahora y no entendí concientemente la necesidad de agregar un simple PPA a mi Distro vía Terminal (según entiendo, esto puede hacerse vía GUI usando Synaptic; pero no hablaré de eso porque he usado Synaptic muy poco y Terminal es siempre nuestra primera opción). Para un novato, hacer todo esto para instalar un simple programita parecía extraño, incomprensible, poco amigable.

Aquí podría hablar de un dilema de carácter filosófico: a veces las instrucciones de los expertos en la comunidad  son precisas; sin embargo, llegar a ellas  y entenderlas puede ser difícil para un novato; no porque seamos tontos o ignorantes sino porque muchas veces no sabemos qué buscar una vez tenemos los resultados y la info frente a nosotros. Tal vez es que estamos acostumbrados a dar dos clicks para instalar algo, o sólo decirle que "sí" a todo el wizard de instalación; o a lo mejor es que las plataformas de Software Libre son a veces muy  escuetas y muy poco intuitivas (por ejemplo, hay muchos tutoriales que te dicen "escribí este código" pero pocos te describen qué es, qué hace, y por qué lo estás escribiendo). Estoy seguro de que muchos diseñadores UX podría estar de acuerdo conmigo y probablemente los desarrolladores no, puesto que el FOSS ha tenido una población mayoritariamente "tecchy".  

Así que, conectado a mi Banana Pro haciendo sesión remota desde mi laptop, quería saber si era posible generar el logo a pesar de estar conectado en acceso remoto, y qué tipo de logo reportaría Screenfetch para Raspbian, la distro del Banana Pro, puesto que el Banana Pi/Pro tiene un logo distinto al Raspberry Pi. Luego de esta intro aburrida,aquí vamos:

Screenfetch para Ubuntu y derivados.



Cuando voy al hipervínculo que sale en el paso 2 de la imagen anterior, soy referido al Launchpad de un usuario en Launchpad, quien parece haber "porteado" Screenfetch hacia los repos de Ubuntu:




Ya con esta información, es suficiente y puedo ponerme a trabajar. Si estás corriendo Ubuntu o derivados (como Freya), vas a tener que escribir dos comandos en tu Terminal:

$ sudo add-apt-repository ppa:djcj/screenfetch
$ sudo apt install screenfetch

En ambos casos se te va a preguntar si querés agregar y permitir instalar. Aceptás y ya. Corrés 

$ screenfetch

y listo. 

Así screenfetch debería de funcionar para usuarios de Ubuntu, ElementaryOS y afines. Sin embargo, no fue así como lo instalé inicialmente durante esta tarde; lo logré con el otro método que te mostré antes; pero repliqué este otro y también funcionó.

Eso es todo por hoy. Compartinos tus Screenshots :)


Screenfetch: información de tu PC, Distro y su logo, en Terminal.

Cuando empezaste a buscar información del FOSS (Free and Open Source Software), o cuando buscabas formas de personalizar tu Distro, seguramente te encontraste con imágenes como esta en los foros:

ElementaryOS Freya (originalmente sería lanzado como Isis, pero debido a los acontecimientos en medio orientese decidió cambiar el nombre). Nótese que desde Luna se empezaron a usar nombres de deidades femininas para cada Versión nueva de Elementary.

Estas capturas de pantalla que los Linuxeros y Unixeros (o sea, usuarios de sistemas operativos Unix, en general) comparten, tienen información de sus Equipos: hardware, sistema operativo y Kernel, junto con el logo renderizado a puros caracteres Unicode (letras, números y símbolos). A lo mejor te preguntaste cómo se hace esto. Simple: buscando, leyendo, aprendiendo, aplicando. Hay varias herramientas que se usan para este objetivo y la más conocida tal vez es ScreenFetch (sedice scriinfetch").

Screenfetch es una herramienta que Brett Bohnenkamper, mejor conocido como el usuario KittyKatt desarrolló y ha puesto a disposición del público en GitHub [un controlador colaborativo de versiones de software que también es usado como Repo].

Screenfetch: instalación general.

 

Las siguientes instrucciones me funcionaron en los siguientes entornos:
  •     ElementaryOS Freya en mi laptop.
  •     Arch Linux corriendo en VirtualBox adentro de mi laptop con Freya
  •     Raspbian en el Banana Pro por medio de sesión remota vía terminal  desde mi laptop.

Con esta muestra, podemos decir que es muy probable que estas instrucciones funcionen en otras Distros, aunque nos hace falta confirmación de parte de alguien que use la familia de RedHat, y otros. Agradeceré que nos compartan los resultados que consigan en sus distros :)

Screenfetch está en la nube de GitHub (una plataforma colaborativa de control de revisiones de Software. Digamos que es un Google Drive para programas, interfaces, código y demás cosas de desarrolladores y programadores).

1) Instalar Git

Como casi cualquier FOSS, Git se integra con Terminal, así que vamos a instalar el comando git para poder luego descargar el Screenfetch a nuestro equipo.
para Ubuntu y afines:
$ sudo apt install git


para Arch y derivados:
$ sudo pacman -Syu git
A partir de acá, podemos instalar de dos formas:

2) Creando un directorio dentro de /home y clonar Screenfetch desde Github:

Hacemos un directorio adentro de "home" (recordá que " ~  " es el home directory)
mkdir ~/screenfetch
cd ~/screenfetch

Recordá usar $ pwd para confirmar que estás en el lugar correcto)  Ahora en él, copiaremos el repo git de Screenfetch adentro de /tmp, así:

$ git clone git://github.com/KittyKatt/screenFetch.git screenfetch

Básicamente, ya tenemos el programa instalado y puesto que lo instalamos en el directorio ~/screenfetch ( o en el /tmp), para poder ejecutar el script desde /home/usuario, tendríamos que escribir
$ sudo screenfetch/screenfetch-dev

2-A) Navegando hacia /temp y clonar Screenfetch desde Github:

En lugar de hacer un nuevo directorio, navegamos hacia el directorio temporal conocido como "/tmp" y proseguir de la misma forma:

$ cd /tmp $ git clone git://github.com/KittyKatt/screenFetch.git screenfetch
$ sudo /tmp/screenfetch/screenfetch-dev


¿Cuál es la diferencia entre ambos métodos?

El primer método requiere generar una nueva entrada en tu filesystem y descargar Screenfetch a ella, mientras que en la segunda, se usa/tmp porque esta es una carpeta de almacenamiento temporal para la sesión: el propósito es que luego de apagar el equipo y reiniciar, la descarga de Screenfetch sea borrada del sistema y evitar así, usar espacio innecesario en el disco. La verdad, es cuestión de preferencia personal. No tengo preferencia, aunque me parece una buena idea el usar /tmp de vez en  cuando.

3)  Ejecutar Screenshot desde su locación: 

Dependiendo del lugar donde lo instalaste, vas a tener que escribir 
$ sudo /tmp/screenfetch/screenfetch-dv
$ sudo ~/screenfetch.

En ambos casos, el comando es demasiado largo y tedioso de escribir. El comando cp copia un directorio o archivo en otra locación, usando esta sintaxis:

$ cp ruta/origen ruta/destino

4)  Copiar el programa, a /usr/bin. 

$ sudo cp screenfetch/screenfetch-dev /usr/bin/screenfetch
$ sudo cp /tmp/screenfetch/screenfetch-dev /usr/bin/screenfetch

La razón por la cual estamos copiando al directorio /usr/bin es porque aquí se alojan los programas y comandos ejecutables por administradores. Por lo tanto, debemos de cambiar permisos para que el usuario regular pueda ejecutar el programa.
 

5) Cambiar permisos:

$ sudo chmod 755 /usr/bin/screenfetch

chmod es "change mode", cambiar modo. Asigna permisos especiales a objetos y elementos en el Filesystem de Unix. y listo. Ahora corré

6) Ejecutar y aplaudir como morsa.

$ screenfetch
Y vas a tener un resultado similar a este:

Screenfetch de Arch Linux. Hemos estado aprendiendo a instalar Arch usando VirtualBox dentro de Freya. Ignorá donde dice "firefox installed", es sólo el nombre de referencia que le di a un snapshot o "captura" de la máquina virtual. Acá estaba corriendo Arch sin GUI; es decir, a pura CLI; en ambos casos Screenfetch funciona porque es un programa de Terminal.


Screenfetch de Arch Linux (vía VirtualBox en Freya) desde un entorno de escritorio que estoy probando
Mientras escribía este artículo en mi laptop corriendo Freya, estaba conectado remotamente vía Terminal a mi servidor de descargas, mi Banana Pro. De nuevo, Screenfetch es una herramienta de Terminal así que le es indiferente si hay interfaz gráfica (Enterno de escritorio o gestor de ventanas); siempre va a darte información de tu sistema.

En la misma página de KittyKatt se encuentran las instrucciones específicas para instalar según cada Distro mayor; Pero para hace uno o dos años, fue un poco difícil de seguirlas debido a mi limitado conocimiento acerca del asunto, y opté por hacerlo como te he compartido en este artículo. Sólo por quitarme la curiosidad y completar el reto, me documenté y logré finalmente instalar Screenfetch en ElementaryOS usando tanto el método que te compartí como las instrucciones dedicadas a Ubuntu por KittyKatt. En la siguiente nota dedico un artículo para usuarios de Ubuntu/derivados.

Thursday, September 17, 2015

Pathnames o Rutas.

Definición de Ruta acá. En inglés, path (se pronuncia pæz, con la "zeta" ibérica).

Hay mucho que hablar respecto al Filesystem (sistema de ficheros, carpetas o archivos, en español); tanto que condensar toda la información disponible en una sola nota sería poco amigable; así que hemos descompuesto lo que hemos aprendido en partes más asimilables. Esta es una de ellas. Esperamos que a los amigos principiantes nos sirva mucho. 

Hay dos tipos de rutas (o pathnames) que podés identificar: absolutas y relativas.

  • El absolute pathname o ruta absoluta SIEMPRE inicia en el directorio root " / "  y continua rama por rama hasta que alcanza el directorio deseado. Para los principiantes, recomiendo mucho usar rutas absolutas a la hora de navegar en la Terminal, para familiarizarnos con ella y para conocer de mejor forma el Filesystem (sistema de archivos/ficheros):
/home/jose/fotos/fap_folder/oldies
/usr/src/linux/README
/var/log
  • Una Relative pathname o ruta relativa inicia en el directorio donde te encontrás en un momento determinado; es decir, NUNCA inicia con " / ". Asumiendo que el usuario está en el directorio /home/jose  el directorio /usr y el directorio /var respectivamente (precisamente por eso son relativas, porque se usan respecto a la posición del usuario en un momento determinado), las rutas realtivas serán:
fotos/fap_folder/oldies
src/linux/README
log
¿La diferencia? Pues que es útil usar rutas absolutas y relativas según la situación. Por ejemplo, si vas a operar dentro de un subdirectorio, usar una ruta relativa te ahorra escribir tooooda la ruta. Por ejemplo, si estás en:
 /home/jose/fotos/fap_folder/oldies/monroe
y querés navegar hacia:
/home/jose/fotos/fap_folder/oldies/greta_garbo
en lugar de escribir:
 $ cd /home/jose/fotos/fap_folder/oldies/greta_garbo
simplemente hacés:
$ cd ../greta_garbo

Recordá que los dos puntos representan al directorio o "rama anterior". Pero a veces usar una ruta absoluta es mucho más conveniente, como cuando estás en:
/home/jose/fotos/fap_folder/oldies/greta_garbo
y querés moverte a:
/usr/tmp 
 Si usás las rutas relativas tendrías que hacer:
$ cd ../../../../../usr/tmp
 lo que implica escribir más. En su lugar es mejor escribir directamente:
$ cd /usr/tmp


Y eso es todo por ahora. Saludos :)


Thursday, April 17, 2014

Comandos Básicos parte 1



Guía de Comandos GNU/LINUX

Comandos: órdenes que el usuario ejecuta en una consola de texto desde el prompt. Este indica que el intérprete está listo para trabajar. Al tipear una orden, el intérprete de comandos (en nuestro caso bash), lo transforma en una pregunta entendible para el kernel y transforma la respuesta que el núcleo da en "algo-entendible" para nosotros.

Bash, actúa como un intérprete entre el kernel y el usuario.

Los comandos tienen modificadores que brindan más información al usuario de lo que arroja cada comandopor sí sólo.

El usuario necesita de información específica u ordenada de una determinada manera así que por lo general, da mucho uso a cada una de las opciones disponibles.


Comando pwd (Print Working Directory)
Lo primero que tenemos que conocer es donde estamos posicionados en el sistema. El prompt muestra toda la ruta sino el último directorio. Es conveniente saber en qué directorio estamos a partir de "/",
la raíz del sistema operativo.

Tenemos que recordar que inmediatamente después del login nos posicionamos en directorio home.
En el ejemplo que mostraremos a continuación el directorio en el que estamos es /root ya que nos hemos logueado como superusuario (root).

Ejemplo de Comando pwd: Imprimir directorio de trabajo.

equipo1:~# pwd
/root

Ahora que ya sabemos dónde estamos, es posible que deseemos movernos a otro Directorio, entonces debemos usar el comando cd (cambiar de directorio).


Comando cd (Change Directory)
El comando cd nos permite dirigirnos hacia el directorio que nosotros queramos.

En el ejemplo vamos a ir a /tmp:

equipo1:~# cd /tmp
equipo1:/tmp#

Si tipeamos cd volvemos siempre a nuestro home, no importa cuán lejos estemos de él.
Ejemplo:

equipo1:/tmp# cd <enter>
equipo1:~#

Modificadores del comando cd

equipo1:~# cd -

Este modificador hace que el usuario siempre se mueva entre los últimos dos directorios visitados.


Comando ls (list)
Este comando permitirá ver el contenido que presenta un directorio.
Para eso nos muestra la información con colores a fin de que podamos identificar lo que contiene.

equipo1:/var/log/apache2# cd /
equipo1:/# ls

equipo1:/# ls
bin boot cdrom dev etc home initrd.img lib lost+found media
opt proc root sbin selinux srv sys tmp usr var vmlinuz

Aquí nos muestra el contenido del directorio / en color azul porque son directorios.
COLORES
Blanco    Archivos de textos o binarios no ejecutables
Verde     Archivos de textos ejecutables (scripts) o binarios ejecutables
Celeste   Links Simbólicos
Rojo       con letras blancas parpadeantes Links simbólicos rotos
Amarillo  Dispositivos
Violeta    Archivos de imagenes o archivos temporales


Práctica
Realizar un ls de los siguientes directorios, identificando los colores que los objetos poseen.
/var/log/apache2
/etc/init.d
/etc/rc1.d
/dev
/usr/share/apache2/icons

El comando ls presenta muchos modificadores. A continuación veremos algunos de ellos con ejemplos.
En este sistema operativo podemos ver que tanto los archivos como los directorios pueden tener varios puntos pero cuando el punto está adelante los transforma en ocultos. Ejemplo .hola no se verá con un ls
normal, al utilizar el modificador "a" podemos ver todos los archivos ocultos que se encuentran en ese
directorio.

¿Por qué queremos tener archivos ocultos?
Generalmente los archivos ocultos son los que contienen información acerca de configuraciones.
Al no ser visibles fácilmente podemos garantizar que no serán borrados en forma accidental.
Veamos un ejemplo:

Ejecutemos un ls simple y después ejecutemos un ls -a para ver la diferencia.

equipo1:~# ls
apt.txt dbootstrap_settings instalar install-report.template

equipo1:~# ls -a
. .gconf .profile instalar .gconfd .ssh install-report.template .aptitude
.gnome .viminfo .bash_history .gnome2 apt.txt .bashrc .gnome2_private
dbootstrap_settings

Aquí podemos ver la diferencia: la mayoría de los archivos precedidos por un ̈ . ̈ (punto) son archivos de
configuración. Si aparecieran de esta forma podrían ser borrados sin querer. De este modo quedan
resguardados.
Otra opción interesante es el parámetro -l
Al listar con el modificador -l obtenemos la mucha información de los archivos y directorios.


Comando du (disk usage)
El comando du nos dice qué espacio ocupa cada archivo en el disco y también cuál es el total del directorio.
Podemos usar el parámetro h para que nos muestre la unidad de medida que está usando.
Ejemplo:

equipo1:~# du -h /etc/samba
16K /etc/samba/

En este ejemplo obtenemos la información de cuánto ocupa el directorio /etc/samba en el disco.
Veamos otra opción interesante

equipo1:~# du -h /etc/samba/*
4.0K /etc/samba/gdbcommands
8.0K /etc/samba/smb.conf

Al usar el * nos muestra cuál es el peso de cada uno de los archivos que se encuentran en el directorio
pasado como argumento


Comando df (disk free)
Este comando nos permite ver el espacio libre que nos queda por file system (particiones) y cuánto
es el usado. Si a esto le agregamos el parámetro h lo podremos observar con unidades.
Ejemplo:

equipo1:/$ df -h
Filesystem        Size       Used    Avail     Use%      Mounted on
/dev/hda1        5.6G      3.5G    1.9G      66%       /
tmpfs               126M       0       126M      0%       /lib/init/rw


Comando history
Este comando nos permite observar cuáles comandos que hemos usado. Para darnos esta
información el comando history lee lo que dice el archivo oculto .bash_history que se encuentra en los
homes de los usuarios. (Permanece oculto para que los usuarios no lo borren accidentalmente, si eres root este no se borra tan facilmente)

equipo1:~# history
1 vi /boot/grub/grub.conf
2 init 6
3 mount –t ext2 /dev/hdb2 /temp/aux
4 cd /boot/grub
5 vi grub.conf
6 man grub
7 man grub.conf
8 vi grub.conf
9 init 6
10 cd /tmp
11 ls


digamos que tenemos un comando muy largo que no queremos volver a tipear o que sea algo fastidioso para nosotros (comando de la linea 3), todo lo que tenemos que hacer para volver a ejecutarlo es lo siguiente:
pasando el sigbolo ! y el numero de la linea del comando que ya tipeamos

equipo1:~# !3


Comando mkdir (make directory)
Con este comando creamos nuevos directorios vacios. En este ejemplo veremos cómo hacerlo.

equipo1:~# mkdir nuevodir

Con la opción mkdir -p podemos crear un árbol completo de directorios:
equipo1:~# mkdir -p dir1/dir2/dir3
La línea de comandos anterior nos permite crear el siguiente árbol:
/
|------/dir1
               |-----/dir2
                              |------/dir3


Comando rmdir (Remove directory)
El comando rmdir permite borrar directorios, si los mismos cumplen con la condición de encontrarse vacios.

equipo1:~# rmdir nuevodir

También podemos usar la opción rmdir -p para borrar un árbol de directorios cumpliendo con la condición
también de vacios. Si los directorios contienen archivos, tendremos que utilizar el comando rm que veremos despues.

equipo1:~# rmdir -p dir1/dir2/dir3


Comando cp (copy)
El comando cp se usa para copiar archivos. Veamos su aplicación:
Digamos que creamos un directorio para almacenar nuestros archivos de configuración (guardar respaldos) y vamos a copiar alli el archivo donfiguracion de samba.

equipo1:~/FolderRespaldos# cp /etc/samba/smb.conf .
#pasamos el comando cp (copy) la direccion del archivo que vamos a copiar (/etc/samba/smb.conf) y por ultimo un punto (.) el punto indica que queremos copiar el archivo al directorio donde estamos ubicados asi que "no olvides poner el punto"

si en dado caso queremos cambiarle el nombre a nuestra copia del archivo smb.conf hacemos:

equipo1:~/FolderRespaldos# cp /etc/samba/smb.conf ./smb.conf.bak


Comando mv (move)(cambiar nombres de archivos/directorios)
Este comando se utiliza para renombrar archivos ya que hace una réplica del original pero le cambia el
nombre.

equipo1:~# mv smb.conf.bak httpd.conf


Comando rm (remove)
Cuando queremos borrar archivos tenemos que usar este comando. Debemos tener en cuenta que desde la línea de comandos no tenemos papelera de reciclaje, y tampoco hay un undelete, así que
cuando borramos, nunca más podemos recuperar el archivo original.

equipo1:~/prueba# rm smb.conf
<Nos preguntará:>
rm remove: `smb.conf.bak'? y   

tipeamos Y ó N, si tipeamos Y nunca mas volveremos a ver el archivo.

para borrar directorios completos tenemos que pasar un parámetro de recursividad -r o -f, la diferencia es que -r pregunta si Realmente queremos borrar, mientras que -f es mas agresivo.

equipo1:~/ mkdir /home/miUsuario/MisArchivosBackUp
equipo1:~/ rm -f /home/miUsuario/MisArchivosBackUp

ultima advertencia: si usas este comando como root.... cuidado con lo que haces


por ultimo:

Comando touch
El comando touch se utiliza para la creación de archivos vacíos. Si ya existan bajo el
mismo nombre, los actualiza cambiándoles la fecha de creación en el sistema.
Ejemplos del comando:

equipo1:~# touch uno
equipo1:~# touch dos
equipo1:~# touch tres
equipo1:~# touch cuatro

Entradas populares.