Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 2 Linux Basic Commands,Shell and Make

Similar presentations


Presentation on theme: "Lecture 2 Linux Basic Commands,Shell and Make"— Presentation transcript:

1 Lecture 2 Linux Basic Commands,Shell and Make
September 6, 2016 Kyu Ho Park

2 Linux Basics

3 root 계정 전환 ubuntu@omap:~$ sudo passwd root
[sudo] password for ubuntu: temppwd Enter new UNIX password: temppwd (또는 원하는 패스워드) Retype new UNIX password: temppwd (또는 원하는 패스워드를 다시 입력) passwd: password updated successfully su root Password: temppwd (또는 위에서 입력한 패스워드)

4 Linux commands File related:
ls , cd, mkdir, rm, df, du, mount, unmount, mkfs touch, chmod, chown, tar, cp, mv, Process related: clear, whoami, whereis, su, pwd

5 Shell -command interpreter ‘User’ Linux Shell Linux

6 Shell programming -script : it is a file that contains shell command and it is a shell program. -Creating a Script #!/bin/bash # An example of a shell script that replaces the command ‘ls –l > output.txt’ ls –l > output.txt exit 0

7 Shell Syntax Variables Conditions
Program control: if, elif, for, while, until, case Functions Lists

8 Project1-Task1

9 $tree . ├── Algol │ ├── Ch1 │ │ ├── c1p1 │ │ ├── c1p1.c │ │ ├── c1p2
│   │   ├── data │   │   ├── data.txt │   │   ├── ex03-01 │   │   ├── ex03-01.c │   │   ├── ex04-01 │   │   ├── ex04-01.c │   │   ├── ex10-01.c │   │   ├── ex12-01c │   │   ├── ex12-01c.c │   │   ├── ex12-01s │   │   ├── ex12-01s.c │   │   ├── fifo │   │   ├── honor │   │   ├── honor.c │   │   ├── newdata1.txt │   │   ├── newdata.txt │   │   ├── newname.txt │   │   ├── test.txt │   │   └── test.txt.soft -> test.txt │   ├── Ch2 │   │   ├── mem-region │   │   └── mem-region.c │   ├── fileTest │   │   └── data │   ├── infile │   ├── outfile │   ├── pipewr │   ├── pipewr.c │   ├── testWelcom │   ├── testWelcom.c │   └── testWelcom.s ├── clone ├── clone.c ├── DDriver │   ├── Makefile │   ├── P301 │   ├── P301.c │   ├── P303 │   ├── P303.c │   └── test.c ├── express ├── fork ├── fork.c ├── sh1 ├── shQuot ├── traverse └── treesearch

10 Tree search

11 Interactive program

12 Making a script executable

13 Shell script( commands in a file )

14 variables

15 Quoting

16 if~fi if [ -d $directory ]; then ---- fi if[ -d $directory ] then ---

17 if~fi -d file //True if the file is a directory
-e file //True if the file exists -f file //True if the file is a regular file -x file //True if the file is executable ----

18 ‘if~fi’ control structure
if condition then statements else fi

19 forSample script

20 for

21 while while condition do statements done

22 functions function( ) { statements }

23 function example

24 Task 2 Simple C programing
Basic Linux System Calls open(),read(),write(),lseek(),close()

25 Basic Linux System Calls open(),read(),write(),lseek(),close()
#include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> int open(const char *path, int oflags); int open(const char *path, int oflags, mode_t mode); Open with oflag=O_CREATE, we must use the three-parameter form with mode. mode: S_IRUSER: Read permission, owner S_IWGRP:Write permission, group S_IXOTH: Execute permission, others oflag={O_RDONLY,O_WRONLY,O_RDWR} ored with{O_APPEND, O_TRUNC, O_CREATE, O_EXCL}

26 read(), write() read() #include <unistd.h>
size_t read(int fildes, void *buf, size_t nbytes); write() size_t write(int fildes, const void *buf, size_t nbytes);

27 lseek() lseek() #include <unistd.h> #include <sys/types.h>
off_t lseek(int fildes, off_t offset, int whence); //lseek() system call sets the read/write pointer of a file descriptor fildes. whence: SEEK_SET: offset is an absolute position, SEEK_CUR:offset is relative to the current position, SEEK_END:offset is relative to the end of the file.

28 rand( ) rand( ) #include <stdlib.h> #define RAND_MAX 0x7ff
rand() //it will generate a number of [0, 0x7ff]

29 memalign() memalign() allocates size bytes and returns a pointer to the allocated memory. The memory address will be a multiple of boundary, which must be a power of two.

30 make and makefile

31 make [-f filename] % make [-f filename] - if you don’t use –f option, the default file is Makefile or makefile. -if there are Makefile and makefile at the same time, Makefile will be selected.

32 example /*file: test.h*/
/*file: main.c*/ #include <stdio.h> #include “test.h” int main(void) { test1(); test2(); printf(“Hello world!\n”); return 0; } /*file: test.h*/ void test1(void); void test2(void); /*file: test1.c*/ void test1(void) { } /*file: test2.c*/ void test2(void)

33 Without ‘make’ %gcc –c main.c %gcc –c test1.c %gcc –c test2.c %gcc –o test main.o test1.o test2.o

34 With ‘make’ -Makefile %vi Makefile test : main.o test1.o test2.o gcc –o test main.o test1.o test2.o main.o : test.h main.c gcc –c main.c test1.o : test.h test1.c gcc –c test1.c test2.o : test.h test2.c gcc –c test2.c %make gcc –c main.c gcc –c test1.c gcc –c test2.c gcc –o test main.o test1.o test2.o

35 test2.c is modified %vi test2.c /*file:test2.c*/ #include <stdio.h> void test2(void) { printf(“This is test2.c\n”); } %make gcc –c test2.c gcc -0 test main.o test1.o test2.o

36 Macros in a makefile

37

38 Label Makefile2:

39 make clean

40 Typical MACRO var. #Which compiler CC =gcc #Option flags CFLAGS = -g –Wall #Program source files SRCS = main.c test1.c test2.c #object files OBJS #Library files LIBS #Library directories LIBDIRS

41

42 Implicit rule #Name of the current target $? # List of prerequisites(files the target depends on) #changed more recently than the current target $< #Name of the current prerequisite $* #Name of the prerequisite, without any suffix

43 Kernel Compile 1.Kernel Configuration to give the information of current H/W, Kernel, Network characteristics to the newly made kernel. -make config, make menuconfig, make xconfig 2.Kernel compile -make bzImage or make zImage( for a small sized kernel) - make( after Linux version 2.6) 3.Kernel install -make install


Download ppt "Lecture 2 Linux Basic Commands,Shell and Make"

Similar presentations


Ads by Google