Está en la página 1de 17

4 DE ABRIL DE 2020

COMANDOS BÁSICOS LINUX


SISTEMAS OPERATIVOS

JESÚS MIGUEL MILLANES SANTOS


HTTPS://WWW.LINKEDIN.COM/IN/JESÚS-MILLANES-SANTOS-28851819/?FBCLID=IWAR1W-
FMQDAOOBBDD9BUNDQIZP4B1DOUSXEB7RCOHP1UJDZMVLO6PTIRFRSG
SISTEMAS OPERATIVOS
Relación de comandos Linux

(COMANDOS VARIADOS)

COMANDO WHO

DESCRIPCIÓN: Muestra los usuarios conectados al sistema ya sea local o


remotamente.

SINTAXIS:

who [opciones] [fichero] [am i]

OPCIONES:

-H: Imprime un encabezamiento para las columnas.

-w: Indica si está activada o no la posibilidad de recibir mensajes por parte de


cada usuario conectado (+ indica que sí, - que no y ? desconocido).

-i: Imprime además para cada usuario conectado que tiempo lleva sin
interactuar con el sistema (idle time). Si lleva menos de un minuto pone un
punto y si es más de 24 horas la cadena “old”.

-q: sólo muestra los logins de los usuarios conectados y la cantidad total de
ellos.

EJEMPLOS:

$ who
coco tty2 Oct 17 15:59
root tty3 Oct 17 12:40
alma :0 Oct 17 08:21
pepe pts/0 Oct 17 10:20

$ who -H -w -i
USER MESG LINE LOGIN-TIME IDLE FROM
pepe + pts/2 Nov 16 09:26 old
root - tty1 Nov 17 09:01 00:11
alma ? :0 Nov 17 09:10 .
coco - pts/0 Nov 17 10:30 00:05

$ who am i
gloin!pepe tty2 Nov 16 09:26

$ who -q
pepe root alma coco
# users=4
(COMANDOS PARA ADMINISTRAR USUARIOS Y GRUPOS)

COMANDO PASSWD

DESCRIPCIÓN: El comando passwd permite cambiar el password de un usuario.


También puede bloquear, desbloquear y deshabilitar una cuenta. Si se invoca sin
argumentos se asume el usuario actual.

SINTAXIS:

passwd [opciones] [login]

EJEMPLOS:

# passwd pepe # coloca una contraseña para pepe.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

# passwd -d pepe # deshabilita la cuenta del usuario pepe


eliminando su password.

# passwd -l pepe # bloquea la cuenta del usuario pepe poniendo un


signo ! delante de su password en el fichero
/etc/shadow.

# passwd -u pepe # desbloquea la cuenta del usuario pepe.

COMANDO ADDUSER

DESCRIPCIÓN: El comando adduser permite la creación de usuarios dentro del


sistema.

SINTAXIS:

adduser [-u UID [-o]][-g GRUPO][-G LISTA_GRUPOS][-d HOME][-s SHELL][-c


COMENTARIO]

[-m[-k template]][-f inactive][-e expire][-p passwd] NOMBRE_USUARIO

adduser –D [-g group][-b base][-s shell][-f inactive][-e expire]

OPCIONES:

-c: Comentario sobre el usuario.

-d: Directorio de conexión del usuario.

-e: Fecha en la cual la cuenta de usuario se desactiva (expira).


-f: Días que transcurrirán desde la caducidad de la contraseña hasta la
desactivación de la cuenta.

-g: Nombre o número del grupo primario.

-G: Lista de los grupos suplementarios del usuario (separados por , y sin
espacios).

-m: Crea el directorio de conexión. Si no se especifica la opción –k, copia al


directorio de conexión los ficheros del directorio /etc/skel.

-k: Copia al directorio de conexión los ficheros del directorio template.

-p: Asigna una contraseña cifrada al usuario.

-s: Asigna el shell a utilizar por el usuario.

-u: Asigna un UID concreto al usuario.

-o: Permite crear un UID duplicado con la opción –u.

-D: Se asignan valores por defecto para las opciones indicadas (no crea
usuario).

EJEMPLOS:

# adduser pepe # Crea el usuario pepe con las propiedades por


defecto.

# adduser -D # Muestra las propiedades por defecto de los


nuevos usuarios que se añadan.

GROUP = 100

HOME = /home

INACTIVE = -1 # Número de días entre que el password expire y la cuenta se


deshabilite.

EXPIRE = # Fecha (yyyy-mm-dd) en que la cuenta expira.

SHELL = /bin/bash # Shell que empleará el usuario para interactuar con el sistema.

SKEL = /etc/skel # Directorio cuyo contenido se copiará en el directorio de


cada usuario.

# adduser –D –b /users # Cambia el directorio base por defecto a /users


(debe existir previamente).

COMANDO DELUSER
DESCRIPCIÓN: El comando deluser permite la eliminación de usuarios dentro del
sistema.

SINTAXIS:

userdel [opciones] USUARIO

OPCIONES:

-r: Elimina el directorio de conexión del usuario (desaconsejable si queremos


mantener los datos).

EJEMPLOS:

# deluser -r pepe # Elimina al usuario pepe borrando además su


directorio base. Por defecto el directorio
base se mantiene.

COMANDO CHAGE

DESCRIPCIÓN: El comando chage, siendo administrador del sistema, se puede emplear


para gestionar la caducidad de la contraseña.

SINTAXIS:

chage [opciones] USUARIO

OPCIONES:

-d: Asigna la fecha del último cambio de contraseña.

-E: Asigna la fecha en la cual la cuenta de usuario será desactivada.

-l: Muestra la información de caducidad.

-I: Número de días tras los cuales la cuenta será desactivada si no se realizar el
cambio de contraseña exigido.

-m: Número de días mínimo permitido entre cambios de contraseña.

-M: Número de días máximo permitido entre cambios de contraseña.

-W: Número de días previos al próximo cambio de contraseña exigido.

COMANDO USERMOD

DESCRIPCIÓN: El comando usermod se emplea para modificar algunas propiedades de


los usuarios como: el login, el directorio base, el shell que se inicia al conectarse, los
grupos a los que pertenece, la fecha de expiración de la cuenta, etc.
También bloquea y desbloquea la cuenta.

SINTAXIS:

usermod [-u UID [-o]][-g GRUPO][-G LISTA_GRUPOS][-d HOME [-m]][-s SHELL][-c


COMENTARIO][-l NEW_NAME]][-f inactive][-e expire][-p passwd][-L | U]
NOMBRE_USUARIO

OPCIONES:

-c: Comentario sobre el usuario.

-d: Directorio de conexión del usuario.

-e: Fecha en la cual la cuenta de usuario se desactiva (expira).

-f: Días que transcurrirán desde la caducidad de la contraseña hasta la


desactivación de la cuenta.

-g: Nombre o número del grupo primario.

-G: Lista de los grupos suplementarios del usuario (separados por , y sin
espacios).

-l: Modifica el nombre del conexión del usuario.

-L: Bloquea la cuenta de usuario.

-m: Crea el directorio de conexión.

-p: Asigna una contraseña cifrada al usuario.

-s: Asigna el shell a utilizar por el usuario.

-u: Asigna un UID concreto al usuario.

-o: Permite crear un UID duplicado con la opción –u.

-U: Desbloquea la cuenta de usuario.

EJEMPLOS:

# usermod –s /bin/csh pepe # Coloca el shell csh para pepe.

# usermod –G users,disk pepe # Señala como grupos secundarios de


pepe a users y a disk.

# usermod –e 2010-10-20 pepe # Indica que la cuenta de pepe expira el 20


de octubre de 2010.

NOTAS:
Si un usuario x pertenece a los grupos a y b y quiero que pertenezca también a c se
debe tener cuidado porque se podría hacer lo siguiente:

# usermod –G c → Le acabo de quitar de a y de b.

# usermod –G a,b,c → Esto funciona pero con adiciones masivas es pesado.

La solución está en el comando gpasswd:

gpasswd [-a | -d | -A] usuario GRUPO

-a: Añadir.

-d: Eliminar.

-A: Hacer al usuario indicado administrador del grupo.

COMANDO FINGER

DESCRIPCIÓN: El comando finger permite buscar y mostrar información asociada a los


usuarios del sistema de acuerdo a sus nombres, apellidos o login. La información que
muestra finger para cada usuario es:

• El Login.

• El nombre y apellidos.

• El directorio base.

• El shell.

• La oficina y el teléfono.

• El teléfono de casa.

• La lista de terminales a través de los que está conectado con la fecha,


tiempo sin interactuar (idle time) y si está deshabilitada la posibilidad
de recibir mensajes.

• La fecha y la hora del último nuevo mensaje electrónico recibido y


desde cuando no accede al buzón.

• El contenido del fichero .plan en el directorio base (dos archivos, .plan


y .project permiten al usuario dar a conocer sus actividades (solo la
primera línea es tenida en cuenta).

SINTAXIS:

finger [opciones][lista_usuarios]

OPCIONES:

-l: Se desea obtener una salida completa.

-m: La cadena solo debe coincidir con nombre usuario.

-p: No debe imprimirse el archivo .plan.


-s: La lista debe darse en formato específico.

EJEMPLOS:

$ finger jmillanes # Solicita información sobre el usuario jmillanes

login: jmillanes Name: Jesús Millanes Santos

Directory: /home/jmillanes Shell: /bin/bash

Office: Aula Ulises, 2ª Planta Home Phone: 000-00000

COMANDO SU

DESCRIPCIÓN: El comando su permite ejecutar un shell (u otro comando) cambiando


los identificadores del grupo y del usuario. Si se le pasa – como primer argumento
ejecuta el shell como login shell, es decir, se creará un proceso login tal y como ocurre
naturalmente cuando un usuario se conecta al sistema. Si no se especifica el login del
usuario se asume root.

SINTAXIS:

su [opciones][usuario]

OPCIONES:

-f: Son ejecuta los archivos .cshrc o .profile

-c: Precisa que el resto de la línea debe interpretarse como una secuencia de
comandos a ejecutar.

EJEMPLOS:

$ su –

password: # Se debe introducir la de root

$ su pepe

$su - -c “cat /etc/passwd”

password: # Ejecuta un comando con los privilegios de


root en lugar de un shell.

NOTAS:

En su invocación más simple el comando crea una sub-sesión sin ejecutar ningún
archivo de inicialización y sin cargar algún directorio. El shell usado es el del nuevo
usuario. Si una opción es proporcionada, el resto de la línea es pasada al shell.
(COMANDOS PARA MANIPULAR FICHEROS Y DIRECTORIOS)

COMANDO LS

El comando ls permite listar el contenido de un directorio.

SINTAXIS:

ls [opciones] [directorio|fichero]

OPCIONES:

-l: muestra la salida en formato largo (información detallada).

-R: lista recursivamente un directorio (todos los subdirectorios).

-a: lista además los ficheros ocultos (sus nombres comienzan con punto,
como .bash_profile).

-h: muestra el tamaño de los ficheros en forma más legible (Ej: 16M, 4k, etc.)

-i: muestra el identificador del i-nodo asociado a cada elemento.

--full-time: combinado con el formato largo muestra la fecha completa de la


última modificación de cada elemento.

-S: Ordenado respecto al tamaño.

-F: Clasifica los tipos de ficheros.

-1: Una columna.

EJEMPLOS:

$ ls -hl /etc

$ ls -R /usr

$ ls -al

$ ls -ali ..

COMANDO CD

DESCRIPCIÓN: El comando cd se utiliza para cambiar del directorio actual a otro


directorio o a $HOME.

SINTAXIS:

cd [directorio]

EJEMPLOS:
$ cd /tmp

$ cd # cambia hacia el directorio base del usuario actual.

$ cd - # cambia hacia el directorio anterior.

$ cd .. # cambia hacia el directorio padre.

$ cd ~ # cambia hacia el directorio base del usuario actual. El caracter ~


bash lo interpreta como el directorio base de un usuario.

$ cd ~pepe # cambia hacia el directorio base del usuario pepe

COMANDO PWD

DESCRIPCIÓN: El comando pwd indica el camino absoluto del directorio en el cual nos
encontramos actualmente.

SINTAXIS:

pwd [opciones]

EJEMPLOS:

$ pwd
/home/pepe/backup/pruebas

COMANDO MKDIR

DESCRIPCIÓN: El comando mkdir se utiliza para crear nuevos directorios.

SINTAXIS:

mkdir [opciones] directorio

EJEMPLOS:

$ mkdir bin

$ mkdir -p docs/linuxdocs/howtos/pdf # se crean los directorios intermedios


si es necesario.

COMANDO RMDIR

DESCRIPCIÓN: Borra un directorio vacío.

SINTAXIS:

rmdir [opciones] directorio

EJEMPLOS:
$ rmdir temp # temp debe estar vacío.

COMANDO CAT

DESCRIPCIÓN: El comando cat concatena (catenate) ficheros y los imprime en la salida


estándar. Si no se le pasa ningún argumento lee de la entrada estándar. Existe también
zcat que hace lo mismo, pero con ficheros compactados.

SINTAXIS:

cat [opciones] <lista_de_ficheros>

EJEMPLOS:

# cat /etc/passwd /etc/shadow

NOTAS: cat manda la salida por defecto a stdout, por esta razón, hay que usar la
redirección para la concatenación de ficheros:

$ cat < lista_de_ficheros> > fichero

Podemos usar cat > fichero para crear un fichero de texto sin usar un editor. CTRL + D
señala el fin de fichero.

COMANDO CP

DESCRIPCIÓN: El comando cp permite copiar un fichero en otro, o varios ficheros en


un directorio.

SINTAXIS:

cp [opciones] <fuente> <destino>


cp [opciones] <ficheros> <directorio>

OPCIONES:

-p: si es posible preserva los atributos (dueño, grupo y permisos) de los ficheros
originales en las copias.

-d: preserva los enlaces simbólicos en lugar de copiar los ficheros a los que
estos apuntan. Actualmente es así por defecto.

-L: no preserva los enlaces simbólicos, o sea copia los ficheros a los que estos
apuntan.

-R: copia recursivamente un directorio.

-a: es equivalente a las opciones -dpR.

-i: utiliza una forma interactiva (pregunta antes de sobrescribir el destino).

-l: hace enlaces fuertes a los ficheros fuentes en lugar de copiarlos.


-v: modo explicativo, dice lo que hace.

EJEMPLOS:

$ cp /etc/passwd . # copia un fichero en el directorio actual.

$ cp -a /etc/mail mailb/ # copia recursivamente un directorio preservando


atributos y enlaces.

$ cp -i /usr/bin/*sh /tmp # copia interactivamente los ficheros terminados en


sh en un directorio.

$ cp -l /bin/* bin/ # hace enlaces fuertes a todos los ficheros en un


directorio.

COMANDO RM

DESCRIPCIÓN: El comando rm se utiliza para borrar (desenlazar) ficheros.

SINTAXIS:

rm [opciones] <ficheros | directorios>

OPCIONES:

-r: borra recursivamente un directorio.

-f: borra forzosamente en caso de que no se tenga permiso de escritura en


forma directa.

-i: ejecuta el comando de forma interactiva.

EJEMPLOS:

$ rm prueba
$ rm -i bin/*
$ rm -rf temp/

COMANDO MV

DESCRIPCIÓN: El comando mv mueve un fichero hacia otro, o varios ficheros hacia un


directorio. Este permite a su vez renombrar ficheros o directorios.

SINTAXIS:

mv [opciones] <fuente> <destino>


mv [opciones] <ficheros> <directorio>

OPCIONES:

-i: ejecuta el comando de forma interactiva, o sea, pregunta ante de


sobrescribir el destino si existiera.
-u: actualiza (upgrade) el destino con el fuente solo si este es más reciente.

-v: Modo explicativo, dice lo que hace.

EJEMPLOS:

$ mv mail.cf mail.cf.old # renombra un fichero.

$ mv -i *.txt /tmp # mueve ficheros terminados en .txt al directorio


/tmp.

$ mv bin/ exe # renombra un directorio. Si existe el destino mueve el


fuente hacia este.

$ mv -u program.c src/ # actualiza el fichero destino si es menos reciente que el


fuente.

COMANDO LN

DESCRIPCIÓN: Sirve para establecer enlaces entre archivos. Un enlace puede ser rígido
o simbólico. El primer tipo es simplemente una forma de dar otro nombre a un archivo.
Por ejemplo, teniendo el archivo /etc/passwd, se puede hacer un enlace y tener el
nuevo nombre en /home/usuario/claves, y ambos nombres de archivo refiriéndose al
mismo fichero.

El segundo tipo es parecido al primero, pero se pueden enlazar directorios, y además


de diferentes sistemas de ficheros. Este tipo de enlace es el que más se utiliza.

SINTAXIS:

ln [opciones] <fichero | directorio> [nombre_del_enlace]


ln [opciones] <lista_de_ficheros> <directorio>

OPCIONES:

-d: Permite al superusuario (root) hacer enlaces rígidos a directorios.

-s: se utiliza para crear enlaces simbólicos en lugar de fuertes como es por
defecto.

-f: Borrar el enlace si ya existe.

EJEMPLOS:

$ ln -s /home/pepe/public_html/raiz.html index.html
$ ln doc/important.doc clases/* backup/
# ln -s /usr/bin /binarios

NOTAS: Cuando se ejecuta ls –l en un directorio donde hay un enlace simbólico, éste


se muestra de la siguiente manera:
usuario@maquina$ ls –l claves

lrwxrwxrwx 1 usuario usuario 11 Apr 8 13:33 > claves → /etc/passwd

La l al comienzo de la línea especifica el tipo de archivo listado, en este caso, un


link.

COMANDO CHMOD

DESCRIPCIÓN: Se utiliza para cambiar los permisos de un recurso.

SINTAXIS:

chmod [opciones] <permisos> <ficheros>

Las formas de expresar los nuevos permisos son diversas, se puede emplear la
representación numérica o utilizando caracteres.

EJEMPLOS:

$ chmod u+x clase.txt # añade el permiso de ejecución al dueño.

$ chmod g=rx program.sh # asigna exactamente los permisos de lectura y ejecución


al grupo.

$ chmod go-w profile # elimina el permiso de escritura en el grupo y en otros.

$ chmod a+r,o-x *.ts # adiciona el permiso de lectura para todos los usuarios y
elimina el de ejecución para otros.

$ chmod +t tmp/ # adiciona el permiso especial t.

$ chmod 755 /home/pepe/doc/ # asigna los permisos con representación octal


755 (rwxr-xr-x).

$ chmod -R o+r apps/ # adiciona el permiso de lectura a otros para un directorio


de forma recursiva (incluyendo todo su contenido).

$ chmod +x ./bin/* # adiciona el permiso de ejecución a todos los usuarios


que les corresponde por defecto.

# chmod 4511 /usr/bin/passwd # asigna los permisos con representación octal


4511 (r-s--x--x)

Para determinar cuales permisos se asocian por defecto a los ficheros o directorios
creados, cada usuario posee una máscara de permisos. Esta se expresa en el formato
numérico octal o sea posee tres dígitos entre cero y siete (Ej. 166). La máscara indica
que permisos no se desea que tenga el recurso creado. Por defecto esta máscara es
002 para los usuarios comunes y 022 para root (Realmente es así para todos los
usuarios con identificador menor o igual que 14). La máscara realmente se asocia al
shell y se hereda por los subshells (un subshell es un shell ejecutado dentro de otro).
Para calcular los permisos finales dado que se tiene la máscara 022, se hace la
siguiente operación por parte del sistema:

Ficheros = totales_para_ficheros - máscara = 666 - 022 = 644 = -rw-r--r--

Directorios = totales_para_directorios - máscara = 777 - 022 = 755 = drwxr-xr-x

COMANDO UMASK

DESCRIPCIÓN: Se puede emplear para colocar u observar la máscara.

SINTAXIS:

umask [opciones] [máscara]

EJEMPLOS:

$ umask # sin argumentos muestra la máscara actual en formato numérico 022.

$ umask -S # muestra el complemento de la máscara en formato de caracteres


u=rwx,g=r,o=r.

$ umask -S 037 # asigna la máscara 037 (niega permisos de ejecución y de


escritura para el grupo, u=rwx,g=r,o= y todos los permisos para el
resto de los usuarios). Se muestra el resultado en formato de
caracteres.

$ umask g=rx,o= # especifica el complemento la máscara utilizando el formato de


caracteres.

Para ser bien restrictivos se recomienda hacer: $ umask 077

Los nuevos directorios tendrán el permiso: 700 = drwx------

Los nuevos ficheros tendrán el permiso: 600 = -rw-------

(COMANDOS PARA FILTRAR FICHEROS)

COMANDO SORT

DESCRIPCIÓN: El comando sort ordena las líneas de un fichero mostrándolas por la


salida estándar. De no especificarse un fichero toma la entrada estándar.

SINTAXIS:

sort [opciones] [fichero]

OPCIONES:

-r: ordena al revés.

-f: trata las mayúsculas y minúsculas por igual.


EJEMPLOS:

$ sort -f /etc/passwd

(COMANDOS PARA VISUALIZAR, PAGINAR Y EDITAR FICHEROS)

COMANDOS MORE/LESS

DESCRIPCIÓN: Los comandos more y less paginan (dividen en páginas) uno o varios
ficheros y los muestran en la terminal. De no indicárseles un fichero, paginan la
entrada estándar. Se diferencian en las facilidades que brindan. Por ejemplo more es
más restrictivo en cuanto al movimiento dentro del texto, mientras que less no limita
este aspecto pues acepta el empleo de todas las teclas de movimiento tradicionales.
Cuando se alcanza el final del último fichero a paginar, more termina
automáticamente, no así less. También more muestra sucesivamente el porcentaje
del fichero visto hasta el momento.

Tanto less como more proveen una serie de comandos para moverse con facilidad
dentro del texto paginado.

OPCIONES:

q - permite interrumpir el proceso y salir.

/p - realiza búsquedas del patrón p dentro del texto. Para repetir la búsqueda
del mismo patrón sólo es necesario escribir /.

[n]b - en more permite regresar n páginas (por defecto n es 1).

[n]f - en more se adelantan n páginas y en less, n líneas.

El man, para dar formato a su salida, utiliza por defecto el paginador less. Existen
además los comando zless y zmore que permiten paginar con less y more
respectivamente, a los ficheros compactados sin necesidad de descompactarlos
previamente. (Ver sección de Comandos para compactar y agrupar ficheros).

(COMANDOS PARA HACER BUSQUEDAS DE FICHEROS Y PATRONES)

COMANDO GREP

DESCRIPCIÓN: El comando grep (Globally Regular Expressions Pattern) busca patrones


en ficheros. Por defecto devuelve todas las líneas que contienen un patrón
determinado en uno o varios ficheros. Utilizando las opciones se puede variar mucho
este comportamiento. Si no se le pasa ningún fichero como argumento hace la
búsqueda en su entrada estándar.

SINTAXIS:

grep [opciones] <patrón> [ficheros]

OPCIONES:
-c: devuelve sólo la cantidad de líneas que contienen al patrón.

-i: ignora las diferencias entre mayúsculas y minúsculas.

-H: imprime además de las líneas, el nombre del fichero donde se encontró el
patrón. Es así por defecto cuando se hace la búsqueda en más de un fichero.

-l: cuando son múltiples ficheros sólo muestra los nombres de aquellos donde
se encontró al patrón y no las líneas correspondientes.

-v: devuelve las líneas que no contienen el patrón.

-r: busca en un directorio de forma recursiva.

-n: imprime el número de cada línea que contiene al patrón.

EJEMPLOS:

$ grep -H -r linux /usr/share/doc

# grep -n error /var/log/messages

$ grep -i pepe /etc/passwd

$ grep -c root /etc/group

$ grep -l -r -i img /var/www/html/

También podría gustarte