Acabo de instalar Ubuntu hace un par de días. Por lo que puedo decir, el terminal es una gran parte de cualquier distribución de Linux. Mi pregunta en este punto es ¿por qué? Cuando busco algo al respecto, los comandos puestos en el terminal se realizan fácilmente a través de la GUI. Entonces, ¿cuáles son las ventajas de usar el terminal?
Editar: Gracias por las respuestas a todos. Después de hurgar un poco, y con la ayuda de sus respuestas, ahora puedo entender su uso. Puedo decir con orgullo, que durante los últimos 3 días, lo he estado usando para casi todo, y espero tener pronto una mejor comprensión de las secuencias de comandos.
command-line
LurkDog
fuente
fuente
Respuestas:
El terminal en Unix es una herramienta maravillosa y poderosa. Al hacer la transición desde el mundo de Windows, es difícil apreciar esto porque el shell de Windows (cmd.exe) es más bien, ¿cómo puedo decir que falta? * La mayoría de las cáscaras por defecto nix (
bash
,zsh
, etc.) tienen varias ventajas:Está estandarizado a través de POSIX y la especificación Single Unix, por lo que un script que escriba para una computadora probablemente funcionará en todas las máquinas compatibles con POSIX (suponiendo que se limite a los comandos estándar, de los cuales hay muchos ). Microsoft tiene la costumbre de incluir herramientas en algunas versiones y no en otras, lo que hace que la programación por lotes sea muy impredecible
Debido a que Unix se creó desde la terminal hacia arriba, casi todo es configurable desde la línea de comandos. Windows era así hasta cierto punto, pero optaron por abandonar el subsistema de 16 bits y DOS con él. Ahora la GUI es la única forma de cambiar algunas cosas en Windows.
Porque es muy flexible. Los comandos se pueden canalizar juntos (
ls | grep filename
), se pueden capturar (gcc program.c > ./standard_out 2> ./standard_error
) y se pueden sustituir (ls /home/`whoami`
ols /home/$(whoami)
)Porque las utilidades de UNIX están diseñadas para hacer una cosa y hacerlo bien. Basta con mirar en
awk
,grep
,sed
,wget
o un anfitrión de otros. Por sí mismos logran una sola tarea, pero dados # 3 y # 2 pueden convertirse en expresiones poderosas.Debido a la capacidad de automatizar tareas.
cron
y los scripts bash permiten simplificar o automatizar por completo tareas largas, complicadas y / o repetitivas.Porque los humanos son propensos al error. Se pueden utilizar scripts de shell relativamente cortos para cambiar la configuración de manera coherente. Se pueden incorporar controles de seguridad en los scripts, en lugar de depender de los usuarios para saber qué comandos son seguros para ejecutarse en diferentes circunstancias.
fuente
ls /home/$(whoami)
cron
, te encontrará en la puerta cuando regreses del trabajo ...Hay una multitud de ventajas al usar el terminal. Los argumentos varían desde conveniencia, productividad hasta nostalgia. Aquí están algunos :
Hay algunas cosas que usted (en lugar de mí) simplemente no puede lograr con una GUI. No es porque no sea factible, es simplemente porque nadie se molestó en escribir una GUI para estos comandos. Por ejemplo, si quisiera usar algún comando, digamos
mdf2iso
para convertir un montón de archivos en una carpeta. Puedo canalizar la salida usando el|
operador y hacerlo de una sola vez.Para muchos de nosotros, las cosas deberían ser así. Tenga en cuenta que esto tiene poco que ver con la experiencia. No soy un experto en Linux, solo soy un usuario habitual, pero prefiero usar la línea de comandos siempre que sea posible. Esto no es tanto un argumento sobre por qué debería usarse, sino por qué se usa.
Los guiones son una cosa poderosa. Puede usar condiciones
if
y bucles,for
etc. y hacer todo tipo de cosas combinando el poder anterior. No hay límite para el poder de las secuencias de comandos. Puede automatizar tareas complejas que se adaptan a sus necesidades. Para tales cosas, a menudo es difícil encontrar una aplicación GUI que coincida con sus requisitos.Puede realizar tareas mediante inicio de sesión remoto, incluso con configuraciones de ancho de banda muy bajo.
Ayudar, escribir tutoriales, etc. es mucho más fácil si puede especificar los comandos a la otra persona. De esta manera, no tiene que tomar capturas de pantalla. Esto tiene otra ventaja para la persona que también recibe ayuda, lo que nos lleva al siguiente punto.
El uso de la línea de comando generalmente le permite comprender mejor lo que está haciendo y lo que está sucediendo.
Y por último, es simplemente más rápido. Es mucho más rápido escribir algunas letras y presionar TABque hacer clic a través de infinitas opciones de menú. Puede usar
!mo
para invocar el último comando que ejecutó que comenzó conmo
(por ejemplo, montaje) y así sucesivamente.Estoy seguro de que hay miles de otras razones por las que no mencioné.
fuente
¿Finalmente? Porque comienzas a crear secuencias de comandos, y lo maravilloso de las secuencias de comandos es esto:
En lugar de cambiar la forma en que haces las cosas, puedes cambiar el guión que las hace.
Puede escribir scripts para el terminal, y generalmente no puede para programas gráficos, por eso la gente usa el terminal.
Pero siento una pista de "¿Por qué debería usar el terminal?" en tu pregunta No puedo responder eso por usted, usted siendo usted y yo no siendo usted, pero esta pregunta relacionada puede ofrecerle una idea:
¿Cómo / por qué las personas terminan siendo usuarios de la línea de comandos?
Creo que podría identificar tres etapas: (1) uso reacio; (2) conocer el mínimo necesario para la comodidad; (3) encontrar uno disfruta de los scripts. Uno puede usar el terminal en los tres niveles; descubre por ti mismo dónde se detiene tu curiosidad. Además, uno puede pasar por estas etapas muy rápidamente si simplemente decide que quiere aprender scripting de shell.
"Necesito este programa, así que supongo que usaré la línea de comandos".
Comienza, generalmente, porque las personas descubren que necesitan algo especializado o complicado, y el programa que Google / un foro / un amigo recomienda para que resulte ser un programa de línea de comandos. Entonces, abren una terminal y escriben lo que las instrucciones les dicen que escriban, y así es como llegan a usar la terminal. Ejemplos de tales programas que te hacen usar la línea de comandos:
rename
es un pequeño y encantador programa que te permite cambiar el nombre de toneladas de archivos según un patrón. Un ejemplo simple:rename s/myfile([0-9]+).txt/$1-myfile.txt/
convierte todos los archivos nombrados como 'bond007.txt' en '007-bond.txt', sin importar cuál sea el número. Tal vez quieras cambiar el nombre de algunos archivos de álbumes de música, ya ves.Tenga en cuenta que hay front-end gráficos para muchos de estos sistemas, pero eso no viene al caso: la invocación de la línea de comandos es común y tradicional, muchos CÓMO asumen esto, y así es como comienza. Porque:
"Está bien, estoy un poco más cómodo ahora".
Una vez dentro de la línea de comando, la gente comienza a pensar: ¿No sería fácil si pudiera ...
cd mydir
, para 'cambiar directorio')ls *.txt
, para 'lista')mv myfile newname
,,cp myfile mycopy
yrm myfile
, para 'mover', 'copiar' y 'eliminar')gedit myfile
, oleafpad
, onano
, ovim
, o lo que sea.)Una vez que las personas han aprendido estos cinco comandos, se sienten esencialmente cómodos en la línea de comandos: pueden moverse, mirar e interactuar. Incluso es un poco potente: puede operar en grupos enteros de archivos a la vez con comandos como
mv iceland-*.jpg My_Iceland_Pics/
, ¿y no es genial?Ahora, mucha gente felizmente se detiene aquí. Saben cómo usar el terminal, lo usarán cuando lo necesiten, y eso es todo. Este es el nivel "el terminal es útil". Sin embargo, las personas que prefieren el terminal, generalmente lo hacen porque necesitan / quieren / sienten que no pueden prescindir del espectacular poder que ofrecen las secuencias de comandos. Y eso generalmente comienza así:
"¡Hey, un script es solo algunos comandos en un archivo!"
Esta realización puede conducir a varios cambios adicionales, dependiendo de la persona. Muchos simplemente dicen 'meh', por supuesto; no tiene sentido aprender lo que no necesitas. De todos modos, pueden suceder cosas como esta:
if something_is_true; then step1a; step2; else step1b; fi
yfor file in list_of_files; do process1 $file; process2 $file; step3; done
Es posible que no experimente todas, o incluso ninguna, de estas cosas. Sin embargo, cuanto más se aplique a usted, mejor será el terminal para usted . Descubrirás por ti mismo cuánto terminas usándolo. ¡Que te diviertas!
Publicar scriptum. En la programación, los flujos de trabajo
script -> run -> result
yinput -> process -> output
son muy comunes, y el terminal es espectacularmente adecuado para estos flujos de trabajo. Agregue a esto el hecho de que el shell realmente no es más que otro lenguaje de programación, y verá por qué hay una superposición tan grande entre los usuarios de la línea de comandos y los programadores.fuente
Otro punto para agregar: ¡ Es divertido usar la línea de comando! ;)
( http://vladdolezal.com/blog/2008/the-real-reason-we-use-linux/ )
fuente
Estaba respondiendo una pregunta similar como esta el otro día. Resultó que esta persona nunca usó atajos de teclado para hacer nada, por lo que resultó ser una larga discusión. Espero que tenga algo de familiaridad con ellos ... haría mis puntos más comprensibles.
Considere usar un procesador de textos. Si guarda un archivo, puede usar un método abreviado de teclado como ctrl-s. Alguien podría decir: "Prefiero usar el menú. No me ahorra mucho tiempo usar el acceso directo. Y si tiene que guardar un nuevo archivo, debe navegar a través del sistema de archivos hasta el directorio y luego escribir el nombre de todos modos ". Por lo tanto, este objetor es correcto porque cada método abreviado de teclado por sí solo no ahorra una cantidad significativa de tiempo. El verdadero ahorro está en encadenar atajos, por ejemplo, seleccionar todo, cortar, pegar. Incluso los fabricantes de procesadores de texto se han dado cuenta de esto y han hecho que sea más conveniente acceder a la estructura de archivos usando el teclado, por ejemplo, poder acceder a carpetas / ubicaciones recientes usando las teclas de tabulación y flecha.
Por supuesto, la selección de fragmentos de texto requiere muchas veces el mouse ... esta es la razón por la cual los programadores y las personas que editan mucho prefieren usar un editor de texto que admita el uso completo del teclado para que nunca tenga que usar un mouse. El mouse no solo es lento , sino que también es propenso a errores: es particularmente fácil seleccionar o eliminar el texto incorrecto.
Ahora, ¿qué tiene esto que ver con la línea de comando? Una ventaja de la línea de comando es que evita el uso del mouse lento y propenso a errores. En su lugar, escribe y lo hace desde una ubicación; no tiene que buscar otro menú o hacer clic allí y luego por aquí. Es la misma razón por la que a la gente le gusta usar los atajos de teclado del navegador web (para abrir nuevas pestañas / ventanas, usar Gmail, etc.); van a tener que escribir la URL (o correo electrónico o lo que sea) de todos modos ... ¿por qué alejar la mano de las teclas?
Pero lo más importante, al igual que los métodos abreviados de teclado son los más poderosos cuando comienza a usarlos todos juntos (en lugar de solo uno o dos), puede encadenar comandos para hacer cosas más poderosas que llevarían una eternidad a través de la GUI o no podría Ni siquiera imagino hacerlo en absoluto. Por ejemplo, desde la línea de comando, puede decirle a su navegador web, quiero seguir actualizando esta página web cada 30 segundos, buscar un texto determinado y, cuando eso suceda, enviarme a mí y a un grupo de contactos un correo electrónico diciendo que ese texto ha aparecido. en la página web. Como otro ejemplo, puede decirle a su computadora, quiero revisar TODOS los correos electrónicos que he escrito, buscar una referencia a este libro en particular, producir una lista de fechas que he mencionado y a quién, ordenar la lista de acuerdo a frecuencia y ponerlo en este correo electrónico que estoy escribiendo ahora.
fuente
screen
de una consola, que rara vez uso un ratón a menos que sea para navegar por un sitio web más. (Nadie mejor mencionó a Lynx ...)La CLI es rápida de usar cuando sabes exactamente lo que quieres hacer y cómo hacerlo. Puede ser mucho más eficiente que usar una interfaz gráfica de usuario. Además, si desea conectarse de forma remota a su máquina, la CLI es mucho más fácil en un enlace lento. Si se siente cómodo con la CLI, también puede aprovechar las secuencias de comandos.
Si usas google cli vs gui obtendrás toneladas de visitas, por ejemplo:
http://www.computerhope.com/issues/ch000619.htm
Su pregunta no es realmente específica para Ubuntu, Linux o incluso para PC: se debate sobre este tema desde cualquier sistema que admita gui y cli, por ejemplo, configuración de enrutadores Cisco.
fuente
Hay una serie de buenos puntos en las respuestas, pero todavía tengo un punto adicional que hacer. A veces, después de una instalación o actualización, una aplicación GUI no se inicia y te deja sin ningún mensaje de error. En estos casos, puede ser muy útil abrir una ventana de terminal e iniciar el ap desde la línea de comandos. Casi siempre se proporciona más información en el terminal que la presentada al comenzar desde la GUI.
fuente
Mi favorito es menos escribir . ¿Cómo puede ser esto? Te escucho preguntar. Bueno, inicio de sesión, búsqueda inversa o flecha hacia arriba) para un comando que escribí la semana pasada y presioné retorno de carro. La alternativa es mucho más clics del mouse (e intentar recordar).
Mi segundo favorito es que hace que sea más fácil responder preguntas sobre el desbordamiento de pila; No se necesitan capturas de pantalla, solo mensajes de texto.
fuente
¿Qué pasa cuando necesitas hacer algo como "root"? Iniciar sesión a través de la GUI como root es una mala idea (y ni siquiera creo que Ubuntu lo permita, por defecto).
Además, considere que la GUI de Linux (X11) es simplemente un programa en ejecución como todo lo demás. Si X11 se bloquea, te alegrará saber tu línea de comandos.
fuente
Solo quiero contribuir con un ejemplo, que encuentro muy útil, de las instrucciones para agregar el PPA para VirtualBox. Cuando agrega un PPA, también debe registrar la clave pública, por lo que el método GUI:
¡Explicar esto en una guía del usuario puede ser costoso! En cambio, se puede hacer con una línea de comando simple y simple:
fuente
La línea de comando funciona bastante bien como en Windows: ¿recuerda el cuadro msdos de entrada de texto con el fondo negro?
Le da al usuario un medio para emitir comandos directamente a la computadora sin agotar los recursos de la computadora que trae una GUI. También es una forma de emitir comandos potentes para hacer cosas que no se pueden hacer a través de una GUI.
No estoy dejando de lado la utilidad de la forma de trabajar de la GUI, pero en manos de un operador experto, la forma de la línea de comandos puede ser extremadamente rápida y eficiente. En manos de un verdadero mago, la línea de comando hace milagros. Apenas he arañado la superficie de las posibilidades, aprendo algo nuevo todos los días. Nunca seré un mago, demasiado viejo, pero me gustaría ser un operario promedio algún día ...
Bienvenido a Ubuntu y Ask Ubuntu. Este es un gran lugar!
fuente
Para un principiante, el terminal es una tarea difícil de usar, pero si comienza a aprender cómo usarlo, se vuelve más fácil. Una vez que te sientas cómodo con él, te da una sensación de confianza de que puedes manejar las cosas cuando salen mal.
Por ejemplo, cuando un programa de interfaz gráfica de usuario se niega a iniciarse y no tiene idea de lo que está mal, puede ejecutar el comando en un terminal y, a menudo, ver la razón del problema en la salida del terminal. Luego, puede copiar algo de eso en una búsqueda y encontrar la respuesta, si es necesario.
Puede ingresar un comando con "--help" y obtener una lista de opciones de línea de comando que pueden ser útiles para algunos casos especiales.
Si algo sale mal, y la GUI ni siquiera se ejecutará en absoluto, a menudo puede abrir una terminal virtual o posiblemente solo una línea de comandos desde el arranque, y solucionar el problema editando un archivo de configuración o ejecutando un programa de línea de comandos.
fuente
En pocas palabras, tiene más de cien teclas que pueden controlar / hablar / ordenar la computadora en lugar de un solo mouse con dos o tres botones. Cuantos más controles tengas, más rápido podrás ser.
Para cualquiera que no sepa escribir, un teclado en pantalla puede verse bien. Por más rápido que pueda usar el mouse, no puede escribir más rápido de lo que puede hacerlo con el teclado.
Si está usando un mouse / windows, es como la computadora que lo controla y dicta lo que puede hacer. Cuando te acostumbras al mundo de la línea de comandos, puedes sentir todo el sistema bajo tu control esperando tu pedido. Necesitas experimentarlo para entender la diferencia.
fuente
Ni siquiera veo el punto de marcar una respuesta jajaja. De todos modos. Terminal es como su CMD en Windows. En aquellos días, antes de que apareciera la GUI, la gente programa y trabaja en modo DOS, más o menos Terminal simple. La GUI está hecha para hacer la tarea más simple y fácil, pero a veces usar GUI realmente requiere más trabajo.
Por ejemplo, como desarrollador, si solo quiero compilar un programa C ++, no tengo que usar un IDE sofisticado. IDE es una interfaz GUI que tiene muchas características avanzadas que un editor de texto simple no ofrece. Entonces, en lugar de descargar un IDE realmente enorme para una tarea simple, simplemente puedo escribir lo siguiente y ejecutará mi programa C ++, cuyo archivo ejecutable se llama
main
.Si utiliza un lenguaje de intérprete como Python, puede ingresar al shell interactivo de Python. Si. Hay shells interactivos que están envueltos en una GUI agradable, pero es más lenta y con errores (oh, piensa en IDLE ...)
A veces, cuando la GUI está rota, puede intentar usar la Terminal para abrirla. A veces, algunos softwares en Linux no ofrecen una buena GUI o es muy difícil encontrar dónde está el iniciador de GUI, simplemente vaya a Terminal y escriba, por ejemplo:
Esto abrirá la tarea.pdf para ti.
En otras situaciones, la GUI no ofrece suficiente potencia y magia para realizar su tarea. Algunas funciones de búsqueda son muy básicas, y no puede aplicar búsquedas en profundidad o patrones de búsqueda complicados. Pero a través de la terminal, se puede emitir un comando con un patrón realmente muy complicado y largo.
La interfaz gráfica de usuario es agradable, pero a veces a través de comandos también puedes simplificar las cosas. A veces simplemente no tienes otra opción: tienes que usar comandos a través de terminales.
fuente
Añadiría un punto lateral que parece no mencionarse, incluso si no es una verdadera ventaja.
Piense en el hecho de que la GUI es como un "panel" que da acceso a las funciones que tiene el programa real . Muchos programas, especialmente si se encuentran en una versión anterior, no tienen una GUI, y puede ejecutarlos solo desde el terminal. Y, como otros señalaron, incluso las aplicaciones que tienen una GUI, a veces no tienen interfaces para todas las funciones; para esas funciones, debe usar el terminal.
fuente
Todos han descrito bien las ventajas, solo me gustaría agregar eso, aparte de la transparencia, donde puedes ver todas las dependencias enumeradas, su velocidad. Después de la desaparición de Synaptic de Ubuntu, el centro de software es demasiado lento, especialmente en máquinas más lentas, aquí la instalación desde la terminal es mucho más rápida.
fuente