martes, 3 de octubre de 2017

Introducción

Introducción
¿Por qué usar la línea de comandos?
¿De qué trata este libro?
¿Quién debería leer este libro?
¿Qué hay en este libro?
¿Cómo leer este libro?
¿Por qué no lo llamo “GNU/Linux”?
Agradecimientos
¡Necesito tu ayuda!
¿Qué hay nuevo en The Second Internet Edition?
Para saber más
Colofón

Parte 1 – Conociendo el Shell

1- ¿Qué es el Shell?
Emuladores de Terminal
Tus primeras pulsaciones en el teclado
Historial de Comandos
Movimiento del Cursor
Unas palabras sobre el Ratón y el Foco
Prueba algunos comandos sencillos
Finalizando una sesión de terminal
La consola tras el telón
Resumiendo
Para saber más
2 - Navegación
Entendiendo el árbol del sistema de archivos
El directorio de trabajo actual
Listando los contenidos de un directorio
Cambiando el directorio de trabajo actual
Rutas Absolutas
Rutas Relativas
Algunos atajos útiles
Aspectos importantes sobre nombres de archivo
Resumiendo
3- Explorando el sistema
Más diversión con ls
Opciones y argumentos
Un vistazo más profundo al formato largo
Averiguando el tipo de archivo con file
Viendo el contenido de un archivo con less
¿Qué es “texto”?
Menos es Más (Less is More)
Una visita guiada
Enlaces Simbólicos
Enlaces duros
Resumiendo
Para saber más
4 - Manipulando archivos y directorios
Comodines
Rangos de caracteres
Los comodines también funcionan en la GUI
mkdir – Crear directorios
cp – Copiar archivos y directorios
Opciones útiles y ejemplos
mv – Mover y renombrar archivos
Opciones útiles y ejemplos
rm – Eliminar archivos y directorios
Opciones útiles y ejemplos
¡Ten cuidado con rm!
ln – Crear Enlaces
Enlaces duros
Enlaces simbólicos
Construyamos un terreno de juego
Creando directorios
Copiando archivos
Moviendo y renombrando archivos
Creando enlaces duros
Creando enlaces simbólicos
Eliminando archivos y directorios
Creando enlaces simbólicos con la GUI
Resumiendo
Para saber más
5 - Trabajando con comandos
¿Qué son exactamente los comandos?
Identificando comandos
type – Muestra de qué tipo es un comando
which – Muestra la localización de un ejecutable
Obteniendo la documentación de un comando
help – Ofrece ayuda sobre los shell builtins
--help – Muestra información de uso
man – Muestra el manual de un programa
apropos – Muestra comandos apropiados
whatis – Muestra una descripción muy breve de un comando
La man page más brutal de todas
info – Muestra un archivo de información de un programa
README y otros archivos con documentación de programas
Creando tus propios comandos con alias
Resumiendo
Para saber más
6- Redirección
Entrada, salida y error estándar
Redirigiendo la salida estándar
Redirigiendo el error estándar
Redirigiendo la salida estándar y el error estándar a un archivo
Eliminando salidas innecesarias
/dev/null en la cultura Unix
Redireccionando la entrada estándar
cat – Concatenando archivos
Pipelines (Tuberías)
La diferencia entre > y |
Filtros
uniq – Muestra u omite líneas repetidas
wc – Muestra el número de líneas, palabras y bytes
grep – Imprime líneas que coinciden con un patrón
head / tail – Muestra la primera/última parte de los archivos
Tee – Lee de stdin y lo pasa a stdout y a archivos
Resumiendo
Linux tiene que ver con la imaginación
7 - Viendo el mundo como lo ve el shell
Expansión
Expansión de nombres de archivo
Expansión de nombres de archivos ocultos
Expansión de la tilde de la ñ
Expansión aritmética
Expansión con llaves
Expansión con parámetros
Sustitución de comandos
Entrecomillado
Comillas dobles
Comillas simples
Caracteres de escape
Secuencias de escape con la barra invertida
Resumiendo
Para saber más
8 - Trucos avanzados del teclado
Edición de la línea de comandos
Movimiento del cursor
Modificando el texto
Cortar y pegar (Killing and Yanking) texto
La Meta tecla
Completado
Completado programable
Usando el historial
Buscando en el Historial
Expansión del historial
script
Resumiendo
Para saber más
9 - Permisos
Propietarios, miembros del grupo, y todos los demás
Leer, escribir y ejecutar
chmod – Cambiando el "modo" (los permisos) de un archivo
¿Qué diablos es octal?
Configurando los permisos de un archivo con la GUI
umask – Establecer los permisos por defecto
Algunos permisos especiales
Cambiar identidades
su – Ejecutar un Shell con Ids sustitutos de usuarios y grupos
sudo – Ejecutar un comando como otro usuario
Ubuntu y sudo
chown – Cambia el propietario y el grupo de un archivo
chgrp – Cambiando el grupo propietario
Ejercitando nuestros privilegios
Cambiando tu contraseña
Resumiendo
Para saber más
10 - Procesos
Cómo funciona un proceso
Viendo los procesos
Viendo los procesos dinámicamente con top
Controlando procesos
Interrumpiendo un proceso
Enviando un proceso a segundo plano
Devolviendo un proceso a primer plano
Parando (pausando) un proceso
Señales
Enviando señales a un proceso con kill
Enviando señales a múltiples procesos con killall
Más comandos relacionados con procesos
Resumiendo

Parte 2 – Configuración y el entorno

11 - El entorno
¿Qué se almacena en el entorno?
Examinando el entorno
Algunas variables interesantes
¿Cómo se establece el entorno?
¿Qué hay en un archivo de arranque?
Modificando el entorno
¿Qúe archivos podríamos modificar?
Editores de texto
Usando un editor de texto
¿Por qué son importantes los comentarios?
Activando nuestros cambios
Resumiendo
Para saber más
12 - Una ligera introducción a vi
Por qué deberíamos aprender vi
Un poco de historia
Arrancando y parando vi
Modo de compatibilidad
Modo de edición
Entrar en el modo de inserción
Salvando nuestro trabajo
Moviendo el cursor
Edición básica
Añadiendo texto
Abriendo una línea
Borrando texto
Cortando, copiando y pegando texto
Uniendo líneas
Buscar y reemplazar
Buscando dentro de una línea
Buscando en el archivo completo
Búsqueda y reemplazo global
Editando múltiples archivos
Cambiando entre archivos
Abriendo archivos adicionales para editar
Copiando contenido de un archivo a otro
Insertando un archivo entero dentro de otro
Salvando nuestro trabajo
Resumiendo
Para saber más
13 - Personalizando el Prompt
Anatomía de un prompt
Probando algunos diseños de prompt alternativos
Añadiendo color
Confusión con el Terminal
Moviendo el cursor
Salvando del prompt
Resumiendo
Para saber más

Parte 3 – Tareas comunes y herramientas esenciales

14 - Gestión de paquetes
Sistemas de paquetes
Cómo funciona un sistema de paquetes
Paquetes
Repositorios
Dependencias
Herramientas, de alto y bajo nivel, de paquetes
Tareas comunes en la gestión de paquetes
Encontrar un paquete en un repositorio
Instalando un paquete de un repositorio
Instalando un paquete desde un archivo de paquete
Eliminando un paquete
Actualizando paquetes de un repositorio
Actualizando un paquete desde un archivo de paquete
Listando los paquetes instalados
Determinando si un paquete está instalado
Mostrando información acerca de un paquete instalado
Buscando qué paquete ha instalado un archivo
Resumiendo
El mito de la instalación de software Linux
Para saber más
15- Medios de almacenamiento
Montando y desmontando dispositivos de almacenamiento
Viendo una lista de los sistemas de archivos montados
Por qué es importante desmontar
Determinando los nombres de los dispositivos
Creando un nuevo sistema de archivos
Manipulando particiones con fdisk
Creando un nuevo sistema de archivos con mkfs
Probando y reparando sistemas de archivos
What the fsck?
Formateando disquetes
Moviendo datos directamente a/desde dispositivos
Creando imágenes de CD-ROM
Creando una copia imagen de un CD-ROM
Creando una imagen de una colección de archivos
Un programa con otro nombre…
Escribiendo imágenes de CD-ROM
Montando una imagen ISO directamente
Borrando un CD-ROM regrabable
Escribiendo una imagen
Resumiendo
Para saber más
Punto adicional
16 - Redes
Examinando y monitorizando una red
ping
traceroute
netstat
Transportando archivos por una red
ftp
lftp – Un ftp mejor
wget
Comunicación segura con hosts remotos
ssh
Tunelización con SSH
scp y sftp
¿Un cliente SSH para Windows?
Resumiendo
Para saber más
17 - Buscando archivos
locate – Buscar archivos de forma fácil
¿De donde sale la base de datos de locate?
find – Encontrando archivos de forma difícil
Tests
Operadores
Acciones predefinidas
Acciones definidas por el usuario
Mejorando la eficiencia
xargs
Tratando con nombres de archivo simpáticos
Una vuelta al patio de juegos
Opciones
Resumiendo
Para saber más
18 - Archivado y copias de seguridad
Comprimiendo archivos
gzip
bzip2
No seas un compresor compulsivo
Empaquetando archivos
tar
zip
Sincronizando archivos y directorios
Usando rsync en una red
Resumiendo
Para saber más
19 - Expresiones regulares
¿Qué son las expresiones regulares?
grep
Metacaracteres y literales
El carácter cualquiera
Anclas
Un ayudante de crucigramas
Expresiones entre corchetes y clases de caracteres
Negación
Rangos de caracteres tradicionales
Clases de caracteres POSIX
Volviendo a la secuencia de ordenado tradicional
POSIX básico vs. Expresiones regulares extendidas
POSIX
Alternancia
Cuantificadores
? - Encuentra un elemento cero o una vez
* - Encuentra un elemento cero o más veces
+ - Encuentra un elemento una o más veces
{} - Encuentra un elemento un número específico de veces
Poniendo las expresiones regulares a trabajar
Validando una lista de teléfonos con grep
Encontrando nombres de archivos feos con find
Buscando archivos con locate
Buscando texto con less y vim
Resumiendo
Para saber más
20 - Procesado de texto
Aplicaciones de texto
Documentos
Páginas web
Email
Salida de impresora
Código fuente de programas
Volviendo a visitar antiguos amigos
cat
Texto MS-DOS Vs. Texto Unix
sort
uniq
Reordenando
cut
Expandiendo los tabuladores
paste
join
Comparando texto
comm
diff
patch
Editando sobre la marcha
tr
ROT13: El anillo decodificador no tan secreto
sed
A la gente que le gusta sed también le gusta...
aspell
Resumiendo
Para saber más
Punto Extra
21 - Formateando la salida
Herramientas de formateo simple
nl - Numera líneas
fold - Limita cada línea a una longitud especificada
fmt - Un formateador de texto simple
pr - Formatea texto para imprimir
printf - Formatea e imprime datos
Sistemas de formateo de documentos
groff
Resumiendo
Para saber más
22 -Impresión
Una breve historia de la impresión
Imprimiendo en los tiempos oscuros
Impresoras basadas en caracteres
Impresoras gráficas
Imprimiendo con Linux
Preparando archivos para imprimir
pr - Convierte archivos de texto para imprimir
Enviando un trabajo de impresión a una impresora
lpr - Imprime archivos (Estilo Berkeley)
lp - Imprime archivos (Estilo System V)
Otra opción: a2ps
Monitorizando y controlando trabajos de impresión
lpstat - Muestra el estado del sistema de impresión
lpq - Muestra el estado de la cola de impresión
lprm/cancel - Cancela trabajos de impresión
Resumiendo
Para saber más
23 - Compilando programas
¿Qué es compilar?
¿Todos los programas se compilan?
Compilando un programa en C
Obteniendo el código fuente
Examinando el árbol de código fuente
Construyendo el programa
Instalando el programa
Resumiendo
Para saber más

Parte 4 – Escribiendo scripts de shell

24 -Escribiendo tu primer script
¿Qué son scripts de shell?
Cómo escribir un script de shell
Formato del archivo de script
Permisos de ejecución
Localización del archivo de script
Buenas localizaciones para los scripts
Más trucos de formateado
Nombres largos de opciones
Sangría y continuación de líneas
Configurando vim para escribir scripts
Resumiendo
Para saber más
25 - Comenzando un proyecto
Primera etapa: Documento minimalista
Segunda etapa: Añadiendo algunos datos
Variables y constantes
Asignando valores a variables y constantes
Documentos-aquí
Resumiendo
Para saber más
26 - Diseño de arriba a abajo
Funciones de shell
Variables locales
Mantener los scripts ejecutándose
Funciones shell en tu archivo .bashrc
Resumiendo
Para saber más
27 - Control de flujo: Ramificando con if
if
Estado de la salida
test
Expresiones para archivo
Expresiones para cadenas
Expresiones con enteros
Una versión más moderna de test
(( )) - Diseñado para enteros
Combinando expresiones
La portabilidad es la pesadilla de las mentes pequeñas
Operadores de control: otra forma de ramificar
Resumiendo
Para saber más
28 - Leyendo la entrada del teclado
read - Lee valores de la entrada estándar
Opciones
IFS
No puedes canalizar a read
Validando la entrada
Menús
Resumiendo
Punto extra
Para saber más
29 - Control de flujo: Bucles con while / until
Bucles
while
Salir de un bucle
until
Leyendo archivos con bucles
Resumiendo
Para saber más
30 - Solución de Problemas
Errores sintácticos
Comillas perdidas
Símbolos perdidos o inesperados
Expansiones inesperadas
Errores lógicos
Programación defensiva
Verificando la entrada
El diseño va en función del tiempo
Pruebas
Casos de prueba
Depuración
Encontrando el área del problema
Trazado
Examinando valores durante la ejecución
Resumiendo
Para saber más
31 - Control de Flujo: Ramificando con case
case
Patrones
Realizando múltiples acciones
Resumiendo
Para saber más
32 - Parámetros Posicionales
Accediendo a la línea de comandos
Determinando el número de argumentos
shift - Accediendo a muchos argumentos
Aplicaciones simples
Usando parámetros posicionales con funciones de shell
Manejando parámetros posicionales en masa
Una aplicación más completa
Resumiendo
Para saber más
33 - Control de flujo: Bucles con for
for: Forma tradicional del shell
¿Por qué i?
for: Forma del lenguaje C
Resumiendo
Para saber más
34 - Cadenas y números
Expansión de parámetros
Parámetros básicos
Expansiones para manejar variables vacías
Expansiones que devuelven nombres de variables
Operaciones con cadenas
Conversión de mayúsculas y minúsculas
Evaluación aritmética y expansión
Bases numéricas
Operadores unarios
Aritmética simple
Asignación
Operaciones con bits
Lógica
bc - Un lenguaje de cálculo de precisión arbitraria
Usando bc
Un script de ejemplo
Resumiendo
Punto extra
Para saber más
35 - Arrays
¿Qué son los arrays?
Creando un array
Asignando valores a un array
Accediendo a los elementos de un array
Operaciones con arrays
Mostrando todo el contenido de un array
Determinando el número de elementos de una array
Encontrando los índices usados por un array
Añadiendo elementos al final de un array
Ordenando un array
Borrando un array
Arrays asociativos
Resumiendo
Para saber más
36 - Cosas exóticas
Comandos agrupados y subshells
Sustitución de procesos
Trampas
Archivos temporales
Ejecución asíncrona
wait
Tuberías con nombre
Configurando una tubería con nombre
Usando tuberías con nombre
Resumiendo
Para saber más