Linux Center Valencia - Elementos filtrados por fecha: Febrero 2019
Miércoles, 27 Febrero 2019 13:24

Curso introducción GNU/Linux

Un sistema operativo nos permite utilizar el hardware del ordenador que hace que el ordenador sea una herramienta útil.

CARACTERÍSTICAS DE UN SO

El núcleo es el componente responsable de:

  • asignar memoria a programas
  • asignar tiempo de CPU a programas
  • hacer posible la comunicación entre programas

Intérpretes / shells
Interfaces gráficas de usuario (GUI): gnome, kde, cinnamon, mate, unity, xfc, lxqt, pantheon…
Utilidades: calculadora, editor de texto, mantenimiento de discos
Librerías:
Aplicaciones: navegador web, cliente de correo, procesador de texto

Modo texto : Para pasar de modo gráfico a modo texto, podemos hacerlo con ctrl + alt + f1 o f2, y para volver a modo gráfico de nuevo alt + f1 o f7.

Salir desde modo gráfico a modo texto, puede ser muy útil. Por ejemplo para matar un proceso, en caso de tener cualquier problema en el entorno gráfico.

Modo gráfico : Linux pone a nuestra disposición varios entornos de escritorio. Las opciones más comunes son gnome, kde, xice o unity, aunque hay muchas más.

Todos ellos son diferentes pero permiten lo mismo.

abrir y cerrar programas
administrar archivo
controlar y mover ventanas
escritorios múltiples

Escritorio GUI  para Debian

Debian y Gnome vienen siendo uña y carne, haciendo este escritorio el más estable de todos y el que ha demostrado dar menos problemas.

Es el escritorio por defecto para Debian, es fácil de usar ( incluso para novatos ). Además viene acompañado de varias aplicaciones útiles que se integran muy bien con Debian.

Fuente – Más información : https://blog.redigit.es/mejores-escritorios-para-debian/

COMO INSTALAR ENTORNOS DE ESCRITORIO EN DEBIAN

apt-get install gnome

apt-get install kde-standard

apt-get install xfce4

Fuente – Mas información : https://debian-handbook.info/browse/es-ES/stable/sect.graphical-desktops.html

DISTRIBUCIÓN = instalador + arranque + kernel + herramientas + software

Qué es
Un núcleo
Herramientas
Software adicional
Scripts de arranque
Instalador

Distribuciones más comunes: Debian, Fedora, CentOS, Mandriva, Ubuntu, OpenSUSE…

Debian: Fue Ian Murdock, en 1993, quién inició el proyecto Debian e inicialmente
estaba patrocinado por la Free Software Foundation. Es quizás la distribución que
mejor ha sabido mantener a lo largo del tiempo la filosofía del proyecto inicial de
GNU/Linux.

GRATUITA – DEBIAN – CADA DOS AÑOS – INTERMEDIO/EXPERTO

Por su estabilidad y rendimiento, se utiliza con frecuencia en servidores cuya misión
es crítica.

Ubuntu : Está enfocada, sobre todo, a ordenadores de escritorio aunque también
proporciona soporte para servidores. Está basada en Debian y sus principales
características son la facilidad de uso e instalación. Se publica una versión cada 6 meses, una en abril y otra en octubre de cada año.
Ubuntu está patrocinado por Canonical, una empresa privada fundada y financiada por el empresario sudafricano Mark Shuttleworth.
El eslogan de Ubuntu es toda una declaración de intenciones: “Linux para seres humanos”. Resume
una de sus metas principales: hacer de Linux un sistema operativo más accesible y fácil de usar

GRATUITA – DEBIAN – CADA 6 MESES – NOVATO

CLASIFICACIÓN POR CARACTERÍSTICAS

Disponibilidad: gratuita / comercial
Paquetes: Pacman, RPM, Debian, Tarball
Ciclo de distribución: continuo, anual…
Dificultad: novato, intermedio, experto

TABLA COMPARATIVA DE DISTRIBUCIONES ACTUALES DE GNU/LINUX

 DISTRIBUCIONDISPONIBILIDADPAQUETESCICLODIFICULTAD
Debian Libre Debian Cada 2 años Intermedio/Experto
Ubuntu Libre Debian Cada 6 meses Novato/Intermedio
Gentoo Libre ebuild Continuo Experto
Red Hat Enterprise Comercial rpm Cada 2 años Intermedio

Ciclos de vida – Distribuciones GNU/Linux

SOFTWARE LIBRE – LAS CUATRO LIBERTADES ESENCIALES

Un programa es software libre si los usuarios tienen las cuatro libertades esenciales:

0 : La libertad de ejecutar el programa como se desee, con cualquier propósito.
1 : La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera.. El acceso al código fuente es una condición necesaria para ello.
2 : La libertad de redistribuir copias para ayudar a otros.
3 : La libertad de distribuir copias de sus versiones modificadas a terceros. Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello.

FUENTE :

https://www.gnu.org/philosophy/free-sw.es.html
https://www.fsf.org/

DIEZ PRINCIPIOS BÁSICOS DEL CÓDIGO ABIERTO ( Open Source )

Libre distribución
Disponibilidad de código fuente
Permiso de obras derivadas
Respeto a la integridad del código fuente
No discriminación de personas o grupos
No discriminación al campo de aplicación
Distribución automática de licencias
Ausencia de restricciones sobre otro software
Neutralidad tecnológica

FUENTE :

https://opensource.org/osd-annotated

El software libre es todo programa informático cuyo código fuente puede ser estudiado, modificado, y utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras.

Su definición está asociada al nacimiento del movimiento de software libre, encabezado por Richard Stallman y la consecuente fundación en 1985 de la Free Software Foundation, que coloca la libertad del usuario informático como propósito ético fundamental.

TIPOS DE LICENCIA

Comercial o propietario: software del cual no existe una forma libre de acceso a su código fuente, el cual solo se encuentra a disposición de su desarrollador y no se permite su libre modificación, adaptación o incluso lectura por parte de terceros.

Shareware : Código fuente secreto protegido. Ánimo de beneficio económico. Se denomina shareware a una modalidad de distribución de software, en la que el usuario puede evaluar de forma gratuita el producto, pero con limitaciones en el tiempo de uso o en algunas de las formas de uso o con restricciones en las capacidades finales.

Freeware : Código fuente secreto protegido. Ánimo ganar usuarios. Funcionalidades recortadas. Define un tipo de software que se distribuye sin costo, disponible para su uso, pero que mantiene el copyright.

Software Libre : Código fuente público. Mejor calidad de software. Menos bugs. El software libre es todo programa informático cuyo código fuente puede ser estudiado, modificado, y utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras.

LICENCIAS DE SOFTWARE LIBRE

GNU gpl

BSD

MIT

Apache

Artistic

NPL

Licencias Creative Commons


GPL

El programador o autor, conserva sus derechos de autor, pero permite su libre distribución y modificación. Siempre y cuando en el software final, esté bajo la misma licencia. Aun incluso este software formara parte de otro más grande, debe mantener su licencia libre.

Esta licencia “copyleft” y esta filosofía, garantizan que el código fuente esté siempre disponible y accesible, para poder realizar copias ilimitadas. Para el usuario final, cualquier software bajo licencia GPL es gratuito, y solo podría en todo caso pagar por gastos de copiado, soporte físico o canal de distribución.

AGPL

se engloba dentro de las licencias destinadas a modificar el derecho de autor derivadas de GNU. La novedad de AGPL es que, aparte de las cláusulas propias de una GNU GPL, ésta obliga a que se distribuya el software que se destine a dar servicios a través de una red de ordenadores, es decir, si se quiere usar como parte del desarrollo de un nuevo software, éste quedaría obligado a su libre distribución.

BSD

Licencia permisiva que no impone casi condiciones. Un software bajo esta licencia puede ser vendido, y no hay obligación de poner a disposición el código fuente. Además bajo esta licencia, el resultado del software modificado, puede tener cualquier otro tipo de licencia tanto libre como propietaria. Un ejemplo bastante clarificante sobre esta licencia es el sistema operativo Mac OS X.

APACHE

Esta licencia permite al usuario distribuir y modificar el software original, pero debe siempre conservar en obras derivadas el copyright de Apache y el disclaimer.

No se exige que las obras derivadas tengan que ser software libre, pero exige que se informe en la obra derivada que se ha usado código con la licencia Apache.

Desarrollo y Programación

Editores de texto

Editores sencillos

Editores avanzados

Editores Mixtos (Terminal/Gráficos)

Edición de Imágenes

GIMP
Krita

Edición de Sonido

Edición de Vídeo

Reproducción Multimedia

Visualizadores de Imágenes

Ofimática (Hogar y Oficina)

Administradores de Archivos

Clientes de Correo Electrónico

Navegadores de Internet

Gestores de Documentos (Suite Ofimáticas)

Torrents

Seguridad

La terminal o consola es una herramienta poderosa capaz de realizar tareas de forma más rápida que mediante la interfaz gráfica del sistema operativo.

DIFERENCIAS ENTRE LINUX Y UNIX

A nivel de línea de comandos, apenas hay diferencias. Se pueden usar los mismos comandos indistintamente en distribuciones Linux o en sistemas Unix.
A nivel gráfico tampoco hay mucha diferencia ya que ambos sistemas utilizan X-Windows. La principal diferencia es que Linux es libre mientras que la mayoría de Unix no (a veces cuestan mucho dinero).
Otra diferencia importante es el hecho de que hay versiones de Linux para prácticamente cualquier plataforma, mientras que los diferentes Unix suelen estar enfocados a un hardware muy específico

/ : Directorio raíz
/root : Directorio personal de superusuario
/home : Director personal con las carpetas de usuario
/bin : Binarios de usuario
/boot : Ejecutables y archivos requeridos para el arranque
/dev : Archivos de información de todos los volúmenes
/etc : Archivos de configuración del sistema y de aplicaciones
/lib : Bibliotecas necesarias para la ejecución de binarios
/media : Directorio de montaje de volúmenes extraíbles
/mnt : Sistemas de archivos montados manualmente en el disco duro.
/usr : Archivos de programa y aplicaciones de usuario
/sbin : Binarios de sistema
/opt : Ficheros de aplicaciones externas que no se integran en /usr
/proc : Ficheros de información de procesos
/sys : Archivos virtuales con información de eventos del sistema
/srv : Archivos relativos a servidores web, FTP, etc.
/tmp : Directorio de ficheros temporales
/var : Archivos de variables, logs, emails de los usuario del sistema, etc.

SÍMBOLOS IMPORTANTES EN LINUX

promt : está formado por nombre de usuario y máquina, separados por @
@ : usado para separar el nombre de usuario con el nombre de la máquina.
~ : indica que estamos dentro de nuestro directorio de usuario.
$ : indica que estamos trabajando con un usuario sin privilegios.
# : indica que estamos trabajando con un usuario administrador (root).


COMANDOS PARA GESTIÓN DE ARCHIVOS

Diferencias : ruta absoluta / ruta relativa
Distinción entre mayúsculas y minúsculas

clear : limpiar pantalla de terminal.
exit : salir de usuario.
ls : listar contenido de directorio.
cd : cambiar a otro directorio.
pwd : mostrar el directorio actual.
man : mostrar el manual.
mkdir : crear directorios o subdirectorios.
rm : borrar archivos.
mv : mover y renombrar archivos.
cp : copiar archivos.
touch : crear archivo.

WILDCARDS

Un carácter comodín es un carácter que representa cualquier otro carácter o cadena de caracteres. Algunos de los caracteres comodines que se utilizan en informática son: * (asterisco), ? (signo de pregunta), [ ] (corchetes) % (por ciento), _ (guión bajo). El comodín puede ser utilizado como carácter comodín en casi cualquier motor de búsqueda.

? : Cualquier caracter (sólo uno).
* : Uno o varios caracteres.
[ ]: caracteres o rangos.

cat : concatenar archivos y mostrar contenido de archivo.
more : ver (pero no modificar) el contenido de un archivo o comando y visualizarlo por páginas.
head : mostrar las primeras diez líneas de un archivo.
tail : mostrar las últimas líneas de un archivo.

VIM significa “Vi mejorado”, ya que es sólo una versión avanzada del editor de texto por defecto de Linux. Está especialmente diseñado teniendo en cuenta las necesidades de un desarrollador. También se llama como un redactor de los programadores para sus opciones altamente configurables. Al igual que el editor Vi, puede utilizarse como una utilidad de línea de comandos o también como una aplicación GUI independiente.


En un entorno de escritorio GNOME, entonces por defecto viene con un editor de texto llamado Gedit. Al igual que el objetivo de GNOME para siempre proporcionar funcionalidades que son limpias y sencillas, Gedit también sigue el mismo objetivo, ya que es ligero y viene con una interfaz de usuario limpia y simple.

Algunas de las características únicas de Gedit incluyen:

  • Resaltado de sintaxis
  • Soporta texto internacionalizado
  • Soporta varios lenguajes de programación.

Emacs es un editor de texto con una gran cantidad de funciones, muy popular entre programadores y usuarios técnicos. GNU Emacs es parte del proyecto GNU y la versión más popular de Emacs con una gran actividad en su desarrollo. El manual de GNU Emacs lo describe como “un editor extensible, personalizable, auto-documentado y de tiempo real.”

Archivos .tar.gz:

Comprimir:

tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/

Descomprimir:

tar -xzvf archivo.tar.gz


Archivos .tar
:

Empaquetar:

tar -cvf paquete.tar /dir/a/comprimir/

Desempaquetar:

tar -xvf paquete.tar


Archivos .gz
:

Comprimir:

gzip -9 index.php

Descomprimir:

gzip -d index.php.gz


Archivos .zip
:

Comprimir:

zip archivo.zip carpeta

Descomprimir:

unzip archivo.zip

Fuente : https://www.edu.xunta.gal/centros/zonabetanzosd6/node/29

La distribución de software en Linux se realiza de tres maneras principales:

  • Repositorios: son servidores centrales, mantenidos generalmente por una distribución en particular, por la comunidad, o por otros terceros, en los que se dispone de una colección de software para la instalación a través de Internet o de una red local.
  • Archivos precompilados: son archivos ejecutables compatibles para una distribución en particular y que pueden instalarse tanto a través de la red como de manera local con una herramienta de la línea de comandos (en unos minutos veremos esto en más detalle).
  • Código fuente: es la forma inicial mediante la cual se distribuía software en Linux. Aunque ha sido superada en uso por las dos anteriores, todavía continúa usándose para ofrecer a los usuarios finales la posibilidad de compilar un programa dado con opciones particulares. También se utiliza este método de distribución de software para poner al alcance del público una versión más actualizada que tenga mayores prestaciones que las presentes en los repositorios.

A diferencia de otros sistemas operativos en los que la instalación de un programa mayormente se lleva a cabo “haciendo doble click” sobre un archivo ejecutable (.exe windows), en Linux disponemos de varios comandos para hacer esta tarea.

Cada distribución tiene distintas utilidades para la administración de paquetes. Algunos de ellos (como yum o aptitude, para CentOS y Debian, respectivamente) tienen la habilidad de instalar junto con un programa dado también sus dependencias, es decir, aquellos paquetes adicionales que son necesarios para el funcionamiento del primero. Otros, como dpkg (Debian y derivados) y rpm (Red Hat, CentOS y familiares), solamente instalan el programa presente en el archivo .deb o .rpm pero sin instalar dependencias.


Fuente – Más información: https://blog.carreralinux.com.ar/2016/07/administracion-de-paquetes-linux/

La administración de usuarios y grupos solamente puede realizarlas el usuario root utilizando los comandos de gestión de usuarios. Las tareas y los comandos para realizarlas son:

  • Creación de usuarios / useradd

El comando useradd permite añadir un usuario indicando como parámetros la información particular para crear el usuario en la misma línea de comandos. La sintaxis es:

Crear usuario useradd [opciones] nombre-usuario

Entre las opciones más destacables tenemos:
-g: Grupo principal que queremos tenga el usuario (debe existir previamente)
-d: Carpeta home del usuario. Suele ser /home/nombre-usuario
-m: Crear carpeta home si es que no existe.
-s: Intérprete de comandos (shell) del usuario. Suele ser /bin/bash

Ejemplo, si deseamos crear un usuario llamado ‘pedro’ cuyo grupo principal sea ‘valenciatech’, cuya carpeta home sea /home/pedro y su intérprete de comandos sea /bin/bash, ejecutaremos el siguiente comando:

Crear un usuario sudo useradd -g valenciatech -d /home/pedro -m -s /bin/bash pedro

De esta manera habremos creado al usuario pedro y su carpeta home. Si no utilizamos la opción -m, no se creará la carpeta home del usuario; en tal caso tendríamos que crearla manualmente. Tan solo nos quedará establecer su contraseña con el comando passwd:

Establecer la contraseña del usuario sudo passwd pedro

Entonces el sistema nos preguntará dos veces la contraseña que queremos asignar a pedro.

El comando useradd permite crear muchos usuarios automáticamente mediante archivos de comandos (scripts).

Se recomienda que el nombre de usuario sea en minúsculas y además de letras también puede contener números y algún signo como guiones normales y guiones bajos. Debemos recordar que unix distingue entre mayúsculas y minúsculas, es decir, Pepe es distinto de pepe.

Modificación de usuarios / usermod

Se utiliza el comando usermod y permite cambiar el nombre del usuario, su carpeta home, su intérprete de comandos, los grupos a los que pertenece y algunos otros parámetros.

Cambiar el home de un usuario sudo usermod -d /home/carpeta_pedro pedro

  • Eliminación de usuarios / userdel

Se realiza con el comando userdel seguido del nombre del usuario. Con la opción -r eliminará también su carpeta home, ejemplo:

Eliminación de un usuario sudo userdel -r pedro

Eliminaría el usuario pedro y su carpeta home.

  • Creación de grupos / groupadd

El comando groupadd permite añadir un grupo indicando como parámetro el nombre del grupo. Ejemplo, si deseamos crear un grupo llamado ‘alumnos’ ejecutaremos:

Añadir un grupo sudo groupadd alumnos

  • Modificación de grupos / groupmod

El comando groupmod permite modificar el nombre de un grupo o el gid del mismo. La sintaxis es: sudo groupmod [-g nuevo-gid] [-n nuevo-nombre] nombre-grupo, ejemplo:

Cambiar el gid del grupo valenciatech sudo groupmod -g 2000 valenciatech

  • Eliminación de grupos / groupdel

Se realiza con el comando groupdel seguido del nombre del grupo, ejemplo:

Eliminación de un grupo sudo groupdel valenciatech

Eliminaría el grupo valenciatech. Si algún usuario tuviera dicho grupo como grupo primario, el comando groupdel no eliminará el grupo.

  • Añadir usuarios a un grupo / adduser

Se utiliza el comando adduser seguido del nombre del usuario y del nombre del grupo al que queremos añadirle, ejemplo:

Añadir a ‘juan’ al grupo ‘valenciatech’ sudo adduser juan valenciatech

  • Quitar usuarios de un grupo / deluser

Se utiliza el comando deluser seguido del nombre del usuario y del nombre del grupo del que queremos quitarle, ejemplo:

Quitar a ‘juan’ del grupo ‘valenciatech’ sudo deluser juan valenciatech

Para más información de todos estos comandos se puede consultar la ayuda del manual ejecutando man seguido del nombre del comando, ejemplo man adduser.


Fuente – Más información:
http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m1/administracin_de_usuarios_y_grupos.html
https://www.tecmint.com/add-users-in-linux/
Campos : https://www.linuxtotal.com.mx/index.php?cont=info_admon_008

Estructura básica de permisos en directorios

En el caso de los directorios tenemos los mismo permisos, pero con un significado diferente.

  •  Permiso de lectura en un directorio
    Si un directorio tiene permiso de lectura, puedes ver los archivos que éste contiene. Puedes usar un “ls (list directory)” para ver su contenido, que tengas permiso de lectura en un directorio no quiere decir que puedas leer el contenido de sus archivos si no tienes permiso de lectura en ésos.
  •  Permiso de escritura en un directorio
    Con el permiso de escritura puedes agregar, remover o mover archivos al directorio.
  •  Permiso de ejecución en un directorio
    Ejecución te permite usar el nombre del directorio cuando estás accediendo a archivos en ese directorio, es decir este permiso lo hace que se tome en cuenta en búsquedas realizadas por un programa, por ejemplo, un directorio sin permiso de ejecución no sería revisado por el comando find.

Usuarios, Grupos y Otros

Ahora conocemos los 3 permisos y cómo agregar o remover éstos, pero estos 3 permisos son almacenados en 3 lugares diferentes llamados:
Usuario (u) proviene de user
Grupo (g) proviene de group
Otros (o) proviene de other

Permisos en formato numérico octal

La combinación de valores de cada grupo de los usuarios forma un número octal, el bit x es 20 es decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:

r = 4
w = 2
x = 1

La combinación de bits encendidos o apagados en cada grupo da ocho posibles combinaciones de valores, es decir la suma de los bits encendidos:

– – – = 0 Sin permisos
– – x = 1 Ejecución
– w – = 2 Escritura
– w x = 3 Escritura y ejecución
r – – = 4 Lectura
r – x = 5 Lectura y ejecución
r w – = 6 Lectura y escritura
r w x = 7 Lectura, escritura y ejecución.

Las combinaciones octales más comunes son:

777 ( rwx/rwx/rwx )
755 ( rwx/r-x/r-x )
644 ( rw-/r—–/r—– )
655 ( rw-/r-x/r-x )
FORMATO NOTACIÓN NUMÉRICA    
PermisosValorDescripción
rw—— 600 El propietario tiene permisos de lectura y escritura.
rwx–x–x 711 El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución.
rwxr-xr-x 755 El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo.
rwxrwxrwx 777 El archivo puede ser leído, escrito y ejecutado por quien sea.
r—– 400 El propietario puede leer el archivo, pero no puede modificarlo o ejecutarlo y por supuesto ni el grupo ni otros pueden hacer nada en él.
rw-r—– 640 El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros no pueden hacer nada.

Permisos en modo simbólico

Otra manera de establecer los permisos de un archivo o directorio es a través de identificadores del bit (r,w, o x) de los permisos, como ya se vio anteriormente, pero ahora identificando además lo siguiente:

al usuario con la letra u
al grupo con la letra g
a otros usuarios con la letra o
a todos (usuario, grupo, otros) con la letra a (all, todos en inglés)
el signo + para establecer el permiso
el signo para eliminar o quitar el permiso

La sintaxis es muy simple chmod augo[+|-]rwx[,…] archivo[s]

así, por ejemplo, si queremos que otros tengan permiso de escritura sería chmod o+w archivo

todos los usuarios con permisos de ejecución chmod a+x archivo.

En este modo de establecer permisos, solo hay que tomar en cuenta que partiendo de los permisos ya establecidos se agregan o se quitan a los ya existentes.Veámoslo con ejemplos su manera de trabajar:

ActualchmodResultadoDescripción
rw—— a+x rwx–x–x Agregar a todos (all) permisos de escritura.
rwx–x–x go-x rwx—— Se eliminan permiso de ejecución para grupo y otros.
rwxr-xr-x u-x,go-r rw—x–x Al usuario se le quita ejecución, al grupo y otros se le quita lectura.
rwxrwxrwx u-x,go-rwx rw—— Al usuario se le elimina ejecución, al grupo y otros se eliminan todos los permisos.
r——– a+r,u+w rw-r–r– A todos se les agrega lectura, al usuario se le agrega escritura.
rw-r—— u-rw,g+w,o+x —rw—x Al usuario se le eliminan lectura y escritura, al grupo se le agrega lectura y otros se le agrega ejecución.

UMASK

Permisos preestablecidos con umask

El comando umask establece la máscara de permisos de directorio y de archivos. Es decir los nuevos directorios y archivos que se crean obtienen el valor de los permisos a partir de los valores de umask.

$> umask
0002
(o en formato simbólico con la opción -S)
$> umask -S
u=rwx,g=rwx,o=rx

Lo anterior indica que un directorio y archivos ejecutables se crearán con los permisos 775 y los archivos comunes con los permisos 664. Esto se logra restando de 777 el valor de umask (777-002) y (666-002) respectivamente. El primer valor de umask corresponde para valores de Sticky bit, GUID o SUID, que por default es 0.

$> umask
0002
(Creamos un archivo y según la máscara debemos de tener 666-002=664 o rw-rw-r–)
$> touch archivo
$> ll archivo
-rw-rw-r– 1 sergio sergio 0 sep 25 20:14 archivo
(Ahora creamos un directorio y según la máscara debemos de tener 777-002=775 o rwxrwxr-x)
$> mkdir dir
$> ls -ld dir
drwxrwxr-x 2 sergio sergio 4096 sep 25 20:20 dir

Para establecer el valor de la máscara, simplemente se usa el mismo comando umask seguido del valor de máscara que se desee:

$> umask 0022

comandos :

chmod
chown
ep

EXPRESIONES REGULARES

. Significa cualquier caracter.
^ Indica el principio de una línea.
$ Indica el final de una línea.
* Indica cero o más repeticiones del caracter anterior.
+ Indica una o más repeticiones del caracter anterior.
\< Indica el comienzo de una palabra.
\> Indica el final de una palabra.
\ Caracter de escape. Da significado literal a un metacaracter.
[ ] Uno cualquiera de los caracteres entre los corchetes. Ej: [A-Z] (desde A hasta Z).
[^ ] Cualquier caracter distinto de los que figuran entre corchetes: Ej: [^A-Z].
{ } Nos permiten indicar el número de repeticiones del patrón anterior que deben darse.
| Nos permite indicar caracteres alternativos: Ej: (^|[?&])
( ) Nos permiten agrupar patrones. Ej: ([0-9A-F]+:)+

BUSCAR POR NOMBRE DE ARCHIVO ( fuera de archivo – contenedor ) 

find

Parámetros : -name , – size ( ver unidades ) , -type ( ver tipos )

No hace falta recursividad

Combinación con -exec

find –version

find -delelete similar a -exec rm

Ejemplos :
https://www.linuxtotal.com.mx/index.php?cont=info_admon_022
https://blog.itlinux.cl/blog/2014/02/03/10-ejemplos-del-uso-del-comando-find/

BUSCAR DENTRO DE ARCHIVO ( dentro de archivo – contenido )

grep

parámetros de GREP

-c En lugar de imprimir las líneas que coinciden, muestra el número de líneas que coinciden.
-e PATRON nos permite especificar varios patrones de búsqueda o proteger aquellos patrones de búsqueda que comienzan con el signo -.
-r busca recursivamente dentro de todos los subdirectorios del directorio actual.
-v nos muestra las líneas que no coinciden con el patrón buscado.
-i ignora la distinción entre mayúsculas y minúsculas.
-n Numera las líneas en la salida.
-E nos permite usar expresiones regulares. Equivalente a usar egrep.
-o le indica a grep que nos muestre sólo la parte de la línea que coincide con el patrón.
-f ARCHIVO extrae los patrones del archivo que especifiquemos. Los patrones del archivo deben ir uno por línea.
-H nos imprime el nombre del archivo con cada coincidencia.

Fuente y ejemplos  : https://enavas.blogspot.com/2008/04/el-shell-de-linux-comando-grep.html

COMANDO SED

sed -i ‘s/textoorigen/textodestino/g’ archivo

EJEMPLOS DE USO AVANZADO

http://www.sromero.org/wiki/linux/aplicaciones/uso_de_sed

entrada estándar 0

salida estándar 1

error estándar 2

consiste en trasladar la información de un tipo a otro  a través del operador >

OPERADORES

Operador RedirecciónEfecto del Operador
>
Redirige la stdout a un fichero, si no existe lo crea, y si existe lo sobre escribe (borra el contenido antes de incluir el nuevo contenido)
>>
Añade la stdout a un fichero, pero a diferencia del anterior la añade al fichero especificado
2>
Redirige la stderr a un fichero, si no existe lo crea, y si existe lo sobre escribe (borra el contenido antes de incluir el nuevo contenido)
2>>
Redirige la stderr a un fichero, pero a diferencia del anterior la añade al fichero especificado
&>
Crea un fichero tanto con stdout como con stderr , si ya existe elimina primero su contenido
<
Envía el contenido del fichero especificado como stdin
<<
Utiliza como stdin las líneas de texto pasadas
<>
El fichero especificado será utilizado tanto como stdin como stdout

Fuente : http://www.lopeztorrijos.com/tutoriales/linux/flujos-redirecciones-pipes/redireciones

EJEMPLOS

ls > lista.txt
ls >> lista.txt

Más información en: https://ayudalinux.com/redireccionar-tuberias-en-linux/

wc < archivo.txt

DEV/NULL

archivo especial que sirve para redireccionar información que no se quiere

Ej : Descartar errores, borrar contenido de ficheros, …
programa > /dev/null

TUBERÍAS

redireccionar la salida estándar de un programa hacia la entrada estándar de otro.

ps -a | sort

CREACIÓN DE ARCHIVO

#!/bin/bash

CREACIÓN DE CÓDIGO FUENTE

PERMISOS

chmod +x FILENAME

EJECUCIÓN

./script.sh

PASO DE PARÁMETROS


echo $1 $2 $4
echo $#
echo $*

VARIABLES

greeting="Welcome"
user=$(whoami)
day=$(date +%A)

ENTRADA / SALIDA

echo : sacar por salida estandar

read : leer de la entrada estandar

LECTURA DE VARIABLES

OPERADORES DE COMPARACIÓN

DescriptionNumeric ComparisonString Comparison
Shell comparison example: [ 100 -eq 50 ]; echo $? [ “GNU” = “UNIX” ]; echo $?
less than -lt <
greater than -gt >
equal -eq =
not equal -ne !=
less or equal -le N/A
greater or equal -ge N/A

CONDICIONALES

if [ $num_a -lt $num_b ]; then
    echo "$num_a is less than $num_b!"
fi

BUCLES

for i in 1 2 3; do
    echo $i
done
while [ $counter -lt 3 ]; do
    let counter+=1
    echo $counter
done
until [ $counter -lt 3 ]; do
    let counter-=1
    echo $counter
done

FUNCIONES

function total_files {
        find $1 -type f | wc -l
}

function total_directories {
        find $1 -type d | wc -l
}

function total_archived_directories {
        tar -tzf $1 | grep  /$ | wc -l
}

function total_archived_files {
        tar -tzf $1 | grep -v /$ | wc -l
}

ENLACES

https://linuxconfig.org/bash-scripting-tutorial-for-beginners

https://bioinf.comav.upv.es/courses/unix/scripts_bash.html

PROCESOS

ps : procesos de Bash.
ps -u : procesos de usuario.
top : procesos en tiempo real.
htop : procesos en tiempo real. Permite la navegación entre procesos.
free : memoria ocupada.

LISTAR PROCESOS

ps

ps aux

BUSCAR PROCESOS POR NOMBRE

ps aux | grep palabra clave

equivalente es :

pgrep palabraclave

pgrep -l palabraclave ( con el nombre del proceso, no solo el id )

MATAR PROCESOS

en vez de matar procesos por nombre de ID con el comando kill,
podemos usar el comand pkill que lo hace es filtrar los procesos con grep, por nombre del servicio y no por id
por ejemplo : pkill httpd ( en redhat ) pues mata todos los procesos del servidor web apache.

COMANDOS – TOP / HTOP

# ps -A
# ps -e

LISTAR TODOS LOS PROCESOS EXCEPTO ROOT

# ps -U root -u root -N

LISTAR PROCESOS POR USUARIO

# ps -u usuario

COMANDO – PSTREE

COMANDO NICE – DAR PRIORIDAD A 1 PROCESO

Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso) con la prioridad modificada, más alta o más baja según se requiera. Las prioridades van de -20 (la más alta) a 19 la más baja. Solo root o el superusuario puede establecer prioridades negativas que son más altas. Con la opción -l de ps es posible observar la columna NI que muestra este valor.

nice -n -10 comando

COMANDO RENICE – PRIORIDAD EN TIEMPO REAL

Así como nice establece la prioridad de un proceso cuando se inicia su ejecución, renice permite alterarla en tiempo real, sin necesidad de detener el proceso.

renice 7 12826

SIGLAS : Secure SHell

https://wiki.debian.org/AccesoRemotoSSH

El comando ssh ofrece comunicación encriptada y segura entre dos sistemas sobre una red no segura. Este comando reemplaza al telnet, rlogin, rsh.

CARACTERÍSTICAS

comunicaciones entre cliente y servidor son cifradas
Se creó para sustituir a Telnet
El transporte se hace mediante TCP/IP

CONEXIÓN SSH

usuario@servidor

SERVIDOR SSH – SEGURIDAD MÍNIMA

Cambiar puerto por defecto

Deshabilitar acceso root directo

Deshabilitar password plano

clave RSA

Más información :

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04

INSTALACIÓN DE SERVIDOR SSH

apt-get install openssh-server
configuracion : /etc/ssh/sshd_config
arranque : /etc/init.d/ssh start
parada : /etc/init.d/ssh stop
reincio : /etc/init.d/ssh restart

MÉTODOS DE CONEXIÓN

password
clave pública / privada
host

scp

El comando scp permite copiar ficheros entre dos máquinas. Utiliza ssh para la transmisión de la información, por lo que ofrece la misma seguridad que el ssh. De la misma manera utiliza los métodos de autenticación de ssh. Este comando reemplaza al rcp, ftp.

Fuente : http://www3.uji.es/~galdu/ssh_vs_rsh/x165.html

VIDEOTUTORIAL SSH

SELECCIONA EL REPOSITORIO MÁS RÁPIDO

Programa recomendado para conocer el repositorio más rápido :

apt-get install netselect-apt

Una vez instalado puedes ejecutarlo :

netselect-apt -n -s stretch

El resultado debes copiarlo en el archivo /etc/apt/sources.list

cp /etc/apt/sources.list /etc/apt/sources.list.bak
cp /etc/apt/sources.list /etc/apt/sources.list

ACTUALIZAR DEBIAN 9 PARA CORRECION DE ERRORES Y MEJORAS

Apt-get update && apt-get upgrade

MANEJAR CUALQUIER TIPO DE ARCHIVO COMPRIMIDO

Los archivos comprimidos son muy comunes en cualquier sistema operativo. Igualmente cuando descargamos ficheros de Internet, vienen comprimidos.

En linux se hace mucho uso del empaquetador TAR y el compresor GZIP. Son los famosos archvos.tar.gz

Para hacer que casi cualquier formato comprimido funcione (comprimir y descomprimir) solo tienes que instalar este largo comando:

apt install rar unrar unace p7zip-full p7zip-rar lzip arj sharutils mpack lzma lzop unzip zip bzip2 lhasa cabextract lrzip rzip zpaq kgb xz-utils

Recomendado : Ir instalando de 1 en 1 conforme los vayamos necesitando.

INSTALAR FUENTES TIPOGRAFICAS EN DEBIAN

Disponer de varias fuentes en tu sistema operativo es importante, ya que te ayudara a mejorar el aspsecto de tus visitas a ciertas paginas web o visualizar ciertos documentos.

apt install fonts-inconsolata fonts-droid-fallback ttf-dejavu ttf-liberation xfonts-terminus fonts-droid-fallback ttf-liberation ttf-dejavu ttf-bitstream-vera fonts-cantarell fonts-liberation ttf-dejavu fonts-oflb-asana-math fonts-mathjax

Recomendado : Ir instalando de 1 en 1 conforme los vayamos necesitando.

INSTALAR TODOS LOS COMPRESORES/DECOMPRESORES PARA DEBIAN

apt install rar unrar unace p7zip-full p7zip-rar lzip arj sharutils mpack lzma lzop unzip zip bzip2 lhasa cabextract lrzip rzip zpaq kgb xz-utils

COMO INSTALAR PAQUETES .deb

Hay programas que no se pueden instalar desde los repositior de Debian, y hay que hacerlo descargando el paquete directamente e intalándolo. Para ello puedes usar el comando dpkg -i paquete.deb desde tu terminal como usuario root, y lo tendrás instalado.
Para solucionar temas de depencias del paquete con otros haz uso de gdebi ( apt-get install gdebi ), que descargará a tus sistema todos los paquetes dependiente del paquete que le indiques.

apt install gdebi gksu

Fuente – Más información  : https://www.comoinstalarlinux.com/que-hacer-despues-de-instalar-debian-9-en-tu-escritorio/

El pasado sábado 23 de Febrero se realizó en nuestras instalaciones el taller "Bots para Telegram, como automatizar hasta el infinito y más allá". Aquí os dejamos los detalles de lo que se dió y también PDF del curso completo:

Bots para Telegram, como automatizar hasta el infinito y más allá

Actualmente estamos rodeados de cientos de aplicaciones que nos intentan hacer la vida más fácil. A la misma vez, cada vez pasamos mas tiempo utilizando sistemas de mensajería como puede ser el propio Telegram. ¿Que te parecería simplificar todo y utilizar solo Telegram? A lo mejor te puede parecer un poco exagerado, pero es posible automatizar casi todo con Telegram.

Los bots de telegram nos permiten recibir notificaciones al igual que realizar acciones. No es necesario que vayamos cargados de aplicaciones, podemos resolverlo todo con una. Si, es cierto que otras soluciones como ifttt también nos permite automatizar muchas acciones, pero lo cierto es que, con unas pequeñas nociones de programación, puedes llegar a un grado de personalización brutal.

Temario.

  • ¿Que es un bot?
  • ¿Que podemos hacer con un bot?
  • ¿Como funcionan los bots?
  • Crear un bot
  • Diferenciar un bot de una persona
  • Características de bots
    • Mode en línea
    • Pagos con bot
    • Juegos
    • Teclados
    • Comandos
    • Formateo
    • Modo de privacidad
    • Localización
    • Número de teléfono
  • La API de Telegram
  • Tipos de bot
    • Polling
    • Webhook
  • Ejemplo de desarrollo

PDF del curso:

Descarga aquí archivo Insomnia

Coméntalo en el foro

Impartido por: Lorenzo Carbonell @atareao

lorenzo carbonell

Soy un desarrollador independiente de aplicaciones, principalmente, para GNU/Linux y Android. Divulgador y evangelizador del software libre. Orientado a Ubuntu y distribuciones derivadas de Debian. Firme creyente en la filosofía de la cultura libre y accesible para todos.

Twitter

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

Vea nuestra política de cookies y enlaces de interés aquí