Att komma igång med Linux i Örebro Getting Started With Linux In Örebro

Av Thomas Padron-McCarthy (e-post: thomas.padron-mccarthy@oru.se ). By Thomas Padron-McCarthy (e-mail: thomas.padron-mccarthy@oru.se ). Senaste ändring: 11 september 2017. Last change: September 11, 2017. This translation: September 8, 2018.

Den här handledningen är tänkt att ge en enkel introduktion till hur man använder Linux på datorerna i datorsalarna i Teknikhuset på Örebro universitet. This tutorial is intended to provide a simple introduction to how to use Linux on the computers in computer rooms in the Tekniskhuset at Örebro University. Jag har provkört i T120, men det kan fungera i andra salar. I've run in the T120, but it can work in other halls. Introduktionen vänder sig till studenter som läser kurser vid Institutionen för naturvetenskap och teknikÖrebro universitet , och som inte tidigare använt Linux eller något annat Unix-system. The introduction is aimed at students who study courses at the Department of Science and Technology at Örebro University , who have not previously used Linux or any other Unix system. Den förutsätter dock att läsaren har en del datorerfarenhet, särskilt från Windows-datorer. However, it requires that the reader has some computer experience, especially from Windows computers.

Linux Linux

Linux är ett operativsystem, som Windows 10 eller Mac OS X, dvs det grundprogram eller grundsystem som datorn kör, och som de andra programmen körs, som man brukar säga, "under". Linux is an operating system such as Windows 10 or Mac OS X, ie the basic or basic system that the computer is running, and as the other programs are running, as you usually say, "below." Linux är en variant av Unix, men utvecklat från grunden med helt egen källkod. Linux is a variant of Unix, but developed from scratch with its own source code.

Att starta Linux och logga in To start Linux and log in

Starta (eller starta om) datorn, och tryck direkt på F12 , innan Windows hunnit startas. Start (or reboot) the computer, and press F12 immediately before Windows has started. Man får då fram en meny, där man kan välja mellan att starta antingen det lokalt installerade Windows eller ORUbuntu , som är en version av Linux-distributionen Ubuntu 12.04. You will then get a menu, where you can choose either to start either locally installed Windows or ORUbuntu , which is a version of the Linux distribution Ubuntu 12.04.

Linux är inte installerat på datorns lokala disk, utan det som händer är att Linux hämtas via nätverket. Linux is not installed on the computer's local disk, but what happens is that Linux is retrieved via the network.

Linux startar med fönstersystem och allt. Linux starts with windows systems and everything. Logga in med samma loginnamn och lösenord som på Windows. Log in with the same login name and password as on Windows. Tänk på att Linux skiljer på stora och små bokstäver. Keep in mind that Linux is case-sensitive.

Det är meningen att man ska få tillgång till samma hemkatalog när man kör på Linux som på Windows, och att alla ändringar som man gör på det ena systemet ska synas på det andra systemet. It is meant to have access to the same home directory when running on Linux as on Windows, and that any changes made to one system should be visible on the other system. Till exempel ska kataloger och filer som man skapar i Linux sen också finnas på Windows. For example, directories and files that you create in Linux will also be on Windows.

Tänk på! Think of! Linux i våra datorsalar är nytt, och det kan finnas kommer säkert att finnas barnsjukdomar kvar som gör att det krånglar lite. Linux in our computer rooms is new, and there may be still childhood diseases that make it a little bit awkward. Säg till om du får problem, så ska vi försöka laga det. If you are having trouble, please try to fix it.

Tänk också på! Think too! Även om det är meningen att man ska få tillgång till samma hemkatalog när man kör på Linux som på Windows, och att alla ändringar som man gör på det ena systemet ska synas på det andra systemet, så skulle det kunna krångla, särskilt nu i början. Although it is meant that you should have access to the same home directory when running on Linux as in Windows, and that any changes you make to one system should appear on the other system, it might be a problem, especially now at the beginning . Var därför försiktig med dina filer. Therefore be careful with your files. Gör gärna egna säkerhetskopior, till exempel på USB-minne. Feel free to backup your own, such as USB memory.

Likheter mellan Windows och Linux Similarities between windows and linux

Många har en föreställning om Unix som svåranvänt och bara för experter. Many have an idea of ​​Unix as hard-hitting and just for experts. Kryptiska kommandon skrivs in i ett textgränssnitt, och ger lika obegripliga svar från datorn. Cryptic commands are typed into a text interface, providing equally incomprehensible answers from the computer. Lyssna till exempel på den här unixkursen (en MP3-fil). Listen, for example, to this unix course (an MP3 file).

Det är sant att Unix innehåller många verktyg som underlättar för experten, och som kräver att man läser en del i manualer innan man använder dem första gången, men moderna Unix-system, som Linux, är ganska lätta att använda även för nybörjaren. It is true that Unix contains many tools that make it easier for the expert, requiring reading a few manuals before using them for the first time, but modern Unix systems, like Linux, are quite easy to use even for the beginner. Man har arbetat mycket med att göra verktyg och fönstersystem som ska vara enkla att komma igång med. A lot of work has been done on making tools and windows systems easy to get started with.

Fönstersystemet är inte en del av operativsystemet i Linux, som det är i (nyare) Windows, utan om man vill kan man köra Linux i ett rent textläge. The windows system is not part of the Linux operating system, as it is in (newer) windows, but if you like, you can run Linux in a plain text mode. Men det finns flera olika fönstersystem till Linux, och nästan alla användare kör något av dem. However, there are several windows windows for Linux, and almost all users are running any of them.

Här är ett exempel på hur skärmen kan se ut i Linux. Here is an example of how the screen can look in Linux. Bilden är hämtad från datorerna i T120. The image is taken from the computers in the T120. (Klicka på bilden för att se den i stort format.) (Click on the image to view it in large format.)

The whole screen

Det finns flera olika grafiska gränssnitt som man kan använda i Linux. There are several different graphical interfaces that you can use in Linux. Det här är Unity , som vi använder på Linux-datorerna här. This is Unity , which we use on the Linux computers here. Det påminner ganska mycket om skrivbordet i Windows och på Mac. It reminds a lot about the desktop in Windows and on Mac. Det finns ett antal ikoner på skrivbordsytan och i listen till vänster, som man kan klicka på för att starta program eller öppna foldrar och filer. There are a number of icons on the desktop and in the list on the left, which you can click to launch programs or open folders and files.

En skillnad mot Windows-skrivbordet är att det finns fyra olika virtuella skrivbord, på engelska "workspaces", som man kan välja mellan genom att klicka i det fyrdelade fönstret i listen till vänster: A difference to the Windows desktop is that there are four different virtual desktops, in English "workspaces", which you can choose by clicking the four-pane window in the list on the left:

Virtual Desktop Selector

Det finns förstås en "filbläddrare" där man kan öppna kataloger och titta på filer, som på Windows och Mac: There is, of course, a "File Browser" where you can open directories and watch files, like on Windows and Mac:

File Browser

Några skillnader mellan Windows och Linux Some differences between windows and linux

En skillnad mellan Windows och Linux är att Linux har textgränssnitt som faktiskt går att använda. A difference between Windows and Linux is that Linux has text interfaces that can actually be used. Windowsanvändare kallar ibland textgränssnittet för "DOS-prompt" (även i Windows NT och dess efterföljare, som inte innehåller något DOS), och vill gärna undvika det. Windows users sometimes call the text interface for "DOS prompt" (also in Windows NT and its successors, which do not contain DOS), and would like to avoid it. Det är förståeligt, med tanke på hur dåliga textgränssnitt de olika Windows-smakerna har. It is understandable considering the poor text interfaces that the different Windows flavors have.

Unix har alltid haft kraftfulla textverktyg, så kallade skal , där man kan arbeta effektivt med hjälp av kommandon och egenskrivna programsnuttar. Unix has always had powerful text tools, so-called shell , where you can work efficiently using commands and self-written applications. I den här handledningen ska vi bara titta på några av de enklaste kommandona. In this tutorial, we will only look at some of the simplest commands.

Man startar ett skal i ett "terminalfönster" eller "skalfönster", som är motsvarigheten till kommandofönstret ("DOS-prompten") i Windows. You start a shell in a "terminal window" or "shell window" which is the equivalent of the command window ("DOS prompt") in Windows. I Unity kan man starta nya program, som Terminal , genom att klicka på Ubuntu-symbolen längst uppe till vänster och börja skriva namnet på programmet. In Unity, you can launch new programs, such as Terminal , by clicking the Ubuntu icon in the upper left and start typing the name of the program. Klicka sen på rätt ikon. Then click on the correct icon.

Start the terminal

Ett skalfönster startas, och där kan man ge kommandon, till exempel ls som helt enkelt listar vilka filer som finns i aktuell katalog: A shell window is started, and you can give commands, such as ls that simply list which files are in the current directory:

The terminal

Prompten tpy-e@live:~$ betyder att det är användaren tpy-e som är inloggad på datorn live , och att aktuell katalog är den användarens hemkatalog (visas som ~ ). Prompt tpy-e @ live: ~ $ means that it is the user tpy-e that is logged on to the computer live , and that current directory is that user's home directory (displayed as ~ ). I Unix kan man enkelt logga in på andra datorer, och då är det bra att ha datornamnet i prompten så man kommer ihåg vilken det är. Unix allows you to easily log in to other computers, so it's good to have the computer name in the prompt so you remember who it is.

Man skapar nya kataloger med mkdir och byter aktuell katalog med cd : You create new directories with mkdir and replace current catalog with cd :

Terminal again

Filer och kataloger i Unix Files and directories in Unix

I Windows är filerna uppdelade på flera olika enheter, C: , D: och så vidare. In Windows, the files are divided into several different devices, C :, D: and so on. Under varje sådan enhet är alla filer samlade i ett träd. Under each such device, all files are collected in a tree.

I Unix finns bara ett enda träd av filer, som börjar i rotkatalogen. In Unix there is only one tree of files that starts in the root directory. Den heter / . It is called / . Diskar, cd-skivor, kataloger på servrar och allt annat stoppas in i trädet. Discs, CDs, catalogs on servers and everything else are stuffed into the tree. Till exempel är det vanligt att användarnas hemkataloger ligger som underkataloger under katalogen home . For example, it's common for users' home directories to be sub-directories under the home directory. I stället för till exempel M:\ , som man kanske är van vid från Windows, heter hemkatalogen kanske /home/kajsa , om ens användarnamn råkar vara kajsa . Instead of, for example, M: \ , as you may be used to from Windows, the home directory may be called / home / kajsa , if one's username happens to be a kajsa .

I Windows har alla filer normalt en ändelse, och vilken ändelse filen har avgör vad det är för typ av fil. In Windows, all files typically have an end, and what extension the file determines what it is for the type of file. Till exempel är filer som slutar på .exe körbara filer. For example, files that end on .exe executable files. I Unix behöver man inte ha filändelser, även om många enskilda verktyg tittar på ändelsen för att avgöra vad det är för fil. Unix does not require file extensions, although many individual tools look at the extension to determine what file is.

Även fysiska enheter, som diskar, finns med i filträdet. Even physical devices, such as dishes, are included in the filter. Till exempel heter datorns huvudhårddisk ofta /dev/sda . For example, the computer's main hard drive is often called / dev / sda . Man kan alltså öppna hårddisken som vilken fil som helst, och läsa dess innehåll direkt. You can then open the hard disk as any file, and read its contents directly. <(Om man har läsrättigheter till den, vilket du förmodligen inte har.) <(If you have read permission to it, which you probably do not have.)

Att ange filnamn To enter filename

Filnamn kan anges absolut, som till exempel /home/kajsa/foo , eller relativt till aktuell katalog. File names can be entered absolute, such as / home / kajsa / foo , or relative to the current directory. Om vi antar att aktuell katalog är /home , kan samma fil kallas kajsa/foo . If we assume that the current directory is / home , the same file can be called kajsa / foo . Om aktuell katalog är /home/hjalmar , kan filen kallas ../kajsa/foo . If the current directory is / home / helmets , the file can be called ../kajsa/foo . Att namnet börjar med ett snedstreck, / , betyder alltså att filnamnet är absolut. That the name starts with a slash, / , means that the filename is absolute.

Linux skiljer på stora och små bokstäver i filnamn. Linux distinguishes between uppercase and lowercase letters in file names.

De flesta skal förstår jokertecken ("wildcards") i filnamn. Most people must understand wildcards in file names. Som vanligt betyder ? Which usually means ? ett godtyckligt tecken, och * står för noll, ett eller flera godtyckliga tecken. an arbitrary sign, and * stands for zero, one or more arbitrary characters. Det fungerar som i Windows, men med fler möjligheter och mer konsekvent. It works like in Windows, but with more possibilities and more consistently.

Haklamrar, som i [abcde] , kan användas för att ange ett av flera tecken. Haklamrar, as in [abcde] , can be used to enter one of several characters. Samma sak kan skrivas [ae] . The same thing can be written [ae] . Fiskmåsklamrar kan användas för att ange alternativa delar av ett namn: {abc,de} betyder antingen abc eller de . Fish moths can be used to enter alternative parts of a name: {abc, de} means either abc or de .

Tilde-tecknet, ~ , som står för användarens hemkatalog. Tilde sign, ~ , which stands for the user's home directory. ~bengt står för användaren bengts hemkatalog. ~ bengt stands for the user bengt home directory.

Exempel: Om din hemkatalog heter /home/kajsa , så matchar mönstret ~/*/a*?.{c,cc} filerna /home/kajsa/koi/ax.c och /home/kajsa/C++/arbete.cc , men inte /home/kajsa/koi/labb1/ax.c eller /home/kajsa/koi/ac . Example: If your home directory is named / home / kajsa , then the pattern ~ / * / a *? Matches . {C, cc} the files /home/kajsa/koi/ax.c and /home/kajsa/C++/work.cc , but not /home/kajsa/koi/labb1/ax.c or / home / kajsa / koi / ac .

De enklaste kommandona The simplest commands

Man kan sköta mycket av det dagliga arbetet i Linux via fönstersystemet och olika grafiska verktyg, men här ska vi koncentrera oss på hur man ger kommandon i ett skalfönster. One can handle a lot of daily work in Linux through the windows system and various graphical tools, but here we will focus on how to provide commands in a display window.

Kommando Command Funktion Function Exempel Example
ls ls Lista filer List files ls ls
ls bilder ls pictures
ls prog*.c ls prog * .c
ls ~/prog*[1-4].{c,C,cpp,cc} ls ~ / prog * [1-4]. {c, c, cpp, cc}
mv mv Byt namn på en fil Rename a file mv gammal ny etc. Old New
mv prog1.c pro2.c katalogen etc. prog1.c pro2.c directory
mv *.c c-programskatalogen etc. * .c c program directory
cp cp Kopiera filer Copy files cp program.c kopia.c cp program.c kopia.c
cp prog1.c prog2.c katalogen cp prog1.c prog2.c catalogs
cp *.c c-programskatalogen cp * .c c program directory
cp -r cp -r Kopiera rekursivt Copy recursively cp -r en-katalog en-annan-katalog cp -r en-catalog one-other directory
rm rm Ta bort en eller flera filer Delete one or more files rm foo rm foo
rm apa.txt foo blaj.c rm apa.txt foo blaj.c
rm /tmp/blaj.c rm /tmp/blaj.c
cd cd Byt aktuell katalog Replace current directory cd koi/labb2 cd koi / lab2
cd /usr/local/bin cd / usr / local / bin
cd .. cd ..
mkdir mkdir Skapa en katalog Create a directory mkdir min-nya-katalog mkdir my-new directory
rmdir RmDir Ta bort en katalog Delete a directory rmdir koi rmdir koi
rmdir koi ../gammalt rmdir koi ../gammal
cat cat Skriv ut en fil i skalfönstret Print a file in the desktop cat foo cat foo
cat /etc/passwd cat / etc / passwd
more more Skriv ut en fil i skalfönstret en sida i taget Print a file in the desktop one page at a time more foo more foo
more koi/*.c more koi / *. c
exit exit Avsluta ett skal Finish a shell exit exit
man MAN Titta på manualbladet för (exempelvis) ett kommando Look at the manual for (for example) a command man rmdir man rmdir
man -k time man-hour
alias alias Definiera nya kommandon Define new commands alias ll='ls -l' alias ll = 'ls -l'
alias e='emacs' alias e = 'emacs'

Varning : Kommandot rm tar bort filer. Warning : The rm command removes files. Det flyttar dem inte till en papperskorg, utan det tar bort dem. It does not move them to a trash bin, but it removes them. "Bort" som i "borta för evigt". "Away" as in "gone forever". Man kan visserligen omdefiniera kommandon i Linux, och det är ganska vanligt att man omdefinierar just kommandot rm så att det flyttar filerna till en papperskorgskatalog. You may be able to redefine commands in Linux, and it is quite common to redefine the rm command so that it moves the files to a trash directory. Men om ingen varit snäll och gjort det, så kan man inte få tillbaka en fil som man raderat. But if nobody was nice and done, you can not get a file deleted.

Omdirigering av in- och utmatning Redirection of input and output

Man kan skicka utmatningen från ett program eller ett kommando till en fil med större-än-tecknet > och till ett annat program med pipe-tecknet | You can send the output from a program or command to a file with the larger than the character > and to another program with the pipe character | . . Ett program eller ett kommando, som normalt läser från standardinmatningen, kan läsa sin inmatning från en fil om man använder mindre-än-tecknet < . An application or command, which usually reads from the default entry, can read its input from a file using the less than character < . Det fungerar som i Windows, men mer konsekvent. It works like in Windows, but more consistently.

Att kompilera, köra, editera och debugga program To compile, run, edit and debug programs

Ungeför som man kan arbeta i Visual Studio i Windows, eller Xcode på Mac, kan mag använda sig av en integrerad programmeringsomgivning i Linux. Unemployed to work in Visual Studio in Windows, or Xcode on Mac, may use an integrated programming environment in Linux. En vanlig sådan är Eclipse . One common feature is Eclipse . Men man kan också arbeta steg för steg, och ge separata textkommandon för att kompilera sitt program, för att köra det, och så vidare. But you can also work step by step, and provide separate text commands to compile their program, to run it, and so on.

Kompilering Compilation

C-kompilatorn heter gcc (ofta med cc som ett alias) och C++-kompilatorn heter g++ . The C compiler is called gcc (often with cc as an alias) and the C ++ compiler is called g ++ .

Bägge tar bland annat dessa flaggor: Both include these flags:

En stor hjälp är programmet make , som kan göra mycket av detta automatiskt. A great help is the program husband , who can do much of this automatically. Om man skriver make foo , och det finns en källkodsfil som heter foo.c , inser make att foo.c ska kompileras för att skapa det körbara programmet foo . If you write make foo , and there is a source file called foo.c , make sure that foo.c is compiled to create the executable program foo . Om foo är nyare än foo.c , har det tydligen inte gjorts några ändringar sen senaste kompileringen, och då behöver filen inte kompileras på nytt. If foo is newer than foo.c , apparently no changes have been made since the last compilation, and then the file does not need to be compiled again.

Kommando Command Funktion Function Exempel Example
gcc GCC Kompilera och länka C-program Compile and link C programs gcc -c foo.c gcc-c foo.c
gcc -c -Wall foo.c gcc -c -Wall foo.c
gcc -g foo.c fum.o fie.o -o foo gcc -g foo.c fum.o fie.o -o foo
g++ g ++ Kompilera och länka C++-program Compile and link C ++ programs g++ -c foo.cpp g ++ -c foo.cpp
g++ -c -Wall foo.cpp g ++ -c -Wall foo.cpp
g++ -g foo.cpp fum.o fie.o -o foo g ++ -g foo.cpp fum.o fie.o -o foo
make husband Kompilera och länka program Compile and link programs make foo make foo

Körning Driving

Programmen körs genom att man skriver programnamnet i skalfönstret. The programs are run by typing the program name in the screen. (Av säkerhetsskäl är många Unix-system konfigurerade så att man måste skriva ./ före programnamnet om man vill köra ett program i den aktuella katalogen. Alltså ./foo i stället för bara foo , för att visa att man verkligen menar att köra ett program i den aktuella katalogen.) (For security reasons, many Unix systems are configured so you have to type ./ before the program name if you want to run an application in the current directory. So ./foo instead of just foo , to show that you really mean running an application in the current directory.)

Här nedan byter vi katalog med cd till katalogen debug-exercise , där vi sen bugger programmet metamatic med hjälp av kommandot make . Below we replace directory with cd to directory debug-exercise , where we then bug the program metamatic using the command command. Till sist startar vi programmet med kommandot ./metamatic (alltså inte bara metamatic ). Finally, we start the program with the ./metamatic command (ie not just metamatic ).

The program metamatic in the terminal

Editering editing

Det finns flera olika editorer att välja mellan. There are several different editors to choose from. En editor som är populär bland många Unix-användare, men som kan vara lite besvärlig i början, är Emacs . An editor popular with many Unix users, but which may be a bit difficult at first, is Emacs . Skriv kommandot Type the command
emacs filen.c & emacs file.c &
för att börja editera filen filen.c . to start editing the file file.c. & -tecknet betyder att kommandot körs i bakgrunden, så man kan ge nya kommandon i skalfönstret. The & sign means that the command runs in the background, so you can add new commands to the desktop. Program som öppnar sina egna fönster är det ofta praktiskt att göra så med. Programs that open their own windows are often handy to do so.

Så här ser ett Emacs-fönster ut i vår Unity-omgivning. Here's what an Emacs window looks like in our Unity environment. Emacs är känt för sina många korta kommandon, som till exempel CTRL-B för att flytta markören ett tecken bakåt, och ESCAPE b för att flytta markören ett ord bakåt, men som syns på bilden finns det även vanliga menyer ( File , Edit och så vidare) som man kan klicka på. Emacs is known for its many short commands, such as CTRL-B , to move the cursor one character backwards, and ESCAPE b to move the cursor one word backward, but as shown in the picture there are also common menus ( File , Edit and so on further) which you can click on.

Metamatic-emacs

En annan editor, som är mer i stil med Notepad, är gedit . Another editor, which is more like Notepad, is gedit . Starta den med kommandot gedit : Start it with the command gedit :

gedit

Varning! Warning! Editorn gedit gör ibland konstiga saker med tidsstämplarna på de filer den skapar. The editor gedit sometimes makes strange things with the time stamps on the files it creates. Den tid som anges för när filen senast ändrades blir fel. The time specified for when the file was last modified will be incorrect. Det gör att programmet make kan bli förvirrat om vilka filer det behöver kompilera om. This allows the software spouse to be confused about what files it needs to compile. Om man har ett mål i make-filen som heter clean , och som tar bort alla temporärfiler, kan man skriva make clean och sen make för att kompilera om hela projektet. If you have a goal in the make file named clean , which removes all temporary files, you can write make clean and late spouse to compile the entire project.

Debugging Debugging

Om man har kompilerat sitt program med flaggan -g , kan man köra det i debuggern gdb . If you have compiled your program with the flag -g , you can run it in the debugger gdb . Den har ett helt textbaserat gränssnitt. It has a completely text-based interface.

Eclipse Eclipse

Man kan också arbeta i Eclipse. You can also work in Eclipse. Det ser ut så här, och den som arbetat med Visual Studio ser säkert en del likheter: It looks like this, and the one who worked with Visual Studio certainly looks like some similarities:

Eclipse

Några tankar om fönster Some thoughts about windows

De Windows-användare, inklusive Windows-programmerare, som jag kommer i kontakt med har en tendens att ha de flesta fönster maximerade, så de täcker hela skärmen. The Windows users, including Windows programmers, that I come in contact with tend to have most windows maximized to cover the entire screen. Det gör att de bara kan titta på en sak i taget. That means they can only look at one thing at a time. Om de till exempel ska titta på utskrifter i ett kommandofönster, och redigera programmet som gör utskrifterna, så får de växla fram och tillbaka mellan de två fönstren, för fönstret med programkoden i täcker hela skärmen. For example, if they look at prints in a command window, and edit the application that makes the prints, they may switch back and forth between the two windows, because the window of the program code will cover the entire screen. (Och när man klickar i det fönstret för att göra något, hoppar det fram och täcker kommandofönstret.) (And when you click that window to do something, it pops up and covers the command window.)

Jag själv, och andra Unix-människor jag känner, har i stället flera små fönster. Myself, and other Unix people I know, have instead several small windows. Det kan vara ett fönster att editera i, ett fönster att köra programmet i, ett fönster för att läsa manualen i en webbläsare, och kanske ett kompileringsfönster. There may be a window to edit in, a window to run the program in, a window to read the manual in a web browser, and maybe a compilation window. Varje fönster är bara så stort som det behöver vara, och eftersom alla får plats på skärmen behöver man sällan bläddra mellan fönstren. Each window is just as big as it needs to be, and since everyone gets fit on the screen, you need to rarely scroll between the windows.

Därför upplever jag det som frustrerande när jag ska kommunicera med någon Windows-person vid datorn, och hon ägnar den mesta tiden åt att bläddra bland sina (onödigt stora) fönster. Therefore, I experience it as frustrating when communicating with any Windows person at the computer, and she devotes the most time to browsing their (unnecessarily large) windows.

Jag tror att det kan finnas flera orsaker till den här vanan med maximerade fönster, bland annat att Windows-människor är vana vid integrerade system (som Visual Studio i stället för Emacs + xterm + gcc + gdb), vilket gör att de oftast inte har mer än ett enda fönster att hålla reda på. I think there may be several reasons for this habit with maximized windows, including that Windows people are used to integrated systems (like Visual Studio instead of Emacs + xterm + gcc + gdb), which means they usually do not have more than one single window to keep track of.

Tänk på att det kan vara praktiskt att ha flera små fönster bredvid varandra på skärmen. Keep in mind that it may be useful to have several small windows next to each other on the screen. I synnerhet när man programmerar. Especially when programming.

Överkurs: make Upper course: husband

Programmet make kan användas för att automatisera kompileringar. The master program can be used to automate compilations. Genom att skriva en Makefile kan man styra vilka steg som ska köras. By writing a Makefile you can control which steps to run.

Ett gott råd: Automatisera alltid så mycket som möjligt när du programmerar. A good advice: Always automate as much as possible while programming. Manuella steg, som till exempel att komma ihåg att köra bison eller byta namn på en fil, glömmer man förr eller senare alltid bort. Manual steps, such as remembering to run bison or rename a file, always forgetting sooner or later. Och sen sitter man där i sex timmar på natten och letar efter fel som inte finns. And then you sit there for six hours at night and look for errors that are not available.

Vi antar att vi har ett C-program, med källkoden i filen foo.c , som kan kompileras till den körbara filen foo . We assume we have a C program, with the source code in the foo.c file, which can be compiled into the executable foo file. En enkel Makefile för detta kan se ut så här: A simple Makefile for this may look like this:

foo: foo.c foo: foo.c
	gcc -g -Wall foo.c -o foo gcc -g -Wall foo.c -o foo
(Notera att raden med gcc -kommandot måste börja med ett tab-tecken, inte med mellanslag!) (Note that the line with the gcc command must begin with a loss character, not with spaces!)

Detta betyder att vi kan skapa filen foo utgående från filen foo.c , genom att köra kommandot gcc -g -Wall foo.c -o foo . This means we can create the foo file based on the foo.c file by running the command gcc -g -Wall foo.c -o foo . Filen foo är också beroende av filen foo.c , så om foo.c har ändrats sen foo skapades, så måste kommandot köras på nytt. The foo file is also dependent on the foo.c file, so if foo.c has been modified since foo was created, the command must be run again.

Om vi nu ger kommandot make , i katalogen där filerna foo.c och Makefile finns, så kommer kompileringen att köras: If we now give the command make , in the directory where the foo.c and makefile files exist , then compilation will run:

tpy@live:~/koi$ make foo tpy @ live: ~ / koi $ make foo
gcc -g -Wall foo.c -o foo gcc -g -Wall foo.c -o foo
tpy@live:~/koi$ TPY @ live: ~ / koi $ 
Om vi skriver samma kommando en gång till direkt, utan att ha ändrat i filen foo.c , så är make tillräckligt smart för att inse att programmet inte behöver kompileras om: If we write the same command again immediately without changing the foo.c file, then the spouse is smart enough to realize that the program does not need to be compiled if:
tpy@live:~/koi$ make foo tpy @ live: ~ / koi $ make foo
make: `foo' is up to date. make: `foo 'is up to date.
tpy@live:~/koi$ TPY @ live: ~ / koi $ 
Här är en lite mer avancerad Makefile : Here's a little more advanced Makefile :
# Makefile för debug-övningsuppgiften # Makefile for debug-exercise task
# Skriv bara "make" för att kompilera programmet metamatic! # Just type "husband" to compile the program metamatic!

OFILES = metamatic.o ao abc.o abscissa.o absurdum.o ack.o OFILES = metamatic.o ao abc.o abscissa.o absurdum.o ack.o

CPPFLAGS += -g CPPFLAGS + = -g

metamatic: $(OFILES) metamatic: $ (OFILES)
	g++ -g $(OFILES) -o metamatic g ++ -g $ (OFILES) -o metamatic

clean: Clean:
        rm -f $(OFILES) metamatic rm -f $ (OFILES) metamatic
Körexempel: Körexempel:
tpy@live:~/koi$ make tpy @ live: ~ / koi $ make
g++ -g -c -o metamatic.o metamatic.cc g ++ -g -c-metamatic.o metamatic.cc
g++ -g -c -o ao a.cpp g ++ -g -c-o ao a.cpp
g++ -g -c -o abc.o abc.cpp g ++ -g -c -o abc.o abc.cpp
g++ -g -c -o abscissa.o abscissa.cpp g ++ -g -c-abscissa.o abscissa.cpp
g++ -g -c -o absurdum.o absurdum.cpp g ++ -g -c -o absurdum.o absurdum.cpp
g++ -g -c -o ack.o ack.cpp g ++ -g -c -o ack.o ack.cpp
g++ -g metamatic.o ao abc.o abscissa.o absurdum.o ack.o -o metamatic g ++ -g metamatic.o ao abc.o abscissa.o absurdum.o ack.o -o metamatic
tpy@live:~/koi$ make clean tpy @ live: ~ / koi $ make clean
rm -f metamatic.o ao abc.o abscissa.o absurdum.o ack.o metamatic rm -f metamatic.o ao abc.o abscissa.o absurdum.o ack.o metamatic
tpy@live:~/koi$ TPY @ live: ~ / koi $ 


Thomas Padron-McCarthy ( thomas.padron-mccarthy@oru.se ) Thomas Padron-McCarthy ( thomas.padron-mccarthy@oru.se )