Programación en Ruby. Terminal para principiantes - parte 2
Damian Watroba
Software Engineer
Hola! Esta vez, hemos preparado otro conjunto de comandos útiles para ayudarte a familiarizarte con el uso del terminal. La primera parte del tutorial se puede encontrar aquí: Terminal para principiantes - parte 1.
Terminal - Teoría
¿Dónde estoy?
fecha - Si tenemos esa necesidad y ese deseo, podemos consultar la fecha actual en el terminal.
damian@rubydev:~$ fecha
omc, 7 sty 2020,
Adhesión y cotización
cat (concatenar) - este comando tiene muchos usos, pero el más popular es mostrar el contenido de los archivos.
En el ejemplo siguiente, puede ver dos archivos - ruby_1.txt y ruby_2.txt - junto con su contenido. En cat [nombre de fichero] muestra el contenido de un único archivo, mientras que el comando cat [nombre de fichero 1] [nombre de fichero 2] muestra el contenido de ambos archivos en el orden correcto.
Hay una cosa más que podemos hacer con el cat redirigir la salida estándar a un nuevo archivo mediante el comando > signo. Esto significa que el contenido mostrado en pantalla será redirigido a un fichero declarado. Si el fichero indicado no existe en la ubicación especificada, se creará automáticamente.
¿Qué tenemos aquí?
ps (estado del proceso) - imprime información básica sobre los procesos del sistema. Este comando es comparable al Administrador de Tareas de Windows, donde tiene una lista de todas las aplicaciones y procesos en ejecución. Cada aplicación, programa o comando en ejecución se convierte en un proceso con su identificador único, el llamado PID (Process IDentifier).
Como puede ver, el ps no nos ha mostrado gran cosa. Para comprobar todos los procesos activos, tendremos que llamar a ps con un aux argumento.
Además de los procesos de trabajo en el sistema, puede utilizar BSD:
ps ax
ps axu
matar - A veces una aplicación o programa deja de responder. En este caso matar resulta muy útil. Para matar un proceso, todo lo que necesita hacer es completar el matar con su PID.
¿Cómo encontrar el PID de ese proceso? Lo mejor es utilizar el ps aux mando. Puede ocurrir que matar por sí solo no es suficiente porque el proceso está esperando a que termine otro proceso dependiente. Por lo tanto, matar también se utiliza a menudo con el -9 opción. Significa la terminación inmediata del proceso en ejecución, por lo que antes de utilizar esta opción, asegúrese de que se han guardado todos los cambios importantes. Veamos un ejemplo de un comando de este tipo:
damian@rubydev:~$ kill -9 1234
¡Eco!
echo - es el comando que devuelve el texto que se le ha confiado. De forma similar al caso de catpuede dirigir el texto introducido a un archivo con la ayuda de la función echo mando.
Puede ser útil
Cuando queramos ver el historial de los comandos introducidos anteriormente, podemos utilizar la función historia mando.
Si desea borrar la ventana del terminal, necesita el comando borrar mando.
En salida como su nombre indica, cierra el terminal o la pestaña abierta en ese momento.
El principio y el fin
En cabeza muestra el principio de un fichero o de una salida estándar. El valor por defecto son las diez primeras líneas. Puede personalizarlo con el comando -n donde puede poner cualquier número entero bajo n. Para ilustrarlo mejor, utilizaré un ejemplo.
Necesitaremos un archivo de texto. Utilicemos el ya mencionado historia y la redirección > carácter.
damian@rubydev:~$ history > history.txt
De este modo, se creó un archivo con todo el historial de comandos. A continuación, utilizando head -15 historial.txtes posible visualizar los quince primeros comandos introducidos en el terminal.
Del mismo modo, el cola nos mostrará las últimas líneas del fichero seleccionado.
Buscar en
grep (impresión global de expresiones regulares) se utiliza para buscar en el texto una cadena que coincida con la expresión regular dada (RegExp). Se utiliza muy a menudo para encontrar una expresión específica en un archivo o "filtrar" la salida devuelta. Para este propósito, vamos a utilizar la previamente creada historia.txt y compruebe la frecuencia con la que ps se ha utilizado hasta ahora:
damian@rubydev:~$ grep ps history.txt
82 echo "Lorem ipsum rubydev 1" > ruby_1.txt
84 echo "Lorem ipsum rubydev 2" > ruby_2.txt
92 ps
93 ps aux
94 ps --help
95 man ps
96 ps -h
98 ps -ayuda
99 ps -ejH
100 ps aux
101 man ps
102 ps -aux
103 ps aux
109 history | grep ps
113 echo "lorem ipsum rubydev" > rubydev.rb
Como puede ver, grep también se han encontrado palabras que contienen la frase ps. La expresión utilizada en nuestro ejemplo fue ps solamente. Tengo previsto escribir un artículo aparte sobre expresiones regulares, pero por ahora te animo a que explores el tema por tu cuenta. Un conocimiento básico es suficiente por el momento.
Combinación de comandos
| (pipe) es un símbolo que nos permite combinar varios comandos (procesos) y lanzarlos al mismo tiempo. Concretamente, podemos combinar la salida (stdout) de un comando con la entrada (stdin) del otro. Es una función muy útil.
La salida (stdout) del historia será buscado por el comando grep y devolverá todas las cadenas con la coincidencia ps expresión.
historia | cola -5
En este caso, utilizando el cola con el comando -5 mostrará las cinco últimas líneas de la salida (stdout) del programa historia mando.
Esta combinación es especialmente útil cuando se busca el PID del proceso que se quiere terminar. Recuerde que si ejecuta el comando grep también creará un proceso, por lo que normalmente verá el PID del comando grep en la última línea.
Acceso a archivos y directorios
Antes de pasar al comando que cambia el tipo de permisos de acceso, vale la pena mencionar que cada sistema operativo tiene los llamados derechos de acceso. Esto significa que cada directorio o archivo contiene metadatos sobre quién tiene acceso a él. La primera columna de la siguiente "salida" nos lo cuenta todo (información de salida mostrada en la ventana del terminal):
historia | cola -5
El acceso a archivos y directorios se define mediante tres componentes. El primero (usuario) se refiere a un único usuario, el segundo (grupo) a un grupo, mientras que el tercero (otros) se aplica a todos los demás usuarios.
d - determina si se trata de un directorio o de un fichero (d - directorio, f - fichero)
rwx - derechos del usuario
r-x - permisos para el grupo
r-x - autorizado para todos los demás usuarios
Para simplificarlo, puedes dividirlo en tres partes:
Vayamos ahora al significado mismo de estos derechos:
r (leer) - permite leer el contenido
w (escribir) - permite modificar el contenido
x (ejecutar): permite ejecutar un archivo o abrir un directorio.
Los permisos de archivos o directorios pueden modificarse mediante la función chmod (cambiar modo). La forma más fácil de cambiar los permisos es utilizar el sistema integrado y proporcionar el número para el permiso para el usuario, grupo y otros.
Para poner en práctica estos conocimientos, vamos a cambiar los permisos de la lista anterior wideo para grupos y otros usuarios - quita todos los permisos para esos dos, pero deja el permiso completo sólo para el usuario único. Según la tabla anterior, "sin derechos" se denota con el número 0. Inmediatamente después del chmod debe insertar tres dígitos, cada uno de los cuales especifica los derechos para la categoría dada (usuario - grupo - otros). Al final, indique el nombre del archivo o directorio. El comando debe tener este aspecto:
damian@rubydev:~$ chmod 700 Wideo
damian@rubydev:~$ ls -l | tail -1
drwx------ 2 damian damian 4096 sty 6 17:41 Wideo
Resumen
Hay todo un enjambre de otros comandos y la forma más fácil de dominarlos todos es practicar resolviendo problemas concretos. Si quieres saber más sobre ellos, Recomiendo el léxico de comandos Linux de bolsillo. En mi opinión, es una forma agradable de matar el tiempo en el transporte público.