Chuleta Linux (2017)

Resumen Español
Universidad Universidad Politécnica de Cataluña (UPC)
Grado Ingeniería de Sistemas de Telecomunicación - 2º curso
Asignatura Sistemes Operatius
Año del apunte 2017
Páginas 1
Fecha de subida 19/06/2017
Descargas 3
Subido por

Vista previa del texto

clear: limpiar terminal who am I: información usuario pwd: directorio actual cal: calendario del mes actual date: fecha, hora, zona horaria touch doc1: crear fichero txt “doc1” vacío mkdir Maria: crear direct. Maria en direct. actual mkdir /Escritorio/carpeta: crear carpeta en Escr.
cd: cambiar de directorio (ej. cd Escritorio) cat > doc1: crear txt con texto intr. por terminal cat doc1 doc 2 > doc 3: crear doc3 con doc1 doc2 mv doc1 doc2: cambiar nombre del doc1 a doc2 rm doc1: eliminar fichero doc1 rm –r carpeta (o rmdir carpeta): eliminar carpeta cp doc1 Escritorio/doc1_copia: copiar fichero doc1 al Escritorio con el nombre doc1_copia ln doc1 linkdoc1: crear hardlink de doc1 ln –s doc1 doc2: crear softlink de doc1 ls: listar todo lo que hay en el directorio actual ls Escritorio: listar lo que hay en ese directorio ls –l: listar con detalle ls-a: listar todo (con archivos ocultos) file *: listar lo que hay en el directorio (más info) chmod XXX doc1: cambiar permisos fichero (leer escribir ejecutar) chmod +/- r/w/x doc1: cambiar permisos uname: obtener información sobre el sistema cat doc1: imprimir en pantalla texto del fichero wc doc1: num de líneas, palabras y caracteres (wc –l doc1 (líneas), wc –w doc1 (palabras)) sort doc1: ordena alfabéticamente texto de doc1 sort (+texto): ordenar alf. texto introducido cut –d “-“ – f 1,3 doc1: imprimir en pantalla primera y tercera palabra de 3 palabras separadas por un guión en el doc1 dd if = doc1 of=doc2 : cambiar los caracteres del doc1 a mayúsculas y guardarlo en doc2 man: ayuda sobre comandos compress doc1: comprimir doc1 zcat doc1.z: printar texto de doc1 (comprimido) uncompress doc1.z: descomprimir doc1.z echo “Hola”: printar Hola en el terminal echo $#: obtener num de variables guardadas read mi_nombre: lee información introducida por teclado y la guarda en la variable mi_nombre \n: nueva línea \r: descartar todo lo anterior \t: tabular texto \b: borrar carácter anterior \033[1m texto \033[0m: escribir en negrita if [-f $fname]: comprobar si fname es un fichero ( -s: tamaño más grande que 0, -d: directorio, -b: imágenes y vídeos, -x: permiso ejecución, -r: permiso de lectura, -w: permiso escritura ) if [ “$frase1” = “$frase2” ]: comprobar si son iguales los dos strings ( != (diferentes), -n (largada <0), -z (largada = 0) ) [ $num –le 100 –a $num –ge 50] : comprobar si el número es < 100 Y > 50 [ $letra = a –o $letra = e ] : comprobar si la letra es una ‘a’ O una ‘e’ grep hola doc1: buscar en el doc1 la palabra hola y printar todas las líneas dónde aparece ( -i (no distingue mayus y min), -n (numero de línea), -c (num de veces que aparece) ) IFS = : (cambiar separación por defecto) tput cols: número de columnas tput lines: número de líneas tput cup 15 20: ir a la fila 15 columna 20 sleep: parar un bucle durante X segundos ls muestra contenidos del directorio actual ls -a contenidos + ocultos .nombre ls unixtuff me dice o que hay dentro de “unixtuff” ls unixtuff/backups dice o que hay dentro de “backups” (que no se encuentra en la carpeta actual, sino dentro de unixtuff) ls ~/unixtuff que hay dentro de “unixtuff” donde ~/ es el home directori ls ~ solo en este caso (en otro se debe ir con nombre/nombre ) te enseña lo que hay en home ls ~/.. te dice tu usuario: home/Antonia  Antonia mkdir nombre crea un nuevo directorio cd nombre entra a la carpeta “nombre” (debe estar dentro del directorio actual) cd . se queda en la carpeta cd .. pasa a una carpeta antes cd o cd ~ se va a home pwd (print working directori) me dice el path de carpetas en las que estoy cp /carpeta1/carpeta2/archivo.txt me copia en la carpeta actual el archivo.txt de la carpeta 2 cp /carpeta1/carpeta2/archivo.bak puedo crear un backup cambiando el nombre al archivo por .bak mv archivo.bak backups/. Muevo el archivo a la carpeta backups, si fuese /.. lo movería a una carpeta antes de backups.
rm archivo.bak elimina el archivo.bak rmdir elimina el directorio (carpeta) vacio clear limpia la pantalla terminal cat >> list1 edita el archivo list1, añadiendo lo que escribas, guardas y sales con [Ctrl] + d .
cat list1 list2 >> biglist junta ambas listas en “biglist” > : To redirect the output, hace cualquier function en el archivo que crees < : To redirect the input, hace cualquier function desde el archivo que escojas sort ordena alfabeticamente el archive sort > list2 ordena alfabéticamente la lista2 sort < list2 > nuevalista ordena alfabéticamente la lista2 y lo guarda en “nuevalista” Buscar, contar less archivo.txt / keyword busca dentro del txt la palabra “keyword” n para pasar de un resultado a otro (de la palabra) grep keyword archivo.txt imprime por pantalla cada línea con ese “keyword” distingue minúsculas de mayúsculas grep -i keyword archivo.txt ya no distingue mayusculas de minusculas -v imprime las que NO lleven “keyword” -n imprimiré en pantalla+ línea en la que se encuentra cada una -c # total de líneas que llevan “keyword” -ic #total líneas que llevan “keyword” sin importar mayúsculas ni minúsculas grep ‘frase aqui’ archivo.txt para buscar frases ‘’ en lugar de palabras wc –w archivo.txt para contar cuantas palabras tiene -l para contar cuantas líneas tiene -c para contar cuantas letras tiene who me dice que otros usuarios estan conmigo who > names.txt me guarda los usuarios en el archivo names.txt sort < names.txt me ordena alfabeticamente los usuarios del archivo names.txt who | sort me hace lo de arriba (las dos a la vez) who | wc -l me dice cuantos usuarios están conectados Changing access rights chmod go-rwx biglist da permisos de borrar, leer, escribir en biglist a grupo y otros chmod a+rw biglist da permisos de leer y escribir en biglist a todos kill jobnumber To kill a suspended or background process, type EJEMPLOS 1. Guardar nombre en variable echo “Introduce tu nombre” read mi_nombre echo “Tu nombre es $mi_nombre” 2. Cambiar nombre del doc que introducimos por teclado al nombre que también introduc.
echo “Nombre del documento y nuevo nombre” read fichero nuevo_nombre mv $fichero $nuevo_nombre 3. Cambiar nombre del doc que introducimos por teclado a “nombre.usuario” echo “Nombre del fichero” read nombre set ‘who am I’ mv $nombre $nombre.$1 4. Operaciones matemáticas a = 37 b = 15 echo ‘expr $a + $b’ (suma +, resta -, mult \* div /) 5. Operaciones con decimales a = 10.5 b = 3.5 echo ‘$a + $b | bc’ 6. Programa simple con if-else echo “Escribe nombre del txt que quieres renombrar y el nuevo nombre” read nombre nuevo_nombre if mv $nombre $nuevo_nombre then echo “Operación realizada” else echo “Operación no realizada” fi 7. Programa simple con if-else-elif echo “Escribe numero entre 10 y 20” read num if [ $num –lt 10 ] then echo “El número está por debajo del rango” elif [ $num –gt 20 ] then echo “El número está por encima del rango” else echo “Dentro del rango” fi 8. Introducir texto al final de un fichero echo “Introduce nombre del fichero” read fichero if [ -f $fichero ] then if [ -w $fichero] then echo “Escribe texto” cat >> $fichero else echo “No tienes permisos” fi fi 9. Contar num letras introducidas echo “Escribe una sola letra” read letra if [‘echo $letra | wc –c’ –eq 2 ] then echo “Una sola letra” else echo “Más de una letra” fi 10. Ejemplo de case echo “Introduce un carácter” read car case $car in [a-z]) echo “Letra minúscula” ;; [A-Z]) echo “Letra mayúscula” ;; [0-9]) echo “Número” ;; ?) echo “Símbolo” ;; *) echo “No se reconoce” ;; esac 11. Ejemplo de case echo “Introduce una palabra” read palabra case $palabra in [aeiou]*|[AEIOU]*) echo “La palabra empieza con una vocal” ;; *[aeiou]|*[0-9]) echo “La palabra acaba con vocal o número” ;; *) echo “Formato no reconocido” 12. Ejemplo de while count = 0 while [$count –le 15] do echo “$count bucle(s)” count=’expr $count +1’ done 13. Ejemplo de until count=1 until [$count –ge 10] do echo “$count bucle(s)” count ‘expr $count +1’ done 14. Ejemplo de for. Escribe en pantalla todos los nombres de los directorios que tenemos en el directorio actual for item in * do if [-d $item] then echo $item fi done 15. Tenemos información guardada como usuario:contraseña:id en un fichero con más información. Lo buscamos y printamos solo el id del usuario que recibimos por el terminal echo “Introduce usuario” read usuario line = ‘grep $usuario /etc/fichero’ IFS =: set $line echo “id del usuario: $3” 16.Escribir el texto de un fichero (introducido por terminal) con el número de línea delante de la correspondiente línea echo “Nombre del fichero” read fichero if [-z $fichero] then exit fi terminal = ‘tty’ exec < $fichero count=1 while read line do echo $count.$line count = ‘expr $count+1’ done exec < $terminal 17.Contar número de palabras y líneas en un fichero echo “Introduce el nombre de un fichero” read fichero terminal = ‘tty’ exec < $fichero numl=0 nump=0 while read line do numl=’expr $numl+1’ set $line nump=’expr $nump +$#’ done echo “Número de líneas: $numl” echo “Número de palabras: $nump” exec < $terminal 18. Guardar en el fichero help la información de los comandos guardados en el fichero command (obtenemos la info con el comando man) for comando in ‘cat commandlist’ do man $comando >> help done 19. Obtener todas las combinaciones posibles de números de tres cifras con el 1,2,3 a=1 while [$a –le 3] do b=1 while [$b –le 3] do c=1 while [$c -le 3] do echo “$a$b$c” c=’expr $c +1’ done b=’expr $b +1’ done a=’expr $a +1’ done Recibe como parámetro dos nombres. El primero es el nombre de un fichero y el segundo el de un directorio. El script debe hacer una copia del fichero, comprimir la copia y moverla al directorio que debe crear primero cp $1 copia_$1 gzip copia_$1 mkdir $2 mv copia* $2 Escribir el código de un Shell script que se comporte como una calculadora sencilla.
Recibirá tres parámetros: un número, un carácter y otro número. El carácter indicará la operación que debe hacer con los dos números.
Las posibilidades son: ‘+’ suma, ‘-‘ resta, ‘M’ multiplicación y ‘D’ división.
case $2 in +) res=`expr $1 + $3` ;; -) res=`expr $1 - $3` ;; M) res=`expr $1 \* $3` ;; D) res=`expr $1 / $3` ;; esac echo "Resultado $res" Escribe el código de un script que reciba como parámetro el nombre de un directorio, crea el directorio si no existe, mueve a ese directorio todos los ficheros *.txt que hay en el directorio actual, comprime en el nuevo directorio todos esos ficheros y calcula el tamaño total de todos los ficheros comprimidos.
if [ ! -d $1 ] then mkdir $1 fi mv *.txt $1/.
cd $1 cont=0 for item in * do gzip $item set `du $item.gz` cont=`expr $cont + $1` done echo "Tamaño total: $cont" Escribe un script que solicite al usuario el nombre de un fichero y escriba en este fichero las tres primeras líneas de todos los ficheros de texto que hay en el directorio de trabajo.
echo "Escribe el nombre del fichero de salida" read fichero for item in *.txt do head -3 $item | cat >> $fichero done Indicar el nombre del fichero que tiene más líneas en el directorio de trabajo y diga también cuántas líneas tiene ese fichero.
maximo=0 for item in * do set `wc -l $item` if [ $1 -gt $maximo ] then maximo=$1 nombre=$item fi done echo "El fichero que tiene más lineas es $nombre y tiene $maximo lineas" Crea un Shell Script que recorra todos los ficheros que hay en el directorio y para cada uno de ellos escriba en pantalla dos líneas: en la primera la información de ese fichero y en la segunda el nombre del fichero.
#!/bin/bash for filename in *; do if [ -f $filename ]; then ls -l $filename file $filename else echo $filename is not a regular file.
fi done Muestre por pantalla todos los parámetros del script y el número de parámetros. Si el número de parámetros no es 3 escribirá la frase “Numero incorrecto”. Si el primer parámetro es un 2 escribirá en pantalla la resta del segundo y tercero. Si el primer parámetro no es 2 escribirá la frase “Orden desconocida”.
#!/bin/bash echo $@ echo $# if ( test $# -eq 3) then if (test $1 -eq 2) then let a=$2-$3 echo $a else echo "orden desconocida." fi else echo "Numero incorrecto de parámetros." fi Crear fichero res.txt con 5 primeras líneas de a.txt y las 6 finales de b.txt head -5 a.txt | cat >> res.txt tail -6 b.txt | cat >> res.txt Subdirectorio llamado copia, copia de todos los ficheros del directorio cuyo nombre empieza por a, añade una línea de texto al final de cada fichero copiado con la palabra que recibe el script como parámetro y elimina permiso de escritura rm –f copia mkdir copia cp ./a* ./copia/ for ítem in * do echo “$1” >> $item chmod 555 $item done Contar num de líneas (dentro de las 10 primeras) de datos.txt que contienen la palabra casa head -10 datos.txt | grep casa | wc –l Recibe como parámetro el nombre de un directorio y nos dice cuantos ficheros hay en ese directorio con permiso de escritura contador=0 for item in $1/* do if [ -w $item ] then contador=`expr $contador + 1` fi done echo "El numero de ficheros con permiso de escritura es: $contador" ...

Comprar Previsualizar