Download presentation
Presentation is loading. Please wait.
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
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.