En este articulo os quiero mostrar un par de «trucos» para el manejo de la Terminal en Ubuntu, concretamente vamos a ver como ejecutar dos o mas comandos de una sola vez y también vamos a ver como hacer que no nos pida confirmación para ejecutarlos. Esto es algo bastante sencillo, pero como todo en esta vida, si no nos lo explican o no lo leemos en algún manual no lo sabremos. Para este articulo voy a mostrar como ejemplo como podemos añadir un repositorio, actualizar los paquetes e instalar un programa nuevo con un solo comando.
El programa que he elegido es Ubuntu Tweak, no por ninguna razón en especial, simplemente porque si 😀 Si queremos instalar Ubuntu Tweak en Ubuntu el procedimiento seria el siguiente, primero tendríamos que abrir la Terminal, y escribir el primer comando con el que añadiríamos el repositorio correspondiente tal que así:
sudo add-apt-repository ppa:tualatrix/ppa
Ahora nos pediría la contraseña, la introduciríamos y para confirmar tendríamos que pulsar Enter, de esta forma ya tendríamos agregado el repositorio necesario. Luego tendríamos que actualizar o recargar la lista de paquetes con:
sudo apt-get update
Y finalmente instalaríamos el programa con:
sudo apt-get install ubuntu-tweak
Cuando vamos a instalar algunos programas nos pide confirmación para instalar haciendo una pregunta tal que «Necesito descargar X megas y el programa una vez instalado ocupara X megas en tu ordenador, ¿quieres instalar dicho programa? (S/N)», la pregunta no es exacta pero es mas o menos así. Entonces tendríamos que pulsar la tecla «S» si queremos instalar y se descargarían los paquetes necesarios y luego se instalaría la aplicación.
Esto es sencillo y mas rápido que hacerlo desde una GUI como el Centro de Software de Ubuntu, ¿verdad? Ahora os voy a mostrar como hacer esto mismo en una sola linea en la Terminal ejecutando varios comandos de una vez y poniendo de antemano las confirmaciones a las preguntas, salvo la de la contraseña:
sudo add-apt-repository ppa:tualatrix/ppa -y && sudo apt-get update && sudo apt-get install ubuntu-tweak -y
Ahora vamos a examinar un poco esta linea y os voy a explicar todo. Para juntar o encadenar comandos en Ubuntu se utiliza «&&», esto hace que se ejecute un comando, el que esta antes de «&&», y posteriormente el comando que esta después de «&&», o lo que es lo mismo, primero se ejecuta «sudo add-apt-repository ppa:tualatrix/ppa -y», esto añadirá el repositorio y cuando nos pida pulsar la tecla Enter para confirmar la opción «-y» que podéis ver al final responderá de forma afirmativa, por lo que no tendremos que pulsar la tecla Enter para confirmar el comando.
Luego viene «&&» y despues «sudo apt-get update», esto recargara la lista de paquetes de Ubuntu, después viene otro «&&» y finalmente el comando «sudo apt-get install ubuntu-tweak -y», como podéis ver también tiene la opción «-y» al final, si nos hace la pregunta para confirmar si queremos instalar o no el programa esta opción responderá de forma afirmativa automáticamente.
De esta forma, ejecutando varios comandos a la vez, solo tendremos que introducir nuestra contraseña y se añadirá el repositorio, se recargara la lista de paquetes y se instalara el programa ejecutando todos los comandos en una sola linea.
Yo también lo uso para actualizar el sistema, como actualizo Ubuntu desde la Terminal el comando se guarda en el historial y solo tengo que buscarlo pulsando la tecla de la flecha hacia arriba y ejecutarlo, el comando que uso es el siguiente:
sudo apt-get update && sudo apt-get dist-upgrade -y
He recibido comentarios de usuario que saben mas que yo como Zagur de PortalLinux en los cuales me aportaban algunas cosas que yo no sabia o bien no había matizado, y como de bien nacido es ser agradecido, muchas gracias Zagur amigo por corregirme y gracias a ti el articulo sera mejor. En dichos comentarios, que podéis ver mas abajo, Zagur apuntaba lo siguiente que voy a explicar.
Con «&&» podemos encadenar comandos, pero solo se ejecutara el siguiente comando de los que hayamos introducido si el anterior no da error, por ejemplo de sintaxis o el nombre del comando es incorrecto, es decir:
sdo apt-get update && sudo apt-get dist-upgrade -y
Esto no ejecutara nada, solo nos mostrara un mensaje de error, si os fijáis la primera palabra debería ser «sudo» y es «sdo», no he puesto la «u», por lo que Ubuntu vera un error y no se ejecutara ese primer comando ni tampoco el segundo, en el caso de que hubiese mas comandos tampoco los ejecutaría debido al fallo del primero.
En cambio, si queremos que el error en el primer comando no afecte a la ejecución del segundo y sucesivos deberíamos hacer la separación de comandos con «;», un ejemplo:
sdo apt-get update ; sudo apt-get dist-upgrade -y
Esto anterior no ejecutara el primer comando «sdo apt-get update» debido al error en la primera palabra y nos informara de ello, pero el siguiente comando «sudo apt-get dist-upgrade -y» si se ejecutara.
También tenemos otra opción, puede que escribamos una secuencia de comandos y queremos que solo se ejecute uno de ellos, pero los demás no. Esto ya es un poco de Bash Scripting, es un poco mas avanzado pero sencillo. La siguiente linea solo ejecutara uno de los comandos, si uno de los comandos arroja un error pasara al siguiente hasta encontrar uno que no nos de error:
ls -- || ls || cp || mkdir
Con «||» es como conseguimos esto, ira intentando ejecutar los comandos puestos hasta que uno funcione. Desde aquí doy nuevamente las gracias a Zagur por la información y por ayudarme.
Espero que me haya explicado bien, si tenéis alguna duda preguntad en los comentarios, un saludo.
Hola Liher,
Un pequeño detalle que hay que tener claro con &&.
&& se utiliza para ejecutar comandos secuencialmente. Si el primero se ejecuta CORRECTAMENTE, se ejecutará el siguiente y así sucesivamente. Si el primero falla, el siguiente no se ejecutará.
Por ejemplo:
ls – && clear
ls mostra el contenido de un directorio, pero como que hay un error de sintaxis, el – sin opción, fallará y no se ejecutará el clear.
Si queremos ejecutar comando secuencialmente sin importar si se ejecutan correctamente, podemos utilizar el punto y coma.
Por ejemplo:
ls – ; clear
ls – dará error, pero luego pasará a clear y limpiará la terminal.
Saludos ^^
Hola Zagur, muchas gracias por el aporte, actualizare el post cuando pueda, asi quedara mas completo, muchas gracias por pasarte y por corregirme ;D Un saludo
Hola Liher tengo un problema ejecuto los comandos para instalar los codes y paquetes y resulta que la terminal me solicita un passwor en ese caso que debo hacer ya que cuando sale ese mensaje ya no me deja realizar nada
Hola Fabian, lo unico que tienes que hacer es teclear tu password y darle a Enter, aunque no veas nada el password se esta poniendo cuando lo tecleas. Si tienes alguna duda me dices, ok? Muchas gracias por tu visita, un saludo amigo
Todos los días se aprende algo. Lo del «&&» lo sabía, pero no sabía lo del error que apunta Zagur, ni lo de «-y» que apunta Liher. Bien el detalle del «;» .
Lo dicho, todos los días se aprende algo.
Saludos a los dos
Podemos ampliar un poco más esto con ||.
|| permite establecer un orden a la hora de ejecutar.
comando1 || comando2
Comando2 solo se ejecutará si comando1 NO se ejecuta. Si comando1 se ejecuta comando2 no se ejecutará.
Un ejemplo que he visto en Internet:
[zerial@balcebu ~]$ comando1 || echo «Como comando1 no existe, entonces ejecuto el echo»
bash: comando1: command not found
Como comando1 no existe, entonces ejecuto el echo
[zerial@balcebu ~]$ echo «El primer echo se ejecuta, pero el segnudo no» || echo «Como comando1 no existe, entonces ejecuto el echo»
El primer echo se ejecuta, pero el segnudo no
[zerial@balcebu ~]$
Saludos.
Gracias por la info Zagur, lo añadiré al post cuando lo actualice, un saludo colega
De nada! Aquí estamos para aprender lo que sabe uno y lo que sabe el otro! Compartir conocimientos es unas de las cosas más maravillosas que tiene la vida!
Saludos Liher.
Compartir is good ;D
Gracias de nuevo Zagur. La verdad es que soy poquito más que un usuario en este tema. Se cuatro cosas, mi trabajo suele ir por otros derroteros, pero siempre viene muy bien este tipo de cosas.
Saludos!
Hola Leo, tengo que corregir el articulo, yo también he aprendido algo nuevo ;D un saludo amigo
Pequeños detalles que hacen grande el día a día.
Gracias por compartirlo 😉
Hola Juan, esos detalles nos ayudan y podemos aprender un poco, gracias por pasarte y por comentar, un saludo
Estas son las entradas que a mi me gustan 😀 siempre se aprenden los truquillos de los demás que suelen ser muy útiles.
Aunque esteis mas o menos todos en debian/ubuntu solo aportar que en pacman el -y lo hacemos poniendo –noconfirm tras el comando
Un saludo
Hola Diego, a mi también me gustan estos artículos, así he aprendido algo de Zagur y de ti, gracias por pasarte y aportar, un saludo amigo
y de pura casualidad, como vemos que es una concatenación de &&, existirá también el «or». (||)…
Hola Darwin, si existe y lo voy a añadir al post, un saludo amigo
Muy buenos aportes checando estos datos que publicaron hice unas pruebas con un shell estoy trabajando con oraclelinux 6.5 y funcionan perfecto con el && si solo se pone & se ejecutando los dos comandos simultaneos en mi caso lo utilizo ya que programe el script para ejecutarse todos los dias a cierta hora y compacte dos carpetas en mi caso la linea de comando quedo asi
fecha=`date +%d-%b-%y`
tar czvf backup-$fecha.tar.gz inst/ & tar czvf backup2-$fecha.tar.gz apps/
de esta manera se compactaron las dos carpetas al mismo tiempo
Hola Angel, muchas gracias por tu visita y por el aporte, un saludo amigo
Por nada tratare de estar mas seguido por aca para aportar en lo que pueda
Hola Angel, muchas gracias amigo 😀
¡Buena Tarde!
Soy nuevo en la utilizació de Linux (Ubuntu), y pues he tenido muchos inconvenientes y dudas. Por lo que solicito tu ayuda.
Ubuntu trae el LibreOffice, pero el programa viene en versión inglés. Así que me dispuse a nagegar por la web y descargué el programa versión español desde la pagina oficial, a través de una PC con SO Windows 7. Por lo que después trasladé los archivos a una laptop con Ubuntu 14.04 LTS. El programa lo descargué en formato .deb (los archivos vienes comprimidos en una carpeta .tar.gz) y pues como son muchos archivos, he querido instalar el programa, he buscado mucha información en la web, pero no he encontrado información que pueda ayudarme a poder instalar el progama, he probado utilizar GDebi y Synaptic y no han funcionado.
Así que de antemano agradecería mucho que me puedan apoyar con alguna solución.
Hola Juan, busca en este blog «poner libreoffice en español» y tendras la solucion ;D Muchas gracias por tu visita, un saludo amigo
Gracias Liher.
Estuve buscando en tu página y lo encontré, me ha servido bastante. ¡Cuídate!
Hola Juan, muchas gracias a ti por tu visita, un saludo amigo
Hola.
E intentado pero no he podido que muestre 2 comandos de temperatura que se repiten en el tiempo con el comando watch -n
Ej:
sudo watch -n 30 hddtemp /dev/sda && watch -n 05 sensors
Pero me muestra solo el primero, y si hago Control C, lo cierra y muestra el segundo comando ejecutado.
Hola Bertholdous, quizas sea porque el primer comando necesita la pantalla completa de la Terminal. Muchas gracias por tu visita, un saludo amigo
Bertholdous, si estas manejando UBUNTU podrias probar con el programa llamado Terminator es una terminal que se puede subdividir y varias pantallas mas ya sena vertical u horizontalmente, asi podrias ejecutar los comandos por separados y tenerlos a la vista dentro de la misma pantalla