Es imposible conocer todos los comandos que nos ofrece cualquier shell, para solucionar este “problema” existen herramientas que nos hacen la vida más fácil, una de ellas es el comando apropos.
Apropos es un comando que busca dentro de las descripciones de cada una de las páginas man las palabras claves que le indiquemos pasandolas como argumentos. Estas palabras claves pueden contener comodines o ser la palabra clave exacta.
Por ejemplo, si quisieramos buscar comandos que sirven para copiar ficheros podríamos hacerlo del siguiente modo (suponiendo un sistema en idioma inglés):
$ apropos "copy files"
cp (1) - copy files and directories
cpio (1) - copy files to and from archives
install (1) - copy files and set attributes
Como véis nos muestra tres comandos que pueden servirnos para realizar operaciones de copiado de ficheros. Otro ejemplo podría ser la búsqueda de un comando/programa para gestionar particiones:
$ apropos "partition"
addpart (8) - simple wrapper around the "add partition" ioctl
cfdisk (8) - Curses/slang based disk partition table manipulator for Linux
delpart (8) - simple wrapper around the "del partition" ioctl
fdisk (8) - Partition table manipulator for Linux
iostat (1) - Report Central Processing Unit (CPU) statistics and input/output statistics for devices, partitions an...
mpartition (1) - partition an MSDOS hard disk
partprobe (8) - inform the OS of partition table changes
partx (8) - telling the kernel about presence and numbering of on-disk partitions.
sfdisk (8) - Partition table manipulator for Linux
Como véis es un comando muy útil en situaciones que no conocemos un comando para realizar una determinada tarea.
Existen muchas formas de escanear desde shell un rango de IPs o subnet, por ejemplo con nmap o creando un script en bash, perl, etc. No obstante aquí va una forma sencilla que he encontrado en Shell Fu:
for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
Y la salida (escaneo desde la 192.168.1.1 a 192.168.1.10
~$ for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
192.168.1.1 alive
192.168.1.2 dead
192.168.1.3 dead
192.168.1.4 dead
192.168.1.5 dead
192.168.1.6 dead
192.168.1.7 dead
192.168.1.8 dead
192.168.1.9 dead
192.168.1.10 dead
Os dejo el enlace a la descarga de una excelente recopilación a modo de chuleta que han realizado en beerpla.net relacionada con atajos de teclados en la Shell Linux Bash, sin duda conociendo estos atajos de teclado incrementarás tu rendimiento y rapidez en la shell por excelencia, Bash:
Esta tabla servirá de referencia a aquellos usuarios que pasen de DOS a UNIX o viceversa:
Tarea ... DOS UNIX
Listar ficheros dir/w dir ls
dir ls -l
Mostrar contenido de ficheros type cat
Mostrar contenido de ficheros type filename | more more
paginando
Copiar fichero copy cp
Buscar cadena en fichero find grep
fgrep
Comparar ficheros comp diff
Renombrar fichero rename OR ren mv
Borrar fichero erase OR del rm
Borrar directorio rmdir OR rd rmdir
Cambiar permisos de ficheros attrib chmod
Crear directorio mkdir o md mkdir
Moverse entre directorios chdir OR cd cd
Ayuda help man
apropos
Mostrar fecha y hora date, time date
Mostrar espacio disponible chkdsk df
Imprimir fichero print lpr
Mostrar cola de impresión print lpq
Fuente: DOS to UNIX Translation
Con la siguiente línea de comandos, descubriras que es lo que más usas en tu shell:
history | awk '{print $2}' | sort | uniq -c | sort -rn | head
La explicación es sencilla:
- history -> muestra el historico de comandos ejecutados
- awk ‘{print $2}‘ -> filtra y muestra solamente la segunda columna del historico
- sort -> ordena el listado
- uniq -c -> junta todas las líneas que son iguales
- sort -rn ->Ordena de forma numérica e invertida
- head -> muestra solamente los 10 primeros resultados.
Simplemente es una curiosidad más
Últimos comentarios