0% encontró este documento útil (1 voto)
341 vistas137 páginas

Guía de Comandos Básicos de Linux

Este documento presenta una introducción a Linux y los comandos de shell básicos como ls, cd, mkdir y rmdir. Explica que Linux es un sistema operativo de código abierto popular que alimenta muchos servidores e Internet. También cubre conceptos como distribuciones de Linux, shells y el uso del comando man y tldr para obtener ayuda sobre comandos.

Cargado por

fcutipa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (1 voto)
341 vistas137 páginas

Guía de Comandos Básicos de Linux

Este documento presenta una introducción a Linux y los comandos de shell básicos como ls, cd, mkdir y rmdir. Explica que Linux es un sistema operativo de código abierto popular que alimenta muchos servidores e Internet. También cubre conceptos como distribuciones de Linux, shells y el uso del comando man y tldr para obtener ayuda sobre comandos.

Cargado por

fcutipa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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

Common questions

Con tecnología de IA

The 'alias' command improves command efficiency by allowing users to create shortcuts for frequently used commands with specific options. For example, setting 'alias ll='ls -al'' lets users quickly access detailed directory listings without typing the full command each time. Aliases can be session-specific or made permanent by adding them to shell configuration files like ~/.bashrc .

The chmod command can change file permissions using symbolic (e.g., chmod a+r filename) or numeric arguments. Symbolic arguments are more intuitive, using letters to represent who has access and what type of access (e.g., user, group, others). Numeric arguments specify permissions as numerical values (e.g., 755 for rwxr-xr-x). Symbolic arguments offer clarity, while numeric provide succinct permission settings .

In Linux, a 'distribution' is created by a company or organization that packages the Linux kernel with additional programs and tools. Unlike Windows or macOS, which are singular operating systems, Linux offers various distributions such as Debian, Red Hat, and Ubuntu, each with different features and toolsets, providing users with diverse choices .

'chown' changes the ownership of files or directories, allowing control over who can modify them by assigning an owner and group. 'chmod' adjusts the permissions to define what actions users can perform (read, write, execute). By combining 'chown' to set precise ownership and 'chmod' to restrict access, administrators can finely tune file security, preventing unauthorized alterations .

The 'kernel' is critical because it serves as the core component of the Linux operating system, managing hardware communication, process control, and device drivers. It forms the foundation upon which Linux distributions build, integrating additional software and tools to create a complete OS. Understanding the kernel helps grasp how distributions differ and how they build upon this core to suit various user needs .

Environmental variables in Linux allow applications to access necessary configuration like the user or path. The 'env' command sets these on a per-command basis without impacting the outer environment. For instance, 'env VARIABLE=value command' runs the application with 'VARIABLE' set to 'value'. Clearing existing variables before execution is done with 'env -i' to ensure the application starts with a clean environment .

Linux offers the unique advantage of freedom to do whatever you want with your computer, unlike systems from corporations like Microsoft and Apple which build walled gardens. This makes Linux the epitome of freedom, as it is developed by volunteers without any single commercial entity dictating its direction .

The gzip command can compress multiple files by listing them: "gzip filename1 filename2". To compress all files in a directory recursively, the -r option is used: "gzip -r folder". It allows specifying compression levels from 1 to 9 using the -<NUMBER> option (e.g., gzip -1 for fastest but lowest compression).

Different compression levels in gzip impact performance by balancing speed and compression efficiency. Lower levels, like gzip -1, compress faster with less file size reduction. Higher levels, like gzip -9, provide better compression but take more time to complete. The default is moderate (level 6), offering a trade-off between speed and effectiveness, allowing users to choose based on their needs for storage savings versus time constraints .

The 'less' command enhances navigation of file contents by providing a user-friendly and interactive interface. Unlike 'cat', which outputs everything at once, 'less' allows scrolling through content using arrow keys or page by page with spacebar and 'b'. Additional search functions (using /) and navigation to file start or end (with 'g' and 'G') offer improved handling of large files .

También podría gustarte