Sunteți pe pagina 1din 40

Comandos Consola de Linux

Combinación de teclas
• CTRL+L O CTRL+L - BORRA PANTALLA

• CTRL+ALT+F1... F6 - CAMBIO DE CONSOLA

• CTRL+ALT+F7...F12 - CAMBIO A ESCRITORIO

• CTRL+Z - SUSPENDER PROCESO

• CTRL+D - FINAL DE ARCHIVO EOF - CANCELA

• TAB - COMPLETA NOMBRE DE CARPETAS O ARCHIVOS

• CTRL+BACKSPACE - CIERRA X O SEA SALES DEL SISTEMA X Y VUELVES A CONSOLA


LINUX

Comandos Básicos de Consola

ls Descripción: = list. listar contenido de directorios.

ls -fl

ls -tr

ls -ks

Para listar todos los archivos, incluido los archivos ocultos

ls -a

Para listar en orden de creación (por fecha)

ls -ltr
cp Descripción: = copy. copiar ficheros/directorios.

cp -rfp directorio /tmp

cp archivo archivo_nuevo

rm Descripción: =remove. borrar ficheros/directorios.

rm -f fichero

rm -rf directorio

rm -i fichero

mkdir Descripción: =make dir. crear directorios.

mkdir directorio

rmdir Descripción: =remove dir. borrar directorios, deben estar vacíos.

rmdir directorio

mv Descripción: =move. renombrar o mover ficheros/directorios.

mv directorio directorio

mv fichero nuevo_nombre

mv fichero a_directorio

cat Descripción: Visualiza y concatena ficheros. Para salir [ Contr + D ]

cat file

cat >file

cat arch* >> fileOut

chmod Descripción: cambia los permisos de lectura/escritura/ejecución de


ficheros/directorios, para poder modificar los permisos de un fichero debes ser popietario del
mismo o root.

chmod +r fichero
chmod u=rwx directorio -R

chmod o=rw file

chmod g=u

chmod 754 fichero // concede los permisos [- | rwx | r-x | r--]

chmod a+rw fichero // all user rw

chown Descripción: =change owner. Permite al propietario de un fichero asignarle otro usuario
como propietario

chown new_propietario fichero

chown new_propietario directorio -R

chown propietario:grupo fichero // cambia el propietario y grupo del fichero

chgrp Descripción: similar a chown pero cambia el grupo propietario

chgrp root:root fichero

chgrp pello:usuarios directorio -R

ln Descripción: =link. para crear enlaces, accesos directos.

ln file/directorio enlace // crea un enlace al mismo registro del disco

ln -s file/directorio enlace // crea un enlace simbólico (acceso directo) al fichero indicado

Un enlace duro es otro nombre para un mismo archivo del sistema de ficheros mientras
que un enlace simbólico es un enlace al fichero.

En los enlaces simbólicos, si se borra el archivo apuntado el enlace queda inservible,


mientras que en los enlaces duros no hay diferencia entre el archivo apuntado y sus
enlaces, por lo que eliminar uno no afecta a los otros.
file Descripción: nos dice de que tipo es un fichero.

file fichero, file *

echo Descripción: muestra en pantalla el texto que le siga.

clear Descripción: limpia la pantalla de la terminal

date Descripción: indica la fecha y hora. Para ver un calendario usar

cal Descripción: muestra un calendario con el mes actual en pantalla

man Descripción: muestra la pagina de manuales de un comando o programa para ver todas
sus opciones y posibilidades

man comando

pwd Descripción:muestra el directorio en el que nos encontramos

less Descripción: muestra el contenido de un texto por pantalla permitiendo desplazarse por el
mismo (mejor que 'more')

more Descripción:muestra el contenido de un texto por pantalla permitiendo desplazarse por


el mismo

Tuberías
En el mundo Unix una tubería es una forma de comunicar dos programas. Con ellas se
consigue conectar la salida estándar de un programa con la entrada estándar de otro.

ls -R | less ls -R | more

Redirecciones
Permiten modificar el comportamiento de algunos programas de forma que no generen o
reciban información por la vía habitual sino redirigiendo los datos por otra vía, fácil de
comprender con algunos ejemplos:
Almacena el listado de un directorio en un fichero:

ls > listado.txt

Crea un fichero de la salida del programa cat:

cat > fichero.text [para salir: Contr + D]

Redirige la entrada a un proceso desde un fichero:

proceso < file.text

Concatena la salida con un fichero ya existente:

cat2.dat >> 1.dat (mas...)

Comandos Avanzados
alias Descripción: permite generar un comando personalizado por el usuario

Ejemplos:

alias move='mv -vi' // crea la operación move idéntica a 'mv -vi' alias -p // muestra los
alias del usuario

dd Descripción: (duplicate disk) es un comando bastante útil para transferir datos desde un
dispositivo/archivo hacia un dispositivo/archivo/etc. If = (Input file) Of = (Out file) Ejemplo:

dd if=/dev/fd0 of=~/diskette.img dd if=/dev/zero of=administracion bs=1048576


count=15 // como /dev/zero/ no existe crea un fichero ‘administracion’ de leer 15
paquetes de 1048kb de la entrada /dev/zero

split Descripción: partir ficheros en partes de un tamaño máximo

Ejemplo:

split -d -C 1400k administracion.pst trozo // parte el fichero administracion en 1,4 mb


usando como prefijo trozoXX

cat trozo* >> administracion.pst // recupera el fichero original


touch Descripción: actualiza la fecha de un archivo, si no existe el fichero lo crea.

Ejemplo:

touch file fecha

history Descripción: muestra un listado con los comandos ejecutados desde consola

whereis Descripción: muestra la ubicación de un comando o aplicación

Ejemplo:

whereis cat : nos localiza el binario ‘cat’, el manual y los source codes si estuvieran en la
maquina

Filtros

Las órdenes find, grep, sort, cut, paste, join, tr, wc, nl, head y tail (a veces conocidas con el
sobrenombre de filtros), entre otras, realizan operaciones de búsqueda y manipulación de
diversa naturaleza sobre ficheros de texto y, como veremos, se utilizan con frecuencia en la
construcción de guiones shell.

head Descripción: muestra el inicio de un archivo

Ejemplo:
head ~/mifile

tail Descripción: muestra las ‘n’ ultimas lineas de un fichero texto

este comando es útil ya que los archivos de registros "logs" crecen constantemente

Ejemplo:
tail ~/mifile
tail --f /var/log/messages
tail --f --line 15 /var/log/messages //También se puede especificar el número de
renglones que se deben observar en este

tac Descripción: concatena ficheros y los muestra a la inversa la última linea la primera y
viceversa (inverso a cat)

Ejemplo:
tac file >> salida

wc Descripción: cuenta el numero de lineas de palabras, caracteres o bytes en un archivo

sed Descripción: cambia una cadena de caracteres por otra

diff Descripción: muestra las lineas distintas entre dos archivos de texto

Ejemplo:
diff mifile1 mifile2

cmp

Descripción: compara dos ficheros


Ejemplo:
cmp mifile1 mifile2

comm Descripción: lista el numero de palabras comunes en los dos archivos

Ejemplo:
comm –nº mifile1 mifile2

locate Descripción: localiza archivos


find Descripción: Permite encontrar un ficheros y directorios que cumplan cierta
coincidencia con una patrón y sus nombres a partir de directorio recursivamente. Ademas
podemos indicar que hacer con los ficheros que encuentren.

Ejemplos:
// si no se especifica el directorio buscara a partir del directorio actual y subdirectorios
recursivamente

find <directorio> -name <nombre> // nombre del fichero a buscar


find <directorio> <expresión> -exec rm \{\} \;
// cada fichero encontrado que cumpla la expresion es eliminado aplicando la ejecucion
rm
find <directorio> <expresion1> <expresion2> -exec <tarea1> <tarea2>
recoje las expresiones y tareas como con un 'and' los ficheros que cumplan las dos
expresiones que ejecuten las dos tareas. Algunos de los criterios que se pueden utilizar
para realizar la búsqueda son:

-name <nombre>: nombre del fichero a buscar (se pueden utilizar comodines, en cuyo
caso, se debería encerrar el nombre entre comillas).
-iname <nombre>: similar al anterior pero sin distinguir mayúsculas y minúsculas.
-user <usuario>: propietario al que debe pertenecer el fichero.
-group <grupo>: grupo al que debe pertenecer el fichero
-type c|b|d|l|f|p: tipo del fichero (carácter, bloque, directorio, enlace simbólico, fichero
regular o FIFO).
-mtime [+|−]n: fichero modificado hace más de, menos de o exactamente n días.
-atime [+|−]n: fichero utilizado hace más de, menos de o exactamente n días.
-size [+|−]n: fichero con un tamaño de más, menos o exactamente 512 x n bytes.
-ctime [+n | n | -n] Encuentra ficheros que han sido creados hace mas de, exactamente o
hace menos de ‘n’ días
-cnewer/anewer filename Encuentra ficheros modificados posteriormente al fichero
especificado
!: negación de un criterio.
-o: O lógico de criterios.
-a: Y lógico de criterios.
\(expresion1 op expresion2\) op expresion3 uso de paréntesis

El comando find permite el uso de comodines: ? * [...]

find /usr -type f -size +1k -o !-user miguel –print


// busca a partir del directorio /usr, aquellos ficheros regulares cuyo tamaño sea superior a
1 KB o no pertenezcan al usuario miguel, y muestra los nombres de aquellos ficheros que
cumplan el criterio.
find . -group proyecto -exec chmod a+rw \{\} \;
// busca, a partir del directorio actual, todos los ficheros y directorios que pertenezcan al
grupo proyecto, y sobre cada uno de ellos ejecuta la orden chmod especificada con -exec.
Nótese que la expresión “\{\}” será sustituida por el nombre de cada uno de los ficheros
que se encuentren.

Algunos de las actuaciones que se pueden realizar para los resultados de la búsqueda son:

-print imprime por pantalla la ruta relativa y nombre del fichero


-printf %f\n // imprime los nombres de los ficheros continuando \n
-exec <command> ejecuta el comando para cada fichero encontrado.

El fichero encontrado es especificado en el comando por \{\}.

El comando debe terminar con \; .

Nótese que la expresión exec devuelve true si ha finalizado con éxito y false en caso
contrario.
-ok <command> similar a –exec pero pregunta antes de ejecutar el comando para cada
fichero encontrado. Introducir y continuará la ejecución y escribir n saltará la ejecución de
comando y continuará la búsqueda hasta el siguiente fichero encontrado. También
terminará con \; .

grep Descripción: herramienta flexible y potente que busca cadenas ’patrón’ de texto en
ficheros.

Ejemplos:
grep [options] 'patron' [file ...]
- Si no se especifica el fichero se buscará por la entrada estándar.
- Si se especifican varios ficheros, se escribirá primero el nombre del fichero donde se ha
encontrado y a continuación la cadena encontrada así para todo el fichero y todos los
ficheros

Algunos de las opciones de búsqueda

-i/-y no distingue entre mayúsculas y minúsculas.


-n Muestra los nº de línea y las lineas que contengan el patrón.
-c Muestra el número de lineas que contiene la cadena.
-l Print names of files with matching lines but not the lines.
-h Print matching lines but not the filenames.
-v Muestra todas las lineas que no contienen el patron.
-s Suppress error messages for non-existent or unreadable files.

Patrones en grep incluye el uso de comodines, rangos de caracteres y búsquedas en el


principio o final de linea. Símbolos para la interpretación de patrones

grep <opciones> [Símbolo]<patron> <file>


^ compara el patrón al inicio de la linea.
$ compara el patrón al final de la linea.
[...] compara calquiera de los conjunto de caracteres.
[^...] Match any character not enclosed in brackets.
[n-m] Match any characters in the range expressed by n-m.
. compara con cualquier carácter simple excepto newline.
c* Match any number of the preceding carácter.
.* Match zero or more occurrences of any character.
\{n\} Match exactly n occurrences of the preceding character or regular expression.
\{n,\} Match at least n occurrences of the preceding character or regular expression.
\{n,m\} Match any number between n and m of the preceding character or regular
expression. Note: n and m must be between 0 and 256 inclusively.

tr Descripción: reemplaza o elimina cadenas/caracteres en un fichero de texto por la entrada


estándar. El resultado lo imprime por la salida entandar.

Ejemplos:
tr [options] string1 [string2] < intext
tr "abc" "xyz" < file1 > file2 // sustituye a->x;b->y;c->z y se genera un nuevo documento
outfile con el resultado, uso de la redirecciones en el comando tr.

Cuando especificamos string1 y string2 ambos deben tener la misma longitud, ya que cada
carácter correspondiente a string1 se sustituirá por el correspondiente del string2.

-s comprime los caracteres especificados si están repetidos de forma contigua sobre infile,
dejando uno solo de ellos.

Ejemplos:
tr -s a-z”\n” < infile // comprime todas las letras a-z y “\n” repetidas de forma contigua a
una sola.
-c complementario, remplaza los caracteres no especificados, sobre infile por un solo
carácter incógnita.

Ejemplos:
tr -c a-z ”*” < infile // remplaza todas los caracteres que no sean a-z por “*”
-d Delete characters in string1 about infile.

Ejemplo:
tr -d "!" < infile > outfile // elimina todas los !Tambien es posible concatenarlo desde otro
tipo de entrada estandar, se visualizara el fichero dias traduciendo las cadenas

cat dias | tr a-z A-Z // convierte todo a mayúsculas, no se guarda el resultado.

tr -s "\n*" < infile // convierte varios caracteres nueva línea seguidos en una solo.

cat dias | tr -d aeiou > fileout // elimina todas las vocales del archivo dias.

cat nota | tr -c "[a-zA-Z0-9]" "_" // transforma todos los caracteres que no sean letras o
números en subrayas.

cat nota | tr -cs "[a-zA-Z0-9]" "[\n*]" // transforma todos los caracteres que no sean
letras o números en nueva línea y comprime las nuevalíneas repetidas en una sola; deja
cada palabra sola en un renglón.

Especificar un rango de caracteres. Por ejemplo a-d incluye los caracteres a,b,c,d. Los
rangos no van entrecomillados.

Existen clases definidas por su uso común en el comando tr, de modo que no deberán
definirse sus caracteres:

• alnum

• alphabetic or numeric

• characters alpha alphabetic

• characters [A-Za-z]
• lower characters [a-z]

• upper characters [A-Z]

• digit numeric characters [0-9]

• blank tab or a space

• space white-space characters including the a space, form feed,

• newline, carriage return, tab and vertical tab.

• punct punctuation characters [~!@#$%^&*()_+|{}":<>?`-=\[];'/.,]

• cntrl control characters - tab, newline, form feed, carriage re

• print printable character - includes the space character but no

• control characters

Ejemplos:
cat file | tr "[:lower:]" "[:upper:]" > file2 // Crea el fichero con mayúsculas

join Descripción: cruza la información de dos archivos. Normalmente, el primer campo de


cada fichero registro se considera un "campo de unión o etiqueta". El comando join
muestra en pantalla el campo de unión seguido del resto de la línea del primer fichero y a
continuación del resto de la línea del segundo fichero excepto la etiqueta. Los resultados
son mostrados por la salida estándar ha pantalla o pueden ser capturados por una
redirección

join [options] file1 file2

si consideramos dos maquinas que deseamos registrar el arranque y cada maquina genera
un fichero de registro MAQUINA1 MAQUINA2
test: ok test: ok
check: ok check: ok
boot: launched boot: stopped
init: go init: fail

usamos el comando

join -t: file1 file2

y obtenemos:

test: ok : ok

check: ok : ok

boot: launched : stopped

init: go : fail

Menu de Opciones

-t: especifica el carácter en el caso: separa los campos Si no se usa, cualquier whitespace is
considerado a separador.

uniq Descripción: elimina lineas repetidas adyacentes del archivo entrada (solo deja una
de ellas), la salida se ofrece por la salida estándar o genera un archivo salida si se especifica

uniq [options] file1 file2

Opciones
-c muestra el numero de veces que se encuentra cada linea idéntica de forma consecutiva.
-d muestras solo las lineas repetidas de forma continua.
-u elimina todas las lineas repetidas de forma continua (no deja ninguna).
-n Ignores the first n fields of a line. Fields are delimited by spaces or tabs.
+n Ignores the first n characters of a line or field.
cut Descripción: Captura partes de ficheros, en un fichero por columnas de una tabla o
campos para cada linea del archivo... captura la columna deseada para las lineas del fichero

cut [-b | -c | -f] list [options] [InFile]

Las columnas pueden ser especificadas como octetos, caracteres o delimitadas campos.

-c list Las columnas son especificadas por caracteres.

Por ejemplo

cut -c 1-4,7-10 file1 // Corta y muestra el rango de caracteres indicado para cada linea del 1 al 4
y de 7 al 10

-b list Columns are specified by byte positions.


-f list Las columnas son especificadas por campos. Los campos deberían ser separados por
un carácter delimitador. El delimitador puede ser especificado con la opción
-d. Sino el delimitador es un TAB.

Por ejemplo, sea un fichero:

test ok boot launched init go


test ok boot launched init go
test ok boot stopped init --
test ok boot launched init go
test ok boot launched init go

cut -f 2,3 file // muestra y selecciona los segundos y terceros campos de cada línea del archivo
por columnas separadas por TAB.

-d x Specifies the delimitador de campo when the -f option is used.


-s Used with the -f option. Si una linea no contiene un delimitador de campo entonces se
ignora la linea y no se capturan los campos.
Ejemplo:
cut -f 1,3 -d : -s file // muestra y selecciona los primeros y terceros campos de cada línea del
archivo por columnas separadas por :, si una linea no tiene delimitadores se ignora la linea.

paste Concatena las líneas correspondientes de archivos en columnas verticales e imprime los
resultados a la pantalla, similar a join pero sin entender como etiquetas la primera parte de la
linea, junta las lineas tal cual.

paste [-s] [-d char] [Files...]


Ejemplo:
$ cat height $ cat weight 5'4" 124lb 6'2" 180lb
$ paste height weight 5'4" 124lb 6'2" 180lb

Si uno de los ficeros tiene menos lineas que el otro, el fichero largo se continuara
mostrando sin lineas del archivo acabado o con lineas en blanco Option

-d char By default, merged lines are delimited or separated by the TAB character. The -d
option tells paste to separate columns with the character specified by char. Char can be a
regular character or one of the following escape sequences.
\n Newline
\t Tab
\0 (Backslash followed by Zero) Empty string.
\\ Backslash

Escape sequences should be surrounded by quotes to keep the shell from interpreting
them. You can separate columns with different characters by specifying more than one
value for char.

For example, -d '-*' would separate the first and second columns with a dash (-) and the
second and third column with an asterisk (*). If more columns exist, the paste command
would alternate between using a dash and an asterisk as a delimiter.
-s Merge all lines from each input file into one line. Each newline in a file, except the last, is
replaced with a TAB or a delimiter specified by the -d option. If multiple input files are
specified then there will be one line per file printed in the order they are listed on the
command line.

- If a minus sign (-) is specified as an input file then standard

input is used.

sort Ordenando el contenido de fichero. Este comando toma una serie de datos por la entrada
estándar. Y la saca por la salida estándar. sort [-fr] <file/s>

Ejemplos Básicos:
sort < file1 > file2

Esto ordenaría el contenido de file1 y lo direcciona al fichero file2. sort > file Esto
redireccionaría lo que se introduce por stdin (teclado) hacia un fichero llamado file. Existen
tres modos de ordenar un fichero con sort: 1. Simple sort. Ordena las lineas de un fichero
en orden numérico primero y alphabetical despues, los caracteres especiales son
despreciados y ordena según el primer alfanumerico que encuentre, en caso de no haber,
la linea de caracteres especiales se pondrá al inicio de las lineas de salida. Ejemplo,
supongamos el siguiente documento, y observemos el efecto del comando sort: $ cat
myfile .aborada caca almeja borneo =seaaa . judia almandraba kilo %%algibe

345 fjb 9553

1. almendras
@@123 !!bee zeta $ sort myfile

. @@123 345 9553 .aborada caca almeja %%algibe almandraba

1. almendras
!!bee borneo fjb judia kilo =seaaa zeta Simple Sort Option Description -o filename Saves
output in the file, filename. -u (unique) lineas identicas y adyascentes solo se muestran una
vez. -c Check si la ordenacion ha sido correcta, si se detecta un error por su salida se
muestra un standard error por la salida estandar. -d Sort in dictionary order. Ignore all
characters except letters, digits and blanks when determining sort order. -n Sort in
numerical order (For example: -2.5, -1, 0, 0.54, 3, 18). Numerical order ignores leading
spaces when determining the sort order and interprets a leading minus sign (-) as a
negative number. Numbers may include a comma to separate thousands (e.g. 1,000 or
10,000). Las entradas no numericas, estaran entre el negativos-cero y los numeros
positivos. -f Ignore the uppercase/lowercase distinction. -M Order the first three characters
as months. (e.g. jan < feb < mar ...). Uppercase letters precede a lowercase letters for the
same month (e.g. JAN < Jan < jan < FEB) Las entradas invalidas son ordenadas antes que los
meses. (e.g. misspelled < nomonth < jan). -i Ignore non-printing characters. Non-printing
characters include control characters such as tab, form feed, carriage return, etc. Non-
printing characters are those outside the ASCII range 040- -r Reverse the sort order. 2.
Column sort.Se usa uno o varios campos separados en columnas. La orden de columna
individualmente puede ser especificada. For example the file has two fields, first name and
last name.The following command, sorts file by the second field. $ cat file Susan Jones Jill
Zane John Smith Andrew Carter $ sort -k 2 file Andrew Carter Susan Jones John Smith Jill
Zane Column Sorting Options Description -tc Specifies the character, c, that separates
fields. For example, "-t," indicates that commas separate fields. Each occurrence of c is
significant so cc represents an empty field. For example, if the separator character is a
comma then in "a,,d" field one is "a", field two is empty and field three is "d". The default
separator is any whitespace. -b Ignore leading whitespace (spaces and tabs) when
determining the starting character of columns. When whitespace is used to separate
columns, the -b option overrides the significance of multiple column separators. For
example, "c" is the first character of the second field of "ab<space>cd",
"ab<space><space>cd", and "ab<space><space><space>cd". -k Start[,End] Defines a sort
key or a section of each line used for ordering. The sort key will begin with the field Start
and end with the field End. If End is not specified, the key begins with Start and continues
to the end of the line. More details on specifying sort keys below. 3. Merging . Files
(presorted and unsorted) can be merged by sort order. For example, assume you have two
files, f1 and f2, $ sort -o soutput f1 f2 merges files f1 and f2, sorts them and saves the
output in the file soutput. It is equivalent to executing the following commands. $ cat f1 f2
> f3 $ sort -o soutput f3 $ rm f3 One command line option affects file merging. Option
Description -m Merge only. Use on presorted input files. For example, if two files sf1 and
sf2 are already sorted $ sort f1 -o sf1 $ sort f2 -o sf2 then $ sort -m -o soutput sf1 sf2 saves
time by not resorting sf1 and sf2. It just integrates them.
Los bits SUID , SGID y sticky

Habitualmente, los permisos de los archivos en Unix se corresponden con un número en


octal que varía entre 000 (- | --- | --- | ---) y 777 (- | rwx | rwx | rwx); sin embargo, existen
unos permisos especiales que hacen variar ese número entre 0000 y 7777: se trata de los
bits de permanencia (1000), SGID (2000) y SUID (4000). El bit de SUID o setuid se activa
sobre un fichero añadiéndole 4000 a la representación octal de los permisos del archivo y
otorgándole además permiso de ejecución al propietario del mismo; al hacer esto, en lugar
de la x en la primera terna de los permisos, aparecerá una s o una S si no hemos otorgado
el permiso de ejecución correspondiente (en este caso el bit no tiene efecto): chmod
4777 /tmp/file1 chmod 4444 /tmp/file2 ls -l /tmp/file1 -rwsrwxrwx 1 root other 0 Feb 9
17:51 /tmp/file1* ls -l /tmp/file2 -r-Sr--r-- 1 root other 0 Feb 9 17:51 /tmp/file2* El bit SUID
activado sobre un fichero indica que todo aquél que ejecute el archivo va a tener durante
la ejecución los mismos privilegios que quién lo creó; dicho de otra forma, si el
administrador crea un fichero y lo setuida, todo aquel usuario que lo ejecute va a disponer,
hasta que el programa finalice, de un nivel de privilegio total en el sistema (Peligroso). Todo
lo que acabamos de comentar con respecto al bit setuid es aplicable al bit SGID setgid pero
a nivel de grupo del fichero en lugar de propietario: en lugar de trabajar con el EUID del
propietario, todo usuario que ejecute un programa setgidado tendrá los privilegios del
grupo al que pertenece el archivo. Para activar el bit de setgid sumaremos 2000 a la
representación octal del permiso del fichero y además habremos de darle permiso de
ejecución a la terna de grupo; si lo hacemos, la s o S aparecerá en lugar de la x en esta
terna. Si el fichero es un directorio y no un archivo plano, el bit setgid afecta a los ficheros y
subdirectorios que se creen en él: estos tendrán como grupo propietario al mismo que el
directorio setgidado, siempre que el proceso que los cree pertenezca a dicho grupo. Pero,
>cómo afecta todo esto a la seguridad del sistema? Evidentemente, estas tareas han de
estar controladas de una forma exhaustiva, ya que si una de ellas se comporta de forma
anormal (un simple core dump) puede causar daños irreparables al sistema; Veamos un
ejemplo: un fichero setuidado clásico en cualquier clon es /bin/passwd, la orden para que
los usuarios puedan cambiar su contraseña de entrada al sistema. Está claro que un usuario
no tiene el nivel de privilegio necesario para ni siquiera pueda leer el fichero de claves, por
lo que frente a este problema tan simple existen varias soluciones: podemos asignar
permiso de escritura para todo el mundo al fichero de contraseñas, podemos denegar a los
usuarios el cambio de clave o podemos obligarles a pasar por el root cada vez que quieran
cambiar su contraseña. Parece obvio que ninguna de ellas es apropiada para la seguridad
del sistema (quizás la última lo sea, pero es impracticable en máquinas con un número de
usuarios considerable). Por tanto, debemos asumir que el bit de setuid en /bin/passwd es
imprescindible para un correcto funcionamiento del sistema. Si es creacion propia es
conveniente resetear su bit de setuid mediante chmod: Por otra parte, el sticky bit o bit de
permanencia se activa sumándole 1000 a la representación octal de los permisos de un
determinado archivo y otorgándole además permiso de ejecución; si hacemos esto,
veremos que en lugar de una x en la terna correspondiente al resto de usuarios aparece
una t (si no le hemos dado permiso de ejecución al archivo, aparecerá una T): chmod
1777 /tmp/file1 chmod 1774 /tmp/file2 ls -l /tmp/file1 -rwxrwxrwt 1 root other 0 Feb 9
17:51 /tmp/ file1* ls -l /tmp/file2 -rwxrwxr-T 1 root other 0 Feb 9 17:51 /tmp/ file2* Si el
bit de permanencia de un fichero está activado (recordemos que si aparece una T no lo
está) le estamos indicando al sistema operativo que se trata de un archivo muy utilizado,
por lo que es conveniente que permanezca en memoria principal el mayor tiempo posible;
esta opción se utilizaba en sistemas antiguos que disponían de muy poca RAM, pero hoy en
día prácticamente no se utiliza. Lo que si que sigue vigente es el efecto del sticky bit
activado sobre un directorio: en este caso se indica al sistema operativo que, aunque los
permisos `normales' digan que cualquier usuario pueda crear y eliminar ficheros (por
ejemplo, un 777 octal), sólo el propietario de cierto archivo y el administrador pueden
borrar un archivo guardado en un directorio con estas características. Este bit, que sólo
tiene efecto cuando es activado por el administrador (aunque cualquier usuario puede
hacer que aparezca una t o una T en sus ficheros y directorios), se utiliza principalmente en
directorios del sistema de ficheros en los que interesa que todos puedan escribir pero que
no todos puedan borrar los datos escritos, si el equivalente octal de los permisos de estos
directorios fuera simplemente 777 en lugar de 1777, cualquier usuario podría borrar los
ficheros del resto.
Comandos para control de procesos y tareas

ps Descripción: Despliega todos los procesos del sistema, con

nombre y tiempo de inicio.

Ejemplos: ps – au ps -aux ps -l //despliega dos parámetros PRI y NI.

El parámetro PRI indica la prioridad actual del proceso, el valor de NI es tomado en cuenta
cuando se determina el PRI. Que es NI? : NI es llamado el número gentil o "nice number",
este número es especificado por el "superusuario"("root") o dueño del proceso y afecta el
orden final del PRI, le da prioridad a los menos gentiles. Sus valores oscilan desde -20
(menos gentil = más prioridad) y 20 (más gentil = menos prioridad)

jobs Descripción: Muestra todos los procesos en segundo plano

[comando] & Descripción: lanza el proceso en segundo plano

bg Descripción: reanuda un proceso en segundo plano

ctrl+z Descripción: detiene un proceso

fg Descripción: reanuda un proceso en primer plano tras haberlo

detenido [control + z]

nohup Descripción: lanza un proceso independizandolo de la sesion, si

esta se cierra el proceso sigue vivo

proc Descripción:

kill Descripción: Es utilizado para mandar señales a los procesos en

Unix.
Ejemplos:

kill -HUP <pid> Señala al proceso con numero <pid>, que vuelva a leer sus archivos de
configuración.

kill -INT <pid> Señala al proceso con numero <pid>, que será interrumpido .

kill -TERM <pid> Señala al proceso con numero <pid>,que debe de terminar, a
diferencia de -KILL , esta opción da la oportunidad al proceso de terminar.

kill -STOP <pid> Señala al proceso con numero <pid>, que pare momentáneamente.
kill -CONT <pid> Señala al proceso con numero <pid>, que continué, este comando se
utiliza para reanudar un proceso que le fue aplicado -STOP.

kill -KILL <pid> Señala al proceso con numero <pid>,que termine de inmediato, el
proceso es terminado abruptamente.

killall: A diferencia de kill , killall permite mandar un señal al proceso por nombre.

killall <nombre del proceso > Envía la señal -TERM al proceso con el nombre especificado.
NOTA: Por "default" la señal que toma kill y killall es -TERM.

nice Descripción: Este comando especifica/modifica el número NI de

cada proceso.

Ejemplo:

nice -10 named //Esto bajaría la prioridad de named en 10 unidades.

nice +10 named //Esto incrementaría la prioridad de named en 10 unidades.


snice y renice Descripción: El mismo funcionamiento que nice, excepto que

utiliza el número de proceso :

Ejemplo:

snice -10 <pid>

top & htop Descripción: (MONITOR DE PROCESOS) Esta herramienta

muestra información sobre varios recursos del sistema y tiene


un carácter dinámico, muestra uso de CPU por proceso,
cantidad de memoria, tiempo desde su inicio, etc.

vmstat Descripción: Es muy similar a top ya que es un condensado de

los procesos del sistema, para que esta herramienta se vuelva


dinámica se deben especificar los argumentos: vmstat -n
<número de segundos por actualización >

free Descripción: Estadísticas de uso de Memoria.

at

crontab
Comandos de Gestión/Administración del Sistema

who Descripción: muestra quien esta usando el sistema, todos los

usuarios autenticdos

whoami Descripción: muestra con que usuario estas autenticado en el sistema

dmesg Descripción: Imprime los mensajes desplegados por el "kernel" al

inicio.

depmod -a Descripción: Genera un archivo que contiene las dependencias de los

módulos que son cargados para el "Kernel", capaz de reconocer


cuales módulos deben ser cargados para que un tercero sea utilizado
en el sistema.

init q Descripción: Comando que vuelve a leer los parámetros que se

encuentran en inittab .

halt Descripción: apaga el sistema

reset Descripción: resetea la consola de texto

reboot Descripción: reinicia el sistema

shutdown Descripción: apaga el sistema

exit Descripción: salir de un acceso de usuario

logout Descripción: salir de una sesion.

sudo Descripción: privilegios de usuario


su ("Switch User" Cambiar de Usuario) Descripción: Sirve para
cambiar de usuario sin desloguearse. Si no se indica ningún usuario, el usuario al que se
cambia por defecto es el usuario ROOT.

passwd Descripción: modifica la contraseña de ingreso al sistema. El

usuario ROOT tiene permiso para cambiarle la contraseña a


cualquier usuario del sistema.

insmod Descripción: Habilita ("loads") el modulo que se especifica en la

línea, para que el "kernel" sea capaz de utilizarlo.(ejemplo:


insmod ip_alias.o )

ldconfig Descripción: Actualiza las librerías utilizadas por el sistema,

recomendable ejecutarlo cada vez que se instale un programa.

env Descripción: Muestra las variables de entorno.

lsmod Descripción: Despliega la información referente a los módulos

que están habilitados por el "kernel". slocate: Actualiza la base


de información que es utilizada para encontrar archivos con el
comando locate .

fuser Descripción: muestra que usuario tiene en uso o bloqueado un

archivo o recurso.

stat Descripción: Despliega información detallada sobre el archivo

especificado como: fechas de modificación y cambio, dueño del


archivo, etc.

uname -a Descripción: Información completa sobre el "Host".


uptime Descripción: Hora actual, tiempo que lleva el sistema corriendo

desde el ultimo "reboot", usuarios conectados al servidor, carga


del sistema en los últimos 1,5 y 15 minutos.

ldd Descripción: muestra las librerias que usa un programa

sysctl Descripción: Configurar los parámetros del kernel en tiempo de

ejecución. Ejemplos: sysctl -a

ulimit Descripción: muestra los limites del sistema (máximo de

ficheros abiertos, etc...) Ejemplos: ulimit

adduser o useradd Descripción: añadir usuario de sistema.

Ejemplos:

adduser pepe, adduser -s /bin/false pepe

userdel o deluser Descripción: eliminar usuario de sistema

Ejemplos:

userdel pepe

usermod Descripción: modificar usuario de sistema

Ejemplos:

usermod -s /bin/bash pepe

groupadd Descripción: agrego nuevo grupo

groupmod Descripción: modificar grupo

groupdel Descripción: borrar grupo


uname Descripción: unix name. Información sobre el tipo de

Unix en el que estamos, kernel, etc.

Ejemplos:

uname

uname -a

lsof Descripción: muestra los ficheros (librerías, conexiones)

que utiliza cada proceso.

Ejemplos:

lsof

lsof -i

lsof | grep fichero

lsmod Descripción: Muestra los módulos de kernel que están

cargados.

Ejemplos:

lsmod

modprobe Descripción: Trata de instalar un modulo, si lo encuentra

lo instala pero de forma temporal.

Ejemplos:

modprobe ip_tables

modprobe eepro100
rmmod Descripción: Elimina módulos del kernel que están

cargados.

Ejemplos:

rmmod <nombre de modulo>

logname Descripción: muestra el nombre de usuario.

id Descripción: muestra datos de identificacion del usuario.

finger Descripción: da informacion de usuario.

chfn Descripción: cambia la informacion del finger.

w Descripción: muestra un detalle de los usuarios.

last Descripción: información de los últimos usuarios que han

usado el sistema set.

users Descripción: usuarios que acceden al sistema.

groups Descripción: groups a los que pertenece el usuario.

free El comando “free” responde a todas estas preguntas. Es

más, una opción muy útil, –m , muestra la memoria libre


en megabytes:

free -m

total used free shared buffers cached


Mem: 1772 1654 117 0 18 618
-/+ buffers/cache: 1017 754
Swap: 1983 1065 918
El output muestra que el sistema tiene 1.772 MB de RAM, de los cuales se utilizan 1.654
MB, dejando 117 MB de memoria libre. La segunda línea muestra los cambios de tamaño
de caché y buffers en la memoria física. La tercera línea muestra la utilización de memoria
swap.

Para expresar lo mismo en kilobytes y gigabytes, reemplace la opción -m con -k o -g


respectivamente. Usted puede colocarse en el nivel de bytes también, utilizando la opción
–b.

free -b

total used free shared buffers cached


Mem: 1858129920 1724039168 134090752 0 18640896 643194880
-/+ buffers/cache: 1062203392 795926528
Swap: 2080366592 1116721152 963645440

La opción –t muestra el total al final del output (suma de memoria física más swap):

free -m -t

total used free shared buffers cached


Mem: 1772 1644 127 0 16 613
-/+ buffers/cache: 1014 757
Swap: 1983 1065 918
Total: 3756 2709 1046

A pesar de que “free” no muestra los porcentajes, podemos extraer y formatear partes
específicas del output para mostrar la memoria utilizada como porcentaje del total
solamente:

free -m | grep Mem | awk '{print ($3 / $2)*100}'


98.7077
Esto viene bien para los shell scripts en donde las cantidades específicas son importantes.
Por ejemplo, usted quizás quiera generar un alerta cuando el porcentaje de memoria libre
descienda por debajo de cierto límite.

De modo similar, para encontrar el porcentaje de swap utilizado, usted puede emitir:

free -m | grep -i Swap | awk '{print ($3 / $2)*100}'

Puede utilizar free para observar la carga de memoria empleada por una aplicación.

Por ejemplo, controle la memoria libre antes de iniciar una aplicación de backup y luego
contrólela inmediatamente luego de iniciarla. La diferencia podría atribuirse al consumo
por parte de la aplicación de backup.

Comandos para manejo de dispositivos


Montar usb, cd, floppy, particiones windows fat32 y ntfs para ver las particiones y discos de
nuestro equipo en el fichero /proc/partitions se nos mostraran las particiones del equipo
pero no su sistema de ficheros.

mount Descripción: Permite que particiones del sistemas, CD-ROMs y

floppys puedan ser leídas en el sistema.

mount -t <file system(ext3,ntfs)> <(/dev/hda1,/dev/cdrom)> <(/mnt/DiskWin)>.

La carpeta /mnt/DiskWin/ ('punto de montaje') debe haber


sido creada anteriormente, en ella se montara el dispositivo
/hda1/ xejemplo.

umount Descripción: Desactiva la partición que se indicada, los

parámetros que toma este comando son similares a los de


mount .

lpr Descripción: imprime un fichero

pr Descripción: imprime un fichero junto a un encabezamiento

fdformat Descripción: Dar formato a un disquete:

fdformat /dev/fd0

mkfs Descripción: Crear un sistema de ficheros: •

mkfs.msdos /dev/fd0

mkfs -t msdos /dev/fd0

mkdosfs /dev/fd0 para crear un sistema de ficheros de MS-DOS


(FAT12) en un disquete.

mkfs.ext3 /dev/hda3

mkfs -t ext3 /dev/hda3 para crear un sistema de ficheros nativo


de Linux en la tercera partición del primer disco duro.

fsck Descripción: Comprobar la consistencia:

fsck.ext2 /dev/hda4

fsck -t ext2 /dev/hda4

e2fsck /dev/hda4 para realizar esta operación siendo necesario


que la partición a comprobar no esté montada o que esté
montada como de sólo lectura.

fdisk Descripción: Particionar un disco duro:

fdisk /dev/hdb para particionar el segundo disco duro (nótese


que no se indica ninguna partición concreta).

lspci / lsusb / lspcmcia Descripción: Muestra todas la lineas de

informacion de dispositivos PCI / USB / PCMCIA


Ejemplo:

lspci | grep Wireless

df Descripción: disk free. Espacio en disco disponible. Muy util.

Ejemplos:

df

df -h La orden df informa del espacio total, ocupado y


disponible para cada uno de los sistemas de ficheros, con el
siguiente formato: S.ficheros Bloques de 1K Usado Dispon

Uso % Montado en /dev/hda3 11820088 5320096 5899564


48 % / /dev/hda2 6822312 4840308 1982004 71 % /dos

La opción -i sustituye los bloques por nodos-i, y la opción -T


informa además del tipo de sistema de ficheros en cada caso.

du Descripción: disk use. Uso de disco. Muestra el espacio que esta

ocupado en disco o el espacio que ocupa un fichero en disco.


Ejemplos:

du *

du -sH /*

du -sH /etc El número de ficheros y directorios totales que se


pueden crear, cuántos se han creado ya y cuántos más podemos
crear. Estos datos se expresan en términos de nodos-i. El
concepto de nodo-i sólo tiene sentido cuando nos referimos a
los sistemas de ficheros nativos de Linux, es decir, ext2 o ext3. El
número de nodos-i libres indica el número total de ficheros y
directorios que podemos crear todavía.La orden du <directorio>
nos muestra cuántos bloques lógicos de 1 KB ocupa el directorio
indicado y cada uno de sus subdirectorios. Si utilizamos la
opción -a, también aparecen los ficheros, y si utilizamos la
opción -s obtenemos un resumen sin que aparezcan los detalles.
Téngase en cuenta que también se contabilizan los bloques
lógicos ocupados por los propios directorios que, como hemos
dicho, son ficheros especiales.
Comandos Entorno de Red

hostmane: Descripción: El nombre del host.

host: Descripción: Determina la direccion IP de u “Host”

host -a despliega toda la información de DNS.

ping Descripción: herramienta de red para comprobar entre otras

cosas si llegamos a un host remoto.

Ejemplos:

ping www.rediris.es ping -s 1024 Manda paquetes de ping de


1024 bytes (header 8 bytes), mientras que el "default" es 512.

netstat Descripción: la información sobre las conexiones de red activas.

Ejemplos:

netstat

netstat -ln

netstat -l

netstat -a Todas la conexiones de Red originadas y recibidas por


el "Host"

netstat -r Muestra la tabla de ruteo "routing table" del sistema


netstat -i Estadísticas de red de cada interface

traceroute Descripción: herramienta de red que nos muestra el camino que

se necesita para llegar a otra maquina.

Ejemplos:

traceroute www.rediris.es
ifconfig Descripción: Permite configurar una interfaz de Red y ver el

"status" de ésta. Es de la forma ifconfig <interfaz>

Ejemplo:

ifconfig eth0 ip netmask 255.255.255.0

iwconfig: Descripción: Permite ver una interfaz de Red Wireless y ver el

"status" de ésta. Es de la forma ifconfig <interfaz> .

Ejemplo:

iwconfig eth0 up

ifup: Descripción: Habilita la interfaz especificada.

Ejemplo:

ifup eth0

ifdown: Descripción: Deshabilita la interface especificada.

Ejemplo:

ifdown eth0

nslookup: Descripción: Busca información en los servidores DNS

Ejemplo:

nslookup -query=mx osomosis.com si no se especifican


parámetros se entra en modo interactivo

route add Descripción: Permite agregar tablas de ruteo de y hacia el

"Host".

Ejemplo:

route add -net 206.171.55.16 255.255.255.240 eth0


Para guiar toda la información de la red 206.171.55.16 netmask
255.255.255.240 vía la interfaz eth0:

route add default gw 206.171.55.51 eth0

Para rutear todo el tráfico por cierta interfaz

route -n Descripción: Despliega la tabla de ruteo del "Host".

NOTA: Debe de estar "IP Forwarding" ON en


/etc/sysconfig/network, además el "kernel" debe de estar
configurado para "IP Forwarding".

smbclient: Descripción: Funciona como un cliente, que simula conexiones

windows que serán realizadas a través de Samba.

testparm: Descripción: Verifica la validez del archivo smb.conf utilizado

por Samba.

wireshark

sniffit
Comandos de compresión en Linux

ZIP
Comprimir: zip archivo.zip ficheros

Descomprimir: unzip archivo.zip

Ver contenido: unzip -v archivo.zip

GZIP (GNU ZIP) Comprimir (sin conservar el Fichero)


gzip archivo (Nota: el archivo de salida será “archivo.gz”)

Comprimir (conservando el Fichero): gzip -c archivo.txt > archivo.gz

Descomprimir (sin conservar el Fichero): gzip -d gzip archivo.gz /destino

Testear: gzip -t arhivo.gz

RAR/UNRAR (Roshal ARchive)


Comprimir: rar -a archivo.rar ficheros

Descomprimir: unrar e archivo.rar

Descomprimir: rar -x archivo.rar

Ver Contenido: unrar l archivo.rar

Ver contenido: rar -l archivo.rar

Verificar contenido: unrar t archivo.rar

Ver contenido: rar -v archivo.rar


TAR
Empaquetar: tar -cvf archivo.tar /dir/a/comprimir/

Desempaquetar: tar -xvf archivo.tar

Ver contenido: tar -tf archivo.tar

Nota: tar empaqueta varios archivos en uno solo, pero no comprime.

TAR GZ/BZ2
Comprimir: tar -czfv archivo.tar.gz ficheros

Comprimir: tar -c ficheros | bzip2 > archivo.tar.bz2

Descomprimir: tar -xzvf archivo.tar.gz

Descomprimir: bzip2 -dc archivo.tar.bz2 | tar -xv

Ver contenido: tar -tzf archivo.tar.gz

Ver contenido: bzip2 -dc archivo.tar.bz2 | tar -t

BZ2
Comprimir: bzip fichero

Descomprimir: bzip2 -d fichero.bz2

Nota: gzip ó bzip2 sólo comprimen ficheros (no directorios, para eso existe tar).

Es mejor que gzip, pero a cambio consume más memoria y mas tiempo de compresión.
ARJ (Archiver Robert Jung)
Comprimir: arj a archivo.arj ficheros

Descomprimir: unarj archivo.arj

Descomprimir: arj -x archivo.arj

Ver contenido: arj -v archivo.arj

Ver contenido: arj -l archivo.arj

LHA
Comprimir: lha -a archivo.lha ficheros

Descomprimir: lha -x archivo.lha

Ver contenido: lha -v archivo.lha

Ver contenido: lha -l archivo.lha An AZ

S-ar putea să vă placă și