Transcript 리눅스 실습 자료
리눅스 실습
정성훈
1
로그인
리눅스를 사용하기 위하여 밟는 승인절차
ID/PW 를 입력
계정 (account)은 슈퍼유저가 만들어 줌
2
패스워드 변경
기존의 패스워드를 새로운 패스워드로 변경 가
능
3
기본 리눅스 명령
date: 날자 출력
cal : 달력출력
w: 상요자 출력
4
기본 리눅스 명령 (계속)
uptime: 시스템 구동된 정보 출력
hostname : 시스템 이름 출력
5
기본 파일 명령어
pwd: 현재 디렉토리(폴더) 출력
cd : 디렉토리 변경
$ cd ..
$ cd ikim
$ cd /u/ikim
$ cd
6
기본 파일 명령어 (계속)
ls: 디렉토리 내의 파일을 봄
$ ls –l
$ ls -al
옵션
-F
설명
디렉토리는 파일이름에 /를 실행파일은 *을 링크된 파일은 @ 문자를
붙여 출력한다.
-a
디렉토리의 모든 파일을 출력한다.
-l
파일의 자세한 정보를 출력한다.
-t
변경된 시간을 기준으로 정렬한다.
7
기본 파일 명령어 (계속)
파일의 종류
-
순수 파일
d
디렉토리 파일
c
특수파일(문자단위로 통신하는 하드웨어)
b
특수파일(블록단위로 통신하는 하드웨어)
l
다른 곳에 존재하는 파일과의 link
파일에 허락되는 액세스 종류
-
액세스가 허락되지 않음
r
파일을 읽을 수 있음
w
파일에 새로운 내용을 쓸 수 있음
x
파일을 실행시킬 수 있음
-rw-r--r--
1
mike 146
Sep 17 09:53 temp
8
기본 파일 명령어 (계속)
디렉토리 생성 (mkdir)
9
기본 파일 명령어 (계속)
디렉토리 삭제(rmdir)
10
파일시스템 명령어
chmod를 사용하여 액세스 권한 변경하기
액세스 권한 표현에 사용되는 8진수 값
400
파일 소유자가 파일을 읽을 수 있음
200
파일 소유자가 파일에 새로운 내용을 쓸 수 있음
100
파일 소유자가 파일을 실행시킬 수 있음
040
동일 그룹이 파일을 읽을 수 있음
020
동일 그룹이 파일에 새로운 내용을 쓸 수 있음
010
동일 그룹이 파일을 실행시킬 수 있음
004
기타 사용자가 파일을 읽을 수 있음
002
기타 사용자가 파일에 새로운 내용을 쓸 수 있음
001
기타 사용자가 파일을 실행시킬 수 있음
$ chmod 666 temp
11
파일시스템 명령어 (계속)
rm 을 사용한 파일의 삭제
$ rm temp test1
$ rm -r manual
mv를 사용한 파일이동
$ mv filename directory
$ mv /u/mike/temp /u
$ mv /u/mike/temp /u/mike/test1 /u
$ mv *.c /u
12
파일시스템 명령어 (계속)
cp를 사용한 파일복사
$ cp test3.c test.c /usr2/97/102/hw3
$ cp *.c clib
13
vi 편집기
vi 시작 및 종료
$ vi filename
~
~
~
~
~
~
~
“filename" [New file]
14
Vi 모드
15
Vi 명령
콜론 명령
$ vi
:w filename
:e filename2
:r 삽입할 파일이름
16
Vi 명령 (계속)
vi에서 편집의 시작, 저장 및 종료방법들
vi filename
vi를 시작하고 filename을 편집
vi
파일명칭을 명시하지 않은 채 vi 시작
:e filename
편집 중 새로운 파일 filename을 편집
:e! filename
편집 중인 파일이 저장되지 않았어도 강제로 새 로운 파일을 편집
ZZ
편집한 파일을 저장하며 vi를 종료
:q!
변경내용 저장 없이 vi를 종료
:w
vi에 있으면서 편집한 파일을 저장
:w filename
filename 의 이름으로 파일을 저장
:w >> filename
filename 에 편집버퍼의 내용을 추가
:1,20 w filename
1행부터 20행 까지를 filename의 이름으로 저장
:wq
저장 후 종료, ZZ와 같은 기능
:r filename
filename을 읽어서 삽입
vi -R filename
혹은
읽기 전용 모드로 시작
view filename
vi -r filename
비정상적인 종료 후 저장되지 않은 내용 복구
17
<space>
Vi 명령 (계속)
커서의 이동
→ or l
한 문자씩 오른쪽으로
← or h
한 문자씩 왼쪽으로
↓ or j
한 행씩 아래로
↑ or k
한 행씩 위로
w
다음 단어의 첫 글자로 (단어는 공백이나 탭으로 구분)
e
다음 단어의 끝 글자로
b
이전 단어의 첫 글자로
W, E, B
w, e, b 와 동일 동작 (단 문장부호 무시)
0
행의 처음으로 (행은 <return>으로 구분)
$
행의 끝 부분으로
^
행의 공백이 아닌 처음 문자로
<return> or +
다음 행의 공백이 아닌 처음 문자로
-
이전 행의 공백이 아닌 처음 문자로
)
다음 문장의 처음으로 (문장은 .으로 구분)
(
이전 문장의 처음으로
}
다음 문단의 처음으로 (문단은 공백 행으로 구분)
{
이전 문단의 처음으로
H
화면 첫 행으로
M
화면 중간 행으로
L
화면 끝 행으로
<ctrl-u>
텍스트에서 반 페이지씩 위로 이동
<ctrl-d>
텍스트에서 반 페이지씩 아래로 이동
<ctrl-b>
텍스트에서 한 페이지씩 위로 이동
<ctrl-f>
텍스트에서 한 페이지씩 아래로 이동
18
Vi 명령 (계속)
입력 및 변경
i
커서 앞에 텍스트를 삽입
a
커서 뒤에 텍스트를 삽입
r
R
I
행의 시작 부분에 텍스트를 삽입
A
행의 끝 부분에 텍스트를 삽입
O
o
<esc>
현재 행 앞의 새로운 행에서 텍스트
s
cw
를 입력
현재 행 뒤의 새로운 행에서 텍스트
한 문자 변경
커서 위치부터 원하는 곳까지 변
경
하나의 문자를 여러 문자로 변경
커서위치부터 한 단어를 변경 (c
범위 가능)
C
커서부터 행 끝까지 변경
S, cc
한 행 전체를 변경
를 입력
명령어 모드로 복귀
19
Vi 명령 (계속)
삭제, 검색 및 치환
:line
:line1,line2
:1,.
:.,.+10
:1,$
:%
한 행을 지정
line1 행부터 line2 행까지 지정
첫 행부터 커서가 위치한 행까지 지정
(점은 현재 커서가 위치한 행을 가리킴)
커서가 위치한 행부터 10행 뒤까지 지정
전체 행을 지정
($는 끝 행을 가리킴)
전체 행을 지정 (%는 전체 행을 가리킴)
20
Vi 명령 (계속)
x
커서에 위치한 한 문자 삭제
X
커서 왼쪽 문자 삭제
D
커서 위치부터 행 끝까지 삭제
dmove
dd
:lined
:line,lined
dw
d10w
커서 위치부터 move 까지 삭제
(move 는 위치 지정 명령)
커서가 위치한 곳의 한 행 삭제
지정 행 삭제
지정 행 범위 삭제
커서가 위치한 곳의 한 단어 삭제
커서가 위치한 곳부터 10 단어 삭제
db
커서가 위치한 곳의 한 단어 뒤로 삭제
d2)
커서가 위치한 곳부터 뒤로 두 문장 삭제
d5{
커서가 위치한 곳부터 앞으로 다섯 문단 삭제
dG
커서가 위치한 곳부터 끝까지 모두 삭제
d1G
커서가 위치한 곳부터 처음까지 모두 삭제
21
Vi 명령 (계속)
검색 명령어
/xxx
아래로 xxx 문자열 검색
?xxx
위로 xxx 문자열 검색
/
아래로 검색
?
위로 검색
n
동일 방향 재 검색
N
반대 방향 재 검색
:set ic
:set noic
대소문자 구분 하지 않고 검색
대소문자 구분 하여 검색
22
Vi 명령 (계속)
정규 표현식
.
<return>을 제외한 모든 단일 문자와 대응
*
0 또는 그 이상의 문자와 대응
^
줄의 시작과 대응
$
줄의 끝과 대응
\<
단어의 시작과 대응
\>
단어의 끝과 대응
[]
[] 안에 있는 문자 중 하나와 대응
[^ ]
[] 안의 문자를 제외한 문자 하나와 대응
\
\ 뒤 문자를 일반문자로 해석
23
Vi 명령 (계속)
여러가지 치환 예
:s/Unix/UNIX
커서가 있는 행의 첫 번째 Unix만 UNIX로 치환
:1,10s/Test/test/g
첫 행부터 10번째 행까지 모든 Test를 test로 치환
:1,$s/Ch/Chapter/c
모든 행에서 Ch를 Chapter로 물어보면서 치환
:%s/Ch/Chapter/c
(두 명령은 동일)
:57s/book//g
57번째 행의 모든 book을 없는 것으로 치환(즉 삭제)
:%s/test$/TEST/g
모든 행의 끝에 있는 test만 TEST로 치환
:20,45s/thi*/these/g 20 행부터 45행까지 thi가 있는 모든 문자열을 these로 치환
:%s/[^bB]est/test
모든 행에서 best나 Best 이외에 모든 문자est를 test로 치환
24
Vi 명령 (계속)
복사와 이동
모든 d 명령어 이동할 경우에 지우는 명령
yw
yy 혹은 Y
복사할 경우에 버퍼에 한 단어를 복사
복사할 경우에 버퍼에 한 행을 복사
nyy 혹은 nY n개의 행을 버퍼에 복사
p
P
단어의 경우 커서위치에 행의 경우 커서 다음 행
에 붙이기
단어의 경우 커서위치 앞에 행의 경우 커서 윗
행에 붙이기
:i,jmk
i 행부터 j 행까지를 k 행으로 이동
:i,jcok
i 행부터 j 행까지를 k 행으로 복사
25
Vi 명령 (계속)
명령의 반복 및 취소
.
바로 전 수행한 명령의 반복
n.
바로 전 수행한 명령의 n 번 반복
u
바로 전 수행한 명령의 취소
U
특정 행에서 수행한 모든 명령의 취소
26
리눅스 프로그래밍
절차
Vi 등과 같은 editor로 C프로그램 작성
예) vi test.c
gcc 컴파일러를 이용하여 컴파일
gcc –o run test.c
run (실행)
수학 라이브러리의 삽입
gcc –o run test.c –lm
여러 파일을 같이 compile
Gcc –o run test1.c test2.c test3.c -lm
Makefile 을 이용하여 compile (참고자료)
27
리눅스 프로그래밍 (계속)
간단한 예제) 화면에 hello world 를 출력
#include <stdio.h>
main()
{
printf(“hello world !!!\n”);
}
test.c 로 저장
gcc –o run test.c
run 수행
28