Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

comandos de linux

Este prezi tiene los comandos que más se utilizan en linux
by

Jhon Jairo Arango Tobon

on 12 September 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of comandos de linux

Limpiar pantalla:

$clear
$ ctrl+ l
Login
Password:
Una vez ingresando al sistema se nos ofrece Prompt del interprete de comandos para indicar que se encuentra preparado para recibir ordenes.
Una vez dentro del sistema aparece lo siguiente:

Jhon@jhon_virtual_box: ~$


Nombreusuario nombremaquina directorio persona
Se pueden tener 6 consolas abiertas y la séptima es para la interfaz gráfica.
Ctrl+F1, F2, F3,…F6. La F7 es la interfaz gráfica

Ctrl+alt + F1, F2, F3,…F6. La F7 es la interfaz gráfica
Coloquemos un mensaje de bienvenida

$pico .bashrc
Echo el mensaje que quiero colocar cada vez que me conecte a mi cuenta.

se debe colocar despues de esac.

mensaje a colocar :
echo Bienvenido a la zona del cacharreo.
$pico .bash_history
Aquí se guardan todos los comandos que sean utilizado, se van a guardar hasta un tope.
Usando el comando.

$pico .bashrc le informa cuantos comandos puede guardar en el.bash_history

Buscar las siguientes variables
Tenemos dos variables de entorno para ello, HISTSIZE y HISTFILESIZE, que indican el tamaño del fichero, por ejemplo:

HISTFILESIZE :número máximo de comandos a mantener en el fichero, se rotan a medida que sea necesario.

HISTSIZE: el número de comandos que recuerda (p. ej. cuando se usa el cursor arriba).

HISTSIZE=1000
HISTFILESIZE=1000
Vamos a ingresar al sistema usando las cuentas de los usuarios anteriormente creamos.

En la terminal del usuario #1 trabajamos el editor vi
En la terminal del usuario #2 trabajamos el editor vi
En la terminal del usuario #3 trabajamos el editor vi
Ayudas: usamos el siguiente comando.

$man nombre comando

Para salir de la ayuda

q

Para detener una ayuda o pausa un trabajo

ctrl +z
Para detener la ayuda(pausarla) o un trabajo pausarlo : ctrl +z
Para saber que trabajos tengo pausados:
$bg
Para volver reanular el trabajo donde quede del trabajo suspendido:
$fg
$fg número del trabajo
$fg % número del trabajo
Quienes están conectados en el sistema
$who que usuarios estan conectados en el sistema
$w
$who am i permite información acerca de mi
$ who -a

$who, w combinar con –a. –b. –d ,-H, -T, -m, -q, -u
Vamos a salir de una teminal:

$ exit
$logout
Que día y hora es?

$ date
Mostrar el calendario del mes actual:

$ cal
En que terminal estoy trabajando

$ tty
Donde me encuentro ubicado:

$pwd
El comando ls nos muestra el contenido de un directorio

El comando ls se puede combinar con las siguientes parametros

ls -l Nos muestra toda la información de los archivos como los permisos, el dueño del archivo y grupo al que pertenece, el tamaño del archivo, fecha y hora de creación y nombre del archivo.
more es un filtro para paginar texto, mostrando una pantalla cada vez

$ls –l | more
ls –lh Muestra la misma informacion que ls -l, pero muestra el tamaño en Kbytes, MBytes, etc. para hacer mas facil su lectura al usuario.


ls -r Muestra el contenido de un directorio, al revés.

ls –R Muestra el contenido de un directorio con sus subdirectorios.

ls -S Lista los archivos ordenados por tamaño

ls –F lista la carpeta de trabajo pero los directorio los reconoce por /

ls -a Nos muestra todos los archivos, incluyendo los archivos ocultos.
Cuales trabajos están pausados(detenidos)

$ jobs
Vamos a modificar la información del usuario.

$ chfn:

Revisar si se cambio la información

Finger login del usuario

$pico .bash_history

Aquí se guardan todos los comandos que sean utilizado, se van a guardar hasta un tope.

Usando el comando

$pico .bashrc le informa cuantos comandos puede guardar en el.bash_history
estas son las variables que contiene la información.
HISTSIZE: cantidad de comandos que linux le puede guardar
HISTFILESIZE: cantidad de líneas que puede guardar en el archivo del historial de comandos
cat:
Se utiliza para ver el contenido de un archivo.
Se utiliza para concatenar archivos y mostrarlos por la salida estándar (normalmente la pantalla)
grep:
busca un patrón en uno o más archivos.
wc:
cuenta el número de linea, palabras, letras que tiene un archivo.
who >usuarios
who>>usuarios
more:
Me sirve para ver el contenido de un archivo por pantalla, si el archivo es muy grande me lo permite ver por páginas.
Ejemplo: consultar los usuarios están en este momento en el sistema y llevarlo a un archivo que se llama usuarios, luego ver el contenido del archivo usuarios
Ejemplo

Listar el contenido de la carpeta /dev y llevarla a un archivo que se llama lista y luego mostrarme el archivo en forma pausada
Ejemplo
Listar el contenido de la carpeta /dev con todos sus atributos y llevarla a final del archivo lista y luego mostrarme el archivo en forma pausada
Pg:
Muestra el contenido de un fichero en forma paginada.
Less:
Me sirve para ver el contenido de un
archivo.
Comando awk toma como sus argumentos una instrucción y una lista de nombres de archivos. La instrucción awk se encierra entre comillas simples y se lee como un argumento

$awk 'patrón {acción}' nombre del archivo(s)
ejemplo#1
traer todos los empleados que su nombre sea faustina
ejemplo#1
traer todos los empleados que su nombre sea faustina.

$ awk '$1~ /faustina/ {print }' empleados
ejemplo#2
buscar todos los empleados que su nombre sea faustina y traer solamente los campos: nombre, apellidos, horas trabajadas y salario.
$awk '$1~ /faustina/ {print $1, $2, $3, $5, $6}' empleados
ejemplo # 3
Buscar todas las vendedoras que tiene la empresa.

$ awk '/vendedora/ {print }' empleados
Ejemplo #4
Buscar todos los vendedores que gane más de 900000 y traer solamente el nombre, apellidos, salario.

$ awk ' $7~ /vendedores/ && $6>900000 {print}' empleados
Ejemplo #5
buscar todos los empleados que ganen más de 850000 y que hallan trabajado menos de 40 hora en la semana.
$awk '$6>850000 && $5<40 {print $0}' empleados
Ejemplo #6
buscar todos los empleados que ganen menos de 850000 y que hallan trabajado más de 40 hora en la semana.
$awk '$6<850000 && $5>40 {print $0}' empleados
Ejemplo #7
Buscar todos los empleados que su cargo sea diferente de vendedora
$ awk '$7!~ /vendedora/ {print $0}' empleados
ejemplo #8
buscar los empleados que tengan menos de 35 años o que ganen menos de 790000
awk '$4<35 || $6< 790000 {print $0}' empleados
ejemplo #11

traer todos los directorios que se encuentra en la carpeta de trabajo.
ls -l |awk '/^d/ {print }
ejemplo #10

traer todos los archivos que se encuentra en la carpeta de trabajo.
ls -l |awk '/^-/ {print }
Utilizando el comando cat crear un archivo llamado carpeta con la siguiente información.
cat>carpeta
ls -l |awk '$1~ /^d/ {print}'
luego lo ejecuta de la siguiente manera

$sh carpeta
Otra forma es separar los campos del archivo empleados por un delimitador de campos es :
Cualquier delimitador.
Ejemplo: traer el nombre, primer apellido, segundo apellido y el salario del archivo empleados
$awk -F: ‘{ print $1, $2, $3,$6}’ empleados1
otra forma seria

ls -l>direc luego se realiza lo siguiente

$awk '$1~ /^d/ {print }' direc
otra forma es crear el archivo dir con la siguiente información
$1~ /^d/ {print }
Luego ejecuto la siguiente instrucción
$awk -f dir direc nombre del archivo donde tengo la información.
Trae todos los archivos que se tienen en la carpeta de trabajo y los guarde en un archivo llamado resultado.
$ ls -l |awk '/^-/ {print $0 }'
Utilizando el comando cat crear un archivo llamado lista con la siguiente información.

Cat >lista
ls -l |awk '$1~ /^d/ {print $0}'
luego lo ejecuta de la siguiente manera

$sh lista
Ejemplo: traer el nombre, primer apellido, segundo apellido y el salario del archivo empleados
$awk -F: ‘{ print $1, $2, $3,$6}’ empleados1
Buscar todos los empleados cuyo cargo no sea secretaria y que su salario este entre 650000 y 787000, y su primer apellido empiece por p
Awk –F: ‘$7!~ /secretaria/ && $6>650000 && $6<787000 && $2~ / ^p/ { print}’ empleados1
Buscar todos los empleados cuyo primer apellido termina en z o segundo apellido comienza por v.

Awk –F: ‘$2~ /z$/ || $3~/^v/ { print}’ empleados1
Comando cut: me sirve para cortar(tomar) campos de un archivo pero este sigue inmodificable

Ejemplo traer los campos 1,3,5 del archivo nomina.
El archivo empleados usamos como delimitado un tabulador

$cut –f1,3,5 nomina
Ejemplo cortar los campos nombre, primer apellido, segundo apellido, salario y cargo del archivo nomina.

$cut –f1-3,6-7 nomina
Si el delimitador es distinto del tabulador se debe especificar el delimitador.

Ejemplo traer los campos 1 al 3 y del 5 al 7 del archivo nomina
Vamos a ver cual es delimitador de nomina1
$cat nomina1

Luego realizamos lo siguiente
$ Cut –f 1-3,5-7 d: nomina1

Donde –f1 es el campo que va a cortar(traer)
Donde –d: es el limitador de campos
Cut también me sirve para cortar por caracteres.

Ejemplo: Trae del archivo nomina los caracteres del 1al 5

$ cut -c1-5 nomina
Ejemplo: Trae del archivo nomina los caracteres del 4 al 10 y del 14 al 20

$ cut –c4-10,14-20 empleados.
Ejemplo
Usando el comando pwd y cut traer los caracteres 1, 4,6
Donde pwd me muestra el directorio de trabajo

$pwd |cut –c1,4,6
Ejemplo : listar la carpeta de trabajo con todos sus atributos, y de esa información traer los caracteres del 1al 12 y del 24 al 40

$ls –l | cut –c1-12,24-40

Guardala en un archivo llamado corte

$ls –l |cut –c1-12,24-40 >corte

Para ver el contenido del archivo utilizo

$cat corte
paste: me sirve para pegar dos o más ficheros

ejemplo
cortar el campo 1 del archivo nomina y guardarlo en un archivo llamado d1

cortar el campo2 del archivo nomina y guardarlo en un archivo llamado d2
cortar el campo 3 del archivo nomina y guardarlo en un archivo llamado d3

cut –f1 nomina >d1
cut –f2 nomina>d2
cut –f3 nomina>d3
mirar el contenido de dichos archivos

$cat d1 d2 d3

Usando el comando paste pegar los archivos d1, d2, d3 y guardar la información en un archivo llamado pegar
$paste d1 d2 d3 >pegar
Sort: me sirve para organizar un archivo
en orden alfabético.
Sort los campos se identifican desde 1,2,3…

$sort lista

Organizar el archivo nomina por nombres
Si el campo es numérico debo especificarlo : -n
Para especificar un determinado campo utilizo : -k número del campo
Si el archivo tiene un delimitador debo especificarlo : -t delimitador
Ejemplo
Organizar el archivo nomina por el campo 1apellido y guardar dicha información en un archivo llamado empleados1
Sort –k2 empleados>empleados1
cat empleados1
luego organizar el archivo empleados1 por segundo apellido en forma
descendente y guardalo en un archivo llamado empleados2.

Ejemplo organizar el archivo empleados por el campo salario.
Sort –nk6 nomina
Ejemplo organizar el archivo nomina por el campo salario en forma inversa.
Sort –rnk6 nomina
Ejemplo organizar el archivo nomina1 por el campo primer apellido.
delimitador de campo es dos puntos :
Sort –k1 -t: nomina1
Si aparece este promp # quiere decir que es un administrador.
#
Cuando entre al sistema y le aparece el prompt # quiere decir que es administrador.
#
Para crear una cuenta a un usuario se digita lo siguiente.
Debe esta como administrador
crear la cuenta jjat1
$sudo useradd -g matemáticas -d /home/jjat1 -m -s
/bin/bash jjat1
Donde:
-g grupo debe ya estar creado
-d directorio de trabajo
-m crea el directorio home
-s intérprete de comandos
ahora vamos a crear la contraseña a jjat1
#sudo passwd jjat1
entonces el sistema nos preguntará dos veces la contraseña que queremos asignar a jjat1

Linux tiene varios editores los cuales son:
pico
jpico
nano
vi
Tarea: usando un editor de linux crear un archivo que tenga la siguiente información
Nombre apellidos edad
Guárdalo con el nombre clientes
Si queremos crear nuevos grupos
#groupadd nombre del grupo
tarea crear dos grupos:
sistemas
contabilidad
luego crear cuenta a dos usuarios y cada uno tenga un grupo principal y dos grupos secundarios

$ps : El comando ps permite comprobar el estado de los procesos activos en un sistema y mostrar información técnica sobre los procesos. Estos datos son útiles para tareas administrativas.

$ps -aux
Muestra una tabla donde cada fila es un proceso y las columnas contienen la siguiente información:
USER: usuario con el que se ejecuta el proceso
PID: ID del proceso
%CPU: porcentaje de tiempo que el proceso estuvo en ejecución desde que se inició
%MEM: porcentaje de memoria física utilizada
VSZ: memoria virtual del proceso medida en KiB
RSS: "resident set size", es la cantidad de memoria física no swappeada que la tarea a utilizado (en KiB)
TT: terminal que controla el proceso (tty)
STAT: código de estado del proceso (información detallada más adelante)
STARTED: fecha de inicio del proceso
TIME: tiempo de CPU acumulado
COMMAND: comando con todos sus argumentos

Los códigos de estado del proceso pueden ser:
D: suspendido no interrumpible (generalmente esperando E/S)
R: en ejecución o listo para ejecutarse (en cola)
S: suspendido interrumpible (esperando que se complete un evento)
T: detenido, por una señal de control de trabajo o porque está siendo traceado
W: paginado (no válido a partir del kernel 2.6.xx)
X: muerto (nunca debe ser visto)
Z: proceso difunto ("zombie"), terminado pero no reclamado por el proceso padre
groupadd: Permite añadir un grupo al sistema
$ sudo groupadd matemáticas
$ sudo groupadd química
$ sudo groupadd física
$veamos si los creo.
$cat /etc/group

Otra forma es separar los campos del archivo empleados por un delimitador de campos es :
o Cualquier otro delimitador.
Asignemos dos grupos secundarios jjat6:

$sudo usermod -G química,tecnología -a jjat6

Otra forma seria dando identificador del grupo

$sudo usermod -G 1001,1002 -a jjat6

ver la carpeta /etc/passwd

$less /etc/passwd
$more /etc/passswd
$cat /etc/passwd
vamos a crear una cuenta al usuario jjat usando
$sudo adduser jjat
luego usando less veamos el archivo group y el archivo passwd con la información de ese usuario que acabo de crear
El programa su permite usar el intérprete de comandos de otro usuario sin necesidad de cerrar la sesión actual:
jota$su jhon
password.
jhon$
crear una cuenta de un usuario con useradd:

$sudo useradd -d /home/jhon4 -s /bin/bash -u 1004 -c "hola que tal" jhon4
Rutas donde se encuentra los comandos:
$ ls - l /bin/cat
$ ls - l /bin/grep
$ ls - l /usr/bin/wc

Los caracteres atribuidos a los permisos son:
r: quiere decir lectura y viene de Read
w: quiere decir escritura y viene de Write
x: quiere decir ejecución y viene de eXecute
Permisos para el dueño, grupo y usuario general:

-rwxrwxrxw ventas
-: indica qe es un archivo
d:que es un directorio
los tres primeros caracteres son para el dueño
los tres siguientes caracteres son para el grupo
los tres último caracteres son para el u.general


lectura =4
escritura=2
ejecución=1
El comando que me permite cambiar los permisos es chmod:

$chmod 777 nombre_del_archivo
$chmod 421 nombre_del_archivo

Eliminar un usuario
$sudo userdel jjat6
$orden [-opciones] [argumentos]



Nombre Una o más nombres de archivos

orden letras nombres de caminos





#sudo useradd -g 1001 -d /home/jjat5 -m -s
/bin/bash -c "soy linux" -G 1002, 1003 -e 20160229 -f 1 jjat5
miremos como quedo
$sudo less /etc/shadow
sudo less /etc/shadown
jjat5:!:16879:0:99999:7: : :

jjat4:$633aaa:16879:0:99999:7: 0:20160229 :

usuario sin contraseña:
$ sudo passwd -d jjat1

$less /etc/shadow
la segunda columna : :


volver a que el usuario tenga que entrar con contraseña:

$sudo passwd jjat4
en el segundo campo aparece la contraseña cifrada :az23344&ddd:
Bloquear la cuenta de un usuario

$sudo passwd -l jjat1

miremos como quedo ese campo

$sudo less /etc/shadow
en el campo 2 aparece esto :!azzzzxxz:
desbloquear la cuenta de un usuario

$sudo passwd -u jjat1

miremos como quedo ese campo

$sudo less /etc/shadow
Comando id muestra el identificador del usuario, grupo principal, grupo secundarios
$ id
crear un usuario:
$sudo adduser jjat6

veamos que grupo principal tiene jjat6

less /etc/group

si queremos incluir el usuario jjat6 en el grupo primario tecnología:

$sudo usermod jjat6 -g tecnología

El usuario jjat1 tenga dos grupos secundarios:

$sudo usermod -G química,fisica -a jjat1
El comando chfn me permite cambiar la información personal:

$sudo chfn jjat1

Si quiero cambiar la carpeta de trabajo con toda la información en ella realizo lo siguiente:

$sudo usermod -L jjat6 -d /home/trabajos -m
veamos a ver si la cambio

$less /etc/passwd


Cambiar el nombre del usuario:

$sudo usermod -l jhon jjat6

cambiamos el nombre del usuario jjat6 por jhon

$less /etc/passwd
usando el comando usermod con los siguientes parametros:
-c: añade o modifica el comentario en el campo 5 del archivo passwd.
-d: modificar el directorio de trabajo o home en el campo 6
-e: cambia o establece la fecha de experición de la cuenta en el campo 8 del archivo shadow.
-g: cambia el grupo principaldel usuario en el campo 4 del archivo group.
-G: establece grupos secundarios separados por comas
• -l cambia el login o nombre del usuario, campo 1 de /etc/passwd y de /etc/shadow
• -L bloque la cuenta del usuario, no permitiendolé que ingrese al sistema. No borra ni cambia nada del usuario, solo lo deshabilita.
• -s cambia el shell por defecto del usuario cuando ingrese al sistema.
• -u cambia el UID del usuario.
• -U desbloquea una cuenta previamente bloqueada con la opción -L.


EL comando muestra los valores implicitos normales que se asignan al nuevo usuario si no se toma una acción especifíca. estos valores estan guardados en el /etc/skel

$sudo useradd -D


Para definir el máximo número de días que una contraseña pude estar activa antes de que sea modificada se utiliza la opción -x junto con el número de días.

$sudo passwd -x 12 jjat6

Para definir el número mínimo de días que una contraseña debe estar activa antes de que pueda ser modificada se utiliza la opción -n junto con el número de días.

$sudo passwd -n 20 jjat6
Para saber el estado de la contraseña del usuario con la opcion -s

$sudo passwd -s jjat6

$sudo usermod jjat6 -c jota
$sudo usermod jjat6 -c "hola que tal, como vamos, muy bien
cambiar el directorio de trabajo

$sudo usermod jjat6 -d /home/jota
cambio de fecha de experición del password

$sudo usermod jjat6 -e 20160305

cambio grupo principal

$sudo usermod jhon -g pregrado

establece grupos secundarios
$sudo usermod jhon -G posgrado, maestria

Cambiar el login
$sudo usermod jhon -l jota

bloquear la cuenta

$sudo usermod jhon -L

Desbloquear la cuenta

$sudo usermod jhon -U




Mostrar los grupos que pertenece un usuario

$group login
Cambiar el GID del grupo este debe existir:

$sudo groupmod -g 1008 nuevogrupo
$sudo groupmod -g 1008 química

cambiar el nombre
$sudo groupmod -n linux sistemas


Eliminar un grupo:
Antes de eliminar un grupo debe saber que este grupo principal no pertenezca a un usuario, ya que no lo deja eliminar.
La única manera de eliminarlo es que elimine la cuenta del usuario.

$sudo groupdel grupo

Comando que me sirve para cambiar los permisos: u:usuario g grupo, o otro

$ chmod 777 nombre del archivo
$chmod u -rwx

Crear las siguientes cuentas

Usuario Grupo principal Grupo secundario
Rufi Barcelona sevilla, valencia
casica Real málaga,coruña
safu zaragoza málaga

Luego asignar el passwd a cada uno de esos usuario











En la consola#1 ubicamos a Rufi
editamos el archivo clientes1
$vi clientes1

luisa toro 31
anafea velez 27
xuxa gomez 24
sosa hueso 26

En la consola#2 ubicamos a casica
editamos el archivo clientes2
$vi clientes2

isapo toro 31
featy velez 27
xuxa torres 24
xuxa gato 26
En la consola#3 ubicamos a safu
editamos el archivo clientes3
$vi clientes3

xuxa peña 47
difi uva 32
xuxa monte 54
furza gato 45
ejecutemos la siguiente instrucción:
$cat
Rufi ejecuta la siguiente instrucción

$cat clientes1 /home/casica/clientes2 /home/safu/clientes3
Que mostro la anterior instrucción.

$cat clientes1 /home/casica/clientes2 /home/safu/clientes3 ""#$$%%%&&&&&&&/=?¡*¨P]'



El usuario rufi ejecuta la siguiente instrucción:

$cat clientes1 /home/casica/clientes2
Que muestro la orden anterior

$cat clientes1 /home/casica/clientes2|grep xuxa
Que muestro la orden anterior

$cat clientes1 /home/casica/clientes2|grep xuxa |wc -l

Que muestro la orden anterior


comando para cambiar permisos:
$chmod
dueño =u
grupo= g
otro = o
Asignar solamente los permisos de lectura al dueño, grupo y usuario general al archivo clientes1

$chmod =r clientes1

otra forma seria:
lectura = r equivale siempre al número 4
escritura = w equivale siempre al número 2
ejecución = x equivale siempre al número 1

al sumar los tres número equivale a 7 es decir tiene todos los permisos.

Asignar solamente los permisos de lectura al dueño, grupo y usuario general del archivo

$chmod 444 nombre del archivo


Ejercicio
El archivos clientes1 solamente tenga permiso de lectura para el dueño, lectura y ejecución para el grupo y lectura y escritura para el usuario general.
u:dueño g:grupo o:usuario general(otro)

chmod u+r-wx,g+rx-w,o+rw-x clientes1

otra forma seria

chmod 456 clientes1
vamos a cambiar los permisos al archivo cat

dueño tenga lectura, escritura, ejecución
Grupo tenga solamente permiso de escritura
usuario general solamente permiso de lectura.
usando las letras.

$chmod

Rufi ejecuta la siguiente orden en el computador

$cat clientes1 /home/casica/clientes2 |grep xuxa|wc -l
identificar con cuales permisos va a trabajar Rufi para los archivos con los cuales trabajo.

vamos a cambiar los permisos al archivo cat

dueño tenga lectura, escritura, ejecución
grupo tenga solamente permiso de escritura
usuario general solamente permiso de lectura y ejecución.
usando las letras.

$chmod
Rufi ejecuta la siguiente orden en el computador

$cat clientes1 /home/casica/clientes2 |grep xuxa|wc -l
vamos a cambiar los permisos al archivo grep

dueño tenga lectura, escritura, ejecución
Grupo tenga permiso de lectura y ejecución usuario general solamente permiso de lectura.
usando las letras.

$chmod
Rufi ejecuta la siguiente orden en el computador

$cat clientes1 /home/casica/clientes2 |grep xuxa|wc -l
vamos a cambiar los permisos al archivo grep

dueño tenga lectura, escritura, ejecución
Grupo tenga permiso de lectura y ejecución usuario general tenga permiso de lectura y ejecución
usando número.

$chmod
Rufi ejecuta la siguiente orden en el computador

$cat clientes1 /home/casica/clientes2 |grep xuxa|wc -l
vamos a cambiar los permisos al archivo wc

dueño tenga lectura, escritura, ejecución
Grupo tenga permiso de lectura y ejecución usuario
general tenga permiso de lectura y escritura
usando letras.

$chmod
Rufi ejecuta la siguiente orden en el computador

$cat clientes1 /home/casica/clientes2 |grep xuxa|wc -l
vamos a cambiar los permisos al archivo wc

dueño tenga lectura, escritura, ejecución
Grupo tenga permiso de lectura y ejecución usuario
general tenga permiso de lectura y ejecución
usando números.

$chmod
Rufi ejecuta la siguiente orden en el computador

$cat clientes1 /home/casica/clientes2 |grep xuxa|wc -l
Vamos a que Rufi tenga también como grupo secundario root.
ejecutemos la siguiente instrucción

$cat clientes1 /home/safu/clientes3 |grep xuxa |wc -l

Identificar con cuales permisos va a trabajar Rufi cuando ejecuto la instrucción(dueño, grupo, usuario general)

casica ejecuta la siguiente orden en el computador

$cat clientes2 /home/Rufi/clientes1 /home/safu/clientes3 |grep xuxa|wc -l

identificar con cuales permisos va a trabajar Casica(dueño, grupo, usuario general)
Safu ejecuta la siguiente orden en el computador

$cat clientes3 /home/casica/clientes2 /home/rufi/clientes1 |grep xuxa|wc -l

identificar con cuales permisos va a trabajar Safu (dueño, grupo, usuario general)
Rufi que es la dueña del archivo clientes1 solo va tener el permiso de lectura, escritura y ejecución al dueño, el grupo y el usuario general solamente tiene permiso de ejecución
casica ejecuta la siguiente orden en el computador

$cat /home/rufi/clientes1 |grep xuxa|wc -l

explique claramente que ocurrió


El comando cat tambien me sirve para crear un nuevo archivo:

$cat>nombre del archivo
tras escribir en el archivo presione ctrl +d para finalizar el archivo

Para añadir información en el mismo archivo utilice el operador de adicción >>

$cat >>nombre del archivo

Para concatenar varios archivos y transferir la salida a otro archivo realizo lo siguiente

$cat archivo1 archivo2 archivo3 >archivo4

quiero ver el contenido del archivo4

$cat archivo4
El comando grep busca uno o más patrones en un archivo.
mostrar las líneas de un fichero que contiene xuxa, luisa

$grep -e "luisa" -e "xuxa" clientes1

Si quiero saber en que número de la línea del archivo se encuentra lo que busco realizo lo siguiente

$grep -n -e "luisa" -e "xuxa" clientes1
Buscar las líneas que no conciden con el patrón buscado.

$grep -v -e "xuxa" clientes1 clientes2

Ignora la distinción entre mayúsculas y minúsculas
$grep -i -e "xuxa" clientes1

grep:

Nos imprime el nombre del archivo con cada concidencia

$grep -H -e "xuxa" clientes1

Usando el comando grep buscar todos los archivos de la carpeta de trabajo

$ ls -l |grep '^-'

Busca todas las líneas que termine en 5
$ grep '5$' clientes1

Busca todas las líneas que contengan palabras que comiencen con la cadena xu

$grep '\<xu' clientes1





Para "navegar" sobre el historial se utilizan las siguientes teclas:

Flechas o Control-p, Control-n




quien soy yo
$ who
$whoami
El programa su permite usar el intérprete de comandos de otro usuario sin necesidad de cerrar la sesión actual
tdea$su batman

se encuentra bajo el usuario "batman", sigue en la misma carpeta de trabajo de antes y beneficia de la configuración del usuario de antes(shell, los permisos, etc)

Para saber donde estoy ubicado(osea la carpeta de trabajo en ese momento) le doy el siguiente comando:

$pwd

para salir batman:
$ exit
ya estoy en tdea.
tdea$


Iniciar un nuevo shell de conexión con su -
el "-" fuerza al inicio de un nuevo shell de conexión
con las preferencias por defecto del usuario batman
tdea$su - batman
miremos donde estamos ubicados
$pwd

Quien soy yo

$ whoami
$who
crear un archivo llamado clientes20

$vi clientes20
para salir del usuario batman

$exit o $ctrl+d

Si inserta el comando "exit" o "Ctrl-d" a partir del shell de conexión general (inicial), se encontrara desconectado del sistema (Unix - GNU/Linux).

-Si estaba conectado (en un shell) como root y inserta el comando "su user", el sistema no exigira ninguna contraseña.
Un administrador de sistemas debe tener mucho cuidado al elegir una contraseña para la cuenta de root/administrador, para evitar un ataque por parte de un usuario no privilegiado que ejecute su. Algunos sistemas de tipo Unix tienen un grupo de usuarios llamado wheel, que comprende a los únicos que pueden ejecutar su. Esto podría o no reducir los problemas de seguridad, ya que un intruso podría simplemente apoderarse de una de esas cuentas. El su de GNU, sin embargo, no admite el uso de ese grupo; esto se hizo por razones filosóficas.
Sudo

Un comando relacionado, llamado sudo, ejecuta un comando como otro usuario, pero respetando una serie de restricciones sobre qué usuarios pueden ejecutar qué comandos en nombre de qué otros usuarios (usualmente especificadas en el archivo /etc/sudoers).

Por otro lado, a diferencia de su, sudo pide a los usuarios su propia contraseña en lugar de la del usuario requerido; esto permite la delegación de comandos a usuarios en otras máquinas sin tener que compartir contraseñas, reduciendo el riesgo de dejar terminales desatendidas.
$sudo su

#promp de administrador
#who

$sudo -s
#promp de administrador
$whoami

$sudo comando
pero si hay que ejecutar muchos podemos hacer

$sudo -i
mejor que sudo su
vamos a trabajar wc
cuenta el número de líneas, palabras,caracteres que tiene el archivo /etc/passwd.

$wc /etc/passwd

para múltiples archivos

$wc /etc/shells /etc/group

muestra el número de caracteres en el archivo passwd

$wc -c /etc/passwd

muestra el número de línea en el archivo passwd

$wc -l /etc/passwd

muestra el número de palabras en el archivo passwd

$wc -w /etc/passwd






Archivo llamado empleados
Nombre 1apell 2apelli edad horastrabajadas salario cargo
faustina salazar vaca 31 30 1000000 vendedora2
rufina jaramillo velez 43 48 750000 secretaria
filomena peña gomez 23 40 700000 auxiliar
anafea perez carmona 54 48 790000 vendedora1
faustina toro puerta 31 30 1000000 vendedora2
anacarota lopez cuervo 25 36 3000000 administradora.








ejemplo
traer todos los empleados que su nombre empiece por f que su segundo apellido termine en z.

$ awk '$1~/^f/ && $3~/z$/ {print }' empleados
Archivo llamado empleados1
Separador de campos es dos puntos (:)

Nombre 1apell 2apelli edad horastrabajadas salario cargo
faustina:salazar:vaca:31:30:1000000:vendedora
rufina:jaramillo:velez:43:48:750000:secretaria
filomena:peña:gomez:23:40:700000:auxiliar
anafea:perez:carmona:54:48:790000:vendedora
fifi:toro:puerta:31:30:1000000:vendedora
anacarota: lopez:cuervo:25:36:3000000:administradora.

ejemplo#1
traer todos los empleados que su nombre sea faustina o rufina.

$ awk -F: '$1~ /faustina/ || $1~ /rufina/ {print }' empleados1
Ejemplo #2
Buscar todos los vendedores que gane más de 900000 y traer solamente el nombre, apellidos, salario.

$awk -F: '$7~ /vendedores/ && $6>900000 {print $1,$2,$3,$6}' empleados1
Ejemplo #3
Buscar todos los empleados cuyo segundo apellido empiece por v y que ganen menos de 777000, traer solamente el nombre, apellidos, salario cargo y guardalo en un archivo llamado empleados3.

$awk -F: '$2~ /^v/ && $6<7770000 {print $1,$2,$3,$6, $7}' empleados1 >empleados3
Archivo llamado nomina
Nombre 1apell 2apelli edad horastrabajadas salario cargo
silona builes casas 31 44 666000 vendedora
rufina villa tiosa 43 25 755000 secretaria
pepa peña lula 23 34 770001 auxiliar
luisa florez desca 54 23 690002 bodega
anacreta toro cuervo 31 19 888008 auxiliar
selena lopez verlon 15 21 456007 bodega

alias: me sirve para cambiar el entorno del shell.
para establecer el alias se utiliza la orden alias
si quiero crear un alias que me liste el contenido de la carpeta de trabajo con todos sus atributos realizo lo siguiente:

$alias listar="ls -l"
para saber que usuarios están conectados en el sistemas sería:
$alias usuario="who"

limpiar pantalla
alias limpiar="clear"
se puede eliminar un alias con la orden unalias

$unalias limpiar




Utilizando el comando cut traer los siguientes campos nombre, apellidos, salario.

Cat >lista1
cut -f1,2,3,7 |awk '$1~ /^d/ {print $0}'
luego lo ejecuta de la siguiente manera

sh lista1

paste: me sirve para pegar dos o más ficheros

$ ls |paste - -

$ls -l |paste --

$paste nomina

$paste nomina -s
$paste -d, -s nomina
$paste -d -s nomina
$paste -d: nomina nomina1
para eliminar un proceso:
$ps

$kill -9 identificador del proceso
para saber que procesos tengo suspendidos:

$jobs

comando que me permite mostrar las últimas 10 líneas de un archivo.

$tail nombre del archivo
$tail -n5 nombre archivo
$tail -n 5 nombre archivo

-c: Permite especificar el numero de caracteres a desplegar, en vez de lineas.
$tail -c20 nombre del archivo

-q: Evita que se muestren los títulos de los archivos especificados

$tail -q -n5 nombres de los archivos

El comando head me permite ver las primeras 10 líneas de un archivo.

$head nombre archivo
$head -5 nombre del archivo
shutdown -h now: apagar el sistema (1).
init 0: apagar el sistema (2).
telinit 0: apagar el sistema (3).
halt: apagar el sistema (4).
shutdown -h hours:minutes &: apagado planificado del sistema.
shutdown -c: cancelar un apagado planificado del sistema.
shutdown -r now: reiniciar (1).
reboot: reiniciar (2).
logout: cerrar sesión.
Líneas de ordenes el shell
$orden <fichero_datos
en donde el caracter < indica a unix que la entrada de orden es leida del fichero_datos

$orden>fichero_datos
en vez de imprimir por pantalla se almacena en un fichero_datos, si el fichero no existiera se crea en la ejecución; si ya existiera, su contenido previo es destruido y sustituido por la salida de la ejecución.

$orden>>fichero
en vez de imprimir por pantalla se almacena en un fichero si este existe se lleva el resultado al final del contenido de dicho fichero.
Grupo de ordenes: en unix es un conjunto de órdenes que pueden ejecutarse secuencialmente, o con encadenamiento de entradas / salidas. una secuencia de órdenes permite la ejecución de varias órdenes en una sola línea cuando están separadas entre sí por puntos y coma:
ejemplo

$date;ls: who;ls -a;

Bibliografía

Programación avanza en unix. Jose M. Canosa. Mc Graw-Hill

Formatos de las ordenes de shell ejemplo

orden ls
orden argumento cat fichero
orden argumento argumento cat fichero1 fichero2
orden opción argumento ls -l fichero
orden opción argumento argumento ls -l fichero

Las opciones de las ordenes de unix van precedidas por los símbolos "-" "+"
y las órdenes opciones y argumentos están siempreseparadas entre sí por uno o más espacios en blanco.


En el entorno Shell, existentes generalmente en un sistema linux cuano un usuario crea un fichero lo hace por defecto, con las autorizaciones correspondientes .

Máscara fichero
000 777
022 755
033 744
077 700
en donde cada cifra en la última columna designa el nivel de autorización correspondiente a cada categoría de usuarios(propietario, grupos y otros)
para saber la mascara se usa el siguiente comando.
$umask
para cambiar la mascara:

$umask 022




Las ayudas para linux

$man comando
$man ls

Si quiero las ayudas en español

$ sudo apt-get install manpages-es

Las ayudas en linux

$man nombre_comando
$man ls
para que las ayudas estén en español

$sudo apt-get install manpages-es
probar
$man ls

|
Aumenta el tamaño de la interfaz gráfica:
usamos el comando:
ctrl +
disminuir:
ctrl -
Full transcript