Traducido del inglés al español - [Link].
com
Tabla de contenido
Prefacio
Introducción a Linux y shells
hombre
ls
cd
personas con discapacidad
mkdir
rmdir
m.v.
c.p.
abierto
tocar
encontrar
en
gzip
pistola
alquitrán
alias
gato
menos
cola
WC
grep
clasificar
1
único
diferencia
eco
Chon
chmod
máscara
du
d.f.
nombre base
dirname
PD
arriba
matar
Mátalos a todos
trabajos
bg
fg
tipo
cual
Nohup
xargs
empuje
emacs
nano
quién soy
OMS
su
sudo
2
Contraseña
silbido
trazar ruta
claro
historia
exportar
crontab
tu nombre
env
imprimirv
Conclusión
3
Prefacio
El Manual de Comandos de Linux sigue la regla 80/20:
aprende en el 20% del tiempo el 80% de un tema.
encontrar este enfoque ofrece una visión general completa.
Este libro no trata de cubrir todo lo relacionado
con Linux y sus comandos. Se enfoca en los
pequeños comandos centrales que usará el 80% o
el 0% del tiempo, tratando de simplificar el uso de
los más complejos.
Todos esos comandos funcionan en Linux, macOS, WSL y
en cualquier lugar donde tenga un entorno UNIX.
Espero que el contenido de este libro le ayude a
lograr lo que desea:ponte cómodo con Linux.
su libro está escrito por Flavio. Ipublicar tutoriales
de programacióntodos los días en mi sitio web
[Link].
Puedes contactarme en Twitter@flaviocopes.
¡Diviértete!
4
Introducción a Linux y
shells
inux es un sistema operativo, como macOS o Windows.
También es el sistema operativo de código abierto
y gratuito más popular.
Alimenta la gran mayoría de los servidores que
componen Internet. Es la base sobre la que se
construye todo. Pero no solo eso. Android está
basado en (una versión modificada de) Linux.
El "núcleo" de Linux (llamadonúcleo) nació en 1991
en el interior, y recorrió un largo camino desde sus
humildes comienzos. Pasó a ser el núcleo del
sistema operativo GNU, creando el dúo GNU/Linux.
Hay algo sobre Linux que corporaciones como
Microsoft y Apple, o Google, nunca podrán
ofrecer: la libertad de hacer lo que quieras con tu
computadora.
En realidad, van en la dirección opuesta, construyendo
jardines amurallados, especialmente en el lado móvil.
inux es la máxima libertad.
Es desarrollado por voluntarios, algunos pagados por
empresas que confían en él, algunos de forma independiente,
pero no hay una sola empresa comercial que pueda dictar
sombrero entra en Linux, o las prioridades del proyecto.
5
inux también se puede usar como su computadora del día a día. I
Se macOS porque realmente disfruto las aplicaciones, él
diseña y también solía ser un desarrollador de
aplicaciones iOS y Mac, pero antes de usarlo, usaba
Linux como mi sistema operativo principal.
o uno puede dictar qué aplicaciones puede ejecutar, o "llamar a
ome" con aplicaciones que lo rastrean, su posición y mineral.
inux también es especial porque no hay solo
"un inux", como sucede en Windows o macOS.
en cambio, tenemosdistribuciones.
La "distribución" está hecha por una empresa u organización
y carga el núcleo de Linux con programas y herramientas
adicionales.
o por ejemplo, tiene Debian, Red Hat y
Ubuntu, probablemente los más populares.
alguno, existen muchos más. También puede crear su
propia distribución. Pero lo más probable es que utilice una
red popular, que tenga muchos usuarios y una comunidad
de personas a su alrededor, de modo que pueda hacer lo
que necesite sin perder demasiado tiempo reinventando la
rueda y buscando respuestas a problemas comunes.
Algunas computadoras de escritorio y portátiles se envían
con Linux reinstalado. O puede instalarlo en su
computadora con Windows o en una Mac.
Pero no necesita interrumpir su computadora existente
solo para tener una idea de cómo funciona Linux.
no tiene una computadora con Linux.
6
Si usa una Mac, debe saber que bajo el
ood macOS es un sistema operativo UNIX, y tiene
muchas de las mismas ideas y software que usa
un sistema NU/Linux, porque GNU/Linux es una
alternativa libre a UNIX.
UNIXes un término general que agrupa muchos
sistemas operativos utilizados en grandes
corporaciones e instituciones, a partir de los años 70
El terminal macOS le da acceso a los mismos
comandos xact que describiré en el resto de
este libro.
icrosoft tiene un oficialSubsistema de Windows para
Linux que puede (¡y debe!) instalar en Windows. Esto le
dará la capacidad de ejecutar Linux de una manera muy
fácil en su PC.
Pero la gran mayoría de las veces ejecutará una
computadora Linux en la nube a través de un VPS (servidor
privado virtual) como DigitalOcean.
shell es un intérprete de comandos que expone al ser una
interfaz para trabajar con el sistema operativo subyacente.
Le permite ejecutar operaciones utilizando texto y
comandos, y proporciona a los usuarios
funciones avanzadas como la creación de scripts.
Esto es importante: los shells le permiten realizar las cosas de una
manera más optimizada de lo que una GUI (interfaz gráfica de
usuario) podría permitirle hacer. Las herramientas Command Ine
pueden ofrecer muchas opciones de configuración diferentes
sin ser demasiado complejo de usar.
7
aquí hay muchos tipos diferentes de conchas. Esta publicación
Se centra en los shells de Unix, los que encontrará
comúnmente en las computadoras Linux y macOS.
Se crearon diferentes tipos de caparazones para esos
sistemas a lo largo del tiempo, y algunos de ellos
dominan el ritmo: ¡Bash, Csh, Zsh, Fish y muchos más!
Todos los proyectiles se originan en el Bourne Shell, sh .
llamado Bourne" porque su creador fue Steve Bourne.
ceniza significaBourne Again Shell. sh era propietario
No es de código abierto, y Bash se creó en 1989 para crear
una alternativa libre para el proyecto GNU y la Fundación
Ree Software. Dado que los proyectos tenían que pagar por
usar el shell Bourne, Bash se hizo muy popular.
Si usa una Mac, intente abrir su terminal Mac. Ese valor
predeterminado es ejecutar ZSH. (o, antes de Catalina, Bash)
Puede configurar su sistema para ejecutar cualquier tipo
de shell, o por ejemplo, uso Fish Shell.
Cada shell individual tiene sus propias características
únicas y uso avanzado, pero todos comparten una
funcionalidad común: pueden permitirle ejecutar
programas y pueden programarse.
En el resto de este manual, veremos en detalle
los comandos más comunes que usará.
8
hombre
El primer comando que quiero presentar es un comando
que te ayudará a comprender todos los demás comandos.
Cada vez que no sé cómo usar un comando, escribo
hombre <comando> para obtener el manual:
el suyo es un hombre (demanual) página. Las páginas de manual
son una herramienta esencial para aprender, como desarrollador.
Contienen tanta información que a veces es casi demasiado.
La captura de pantalla anterior es solo 1 de 14
pantallas de explicación para ells comando.
La mayoría de las veces que necesito aprender un
comando rápidamente, uso este sitio llamadopáginas
tldr: ttps://[Link]/. Es un comando que puedes
instalar, luego lo ejecutas así:tldr <comando>
, lo que te da una
Una descripción general muy rápida de un comando, con
algunos ejemplos útiles de escenarios de uso común:
9
el suyo no es un sustituto de hombre , pero una herramienta útil para
Evite perderse en la gran cantidad de información
presente en una página de manual. Luego puede usar la
página de manual para explorar todas las diferentes
opciones y parámetros que puede usar en un comando.
10
ls
Dentro de una carpeta, puede enumerar todos los archivos
que contiene la carpeta usandols el comando:
ls
Si agrega un nombre de carpeta o una ruta, imprimirá el contenido de
esa carpeta:
ls /bin
ls acepta muchas opciones. Uno de mis favoritos
pciones combinaciones es.- Intentalo:
ls -al /bin
11
Comparado con la ls , esto vuelve mucho más
información simple.
tienes, de izquierda a derecha:
los permisos de archivo (y si su sistema admite
ACL, también obtiene un indicador de ACL)
el número de enlaces a ese archivo el
propietario del archivo
el grupo del archivo el tamaño del
archivo en bytes el archivo
modificado la fecha y hora el nombre
del archivo
su conjunto de datos es generado por la pción enyosuopción. El
a lugar, también muestra los archivos ocultos.
Los archivos ocultos son archivos que comienzan con un punto ( ) ..
12
cd
Una vez que tenga una carpeta, puede moverse a ella usando el
cd dominio. cd medioCcolgarddirectorio Tú
Invóquelo especificando una carpeta a la que moverse. Puede
especificar un nombre de carpeta o una ruta completa.
ejemplo:
frutas mkdir
cdfrutas
Ahora estás en el frutas carpeta.
Puedes usar el .. camino especial para indicar el
una carpeta no:
cd..#volver a la carpeta de inicio
El carácter # indica el comienzo del comentario,
que dura toda la línea después de encontrarlo.
Puedes usarlo para formar un camino:
mkdir frutas
mkdir carros
cd frutas
cd . . /carros
aquí hay otro indicador de ruta especial que es . ,
nd indica elactualcarpeta.
También puede usar rutas absolutas, que comienzan desde
la carpeta oot: /
13
cd/etc
Este comando funciona en Linux, macOS, WSL y
en cualquier lugar donde tenga un entorno UNIX
14
personas con discapacidad
Siempre que se sienta perdido en el sistema de archivos, llame al personas con discapacidad
comando para saber dónde se encuentra:
personas con discapacidad
imprimirá la ruta de la carpeta actual.
15
mkdir
Usted crea carpetas usando el mkdir dominio:
frutas mkdir
Puede crear varias carpetas con un solo comando:
mkdir perros coches
También puede crear varias carpetas anidadas
agregando-pag la opción:
mkdir -p frutas/manzanas
Las opciones en los comandos de UNIX comúnmente toman
esta forma. Los agrega justo después del nombre del comando
y cambian el comportamiento del comando. A menudo, también
puede combinar varias opciones.
Puede encontrar qué opciones admite un comando haciendo clic en
yping hombre <nombre de comando> . Prueba ahora con hombre mkdir
o ejemplo (pulse el botón q tecla para salir de la página del manual).
Las páginas son la increíble ayuda integrada para UNIX.
dieciséis
rmdir
de la misma manera que puede crear una carpeta usando mkdir , puede
elimine una carpeta usando rmdir :
mkdir frutas
rmdir frutas
También puede eliminar varias carpetas a la vez:
mkdir frutas carros
rmdir frutas carros
La carpeta que elimine debe estar vacía.
o eliminar comando que elimina archivos y carpetas,
carpetas con
archivos en
ellas, usaremos el más eneric rm
canta el - radiofrecuencia opciones:
rm -rf frutas coches
Tenga cuidado ya que este comando no solicita
confirmación e inmediatamente eliminará todo lo que
le pida que elimine.
aquí no haypapeleraal eliminar archivos de la línea de
comando, y recuperar archivos perdidos puede ser difícil.
17
m.v.
Una vez que tenga un archivo, puede moverlo usando el
m.v. dominio. Usted especifica la ruta actual del archivo
y encuentra su nueva ruta:
tocarprueba
mv pera nueva_pera
él pera el archivo ahora se ha movido a nueva_pera . Así es como
UNEDrebautizararchivos y carpetas.
Si el último parámetro es una carpeta, el archivo ubicado en
la ruta del primer parámetro se moverá a ese más antiguo.
En este caso, puede especificar una lista de archivos y todos
se moverán en la ruta de la carpeta identificada por el último
parámetro:
tocar pera
tocar manzana
mkdir frutas
mv pera manzana frutas#pera y manzana movidas a la f r
18
c.p.
Puede copiar un archivo usando el c.p. dominio:
tocarprueba
cp manzana otra_manzana
o copie las carpetas que necesita para agregar y copiar de -r opción a
forma cursiva todo el contenido de la carpeta:
frutas mkdir
cp -r frutas coches
19
abierto
él abierto El comando le permite abrir un archivo usando este
sintaxis:
abrir <nombre de archivo>
También puede abrir un directorio, que en macOS abre
la aplicación Finder con el directorio actual abierto:
abrir <nombre de directorio>
úselo todo el tiempo para abrir el directorio actual:
abierto .
El especial . el símbolo apunta a la corriente
directorio, como .. apunta al directorio principal
El mismo comando también se puede usar para ejecutar
una aplicación:
abrir <nombre de la aplicación>
20
tocar
Puede crear un archivo vacío usando tocar
el comando:
tocar manzana
Si el archivo ya existe, abre el archivo en modo de escritura y
se actualiza la marca de tiempo del archivo.
21
encontrar
él encontrar El comando se puede utilizar para buscar archivos o
mayores que coinciden con un patrón de búsqueda particular.
Busca recursivamente.
Aprendamos con el ejemplo.
Encuentre todos los archivos bajo el árbol actual que tienen el
. js extensión e imprimir la ruta relativa de cada archivo
pegando:
encontrar . -nombre'*.js'
Es importante usar comillas alrededor de los caracteres
especiales* para evitar que el shell los interprete.
ind directorios bajo el árbol actual que coincidan con
el ame "src":
encontrar . -tipo d -nombre src
se - tipo f para buscar solo archivos, o - tipo l a solo
Buscar enlaces simbólicos.
- nombre distingue entre mayúsculas y minúsculas. usar - nombre para realizar un
búsqueda insensible a ase.
Puedes buscar bajo múltiples árboles raíz:
buscar carpeta1 carpeta2 -nombre nombre de [Link]
22
ind directorios bajo el árbol actual que coincida con
el ame "node_modules" o 'público':
encontrar . -type d -name node_modules -o -name public
También puede excluir una ruta, usando - no -camino :
encontrar . -nombre escrito'*.Maryland'-no -camino'módulo_nodo s
Puede buscar archivos que tengan más de
100 caracteres (bytes):
encontrar . -tipo f -tamaño +100c
buscar archivos mayores de 100 KB pero menores de 1 MB:
encontrar . -tipo f -tamaño +100k -tamaño -1M
buscar archivos editados hace más de 3 días
encontrar . -tipo f -mtiempo +3
buscar archivos editados en las últimas 24 horas
encontrar . -tipo f -mtime -1
Puede eliminar todos los archivos que coincidan con una búsqueda
agregando el - borrar opción. Esto borra todos los archivos.
editado en las últimas 24 horas:
encontrar . -tipo f -mtime -1 -eliminar
23
Puede ejecutar un comando en cada resultado de la
buscar En este ejemplo ejecutamos gato para imprimir el archivo
contenido:
encontrar . -tipo f -exec gato {} \;
fíjate en la terminación \; . {} se llena con el archivo
nombre en tiempo de ejecución.
24
en
él en El comando es parte del sistema de archivos de Linux.
comandos
Se utiliza para crear enlaces. ¿Qué es un enlace? Es como un apuntador a
otro archivo. Un archivo que apunta a otro archivo. Es posible que esté
familiarizado con los accesos directos de Windows. Son similares.
Tenemos 2 tipos de enlaces:enlaces durosyenlaces blandos.
enlaces ard
Los enlaces ard rara vez se utilizan. Tienen algunas
imitaciones: no se puede vincular a directorios y no se puede
escribir en sistemas de archivos externos (discos).
el enlace duro se crea usando
En <original> <enlace>
o por ejemplo, supongamos que tiene un archivo llamado [Link].
Puedes crear un enlace duro a él usando:
En [Link] nuevas [Link]
El nuevo enlace duro que creó es indistinguible de
un archivo normal:
25
Cada vez que edite cualquiera de esos archivos, el contenido
se actualizará para ambos.
Si elimina el archivo original, el enlace seguirá conteniendo
el contenido del archivo original, ya que no se eliminará
hasta que haya un enlace fijo que lo señale.
a menudo enlaces
a menudo los enlaces son diferentes. Son más poderosos
cuando un enlace a otros sistemas de archivos y directorios,
pero cuando se elimina el original, el enlace se romperá.
Puede crear enlaces blandos usando el -s opción de en :
26
ln -s <original> <enlace>
o por ejemplo, supongamos que tiene un archivo llamado [Link].
Puedes crear un enlace suave a él usando:
ln -s [Link] nuevas [Link]
En este caso se puede ver que hay un especial yo bandera
Cuando lista el archivo usando ls-al y el nombre del archivo
como al@ final, y tiene un color diferente si tiene
los colores habilitados:
Ahora, si elimina el archivo original, los enlaces
se romperán y el shell le dirá "No existe tal
archivo o directorio" si intenta acceder a él:
27
gzip
Puede comprimir un archivo usando el rotocol de compresión
gzip llamadoLZ77utilizando el gzip dominio.
Aquí está el uso más simple:
nombre de archivo gzip
Esto comprimirá el archivo y le agregará una . gz
extensión. El archivo original se elimina. Para evitarlo,
puede utilizar el -C opción y salida de uso
edirection para escribir la salida en el nombre de [Link] archivo:
gzip -c nombre de archivo > nombre de [Link]
El -C La opción especifica que la salida irá a la
flujo de salida estándar, dejando intacto el
archivo original
r puedes usar el -k opción:
gzip -k nombre de archivo
Aquí hay varios niveles de compresión. Cuanto más
comprima, más tardará en comprimirse y
descomprimirse). Los niveles van desde 1 (compresión
más rápida y peor) a 9 (compresión más lenta y mejor)
y el valor predeterminado es 6.
Puedes elegir un nivel específico con la - <NÚMERO>
opción:
28
gzip -1 nombre de archivo
Puede comprimir varios archivos enumerándolos:
gzip nombre de archivo1 nombre de archivo2
Puede comprimir todos los archivos de un directorio,
de forma cursiva, utilizando-rla opción:
gzip -r una_carpeta
él -v opción imprime el porcentaje de compresión
información Aquí hay un ejemplo de cómo se usa junto con
Con la opción-k (mantener):
gzip también se puede usar para descomprimir un archivo, usando la
él - d opción:
gzip -d nombre de [Link]
29
pistola
él pistola El comando es básicamente equivalente al
gzip comando, excepto el -d la opcion es siempre
habilitado por defecto.
El comando se puede invocar de esta manera:
gunzip nombre de [Link]
su voluntad gunzip y eliminará el . gz extensión,
utting el resultado en el Nombre del archivo archivo. Si ese archivo existe,
sobrescribirá eso.
Puede extraer a un nombre de archivo diferente usando la
dirección electrónica de salida usando-laC opción:
gunzip -c nombre de [Link] > otro nombre de archivo
30
alquitrán
él alquitrán El comando se utiliza para crear un archivo,
enrutar varios archivos en un solo archivo.
Su nombre viene del pasado y significaarchivo de cinta.
Cuando los archivos se almacenaban en cintas.
su dominio crea un archivo llamado
[Link] con el contenido de archivo1 y archivo2 :
tar -cf [Link] archivo1 archivo2
El C opción significacrear. El F la opción es
solía escribir para archivar el archivo.
o extraer archivos de un archivo en la carpeta actual, consulte:
tar -xf [Link]
el X opción significaextracto
y para extraerlos a un directorio específico, use:
tar -xf [Link] -C directorio
También puede enumerar los archivos contenidos en un archivo:
31
alquitrán a menudo se utiliza para crear unarchivo comprimido,
comprimir el archivo.
esto se hace usando el z opción:
tar -czf [Link] archivo1 archivo2
esto es como crear un archivo tar y luego ejecutar
gzip en eso.
o desarchivar un archivo comprimido con gzip, puede usar pistola ,
r gzip-d y luego desarchivarlo, pero alquitrán -xf voluntad
Reconozca que es un archivo comprimido con gzip y hágalo por usted:
tar -xf [Link]
32
alias
Es común ejecutar siempre un programa con un conjunto
de opciones que le gusta usar.
o ejemplo, tome las huellasls dominio. Por defecto
muy poca información:
mientras usas el - al opción imprimirá algo
Más útil, incluida la fecha de modificación del archivo, el tamaño,
el propietario y los permisos, y también enumera los archivos
identificados (archivos que comienzan con:.
Puedes crear un nuevo comando, por ejemplo me gusta
todo, ese es un alias para ls-al .
todos
lo haces de esta manera:
33
aliasll='ls-al'
Una vez que lo haga, puede llamar todos como si fuera un al
comando UNIX regular:
ay llamando alias sin ninguna opción listará el
alias definidos:
El alias funcionará hasta que se cierre la sesión del terminal.
Para hacerlo permanente, debe agregarlo a la
configuración del shell, lo que podría ser~/.bashrc o
~/.perfil o ~/.bash_perfil si usas el Bash
diablos, dependiendo del caso de uso.
Tenga cuidado con las comillas si tiene variables en el
comando: usando comillas dobles, la variable se resuelve en el
momento de la definición, usando comillas simples, se resuelve
en el momento de la invocación. Esos 2 son diferentes:
34
Traducido del inglés al español - [Link]
aliaslsthis="ls$PWD"
aliaslscurrent='ls $PWD'
PWD se refiere a la carpeta actual en la que se encuentra el
shell. Si ahora navega a una nueva carpeta, actual
ista los archivos en la nueva carpeta, lsthis todavía enumera los
archivos en la carpeta en la que estaba cuando definió el alias.
35
gato
similar a cola de alguna manera tenemos gato . Excepto
gato también puede agregar contenido a un archivo, y esto lo hace
súper poderoso.
En su uso más simple, gato imprime el contenido de un archivo en el
salida estándar:
archivo de gato
Puede imprimir el contenido de varios archivos:
gato archivo1 archivo2
y utilizando el operador de redirección de salida, encatene >puedeel
contenido de varios archivos en un nuevo archivo:
gato archivo1 archivo2 > archivo3
cantar > > puede agregar el contenido de varios archivos
n a un nuevo archivo, creándolo si no existe:
gato archivo1 archivo2 >> archivo3
uando mira los archivos de código fuente, es genial ver
los números finos, y puede tener
gato imprimirlos usando
la opcion: -norte
gato -n archivo1
36
Solo puede agregar un número a las líneas que no están en blanco usando -
, o también puede eliminar todas las múltiples
líneas vacías -sing .
gato se utiliza a menudo en combinación con la tubería
perforador | para alimentar el contenido de un archivo como entrada a otro
mando: gato archivo1 | otro comando .
37
menos
El menos El comando es uno que uso mucho. te muestra
el contenido almacenado dentro de un archivo, en una interfaz de usuario
agradable e interactiva.
Uso: menos <nombre de archivo> .
Una vez que estés dentro de menos sesión, puede salir por
un prensado.q
Puede navegar por el contenido del archivo usando el arriba y
abajo teclas, o usando las barra espaciadora y b a
navegar página por página. También puede saltar al final del
archivo presionando GRAMO y salta de vuelta al principio
presionando gramo
Puede buscar contenido dentro del archivo presionando y /
escribiendo una palabra para buscar. Esto buscaadelante.
Puede buscar hacia atrás usando el símbolo y ?escribiendo
una palabra.
38
Este comando solo visualiza el contenido del archivo. Tú
puede abrir directamente un editor presionando el v . usará
editor del sistema, que en la mayoría de los casos es empuje .
Presionando el F la tecla entramodo de seguimiento, omirar modo.
Cuando otra persona cambia el archivo, como desde otro
programa, puede ver los cambios vivir. De forma
predeterminada, esto no sucede y solo ve la versión del
archivo en el momento en que lo abrió. Necesitas
presionarctrl-C para salir de este modo. En este caso el
el comportamiento es similar a ejecutar el cola -f
<nombre de archivo> dominio.
Puede abrir varios archivos y navegar por
ellos usando (para ir al siguiente archivo) y
:norte
(para ir:pagal anterior).
39
cola
En mi opinión, el mejor caso de uso de la cola es cuando se llama
con el -f opción. Abre el archivo al final, y
atches para los cambios de archivo. Cada vez que hay
contenido nuevo en el archivo, se imprime en la ventana. Esto
es genial para ver archivos de registro, por ejemplo:
cola -f /var/registro/registro del sistema
o salir, pulsar ctrl-C .
Puede imprimir las últimas 10 líneas en un archivo:
cola -n 10 <nombre de archivo>
Puede imprimir todo el contenido del archivo a partir de
una línea específica usando+ antes del número de línea:
cola -n +10 <nombre de archivo>
cola se puede hacer mucho más y como siempre mi consejo es o
comprobarcoladehombre .
40
WC
él WC comando nos da información útil sobre
archivo o entrada que recibe a través de tuberías.
prueba de eco>> [Link]
wc [Link]
1 1 5 [Link]
ejemplo a través de tuberías, podemos contar la salida de ejecutar
él ls-al dominio:
ls-al | WC
6 47 284
La primera columna devuelta es el número de líneas.
El segundo es el número de palabras. El tercero es el
número de bytes.
Podemos decirle que solo cuente las líneas:
wc -l [Link]
r solo las palabras:
wc -w [Link]
r solo los bytes:
wc -c [Link]
41
ytes en juegos de caracteres ASCII equivalen a caracteres, pero con
en juegos de caracteres ASCII, la cantidad de caracteres
puede diferir porque algunos caracteres pueden tomar
varios ytes, por ejemplo, esto sucede en Unicode.
en este caso el - m bandera le ayudará a obtener la correcta
alor:
wc -m [Link]
42
grep
él grepcomando es una herramienta muy útil, que cuando
Nuestro maestro te ayudará tremendamente en tu día a
día.
Si te estás preguntando, grep representaglobal
impresión de expresión regular
puedes usar grep para buscar en archivos, o combinarlo
Con conductos para filtrar la salida de otro comando.
o ejemplo, así es como podemos encontrar las ocurrencias de he
[Link] línea en el í[Link] archivo:
grep [Link] [Link]
canta el - norte opción mostrará los números de línea:
grep -n [Link] [Link]
43
Una cosa muy útil es decirle a grep que imprima 2 líneas
antes, y 2 líneas después de la línea coincidente, para
darnos más contexto. Eso se hace usando-C la opción,
que acepta varias líneas:
grep -nC 2 [Link] [Link]
La búsqueda distingue entre mayúsculas y minúsculas de forma -i bandera
predeterminada. Usa la o para que sea insensible.
Como se mencionó, puede usar grep para filtrar la
salida de otro comando. Podemos replicar la misma
funcionalidad que arriba usando:
menos [Link] | grep -n [Link]
La cadena de búsqueda puede ser una expresión regular, y
su hace grep muy poderoso.
44
Otra cosa que te puede resultar muy útil es invertir el
resultado, excluyendo las líneas que coinciden con un
determinado tring, utilizando-v la opción:
45
clasificar
supongamos que tiene un archivo de texto que contiene los
nombres de los perros:
su lista está desordenada.
él clasificar El comando nos ayuda a ordenarlos por nombre:
ver el r opción para invertir el orden:
46
orting por defecto distingue entre mayúsculas y minúsculas y es alfabético.
ver el - - ignorar caso opción para ordenar mayúsculas y minúsculas,
y el - norte opción para ordenar usando un orden numérico.
Si el archivo contiene líneas duplicadas:
Puedes usar el - tu opción para eliminarlos:
47
clasificar no solo funciona en archivos, como muchos UNIX
Los comandos también funcionan con tuberías, por lo que
puede usarlo en la salida de otro comando, por ejemplo,
puede ordenar los archivos devueltosls con:
ls | clasificar
clasificar es muy potente y tiene muchas más opciones,
hola puedes explorar llamando tipo de hombre .
48
49
único
único es un comando útil para ordenar líneas de texto.
Puede obtener esas líneas de un archivo o usar
canalizaciones de la salida de otro comando:
único [Link]
ls | único
Debe considerar esta cosa clave: ete único podría sólo
líneas duplicadas adyacentes.
esto implica que lo más probable es que lo use junto con
clasificar :
ordenar [Link] | único
él clasificar El comando tiene su propia forma de eliminar
se duplica con el - tu (único) opción. Pero único tiene
poder del mineral.
y por defecto elimina las líneas duplicadas:
50
Puede indicarle que solo muestre líneas
duplicadas, por ejemplo, con la- dopción:
ordenar [Link] | uniq -d
51
Puedes usar el - tu opción para mostrar solo
líneas duplicadas:
Puede contar las ocurrencias de cada línea con el -
opción:
52
ver la combinación especial:
ordenar [Link] | uniq-c | ordenar -nr
o luego ordene esas líneas por más frecuentes:
53
diferencia
diferencia es un comando útil. Suponga que tiene 2 archivos,
que contienen casi la misma información, pero no
puede encontrar la diferencia entre los dos.
diferencia procesará los archivos y le dirá cuál es el
diferencia
Supongamos que tiene 2 archivos: [Link] y
[Link] . la diferencia es que [Link]
Contiene un nombre de perro más:
diff [Link] más [Link] te dire el segundo
ile tiene una línea más, la línea 3 con la línea vainilla :
54
Si invierte el orden de los archivos, le dirá que el
Al segundo archivo le falta la línea 3, cuyo contenido es
vainilla :
canta el -y La opción comparará la línea de 2 archivos por
ine:
él - tu Sin embargo, la opción le resultará más familiar,
Porque es lo mismo que usa el sistema de control
de versiones de Git para mostrar las diferencias
entre versiones:
La comparación de directorios funciona de la misma manera.
Debes usar el -r opción para comparar recursivamente
yendo a subdirectorios):
55
En caso de que esté interesado en qué archivos
difieren, en lugar del contenido, use rlas opcionesq y :
aquí hay muchas más opciones que puede explorar en una
página en ejecución diferencia de hombre :
56
57
eco
él eco El comando hace un trabajo simple: imprime en
él emite el argumento que se le pasó.
su ejemplo:
eco"Hola"
mala impresión Hola a la terminal
Podemos agregar la salida a un archivo:
eco"Hola">> [Link]
Podemos interpolar variables de entorno:
eco"La variable de ruta es$RUTA"
Tenga en cuenta que los caracteres especiales deben
escaparse con una barra invertida\. Porps ejemplo:
58
el suyo es solo el comienzo. Podemos hacer algunas cosas buenas
Entonces se trata de interactuar con las funciones de shell.
Podemos hacer eco de los archivos en la carpeta actual:
eco*
Podemos repetir los archivos en la carpeta actual
que comienzan con lao letra:
ecoo*
Cualquier comando válido de Bash (o cualquier shell que
esté usando) puede usarse aquí.
Puede imprimir la ruta de su carpeta de inicio:
eco~
También puede ejecutar comandos e imprimir el resultado
en la salida estándar (o en un archivo, como vio):
eco$(ls-al)
59
Tenga en cuenta que los espacios en blanco no se conservan de forma
predeterminada. Debe envolver el comando entre comillas dobles para hacerlo:
Puede generar una lista de cadenas, por ejemplo rangos:
eco{1..5}
60
Chon
cada archivo/directorio en un sistema operativo como
Linux r macOS (y todos los sistemas UNIX en general)
tiene ndueño.
El propietario de un archivo puede hacer de todo con él.
Puede ecidir el destino de ese archivo.
el dueño (y el raíz usuario) puede cambiar el
wner a otro usuario también, usando el Chon
comando:
chown <propietario> <archivo>
me gusta esto:
chown flavio [Link]
o, por ejemplo, si tiene un archivo que es propiedad de usted, no raíz ,
puede escribir en él como otro usuario:
puedes usar Chon para transferirle la propiedad:
61
Es bastante común tener la necesidad de cambiar la propiedad
de un directorio, y recursivamente todos los archivos
contenidos, además de todos los subdirectorios y los archivos
contenidos en ellos también.
puedes hacerlo usando el -R bandera:
chown -R <propietario> <archivo>
Los archivos/directorios no solo tienen un propietario,
también tienen ungrupo. A través de este comando puedes
colgar eso simultáneamente mientras cambias el
propietario:
chown <propietario>:<grupo> <archivo>
ejemplo:
chown flavio: prueba de [Link]
También puede simplemente cambiar el grupo de un archivo usando el
chgrp dominio:
chgrp <grupo> <nombre de archivo>
62
chmod
muy archivo en los sistemas operativos Linux /
macOS y sistemas UNIX en general) tiene 3 permisos:
leer, escribir, ejecutar.
o en una carpeta y ejecute el ls-al dominio.
Las cadenas extrañas que ves en cada línea de archivo, como drwxr-
receta , defina los permisos del archivo o carpeta.
Vamos a diseccionarlo.
La primera letra indica el tipo de archivo:
- significa que es un archivo normal
d significa que es un directorio
yo significa que es un enlace
Entonces tienes 3 conjuntos de valores:
El primer conjunto representa los permisos
del dueñodel archivo
El segundo conjunto representa los permisos de los
miembros de lagrupoel archivo está asociado a
63
El tercer conjunto representa los permisos del
todos los demás
Los juegos de mangueras están compuestos por 3 valores. rwx medio
sombrero especificopersonatiene acceso de lectura, escritura
y ejecución. Todo lo que se elimina se intercambia con un
- , que le permite formar varias combinaciones de
valores y permisos relativos: rw- , r-- , receta ,
y así sucesivamente.
Puede cambiar los permisos otorgados a un archivo usando el
chmod dominio.
chmod se puede usar de 2 maneras. El primero es usar
argumentos simbólicos, el segundo está usando argumentos
numéricos. Comencemos con los símbolos primero, que es
más intuitivo.
tu escribes chmod seguido de un espacio y una letra:
a representatodo
tu representausuario
gramo representagrupo
o representaotros
entonces escribes bien + o - para agregar un permiso, o
o eliminarlo. Luego ingrese uno o más símbolos
de permisos r( , , )w. X
ll seguido del nombre del archivo o carpeta.
Hay algunos ejemplos:
chmod a+r nombre de archivo#todos ahora pueden leer
chmod a+rw nombre de archivo#todos ahora pueden leer y escribir mi
nombre de archivo chmod o-rwx#otros (no el dueño, no en
64
Puede aplicar los mismos permisos a múltiples
ersonas agregando varias letras antes de / : +-
chmod og-r nombre de archivo#otro y el grupo no pueden leer ninguno
En caso de que esté editando una carpeta, puede aplicar
los permisos a cada archivo contenido en esa carpeta
usando la bandera- (recursiva).
Los argumentos numéricos son más rápidos, pero los
encuentro difíciles de recordar cuando no los usas día a
día. Utiliza un dígito que representa los permisos de la
ersona. Este valor numérico puede ser un máximo de 7, y
se calcula de esta manera:
1 si tiene permiso de ejecución si
2 tiene permiso de escritura si tiene
4 permiso de lectura
esto nos da 4 combinaciones:
0 no permisos
1 puede ejecutar
2 puede escribir
3 puede escribir, ejecutar
4 puedo leer
5 puede leer, ejecutar
6 puede leer, escribir
7 puede leer, escribir y ejecutar
Los usamos en pares de 3, para establecer los
permisos de los 3 grupos en total:
sesenta y cinco
nombre de archivo chmod 777
chmod 755 Nombre del archivo
chmod 644 Nombre del archivo
66
máscara
uando crea un archivo, no tiene que decidir los permisos por
adelantado. Los permisos tienen valores predeterminados.
los valores predeterminados de las mangueras se pueden controlar y modificar utilizando
máscara dominio.
pitando máscara sin argumentos te mostrará la
umask actual, en este caso 0022 :
sombrero hace 0022 ¿significar? Ese es un valor octal que
representar los permisos.
otro valor común es 0002 .
se umask -S para ver una notación legible por humanos:
En este caso, el usuario ( ), tupropietario del archivo, ha leído,
permisos de rito y ejecución en los archivos.
67
otros usuarios pertenecientes al mismo grupo ( gramo ) tener
Permiso de lectura y ejecución, igual que todos los
demás servidores ( ).
En la notación numérica, normalmente cambiamos los últimos
3 dígitos.
Hay una lista que le da un significado al número:
0 leer, escribir, ejecutar
1 Lee y escribe
2 leer y ejecutar
3 solo lectura
4 escribir y ejecutar
5 escribir solamente
6 ejecutar solo
7 no permisos
nótese que esta notación numérica difiere de la que vemos
en chmod .
Podemos establecer un nuevo valor para la máscara configurando el
valor en formato numérico:
máscara002
r puede cambiar el permiso de un rol específico:
máscarag+r
68
du
él du el comando calculará el tamaño de un directorio
sa entero:
du
él 32 número aquí es un valor expresado en bytes.
desatando du* calculará el tamaño de cada archivo
individualmente:
puedes configurar du para mostrar valores en MegaBytes usando
du-m y GigaBytes usando excavado .
69
Traducido del inglés al español - [Link]
él -h La opción mostrará una notación legible por humanos.
o tallas, adaptándonos al tamaño:
agregando el -a opción imprimirá el tamaño de cada archivo en
él directorios, también:
Lo útil es ordenar los directorios por tamaño:
du -h <directorio> | ordenar -nr
y luego tubería a cabeza para obtener solo los primeros 10
esultados:
70
71
d.f.
El d.f. el comando se usa para obtener el uso del disco
información.
Su formulario básico imprimirá información sobre los
volúmenes montados:
Utilizando el -h opción ( df-h ) mostrará esos valores
en un formato legible por humanos:
También puede especificar un nombre de archivo o directorio para
obtener información sobre el volumen específico en el que se encuentra:
72
nombre base
supongamos que tiene una ruta a un archivo, por ejemplo
/Usuarios/flavio/[Link] .
desatando
nombre base /Usuarios/flavio/[Link]
voy a devolver el [Link] cadena:
si corres nombre base en una cadena de ruta que apunta a un
irectory, obtendrá el último segmento del camino. En su
ejemplo, /Usuarios/flavio es un directorio:
73
dirname
supongamos que tiene una ruta a un archivo, por ejemplo
/Usuarios/flavio/[Link] .
desatando
dirname /Usuarios/flavio/[Link]
voy a devolver el /Usuarios/flavio cadena:
74
PD
nuestro ordenador está ejecutando, en todo momento, toneladas de
procesos diferentes.
Puedes inspeccionarlos todos usando el PD dominio:
sta es la lista de procesos iniciados por el usuario que se
están ejecutando actualmente en la sesión actual.
aqui tengo unos cuantos pez instancias de shell, en su mayoría
escrito por VS Code dentro del editor, y una instancia
de Hugo ejecutando la vista previa de desarrollo de
sitio.
manguera son solo los comandos asignados al ser
actual. Listartodoprocesos necesitamos pasar
algunas opciones aPD.
el mas comun que uso es p.d. hacha :
75
El a la opción se usa para listar también a otros usuarios
procesos, no sólo los nuestros. X muestra procesos
no vinculado a ningún terminal (no iniciado por los usuarios
a través de un terminal).
Como puede ver, los comandos más largos se cortan. Usa
el comando pd axww para continuar el comando
istiendo en una nueva línea en lugar de cortarla:
Necesitamos especificar la configuración, w 2 veces para aplicar esto
no es un error tipográfico.
76
Puede buscar un proceso específico
combinando grep con una pipa, así:
ps axww | grep"Código de estudio visual"
Las columnas devueltas por PD representar alguna clave
información.
La primera información es PID , el identificador del proceso. Esto es
ey cuando desea hacer referencia a este proceso en
otro comando, por ejemplo, para eliminarlo.
gallina que tenemos TT eso nos dice la identificación de terminal utilizada.
gallina ESTADO nos dice el estado del proceso:
I un proceso que está inactivo (durmiendo por más de
unos 20 segundos) R un proceso ejecutable S a
proceso que está durmiendo por menos de unos 20
segundos T un proceso detenido tu un proceso en
espera ininterrumpidaZun proceso muerto (unzombi)
Si tiene más de una letra, la segunda representa
más información, que puede ser muy técnico
77
es común tener + lo que indica que el proceso es
n el primer plano en su terminal. s significa el
proceso es unlíder de sesión.
TIEMPO nos dice cuánto tiempo ha estado funcionando el proceso.
78
arriba
guía rápida de los procesosarribaque secomando, usado para
listar ejecutan en tiempo real
él arriba El comando se utiliza para mostrar la dinámica real.
ime información sobre los procesos en ejecución en
el sistema.
Es muy útil para entender lo que está pasando.
Su uso es simple, simplemente escriba erminal y estaráarriba ,
y el completamente inmerso en esta nueva vista:
El proceso es de larga duración. Para salir, puede escribir el
q carta o ctrl-C .
Aquí se nos brinda mucha información: la cantidad de
procesos, cuántos están en ejecución o suspendidos,
la carga del sistema, el uso de la CPU y mucho más.
79
elow, la lista de procesos que ocupan más memoria
y la CPU se actualiza constantemente.
Por defecto, como puede ver en lo resaltado,%UPC
columna están ordenados por la CPU utilizada.
Puede agregar una bandera para ordenar los procesos por
memoria tilizada:
parte superior -o mem
80
matar
Los procesos inux pueden recibirseñalesy reaccionar
al dobladillo.
Esta es una forma en que podemos interactuar con los programas en ejecución.
él matar programa puede enviar una variedad de señales a un
programa
No se usa solo para terminar un programa, como el nombre
podría sugerir, pero ese es su trabajo principal.
Lo uso de esta manera:
matar<PID>
y por defecto, esto envía el d TÉRMINO señal al proceso
especificado.
Podemos usar banderas para enviar otras señales, que incluyen:
matar -HUP <PID>
matar - EN T <PID>
matar - MATAR <PID>
matar - TÉRMINO <PID>
matar - CONT <PID>
matar - DETENER <PID>
HUP mediocolgar. Se envía automáticamente cuando se
cierra una ventana terminal que inició un proceso
antes de finalizar el proceso.
81
EN T mediointerrumpir, y envía la misma señal
sed cuando presionamos ctrl-C
generalmente termina el proceso.
no se envía al proceso, sino al operativo.
MATAR
kernel del sistema, que inmediatamente detiene y
anula el proceso.
TÉRMINO
en la terminal, que
medioTerminar. El proceso lo recibirá.
y terminarse a sí mismo. Es la señal predeterminada enviada por
matar .
CONT mediocontinuar. Se puede utilizar para reanudar una
proceso rematado.
DETENER no se envía al proceso, sino al operativo.
kernel del sistema, que inmediatamente detiene
(pero no termina) el proceso.
En su lugar, es posible que vea números usados, como matar -1
PID> . En este caso,
1 corresponde a HUP . 2 corresponde a EN T . 9
o corresponde a MATAR . 15 corresponde a TÉRMINO .
18 corresponde a CONT . 15 corresponde a
DETENER .
82
Mátalos a todos
similar a la matar dominio, Mátalos a todos en lugar de
finalizar una señal a una identificación de proceso específica
enviará la señal a múltiples procesos a la vez.
la suya es la sintaxis:
matar a todos <nombre>
aquí nombre es el nombre de un programa. Por ejemplo
Puede tener múltiples instancias de arriba programa
unning, y top asesino los terminará a todos.
Puedes especificar la señal, como con él. matar (y comprobar
matar tutorial para leer más sobre el específico
tipos de señales que podemos enviar), por ejemplo:
Killall-HUP parte superior
83
trabajos
uando ejecutamos un comando en Linux / macOS, podemos
configurarlo para que se ejecute en segundo plano usando& el símbolo
Después del comando. Por ejemplo, arriba en
podemos ejecutar el fondo:
arriba &
Esto es muy útil para programas de larga duración.
Podemos volver a ese programa usando el comando.
Estofg funciona bien si solo tenemos un trabajo en segundo
plano, de lo contrario, debemos usar el número de trabajo:
fg 1 , fg 2 etcétera. Para obtener el comando
ámbar, usamos el trabajos de trabajo.
ay corremos arriba & y luego parte superior -o mem & , Así que nosotros
ave 2 instancias superiores en ejecución. trabajos nos dirá esto:
Ahora podemos volver a uno de los que usan fg
idtrabajo> . Para volver a parar el programa podemos pulsar cmd-
.
desatando trabajos -l también imprimirá la identificación del proceso de cada
transmisión exterior.
84
bg
Cuando se está ejecutando un comando, puede suspenderlo
usando ctrl-Z .
El comando se detendrá inmediatamente y volverá a
la terminal de shell.
Puede reanudar la ejecución del comando en
segundo plano, por lo que seguirá ejecutándose pero
no le impedirá realizar otros trabajos en la terminal.
En este ejemplo tengo 2 comandos detenidos:
puedo correr fondo 1 para reanudar en segundo plano la
ejecución del trabajo #1.
también podría haber dicho bg sin ninguna opción, como el
el valor predeterminado es elegir el trabajo n.º 1 de la lista.
85
fg
Cuando un comando se ejecuta en segundo
plano, porque lo inició al final (ejemplo:&
arriba &
o porque lo pones de fondo con
él bg comando, puede ponerlo en primer plano.
cantar fg
desatando
fg
retomaré en primer plano el último trabajo que se
suspendió.
También puede especificar qué trabajo desea reanudar
en primer plano pasando el número de trabajo, que puede
configurar usandotrabajosel dominio.
desatando fg 2 reanudará el trabajo #2:
86
87
tipo
El comando puede ser uno de esos 4 tipos:
un ejecutable
un programa integrado de shell
una función de shell
un alias
él tipo El comando puede ayudar a resolver esto, en caso de que
Queremos saber o simplemente tenemos curiosidad.
Le dirá cómo se interpretará el comando.
La salida dependerá del shell utilizado. Este es Bash:
el suyo es Zsh:
88
el suyo es pescado:
89
na de las cosas más interesantes aquí es que para
liases le dirá a qué se está asignando un alias. puedes verlo
todos alias, en el caso de Bash y Zsh, pero Fish lo proporciona de
forma predeterminada, por lo que le dirá que es una función de
infierno incorporada.
90
cual
Suponga que tiene un comando que puede
ejecutar, porque está en la ruta del shell, pero
desea saber dónde se encuentra.
Puedes hacerlo usando cual . El comando volverá
la ruta al comando especificado:
cual solo funcionará para ejecutables almacenados en disco,
no alias o funciones de shell integradas.
91
Nohup
A veces, debe ejecutar un proceso de larga duración
en una máquina remota y luego debe desconectarse.
O simplemente desea evitar que el comando se
detenga si hay algún problema de red entre usted
y el servidor.
La forma de hacer que un comando se ejecute incluso después
de cerrar sesión o cerrar la sesión en un servidor es usar el
Nohup dominio.
Usar nohup <comando> dejar que el proceso continúe
funcionando incluso después de cerrar la sesión.
92
xargs
él xargs El comando se utiliza en un shell de UNIX para
convierte la entrada de entrada estándar en argumentos a
un comando.
En otras palabras, mediante el uso de xargs La salida
El comando fa se usa como entrada de
otro comando.
Esta es la sintaxis que usará:
dominio1 | xargsdominio2
Usamos una tubería| ( ) para pasar la salida a xargs . Eso
me encargaré de ejecutar el comando2 dominio,
cantar la salida de comando1 como su(s) argumento(s).
Hagamos un ejemplo simple. Desea eliminar algunos archivos
específicos de un directorio. Esos archivos se enumeran dentro
de un archivo de texto.
tenemos 3 archivos: archivo1 , archivo2 , archivo3 .
norte [Link] tenemos una lista de archivos que queremos
elete, en este ejemplo archivo1 y archivo3 :
93
canalizaremos la salida de gato para [Link] hacia rm
comando, a través xargs .
de esta manera:
gato para [Link] | xargs rm
Este es el resultado, los archivos que enumeramos ahora se eliminan:
La forma en que funciona es que xargsne correrá rm 2 veces,
para cada línea devuelta por gato .
Este es el uso más simple de todas las xargs . Hay
opciones que podemos usar.
na de las más útiles en mi opinión, sobre todo a la hora de
empezar a aprender xargs , es - pag . Usando esta opción se
tomar xargs imprimir un mensaje de confirmación con el
acción que va a tomar:
94
él - norte opción le permite decir xargs para realizar uno
teración a la vez, para que pueda confirmar individualmente el
dobladillo con- . Aquí te contamos xargs para realizar uno
pag
teración a la vez con: - n1
él -I La opción es otra muy utilizada. Eso permite
ou para obtener la salida en un marcador de posición, y
luego puede hacer varias cosas.
uno de ellos es ejecutar múltiples comandos:
dominio1 | xargs -I % /bin/bash -c'comando2 %; com metro
Puedes intercambiar cualquier%símbolootra que usé
arriba con cosa, es una variable
95
empuje
empuje es unmuyeditor de archivos popular, especialmente entre
programadores. Se desarrolla activamente y se actualiza
con frecuencia, y hay una comunidad muy grande a su
alrededor. aquí hay incluso unconferencia vim!
vi en los sistemas modernos es solo un alias para empuje , cual
significavi que metro probé.
lo empiezas corriendo vi en la línea de comando.
Puede especificar un nombre de archivo en el momento de la invocación para
editar un archivo específico:
vi [Link]
96
Tienes que saber que Vim tiene 2 modos principales:
dominio(onormal) modo
insertarmodo
uando inicia el editor, se encuentra en modo comando. No
puede ingresar texto como espera de un editor basado en GUI.
tienes que entrarmodo de inserción. Puedes hacer esto y
presionando el i llave. Una vez que lo haga, el --
INSERTAR -- La palabra aparece en la parte inferior del editor:
Ahora puede comenzar a escribir y llenar la pantalla con el
contenido del archivo:
97
Puede moverse por el archivo con las teclas de
flecha, o cantarhj las teclask yo-- -. hola para izquierda-derecha,
jk para abajo arriba.
Una vez que haya terminado de editar, puede presionar la
teclaEsc para salir del modo de inserción y volver aoda de mando.
En este punto, puede navegar por el archivo, pero no
puede agregarle contenido (y tenga cuidado con las teclas
que presiona, ya que pueden ser comandos).
na cosa que tal vez quieras hacer ahora esguardando el
archivo. Puede hacerlo presionando: (dos puntos), luegow .
98
Tu puedesguardar y Salirprensado : entonces w y q:
:wq
Tu puedessalir sin guardar, presionando : entonces q
nd : ! :q!
Tu puedesdeshacery edite yendo al modo de comando y
presionando tu . Puederehacer(cancelar un deshacer) por
descansando ctrl-r .
manguera son los conceptos básicos para trabajar con Vim. A partir de
aquí comienza una madriguera de conejo en la que no podemos entrar en
esta pequeña introducción.
solo mencionará los comandos que lo ayudarán
a editar con Vim:
presionando el X tecla borra el caracter
destacado actualmente
prensado A va al final del actual
línea seleccionada
presione0 para ir al inicio de la línea
vaya al primer carácter de una palabra y presione d
seguido de paraw borrar esa palabra. Si lo sigue con en
lugar demi , se conserva wel espacio en blanco antes de la
siguiente palabra
use un número entre 1 palabra,dy w para borrar más
por ejemplo, use palabras hacia d3w para borrar 3
adelante
presioned seguido de d para borrar un todo entero
línea. Pulse seguido de ps para borrar todo
línea desde donde está el cursor, hasta el final
Para obtener más información sobre Vim, puedo recomendar
elVim AQy sobre todo ejecutar el vimtutor dominio,
hich ya debería estar instalado en su sistema y
99
Te ayudaré mucho a comenzar tu empuje exploraciones.
100
emacs
emacs es un editor increíble y es históricamente
considerado comoeleditor para sistemas UNIX. Famosamente
vi contra emacs guerras de llamas y discusiones acaloradas
causó muchas horas improductivas para los desarrolladores
de todo el mundo.
emacs es muy poderoso Algunas personas lo usan todo
largo el día como una especie de sistema operativo
([Link]
Aquí solo hablaremos de los conceptos básicos.
Puede abrir una nueva sesión de emacs
simplemente invocandoemacs :
101
Usuarios de macOS, deténganse un segundo ahora. si estas en
Linux no hay problemas, pero macOS no incluye
aplicaciones que usen GPLv3, y todos los comandos
UNIX incorporados que se han actualizado a GPLv3 no se
han actualizado. Si bien hay un pequeño problema con
los comandos que enumeré hasta ahora, en este caso
usar una versión de emacs de 2007 no es exactamente lo
mismo que usar una versión con 12 años de mejoras y
cambios. Esto no es un problema con Vim, que está
actualizado. Para solucionar esto, ejecute
preparar emacs de instalación y corriendo emacs voluntad
use la nueva versión de Homebrew (asegúrese
de tenerCerveza caserainstalado)
También puede editar un archivo existente llamando emacs
<nombre de archivo> :
Puede comenzar a editar y una vez que haya terminado, presione
ctrl-x seguido por ctrl-w . Confirmas la carpeta:
102
y Emacs le dice que el archivo existe y le pregunta
si debe sobrescribirlo:
Respuesta y , y obtienes una confirmación de éxito:
103
Puede salir de Emacs presionando ctrl-x seguido por
ctrl-c .O ctrl-x seguido por C (mantener control
presionado).
Hay mucho que saber sobre Emacs. Más de lo que soy capaz
de escribir en esta pequeña introducción. Te animo a que
abras Emacs y presiones ctrl-h r para abrir el
manual incorporado y ctrl-h t para abrir el oficial
tutorial.
104
Traducido del inglés al español - [Link]
nano
nano es un editor amigable para principiantes.
lo estoy usando nano <nombre de archivo> .
Puede escribir caracteres directamente en el archivo
sin preocuparse por los modos.
Puedes salir sin editar usando ctrl-X . Si usted
editado el búfer del archivo, el editor le pedirá confirmación
y podrá guardar las ediciones o descartarlas. La ayuda en la
parte inferior le muestra los comandos del teclado que le
permiten trabajar con el archivo:
pico es más o menos lo mismo, aunque nano es el
versión NU de pico que en algún momento de la historia
como no de código abierto y el nano se hizo el clon
o satisfacer los requisitos de licencia del
sistema operativo GNU.
105
quién soy
Tipo quién soy para imprimir el nombre de usuario actualmente registrado
en la sesión de terminal:
Nota: esto es diferente del comando, OMS soy i
que imprime más información
106
OMS
él OMS El comando muestra los usuarios que iniciaron sesión en
el sistema
A menos que esté utilizando un servidor al que varias
personas tienen acceso, es probable que usted sea el
único usuario conectado varias veces:
¿por qué varias veces? Porque cada shell abierto
contará como un acceso.
Puede ver el nombre del terminal utilizado y la
hora/ día en que se inició la sesión.
él -ah las banderas dirán OMS para mostrar más
Información, incluido el tiempo de inactividad y el ID de
proceso de la terminal:
107
el especial quién soy El comando mostrará la lista actual.
Detalles de la sesión terminal:
108
su
Mientras haya iniciado sesión en el shell del terminal con un
servidor, es posible que tenga que cambiar a otro servidor.
o, por ejemplo, ha iniciado sesión como raíz para realizar algún
mantenimiento, pero luego desea cambiar a una cuenta de
usuario.
puedes hacerlo con el su dominio:
su <nombre de usuario>
o ejemplo: su flavio .
Si ha iniciado sesión como usuario, ejecutar nada su sin
más le pedirá que ingrese la contraseña, ya que raíz usuario
ese es el comportamiento predeterminado.
su iniciará un nuevo shell como otro usuario.
Cuando termines, escribe salida en el caparazón se cerrará
hat shell, y regresará al infierno del usuario actual.
109
sudo
sudo se usa comúnmente para ejecutar un comando como root.
debe estar habilitado para usar sudo , y una vez que lo hagas,
Puede ejecutar comandos como root ingresando la contraseña
de su usuario (nola contraseña de usuario raíz).
Los permisos son altamente configurables, lo que es
especial en un entorno de servidor multiusuario, y a
algunos usuarios se les puede otorgar acceso para
ejecutar comandos específicos a través desudo .
o ejemplo puede editar un archivo de configuración del sistema:
sudo nano /etc/hosts
de lo contrario, no se podría guardar ya que no
tiene los permisos para ello.
puedes correr sudo -i para iniciar un shell como root:
puedes usar sudo para ejecutar comandos como cualquier usuario.
raíz es el predeterminado, pero use el - tu opción para especificar
otro usuario:
110
sudo -u flavio ls /Usuarios/flavio
111
Contraseña
Los servidores en Linux tienen una contraseña asignada. Puede
cambiar la contraseña utilizando el Contraseña dominio.
aquí hay dos situaciones aquí.
El primero es cuando quieres cambiar tu contraseña.
En este caso escribes:
Contraseña
Y un aviso interactivo le pedirá la contraseña
anterior, luego le pedirá la nueva:
entonces tu eres raíz (o tiene privilegios de superusuario) usted
y establezca el nombre de usuario del que desea cambiar
la contraseña:
passwd <nombre de usuario> <nueva contraseña>
En este caso no es necesario introducir el anterior.
112
silbido
él silbido comando hace ping a un host de red específico, en
la red local o en Internet.
lo usas con la sintaxis hacer ping <host> dónde
<anfitrión> podría ser un nombre de dominio o una dirección IP.
Hay un ejemplo de ping [Link] :
El comando envía una solicitud al servidor y el
servidor devuelve una respuesta.
silbido seguir enviando la solicitud cada segundo, por
predeterminado, y seguirá ejecutándose hasta que lo detenga con
ctrl-C , a menos que pase la cantidad de veces que
hormiga para probar con-Cla opción: ping -c 2 [Link] .
una vez silbido está detenido, imprimirá algunas estadísticas
Acerca de los resultados: el porcentaje de paquetes
perdidos y estadísticas sobre el rendimiento de la red.
Como puede ver, la pantalla imprime la dirección IP
del host y el tiempo que tomó obtener la respuesta.
113
o todos los servidores admiten ping, en caso de que las solicitudes
sale:
A veces esto se hace a propósito, para "ocultar" el
servidor o simplemente para reducir la carga. Los paquetes
de ping también pueden ser filtrados por firewalls.
silbido funciona usando elProtocolo ICMP(Internet
Protocolo de mensajes de control), un protocolo de capa
de red como TCP o UDP.
La solicitud envía un paquete al servidor con el
ECHO_REQUEST mensaje, y el servidor devuelve un
ECHO_RESPUESTA mensaje. No voy a entrar en detalles, pero esto
s el concepto básico.
Enviar un host es útil para saber si el host es accesible
(suponiendo que implemente ping) y qué tan rápido es
en términos de cuánto tiempo lleva volver a usted. Por
lo general, cuanto más cerca esté el servidor
geográficamente, menos tiempo tardará en volver a
usted, por leyes físicas que hacen que una mayor
distancia produzca más retraso en los cables.
114
trazar ruta
uando intenta comunicarse con un host en Internet, pasa por
el enrutador de su hogar, luego llega a la red de su ISP, que a su
vez pasa por su propio enrutador de red ascendente, y así
sucesivamente, hasta que finalmente llega al ost.
¿Alguna vez ha querido saber cuáles son los pasos por los
que pasan nuestros paquetes para hacer eso?
él trazar ruta El comando está hecho para esto.
tu invocas
rastrear ruta <host>
y recopilará (lentamente) toda la información mientras
el billete viaja.
En este ejemplo, intenté llegar a mi blog con
trazar la ruta [Link] :
115
o cada enrutador recorrido nos devuelve información. En
su caso, trazar ruta huellas dactilares *** . De lo contrario, nosotros
y ver el nombre de host, la dirección IP y
algún indicador de rendimiento.
o cada enrutador podemos ver 3 muestras, lo que significa que
raceroute intenta por defecto 3 veces para darte una buena
indicación del tiempo necesario para llegar a él. Esta es la razón
por la que se tarda tanto en ejecutar
trazar ruta en comparación con
implica hacer un silbido a ese anfitrión.
Puedes personalizar este número con el -q opción:
traceroute -q 1 [Link]
116
claro
Tipo claro para borrar todos los comandos anteriores que
se ejecutaron en la terminal actual.
La pantalla se borrará y solo verá el mensaje en la
parte superior:
Nota: este comando tiene un atajo útil: control-
Una vez que haga eso, perderá el acceso al desplazamiento para
ver el resultado de los comandos ingresados anteriormente.
Así que es posible que desee utilizar claro -x en cambio, que
todavía borra la pantalla, pero le permite volver a ver el
trabajo anterior desplazándose hacia arriba.
117
historia
cada vez que ejecutamos un comando, eso se memoriza en
el historial.
Puedes mostrar todo el historial usando:
historia
la suya muestra la historia con números:
Puedes usar la sintaxis !<número de comando> repetir
comando almacenado en el historial, en el ejemplo anterior
escribiendo !121 repetirá el ls-al | wc-l
mando
Normalmente, los últimos 500 comandos se almacenan en
la historia.
Puedes combinar esto con ou grep para encontrar un comando
corriste:
historia| ventana acoplable grep
118
o borrar el historial, ejecutar historia -c
119
exportar
él exportar El comando se utiliza para exportar variables a
procesos secundarios.
¿Qué significa esto?
Supongamos que tiene una PRUEBA variable definida en este ay:
PRUEBA="prueba"
Puedes imprimir su valor usando echo $PRUEBA :
Pero si intenta definir un script Bash en un archivo
[Link] con el comando anterior:
120
gallina te pones chmod u+x secuencia de [Link] y tu ejecutas
su guión con . /[Link] , el echo $PRUEBA línea voluntad
imprimir nada!
la suya es porque en Bash el PRUEBA la variable era
efined local al shell. Al ejecutar un script de shell
u otro comando, se lanza un subshell para
ejecutarlo, que no contiene las variables locales
de shell actuales.
o hacer que la variable esté disponible allí, necesitamos definir
PRUEBA no de esta manera:
PRUEBA="prueba"
u de esta manera:
exportarPRUEBA="prueba"
Prueba eso y ejecuta la . /[Link] ahora debe imprimir
prueba":
A veces necesitas añadir algo a un ariable. A
menudo se hace con el CAMINO variable. Tú
vea esta sintaxis:
exportarRUTA=$RUTA:/nuevo camino
121
es común de usar exportar cuando creas nuevos
ariables de esta manera, pero también cuando crea
ariables en el . bash_perfil o . bashrc
onfiguration files con Bash, o en . zshenv con Zsh.
o eliminar una variable, utilice el - norte opción:
exportar-n PRUEBA
alling exportar sin ninguna opción listará todos los
variables exportadas.
122
crontab
Los trabajos ron son trabajos que están programados para
ejecutarse en intervalos específicos. Es posible que tenga un
comando que realice algo cada hora, cada día o cada 2 semanas.
r los fines de semana. Son muy potentes, especialmente n
servidores para realizar mantenimientos y automatizaciones.
él crontab comando es el punto de entrada para trabajar con
trabajos de ron.
Lo primero que puede hacer es explorar qué trabajos cron
ha definido usted:
crontab-l
Puede que no tengas ninguno, como yo:
Naciones Unidas
crontab -e
o edite los trabajos cron y agregue otros nuevos.
123
y predeterminado esto se abre con el editor predeterminado, que es
generalmente empuje . Me gusta nano más, puedes usar esta línea
o usar un editor diferente:
EDITOR=nano crontab -e
Ahora puede agregar una línea para cada trabajo cron.
La sintaxis para definir trabajos cron da un poco de miedo.
Esto es porque suelo usar un sitio web para ayudarme a
generarlo sin errores:[Link]
Elige un intervalo de tiempo para el trabajo cron y escribe
el comando para ejecutarlo.
124
eligió a correr a guion situado en
/Usuarios/flavio/[Link] cada 12 horas. Este es el
línea rontab que necesito ejecutar:
* * /12 * * * /Usuarios/flavio/[Link] >/dev/null 2>&1
correr crontab -e :
EDITOR=nano crontab -e
y agrego esa línea, luego presiono o ctrl-X y presiona y guardar.
Si todo va bien, el trabajo cron está configurado:
Una vez hecho esto, puede ver la lista de cron
obs activos ejecutando:
crontab-l
125
puede eliminar un trabajo cron en ejecución crontab -e de nuevo,
eliminando la línea y saliendo del editor:
126
tu nombre
alling tu nombre sin ninguna opción devolverá el
nombre en clave del sistema operativo:
él metro opción muestra el nombre del hardware ( x86_64 en
su ejemplo) y el pagopción imprime el procesador
nombre de la arquitectura ( i386 en este ejemplo):
él s La opción imprime el nombre del sistema operativo. r
imprime el comunicado, v imprime la versión:
127
él norte opción imprime el nombre de la red del nodo:
él . opción imprime toda la información disponible:
128
n macOS también puede usar el sw_vers dominio o
imprimir más información sobre el sistema operativo
macOS. Tenga en cuenta que esto difiere de la versión de
Darwin (el ernel), que arriba es 19.6.0 .
Darwin es el nombre del kernel de macOS. El kernel
es el "núcleo" del sistema operativo, mientras que
el sistema operativo en su conjunto se llama
macOS. En Linux, Linux es el kernel, GNU/Linux
sería el nombre del Sistema Operativo, aunque
todos nos referimos a él como "Linux"
129
env
él env el comando se puede usar para pasar el entorno
ariables sin configurarlos en el entorno exterior
(el caparazón actual).
Supongamos que desea ejecutar una aplicación [Link] y configurar el
USUARIO variable a ello.
puedes correr
env USUARIO = nodo flavio [Link]
y el USUARIO la variable de entorno será accesible
desde la aplicación [Link] a través de la [Link]
interfaz Node.
También puede ejecutar el comando borrando todas las
variables de entorno ya configuradas, usando la opción:- i
env -i nodo [Link]
En este caso, obtendrá un error que dice env: nodo: No
tal archivo o directorio porque el nodo dominio
no es accesible, ya que el CAMINO variable utilizada por el
el infierno para buscar comandos en las rutas comunes
está nset.
o necesita pasar la ruta completa al nodo
programa:
env -i /usr/local/bin/aplicación de [Link]
130
prueba con un simple aplicació[Link] archivo con este contenido:
[Link]([Link])
[Link]([Link])
Verá que la salida es
indefinido
indefinido
Puedes pasar una variable env:
env -i NOMBRE=nodo flavio [Link]
y la salida será
flavio
indefinido
quitando el -i la opción hará CAMINO disponible
ganar dentro del programa:
él env El comando también se puede utilizar para imprimir todos
Las variables de entorno, si se ejecutaron sin opciones:
env
131
t devolverá una lista de las variables de entorno establecidas, por
ejemplo:
HOME=/Usuarios/flavio
LOGNAME=flavio
RUTA=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/ L
PWD=/Usuarios/flavio
SHELL=/usr/local/bin/pescado
También puede hacer que una variable sea inaccesible dentro
del programa que ejecuta, usando el - tu
opción, por ejemplo
su código elimina el variable de la HOGAR
entorno de comando:
env -u aplicación de nodo [Link]
132
imprimirv
guía rápida de la imprimirv mando, solía
imprimir los valores de las variables de entorno
En cualquier shell hay un buen número de variables
de entorno, configuradas por el sistema o por sus
propios scripts y configuración.
Puede imprimirlos todos en la terminal usando
el imprimirv dominio. La salida será algo
me gusta esto:
HOME=/Usuarios/flavio
LOGNAME=flavio
RUTA=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/ L
PWD=/Usuarios/flavio
SHELL=/usr/local/bin/pescado
Con unas pocas líneas más, por lo general.
Puede agregar un nombre de variable como parámetro, para
mostrar solo ese valor de variable:
RUTA printenv
133
Conclusión
Muchas gracias por leer este libro.
Espero que lo inspire a saber más sobre Linux y
sus capacidades.
Para obtener más información, echa un vistazo a mi [Link].
Enviar cualquier comentario, fe de erratas o opiniones en
hey@[Link]
134