1.- Ctrl+Alt+T para abrir la Terminal
2.- Ctrl+Alt+F1 (F1, F2, F3, F4, F5 ó F6) para pasar desde el modo gráfico al modo texto (intérprete de comandos)
3.- Ctrl+Alt+F7 o Alt+F7 para pasar desde el modo texto al modo gráfico.
4.- Ctrl+R desde la terminal o modo texto permite escribir parte del comando que recordamos, según vamos escribiendo nos van saliendo comandos hasta encontrar lo que necesitamos.
Loguear al usuario con permisos temporales de administrador:
$ sudo -i
Mostrar la arquitectura que soporta el kernel actual instalado (32 o 64 bit):
$ uname -a
Nota: Si en el resultado aparece “x86_64 GNU/Linux” eso indica que estás corriendo un kernel Linux de 64 bit. En cambio, si ves “i386/i486/i586/i686”, es un kernel de 32 bit.
Para conocer la versión del sistema operativo basado en Linux:
$ lsb_release -a
Imprimir el nombre, versión y otros detalles de la máquina:
$ uname -r && lsb_release -a && cat /proc/version
$ df -lh
Para ver el total de memoria RAM, la memoria usada y la disponible:
$ free -m
$ sudo do-release-upgrade
El comando man nos ofrece el manual de cualquier comando.
Sintaxis:
man comando
Ejemplo:
$ man cp
Para salir presionar la tecla q
Apagar:
$ sudo shutdown -h now
Reiniciar:
$ sudo shutdown -r now
$ sudo netstat -putan | grep LISTEN
El comando ps permite mostrar los procesos que se encuentran activos.
Listar los procesos de todos los usuarios:
$ ps -a
Listar todos los procesos activos con todos los detalles:
$ ps -AF
Otras formas de listarlos:
$ ps -AL
$ ps -fea
Ejecutar el siguiente comando y revisar el PID del proceso que quiero saber el puerto que ocupa:
$ ps aux | grep node
El PID se encuentra en la segunda columna:
andres 2823 0.0 0.6 909404 49964 ? Sl 11:47 0:02 /usr/local/bin/node /opt/PhpStorm-171.4694.2/plugins/JavaScriptLanguage/jsLanguageServicesImpl/js-language-service.js -id=1500565653390
andres 3332 0.0 0.7 1211300 59744 ? Ssl 11:49 0:03 node /tmp/deploy/quickpay-api-authentication-service/app/bin/www
andres 3360 0.0 0.6 945556 53116 ? Ssl 11:49 0:03 node /tmp/deploy/quickpay-api-security-service/app/bin/www
andres 3413 0.0 0.6 1203560 49904 ? Ssl 11:49 0:04 node /tmp/deploy/quickpay-api-thirdparty-service/app/bin/www
andres 3807 0.0 0.5 906268 47956 ? Sl 11:49 0:01 /usr/local/bin/node /opt/PhpStorm-171.4694.2/plugins/JavaScriptLanguage/jsLanguageServicesImpl/js-language-service.js -id=1500565798546
andres 5598 0.0 0.5 1200880 47280 ? Sl 11:52 0:01 /usr/local/bin/node /home/andres/Proyectos/quickpay-api-financial-service/app/bin/www
andres 6292 0.0 0.8 1254700 68300 ? Sl 11:54 0:03 /usr/local/bin/node /home/andres/Proyectos/quickpay-api-controller/app/bin/www
andres 6926 0.7 3.6 1196840 298352 ? Sl 11:59 0:47 /usr/local/bin/node /opt/PhpStorm-171.4694.2/plugins/JavaScriptLanguage/jsLanguageServicesImpl/js-language-service.js -id=1500566386488
andres 6956 0.1 0.9 920392 79064 ? Sl 11:59 0:06 /usr/local/bin/node /opt/PhpStorm-171.4694.2/plugins/JavaScriptLanguage/jsLanguageServicesImpl/js-language-service.js -id=1500566393875
andres 7326 0.0 0.4 888572 38468 pts/1 Sl+ 12:05 0:00 node /usr/local/bin/stubby -d stubs/integration-stubs.yaml -s 8882 -t 8443 -a 8010
andres 7327 0.0 0.4 888572 37252 pts/1 Sl+ 12:05 0:00 node /usr/local/bin/stubby -d stubs/integration-stubs.yaml -s 8883 -t 8444 -a 8011
andres 7328 0.0 0.4 889964 38824 pts/1 Sl+ 12:05 0:00 node /usr/local/bin/stubby -d stubs/integration-stubs.yaml -s 8884 -t 8445 -a 8012
andres 7329 0.0 0.4 889596 37364 pts/1 Sl+ 12:05 0:00 node /usr/local/bin/stubby -d stubs/integration-stubs.yaml -s 8885 -t 8446 -a 8013
andres 7330 0.0 0.4 889840 38844 pts/1 Sl+ 12:05 0:00 node /usr/local/bin/stubby -d stubs/integration-stubs.yaml -s 8886 -t 8447 -a 8014
andres 10669 0.0 0.0 15444 1024 pts/5 S+ 13:45 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn node
Luego ejecutar y buscar el PID del proceso para finalmente encontrar el puerto:
$ sudo netstat -putan | grep LISTEN
El PID es el numero de la última columna y el puerto se encuentra en la tercera columna:
tcp 0 0 0.0.0.0:8883 0.0.0.0:* LISTEN 7327/node
tcp 0 0 127.0.0.1:4371 0.0.0.0:* LISTEN 2322/spotify
tcp 0 0 0.0.0.0:8884 0.0.0.0:* LISTEN 7328/node
tcp 0 0 0.0.0.0:8885 0.0.0.0:* LISTEN 7329/node
tcp 0 0 0.0.0.0:57621 0.0.0.0:* LISTEN 2322/spotify
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1388/dnsmasq
tcp 0 0 0.0.0.0:8886 0.0.0.0:* LISTEN 7330/node
tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 7326/node
tcp 0 0 0.0.0.0:8444 0.0.0.0:* LISTEN 7327/node
tcp 0 0 0.0.0.0:8445 0.0.0.0:* LISTEN 7328/node
tcp 0 0 127.0.0.1:4381 0.0.0.0:* LISTEN 2322/spotify
tcp 0 0 0.0.0.0:8446 0.0.0.0:* LISTEN 7329/node
tcp 0 0 127.0.0.1:6942 0.0.0.0:* LISTEN 2626/java
tcp 0 0 0.0.0.0:42175 0.0.0.0:* LISTEN 2322/spotify
tcp 0 0 0.0.0.0:8447 0.0.0.0:* LISTEN 7330/node
tcp 0 0 127.0.0.1:4200 0.0.0.0:* LISTEN 7331/cli
tcp 0 0 127.0.0.1:4201 0.0.0.0:* LISTEN 6510/cli
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 6148/mongod
tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN 7326/node
tcp 0 0 0.0.0.0:8011 0.0.0.0:* LISTEN 7327/node
tcp 0 0 0.0.0.0:8012 0.0.0.0:* LISTEN 7328/node
tcp 0 0 0.0.0.0:8013 0.0.0.0:* LISTEN 7329/node
tcp 0 0 0.0.0.0:8014 0.0.0.0:* LISTEN 7330/node
tcp 0 0 127.0.0.1:63342 0.0.0.0:* LISTEN 2626/java
tcp 0 0 0.0.0.0:8882 0.0.0.0:* LISTEN 7326/node
tcp6 0 0 :::3000 :::* LISTEN 6292/node
tcp6 0 0 :::3001 :::* LISTEN 3360/www
tcp6 0 0 :::3002 :::* LISTEN 3332/www
tcp6 0 0 :::3003 :::* LISTEN 3413/www
tcp6 0 0 :::3004 :::* LISTEN 5598/node
Para finalizar un proceso es necesario conocer el número identificador del proceso (PID). Para conocer el número basta con listar los procesos.
Una ver conocido el PID basta con ejecutar en un terminal:
$ sudo kill [PID]
Es conveniente verificar que el proceso ha finalizado y ya no se encuentra en ejecución.
En ocasiones puede suceder que algún proceso no finalice luego de haber ejecutar el comando kill. En este caso se debe forzar la finalización del proceso:
$ sudo kill -9 [PID]
Sintaxis:
ln -s archivo ruta_destino
Ejemplos:
$ ln -s ~/dev/php/proyecto ~
$ sudo ln -s ~/dev/php/proyecto /var/www/html/
Muestra el contenido de la carpeta que le indiquemos.
Sintaxis:
ls [opciones] [ruta]
Si queremos que nos muestre el contenido de la carpeta "/opt":
$ ls /opt
Si no ponemos nada interpretará que debe listar el contenido de la carpeta donde estamos actualmente:
$ ls
Para mostrar todos los archivos y carpetas, incluyendo los ocultos:
$ ls -a
Para mostrar los archivos y carpetas. Además muestra información como permisos, usuarios y grupo al que pertenece, el tamaño del archivo, fecha y hora de creación y nombre.
$ ls -l
Para mostrar los archivos y carpetas, incluyendo los ocultos y mostrar información como permisos, usuarios y grupo al que pertenece, el tamaño del archivo, fecha y hora de creación y nombre.
$ ls -la
El comando cd nos permite cambiar de directorio. Si abrimos la terminal por defecto comenzamos en el directorio de mi usuario. Supongamos que el nombre de mi usuario es "andres" (sin las comillas), comenzaremos en el directorio:
/home/andres$
Si quisieramos cambiar al subdirectorio Descargas, deberíamos usar la orden:
/home/andres$ cd Descargas
/home/andres/Descargas$
Para volver al directorio padre de este, usamos la orden:
/home/andres/Descargas$ cd ..
/home/andres$
De igual forma, existe en la entrada "." la cual se refiere a si mismo. Así que el siguiente comando nos deja donde estamos:
/home/andres$ cd .
/home/andres$
Si estamos en el directorio raiz y quisieramos cambiar al directorio del usuario, entonces basta con ingresar el siguiente comando:
/$ cd ~
/home/andres$
En resumen:
".." se refiere a directorio padre
"." se refiere a si mismo
"~" se refiere al directorio del usuario (/home/usuario)
Actualizar el listado de paquetes disponibles:
$ sudo apt-get update
Chequear resultado de apt-get update:
$ sudo apt-get check
Instalar un programa:
$ sudo apt-get install paquete
Desinstalar un programa:
$ sudo apt-get remove paquete
Desinstalar un programa y eliminar los archivos de configuración:
$ sudo apt-get remove --purge paquete
Reinstalar un programa:
$ sudo apt-get -reinstall install paquete
Actualizar sólo los paquetes ya instalados que no necesitan, como dependencia, la instalación o desinstalación de otros paquetes:
$ sudo apt-get upgrade
Actualizar todos los paquetes del sistema, instalando o desinstalando los paquetes que sean necesarios para resolver las dependencias que pueda generar la actualización de algún paquete:
$ sudo apt-get dist-upgrade
Resolver problemas con dependencias y paquetes rotos:
$ sudo apt-get -f install
Luego de resolver problemas con dependencias y paquetes rotos puede ser necesario reconfigurar dpkg utilizando:
$ sudo dpkg --configure -a
Para mantener el sistema limpio de bibliotecas que ya no se usan:
$ sudo apt-get autoremove
Para limpiar los paquetes viejos que ya no se usan:
$ sudo apt-get autoclean
Para limpiar los paquetes descargados e instalados:
$ sudo apt-get clean
"Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para la expresión regular." Wikipedia.
Ejemplo:
$ sudo apt-cache search php | grep mail
"locate es un comando del paquete findutils de GNU que provee una fácil y rápida manera de buscar archivos en el sistema completo basado en patrones de nombres.". Wikipedia
$ locate nombre_archivo
Listar las tareas programadas:
$ crontab -l
Editar crontab:
$ crontab -e
Mostrar las "n" últimas líneas de un archivo de texto.
Sintaxis:
$ tail -opciones archivo
Ejemplo:
$ tail -f /var/log/apache2/*.log
$ tail -f --lines 10 /var/log/apache2/error.log
Empaquetar:
$ tar -cvf salida.tar dir/arch1 dir/arch2 dir/archN
Desempaquetar:
$ tar -xvf paquete.tar
Comprimir con gzip (.tar.gz):
$ tar -czvf salida.tar.gz carpeta/a/comprimir
Descomprimir .tar.gz:
$ tar -xzvf archivo.tar.gz
Para instalar el servidor ssh:
$ sudo apt-get install openssh-server
Revisar el estado del servicio del servidor ssh:
$ sudo systemctl status ssh
Si todo está ok, el servicio debería tener status active (running).
Para configurar el servidor editamos el archivo /etc/ssh/sshd_config
$ sudo vim /etc/ssh/sshd_config
Para reiniciar el servicio
$ sudo /etc/init.d/ssh restart
$ tar -xvf ~/Descargas/llaves.tar
$ cd ~/.ssh
$ mv ~/Descargas/llaves/id_rsa .
$ mv ~/Descargas/llaves/id_rsa.pub .
$ chmod 400 id_rsa id_rsa.pub
$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jperez/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/jperez/.ssh/id_rsa.
Your public key has been saved in /Users/jperez/.ssh/id_rsa.pub.
The key fingerprint is:
43:c5:5b:5f:b1:f1:50:43:ad:20...
Abrir el archivo authorized_keys
$ vim ~/.ssh/authorized_keys
y agregar la llave pública en una nueva línea, al final del archivo.
$ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC87RpU... [email protected]
Ubuntu ocupa por defecto el firewall. Para añadir esta regla ejecute el siguiente comando:
$ sudo ufw allow 22/tcp
Para verificar que la regla fue creada correctamente:
$ sudo ufw status
$ sudo nmap [ip]
Ejemplo:
$ sudo nmap 192.168.0.11
output:
PORT STATE SERVICE
22/tcp open ssh
3306/tcp open mysql
Sintaxis:
$ ssh -p puerto usuario@host
Ejemplo:
$ ssh -p 14225 [email protected]
Sintaxis opcional:
$ ssh -l usuario -p puerto host
Ejemplo:
$ ssh -l sistemas -p 14225 192.168.1.4
Permite copiar archivos entre dos máquinas. Utiliza ssh para las transferencia de datos, por tanto ofrece la misma seguridad que el ssh. Utiliza ssh para iniciar sesión. Este comando reemplaza rcp y ftp.
Sintaxis:
$ scp -P puerto archivo usuario@host:/ruta_destino
Ejemplo:
$ scp -P 14227 dump.tar [email protected]:/home/andres/Descargas/dump
$ scp -P 14227 /home/cmarquez/dev/php/dump.tar [email protected]:/home/andres/Descargas/dump
flecha arriba o flecha abajo para ver los comandos más recientes
Para ver todo el historial:
$ history
Para ver los últimos 20 comandos ejecutamos:
$ history 20
Para seleccionar un comando anterior ejecutamos:
$ !5
Donde 5 corresponde al número de línea de la primera columna.
Para limpiar el historial completo ejecutamos:
$ history -c
Mostrar direcciones IP de las tarjetas de red ethernet:
$ ifconfig
Mostrar direcciones IP de las tarjetas de red inalámbricas:
$ iwconfig
Listar dispositivos de red ethernet PCI:
$ lspci | grep -i ethernet
Listar dispositivos de red inalámbricos PCI:
$ lspci | grep -i network
Listar dispositivos de red ethernet USB:
$ lsusb | grep -i ethernet
Listar dispositivos de red inalámbricos USB:
$ lsusb | grep -i network
Mostrar módulos inalámbricos cargados en el sistema:
$ lsmod | grep iwl
Archivo de configuración para resolver DNS es /etc/resolv.conf
Ejemplo Google IPv4 nameservers: nameserver 8.8.8.8 nameserver 8.8.4.4
Listar tarjetas de vídeo:
$ lspci
Mostrar resolución y frecuencia en uso:
$ lspci | grep -i vga
Mostrar resoluciones y frecuencias soportadas:
$ xrandr | grep '*'
$ xrandr
$ sudo fdisk -l
En este caso la denominación de la unidad es /dev/sda1
$ sudo blkid /dev/sda1
Otra forma de encontrar el punto de montaje es:
$ ls -l /dev/disk/by-uuid/
$ sudo mkdir /media/DATOS
$ sudo vim /etc/fstab
Montar unidad NTFS
Una vez abierto el archivo si queremos montar nuestra unidad del tipo NTFS debemos añadir la siguiente linea:
UUID=XXXXXXXXXXXXX /media/carpeta de montaje ntfs-3g default_permissions,uid=1000 0 0
Por lo tanto en nuestro caso seria:
UUID=XXXXXXXXXXXXX /media/DATOS ntfs-3g default_permissions,uid=1000 0 0
Montar unidad FAT
Para montar una unidad FAT usar:
UUID=XXXXXXXXXXXX /media/carpeta de montaje vfat rw,uid=1000,gid=1000 0 0
Montar unidad ext4
Para montar una unidad EXT4 usar:
UUID=a6565255-095c-4b6d-b73a-86062e02fb37 /media/carpeta de montaje ext4 errors=remount-ro 0 1
Si tenemos super usuario podemos cambiar la clave de cualquier usuario con el siguiente comando:
$ sudo passwd cecilia
Luego ingresamos la nueva clave, y finalmente la confirmamos.
$ sudo date --set 14:25
$ curl ifconfig.io
$ sudo dpkg -i --force-depends package_name.deb
En caso que "dpkg" indique que faltan dependencias, completa la instalación ejecutando el siguiente comando:
$ sudo apt-get install -f
$ sudo service network-manager restart
SmbClient es un cliente SMB de Samba. Para instalarlo ejecutar lo siguiente:
$ sudo apt-get install smbclient
$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom
Para restaurarlo cambiar Bottom por Left:
$ gsettings set com.canonical.Unity.Launcher launcher-position Left
Primero que todo podemos comprobar si UFW está activo o no con sudo ufw status
:
$ sudo ufw status
Si responde lo siguiente
Status: inactive
Podemos activarlo con ufw enable
:
$ sudo ufw enable
Ahora si volvemos a verificar su estado con sudo ufw status
nos debería responder Status: active
Para establecer una configuración por defacto
$ sudo ufw default deny
Luego reiniciamos con:
$ sudo ufw disable
$ sudo ufw enable
sudo ufw allow <número de puerto/protocopo>
Ejemplo:
$ sudo ufw allow 22/tcp
También podemos abrir el puerto 22 sin específicar el protocolo:
$ sudo ufw allow 22
Si después queremos cerrar un puerto podemos ocupar la opción deny
sudo ufw deny <número de puerto/protocopo>
Ejemplo:
$ sudo ufw deny 22
gracias por tan valiosos comandos podria preguntar que modulos en apache son los que mas se prefieren a la hora de instalar un servidor lamp y que modulos eliminar saludos y gracias