Terminal: Comandos básicos
Introducción
Unix es un sistema operativo nacido hacia los años 70 por programadores buscando un ambiente de trabajo menos frustrante, hacia los años 80 comenzó a utilizarse por círculos más informales como un sistema operativo universal.
El diseño del sistema está inspirado en la experiencia de trabajo de sus programadores, Ken Thomson y Dennis Ritchie, quienes produjeron un legado aún vigente en los sistemas operativos modernos. Diseñaron un sistema en base a principios filosófico-técnicos (llamados en su conjunto "filosofía Unix") usando como base el minimalismo y la modularidad, consistente en producir programas simples que hagan una cosa bien y que puedan trabajar en conjunto, esto se hace posible usando el texto como interfaz universal, esto es, como método de comunicación entre los programas.
En el tiempo varios sistemas operativos han sido creados basados en estos principios y las herramientas que existían originalmente en Unix (llamados sistemas Unix-like), entre ellos GNU/Linux, el cual es una implementación libre. Esto signfica que un usuario puede ejecutar, estudiar, modificar y distribuir la copia del software que recibió.
Las herramientas que utilizaremos en su mayoría son POSIX (Portable Operating System Interface), esto significa que su funcionalidad básica debiera funcionar igual en todos los sistemas Unix-like.
Nomenclatura
- \ no es una funcionalidad POSIX
- \\ no es una expresión específica de un comando
Manejo de la terminal \
<tab>
autocompletarCtrl + Shift + c
copiarCtrl + Shift + v
pegarCtrl + r
buscar en historialUp and down
explorar historialCtrl + _
deshacerCtrl + c
detener la ejecución de un comandoCtrl + l, clear
limpiar la terminalreset
limpiar en serio
Navegación y movimiento
mkdir
crear directorio-p
crear todos los directorios necesarios{,..}
brace expansion \
<tab>
autocompletar nombres de archivos y directoriosrmdir
borrar directorio-f o --flag
cambiar opciones de un comandoman
manual de un comandopwd
directorio actualcd
cambiar de directorio...
ruta relativa/...
ruta absoluta-
directorio anterior<sin opciones>
home del usuario~
home del usuario
touch
crear archivo vacío o modificar sus fechasls
listar los contenidos de un directorio?
cualquier caracter*
múltiples caracteres-l
vista avanzada-a
incluir archivos ocultos
tree
árbol del sistema de archivos \cp
copiar archivo.
directorio actual-r
recursivo, copia directorios
mv
mover o renombrarrm
borrar archivo-r
recursivo-f
forzar sin preguntar nada (mala idea)
du -sh
peso de un directorioln
crear link duro-s
crear link simbólico
mención honrosa: rsync
RTFM
man
info
help
--help
Manipulación y visualización
variable="asignación"
asignar un valor a una variableecho
imprimir a STDOUT|
conectar comandos pasándolos de STDOUT a STDINtee
leer de STDIN y escribir en archivos, \> tiene el mismo efecto-a
agregar a archivo en lugar de sobreescribir, \>\> tiene el mismo efecto
cat (y zcat)
concatenar e imprimir archivos a STDOUT-
es un "archivo" especial, corresponde a STDIN
sort, uniq y wc
ordenar, no-repetir y contarhead y tail
mostrar el inicio o término de un archivo o STDIN-n, -<n>
primeras o últimas <n> líneas
&&
ejecutar comandos consecutivamente hasta que falle o termine;
ejecutar comandos consecutivamente sin detenersegrep
buscar dentro de archivosfind
buscar nombres de archivoxargs
añadir argumentos desde STDINwatch
ejecutar comandos cada cierto tiempops -e
ver comandos en ejecución-f
mayor detalle
pstree
ver árbol de procesos \kill -9 <pid>
matar comandosudo
ejecutar un comando como otro usuario \su
ejecutar más de un comando como otro usuario \chown
cambiar dueño:grupo de un archivochgrp
cambiar grupo de un archivochmod
cambiar permisos de archivo
mención honrosa: sed
y awk
Shell scripting
variables
export
alias
funciones
loops
condicionales
Herramientas interactivas
more
ver archivo o STDOUT paginado<espacio>
avanzar una pantalla completa<enter>
avanzar una línea/<texto>
buscarn
buscar siguiente.
repetir comando previo=
info en línea actualv
abrir en $EDITORCtrl+l
redibujar pantallaq
salir
less (y zless)
less is more (than more). Puede abrir archivos más grandes, es más amigable, maneja mejor múltiples archivos y tiene muchas más opciones.?<texto>
buscar hacia atrás&<texto>
mostrar sólo lineas coincidentes, y volver de ahíN
búsqueda en dirección reversa:n
anterior archivo:p
siguiente archivo:x
primer archivo:d
cerrar archivo:e<archivo>
abrir archivo<n>g
ir a línea <n>
vi
editor de textoh, j, k, l o flechas
movimientoi, I, a, A, o, O
modo edición<esc>
modo comandos/..., n, N
buscaru
deshaceryy
copiar líneadd
borrar líneax
borrar un caracterp, P
pegar:!<comando>
ejecutar comando:<numero de línea>!<comando>
insertar resultado de comando:w
guardar:q
salir:q!
salir sin guardar
Notas
Felix Freeman < sir arroba hacktivista punto com > libera este documento bajo los términos de la CC0 https://creativecommons.org/publicdomain/zero/1.0/