66
Métodos Numéricos para la Astronomía 2016A Licenciatura en Astronomía Departamento de Física y Astronomía, Facultad de Ciencias. Universidad de La Serena Clase 5 José Luis Nilo Castellón

Métodos Numéricos para la Astronomía 2016A

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Métodos Numéricos para la Astronomía

2016A

Licenciatura en Astronomía

Departamento de Física y Astronomía, Facultad de Ciencias.

Universidad de La Serena

Clase 5

José Luis Nilo Castellón

Unix ArchitectureUnix Architecture

hardware es la mas profunda estando formada por los componentes físicos de tu computador.

Envolviendo a ésta, viene la capa del kernel que es el corazón de Linux, su núcleo, y es quien hace que el hardware funcione, efectuando su manejo y control.

Los programas y comandos que envuelven el kernel, lo utilizan para realizar las tareas especificas para las cuales fueron desarrolladas.

Encerrando todo eso viene el Shell que tiene este nombre porque en ingles, Shell significa concha, envoltura, o sea que, queda entre los usuarios y el sistema operativo, de forma que todo lo que interacciona con el sistema operativo, tiene que pasar por su filtro.

Unix History and MotivationUnix History and Motivation

The first version of Unix came from AT&T in the early The first version of Unix came from AT&T in the early 1970s (Unix is old!).1970s (Unix is old!).Unix was developed by programmers and Unix was developed by programmers and for for programmersprogrammers..Unix is designed so that users can extend the Unix is designed so that users can extend the functionalityfunctionalityTo build new tools easily and efficientlyTo build new tools easily and efficientlyTo customize the shell and user interface. To customize the shell and user interface. To string together a series of Unix commands to create new To string together a series of Unix commands to create new functionality.functionality.To create custom commands that do exactly what we want.To create custom commands that do exactly what we want.

What is Shell?What is Shell?

Shell isShell isCommand Interpreter that turns text that you type (at Command Interpreter that turns text that you type (at the command line) in to actions:the command line) in to actions:

User Interface: take the command from userUser Interface: take the command from user

Programming Shell can doProgramming Shell can doCustomization of a Unix sessionCustomization of a Unix session

ScriptingScripting

bash is not only an excellent command line shell, but a scripting language in itself. Shell scripting allows us to use the shell's abilities and to automate a lot of tasks that would otherwise require a lot of commands.

Difference between programming and scripting languages:

–Programming languages are generally a lot more powerful and a lot faster than scripting languages. Programming languages generally start from source code and are compiled into an executable. This executable is not easily ported into different operating systems.

- A scripting language also starts from source code, but is not compiled into an executable. Rather, an interpreter reads the instructions in the source file and executes each instruction. Interpreted programs are generally slower than compiled programs. The main advantage is that you can easily port the source file to any operating system. bash is a scripting language. Other examples of scripting languages are Perl, Lisp, and Tcl.

Programming or Scripting ?

Customization of a SessionCustomization of a Session

Each shell supports some customization.Each shell supports some customization.User promptUser promptWhere to find mailWhere to find mailShortcuts (alias)Shortcuts (alias)

The customization takes place in The customization takes place in startupstartup files files Startup files are read by the shell when it starts upStartup files are read by the shell when it starts upThe Startup files can differ for different shellThe Startup files can differ for different shell

Types of ShellsTypes of Shells

Interactive vs. Non-interactive; login or notInteractive vs. Non-interactive; login or not

Interactive login shell started after loginInteractive login shell started after login

Non-interactive shellNon-interactive shellPresent when shell script is runningPresent when shell script is running

Just inherits parent’s environmentJust inherits parent’s environment

Interactive non-login shell startedInteractive non-login shell startedStarted from a command line Started from a command line

Copies parent environment then invokes Copies parent environment then invokes ~/.bash_rc (or ~/.cshrc or ~/.tcshrc)~/.bash_rc (or ~/.cshrc or ~/.tcshrc)

Popular ShellsPopular Shells

shsh Bourne Shell Bourne Shell ksh ksh Korn Shell Korn Shell csh,tcshcsh,tcsh C Shell (for this course)C Shell (for this course) bash bash Bourne-Again Shell Bourne-Again Shell

Una visión rápida em los Principales Sabores de Shell

Bourne Shell (sh)

Desarrollado por Stephen Bourne de la Bell Labs (de AT&T donde también fue desarrollado el Unix), este fue durante muchos años el Shell patrón del sistema operativo Unix. Es también llamado de Standard Shell por haber sido durante varios años, el único y hasta hoy es el mas utilizado ya que fue transportado para todos los ambientes Unix y distros Linux.

Korn Shell (ksh)

Desarrollado por David Korn, también de la Bell Labs, es un superconjunto del sh, o sea, posee todas las facilidades del sh y a ellas se agregaron muchas otras. La compatibilidade total con el sh esta atrayendo a muchos usuarios y programadores de Shell para este ambiente.

Boune Again Shell (bash)

Este es el Shell mas moderno y cuyo número de adeptos crece mas en todo el mundo, sea por ser el Shell default de Linux, su sistema operativo natural, o sea por su gran diversidad de comandos, que incorpora inclusive diversas instrucciones características del C Shell.

C Shell (csh)

Desarrollado por Bill Joy de la Berkley University es el Shell mas utilizado en ambientes*BSD e Xenix. La estrutura de sus comandos es bastante similar al del lenguage C. Su gran pecado fue ignorar la compatibilidad con el sh, partiendo por un camino propio.

Además de estos Shells existen otros, pero contigo voy a hablar solamente sobre los tres primeros, tratandolos genéricamente por Shell y señalando las peculiaridades de cada uno que eventualmente tengan.

El Shell es el primer programa al que accedes al “loguearte” en Linux. Es él quien va a resolver una cantidad de cosas para no cargar al kernel con tareas repetitivas, aliviandolo para tratar asuntos mas importantes. Como cada usuario posee su propio Shell interponiendose entre él y el Linux, es el Shell quien interpreta los comandos que son tecleados y examina sus sintaxis, pasándolos desmenuzados para su ejecución.

Connecting to a Unix/Linux system

Open up a terminal:

Connecting to a Unix/Linux system

Open up a terminal:

The “prompt”

The current directory (“path”)

The host

What exactly is a “shell”?

After logging in, Linux/Unix starts another program called the shell

The shell interprets commands the user types and manages their execution

The shell communicates with the internal part of the operating system called the kernel

The most popular shells are: tcsh, csh, korn, and bash The differences are most times subtle For this tutorial, we are using bash

Shell commands are CASE SENSITIVE!

Help!

Whenever you need help with a command type “man” and the command name

Help!

Help!

Help!

Unix/Linux File System

/home/john/portfolio/

/home/mary/

The Path

NOTE: Unix file namesare CASE SENSITIVE!

Command: pwd

To find your current path use “pwd”

Command: cd

To change to a specific directory use “cd”

Command: cd

“~” is the location of your home directory

Command: cd“..” is the location of the directory below current

one

Command: ls

To list the files in the current directory use “ls”

Command: ls

ls has many options -l long list (displays lots of info) -t sort by modification time -S sort by size -h list file sizes in human readable format -r reverse the order

“man ls” for more optionsOptions can be combined: “ls -ltr”

Command: ls -ltr

List files by time in reverse order with long listing

General Syntax: *

“*” can be used as a wildcard in unix/linux

Command: mkdir

To create a new directory use “mkdir”

Command: rmdir

To remove and empty directory use “rmdir”

Creating files in Unix/Linux

Requires the use of an Editor Various Editors:

1) nano / pico

2) vi

3) emacs

Editing a file using pico or nano

Type “pico” or “nano” at the prompt

Editing a file using pico

To save use “ctrl-x”

Displaying a file

Various ways to display a file in Unix cat less head tail

Command: cat

Dumps an entire file to standard output Good for displaying short, simple files

Command: less

“less” displays a file, allowing forward/backward movement within it return scrolls forward one line, space one page y scrolls back one line, b one page

use “/” to search for a stringPress q to quit

Command: head

“head” displays the top part of a file By default it shows the first 10 lines -n option allows you to change that “head -n50 file.txt” displays the first 50 lines of

file.txt

Command: head

Here’s an example of using “head”:

Command: tail

Same as head, but shows the last lines

File Commands

Copying a file: cpMove or rename a file: mvRemove a file: rm

Command: cp

To copy a file use “cp”

Command: mv

To move a file to a different location use “mv”

Command: mv

mv can also be used to rename a file

Command: rm

To remove a file use “rm”

Command: rm

To remove a file “recursively”: rm –rUsed to remove all files and directories Be very careful, deletions are permanent in

Unix/Linux

File permissions

Each file in Unix/Linux has an associated permission level

This allows the user to prevent others from reading/writing/executing their files or directories

Use “ls -l filename” to find the permission level of that file

Permission levels

“r” means “read only” permission“w” means “write” permission“x” means “execute” permission

In case of directory, “x” grants permission to list directory contents

File Permissions

User (you)

File Permissions

Group

File Permissions

“The World”

Command: chmod

If you own the file, you can change it’s permissions with “chmod” Syntax: chmod [user/group/others/all]+[permission] [file(s)] Below we grant execute permission to all:

Running a program (a.k.a. a job)

Make sure the program has executable permissions

Use “./” to run the program

Running a program: an example

Running the sample perl script “hello_world.pl”

Ending a program

To end a program use “ctrl-c”. To try it:

Command: ps

To view the processes that you’re running:

Command: top

To view the CPU usage of all processes:

Command: kill

To terminate a process use “kill”

Input/Output Redirection (“piping”)

Programs can output to other programs Called “piping” “program_a | program_b”

program_a’s output becomes program_b’s input

“program_a > file.txt” program_a’s output is written to a file called “file.txt”

“program_a < input.txt” program_a gets its input from a file called “input.txt”

A few examples of piping

A few examples of piping

Command: wc

To count the characters, words, and lines in a file use “wc”

The first column in the output is lines, the second is words, and the last is characters

A few examples of piping

Command: grep

To search files in a directory for a specific string use “grep”

Command: diff

To compare to files for differences use “diff” Try: diff /dev/null hello.txt /dev/null is a special address -- it is always empty,

and anything moved there is deleted

ssh, scp

ssh is used to securely log in to remote systems, successor to telnet ssh [username]@[hostname] Try:

ssh yourusername@localhost

Type “exit” to log out of session

Scp is used to copy files to/from remote systems, syntax is similar to cp: scp [local path] [usernme]@[hostname]:[remote file path]

Try: scp hello.txt yourusername@localhost:scp-test.txt