SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Linux tutorial
2013. 09. 05.
오늘 다룰 이야기
• putty를 통한 windows 환경에서 terminal 접속
• Linux terminal 사용시 필요한 명령들
• Terminal 환경에서 파일을 다뤄보기
LinuxTerminal
1
들어가기에 앞서
• Linux terminal의 장점은?
 공짜다!
 쉽게 설치되는 시스템/프로그래밍 관련 패키지들
 알면 알 수록 일 처리의 속도가 빨라짐
 효율적인 원격 작업(terminal 이용)
• 그렇다면 단점은?
 Windows의 장점을 가지고 있지 못함(단언컨데, Windows는…)
LinuxTerminal
2
iPutty - A SSH Client for Windows
• https://bitbucket.org/daybreaker/iputty/wiki/Home
LinuxTerminal
3
Putty 실행
LinuxTerminal
4
계정 정보 입력
LinuxTerminal
5
실습 자료 다운 받기
• 다운 받는 방법
$ wget http://libe.lavida.us/linux.zip
…
Saving to: ‘linux.zip’
100%[=====================================>] 6,156 --.-K/s in 0s
2013-09-05 21:11:10 (81.0 MB/s) - ‘linux.zip’ saved [6156/6156]
LinuxTerminal
6
압축 풀고 이동하기
$ unzip linux.zip
…
$ pwd
/home/hhjeong/
$ cd linux_seminar
$ ls –l
…
$ pwd
/home/hhjeong/linux_seminar
LinuxTerminal
7
linux_ 치고 tab을 누르면?
txt 파일을 만들어 봅시다!
$ cat > first_file.txt
이것은 제가 처음 만든 파일입니다!
내용은 아무렇게 입력을 해보세요~
그리고 마지막에는 ctrl+d 를 눌러주세요.
ctrl누른 상태에서 d를 눌러주시면 됩니다.
LinuxTerminal
8
파일 내용 보기
$ cat first_file.txt
이것은 제가 처음 만든 파일입니다!
내용은 아무렇게 입력을 해보세요~
그리고 마지막에는 ctrl+d 를 눌러주세요.
ctrl누른 상태에서 d를 눌러주시면 됩니다.
$ head -2 first_file.txt
이것은 제가 처음 만든 파일입니다!
내용은 아무렇게 입력을 해보세요~
$ tail -1 first_file.txt
ctrl누른 상태에서 d를 눌러주시면 됩니다.
LinuxTerminal
9
덧붙이기
$ cat >> first_file.txt
이어서 입력해봐요
$ cat first_file.txt
이것은 제가 처음 만든 파일입니다!
내용은 아무렇게 입력을 해보세요~
그리고 마지막에는 ctrl+d 를 눌러주세요.
ctrl누른 상태에서 d를 눌러주시면 됩니다.
이어서 입력해봐요
LinuxTerminal
10
여기서 잠깐
Q) 그럼 문서 편집할 때는 어떻게 하나요?
A) 일반적으로 vi/emacs등의 에디터를 사용합니다.
개인적으로는 vi를 추천하고, vim을 깔아 사용하는 것이 좋습니다.
LinuxTerminal
11http://unix.stackexchange.com/
여기서 잠깐
Q) Vi를 공부하려고 합니다. 어떻게 하는게 좋을까요?
A) 다음을 이용하시면 좋습니다.
 http://likelion.net/class01/likelion01_vim_seminar.pdf
 http://choiyongchol.com/vim/go
LinuxTerminal
12
여기서 잠깐(계속)
• 읽기 귀찮은 사람들을 위한 간단 요약
 vim 파일이름
 파일이 있으면 편집, 없을 경우 새로운 파일 생성
 i키를 누르면 VS와 메모장 처럼 편집 가능(입력 모드)
 Esc를 누르면 다시 복귀 편집 불가(일반 모드)
 :를 누르면 저장, 다른 문서 편집등이 가능(명령 모드)
 :q(종료)
 :w(저장)
 :e 다른 파일(다른 파일 편집)
 :e . (현재 디렉토리 탐색)
 이 말고도 정말 다양한 기능이 많습니다!
 vim 쓴지 9년 짼데 아직도 모르는 기능이 많아요.
 물론 쓰려면 당연히 공부를 해야…
LinuxTerminal
13
그렇다면 cat는 쓸모가 없나요?
• 때때로 쓸모가 있습니다.
 윈도의 텍스트 문서를 사용하는 terminal을 이용해 저장하기
1. putty 선택
2. $ cat > filename
3. 윈도 내에서 텍스트 복사
4. putty 선택 후에 마우스 우 클릭
5. ctrl+d
 만약, 안 될 경우에는 enter를 친 다음 ctrl+d
LinuxTerminal
14
원래 위치로 돌아가기
$ cd .. 혹은 $ cd ~
$ pwd
/home/hhjeong/
LinuxTerminal
15
파일 지우기
$ rm linux.zip
$ rm linux_seminar
rm: `linux_seminar/'를 지울 수 없음: 디렉터리입니다
$ rm linux_seminar –rf
LinuxTerminal
16
다시 한번 더!
• 다시 실습 자료를 다운 받아 봅시다!
• 다음의 파일을 다운 받아 봅시다.
 http://likelion.net/class01/likelion01_vim_seminar.pdf
 저장될 디렉토리의 위치 : /home/username/linux_seminar
 저장되는 파일의 이름 : vim.pdf
 힌트 : $ wget --help | more
LinuxTerminal
17
앞의 문제의 정답
$ wget --help
…
Download:
-t, --tries=NUMBER set number of retries to NUMBER (0 unlimits).
--retry-connrefused retry even if connection is refused.
-O, --output-document=FILE write documents to FILE.
-nc, --no-clobber skip downloads that would download to
$ wget http://likelion.net/class01/likelion01_vim_seminar.pdf -O vim.pdf
LinuxTerminal
18
Linux의 파일 구조
LinuxTerminal
19
http://www.ee.surrey.ac.uk/Teaching/Unix/unixintro.html
/home/its/ug1/ee51vn/report.doc
알면 좋은 Linux 특징
• file/directory 대소문자 구분(case-sensitive)
• 프로그램 실행 방법
 ./path/to/your/excutable/file
 /usr/bin에 있을 경우 file명 그대로
 예시 : python hello.py
 Background 실행
 command-line &
 접속을 종료 해도 해당 process는 살아 남음
LinuxTerminal
20
기본 명령(이것만 해도 해커처럼 보
임!)
LinuxTerminal
21
명령 용도 예시
ls 현 위치의 file과 directory listing
$ ls -a
$ ls -al
$ ls -alh
mkdir directory 만들기 $ mkdir new_folder
cd directory 특정 directory로 이동
$ cd other_folder
$ cd /home/hhjeong/Workspace
$ cd ~/Workspace
cd 혹은 cd ~ change to home-directory
cd .. Parent directory로 이동
pwd 현 위치 표시
기본 명령(계속)
LinuxTerminal
22
명령 용도 예시
cp src dest 파일을 복사하기
cp *.txt /etc/hello/
cp a.txt b.txt
cp * /home/world/ -R
mv src dest 파일을 이동시키거나, 이름 변경
mv hello.txt world.txt
mv * ~/world/
mv * ../dest/ -R
rm file 파일 삭제 rm a.out
rmdir directory 디렉토리 삭제(빈 디렉토리만 가능) rmdir /home/username/foo/
wc file 파일의 단어 수/문자 수/줄 수 세기
wc a.txt
wc –l a.txt
wc –c a.txt
wc –w a.txt
응용 하기
• 패키지 설치하기
• 압축 풀기
• 프로세스 죽이기
• 리다이렉션
• 파일 검색하기
• 문자열 검색하기
• 파일을 입맛대로 수정하기
• bash에서 for loop
• 파일 나누고 합치기
LinuxTerminal
23
패키지 설치하기
• In CentOS
$ yum install 패키지명
• In Debian(or Ubuntu)
$ apt-get install 패키지명
LinuxTerminal
24
패키지 이름을 모른다면?
• Google it!
 검색 키워드 “CentOS 패키지명”
 검색 키워드 “Ubuntu 패키지명“
• 버전을 같이 넣어주면 검색의 완성! 보
다 정확한 결과!
LinuxTerminal
25
압축 풀기
• *.tar.gz
$ tar xvzf filename
• *.zip
$ unzip filename
$ unzip filename –d /some/path/you/want
LinuxTerminal
26
특정 프로세스 찾아 죽이기
$ ps a | grep python
8177 pts/0 T 0:00 python runner.py 10 result_0904_10.txt
10102 pts/0 T 0:00 python runner.py 10 result_0904_10.txt
11182 pts/3 T 0:00 python runner.py 10 result_1445.txt
12560 pts/3 T 0:00 python runner.py 10 result_1445.txt
$ kill -9 8177
$ ps aux | grep python
LinuxTerminal
27
리다이렉션(redirection)
$ g++ a_plus_b.cc -O2 -o a_plus_b
$ ./a_plus_b < a_plus_b.in
5
2+3=5
$ ./a_plus_b < a_plus_b.in > a_plus_b.out
2+3=5
$ cat a_plus_b.out
5
$ ./a_plus_b < a_plus_b.in 2> a_plus_b.err
5
LinuxTerminal
28
파일 위치 검색하기
$ find . -name “*.txt”
$ find / -name “[cb]ar???_*.avi”
LinuxTerminal
29
문제
• /usr/bin/ 폴더 안의 py 라는 접두어(prefix)를 가지는 모든
파일들을 찾아보시오
LinuxTerminal
30
파일 내에서 문자열 검색
$ grep word filename
$ grep word *.txt
$ grep word *.txt –r
$ grep -e “V66 “ interaction.txt > V66.txt
 Pattern안에 tab 입력시엔 ctrl+v 다음 tab
LinuxTerminal
31
awk를 이용, 특정 열 뽑기
$ awk ‘{print $1, $2}’ tcga.txt
$ awk ‘{print $1}’ tcga.txt | head -10
$ awk ‘{print $1}’ tcga.txt > tcga_id.txt
LinuxTerminal
32
특정 열의 개수를 가진 행 뽑기
$ awk '{ if(NF==4) print }' interactions.txt
$ awk '{ if(NF==4) print }' interactions.txt >
interaction2.txt
$ awk '{ if(NF==4) print }' interactions.txt >
interaction2.txt
$ awk '{ if(NF==5) print }' interactions.txt >>
interaction2.txt
LinuxTerminal
33
파일 정렬하기
$ sort -r -k 4 interaction2.txt
$ sort -r -k 4 -g interaction2.txt >
sorted_interaction2.txt
LinuxTerminal
34
문제
• interaction.txt 의 구조
 SNP1, SNP2, …, 측정 값1, 측정 값2
 SNP수가 2개 혹은 3개 존재
• SNP 수가 2개인 행을 int2.txt에 저장, SNP 수가 3개인 행을
int3.txt에 저장
 단, 측정 값 2는 제외하고 저장
• 각 파일을 측정 값의 내림 차순 정렬
• 두 파일을 합쳐서 int_all.txt 파일 생성
LinuxTerminal
35
for loop 작성하기
$ vim for.sh
#!/bin/bash
for num in 1 2 3 4 5 6 7
do
echo $num
done
LinuxTerminal
36
for loop 작성하기
$ ./for.sh
-bash: ./for.sh: 허가 거부
$ bash for.sh
1
2
3
4
5
6
7
LinuxTerminal
37
for loop 작성하기
$ chmod 700 for.sh
$ ./for.sh
1
2
3
4
5
6
7
LinuxTerminal
38
for loop 작성하기
for((i=1;i<=20;++i))
do
./a.out < input.$i > output.$i
cat output.$i
done
LinuxTerminal
39
for loop 작성하기
• 특정 filename을 이용한 for loop
for filename in *.txt
do
rm $filename
done
LinuxTerminal
40
for loop 작성하기
• Command line에서 즉시 작성
$ for i in 1 2 3 4; do command; done
LinuxTerminal
41
문제
• linux_seminar 폴더의 모든 *.txt파일
 맨 첫 줄을 출력
 출력 결과는 header.txt에 저장
LinuxTerminal
42
Linux terminal을 더 잘 쓰고 싶다
면?
• 다음의 세 파일을 설정해보자!
 ~/.vimrc
 https://github.com/skwp/dotfiles/blob/master/vimrc
 ~/.screenrc
 http://forcecore.tistory.com/604
• 다음 사이트도 참고해보자!
 http://theyearlyprophet.com/love-your-terminal.html
LinuxTerminal
43
참고 자료
• http://www.ee.surrey.ac.uk/Teaching/Unix/
• http://www.cyberciti.biz/faq/bash-loop-over-file/
LinuxTerminal
44

Weitere ähnliche Inhalte

Was ist angesagt?

노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)Ubuntu Korea Community
 
리눅스에 대하여
리눅스에 대하여리눅스에 대하여
리눅스에 대하여ETRIBE_STG
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 
이것이 리눅스다
이것이 리눅스다이것이 리눅스다
이것이 리눅스다Yeon Tae Kim
 
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은jieun kim
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차준혁 이
 
우분투 커널 컴파일
우분투 커널 컴파일우분투 커널 컴파일
우분투 커널 컴파일he4722
 
cross compile
cross compilecross compile
cross compilehe4722
 
우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기Hoyoung Jung
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편Sam Kim
 
리눅스 시작하기
리눅스 시작하기리눅스 시작하기
리눅스 시작하기Pete Lee
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part Isprdd
 
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은jieun kim
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편Sam Kim
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호ETRIBE_STG
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespaceSam Kim
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기Mario Cho
 
Ch7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APICh7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APIHongmin Park
 

Was ist angesagt? (20)

노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
 
리눅스에 대하여
리눅스에 대하여리눅스에 대하여
리눅스에 대하여
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
이것이 리눅스다
이것이 리눅스다이것이 리눅스다
이것이 리눅스다
 
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차
 
우분투 커널 컴파일
우분투 커널 컴파일우분투 커널 컴파일
우분투 커널 컴파일
 
cross compile
cross compilecross compile
cross compile
 
우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
리눅스 시작하기
리눅스 시작하기리눅스 시작하기
리눅스 시작하기
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part I
 
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
1.intro to k8s
1.intro to k8s1.intro to k8s
1.intro to k8s
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace
 
Network researching
Network researchingNetwork researching
Network researching
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 
Ch7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APICh7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and API
 

Andere mochten auch

第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~
第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~
第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~Samurai Incubate Inc.
 
【侍】イベント成功会議121127
【侍】イベント成功会議121127【侍】イベント成功会議121127
【侍】イベント成功会議121127Samurai Incubate Inc.
 
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토itsming
 
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Paulraj Pappaiah
 
Bash-as-a-Interpreter
Bash-as-a-InterpreterBash-as-a-Interpreter
Bash-as-a-InterpreterJuhwan Yun
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해InGuen Hwang
 
Medical Wiki Project
Medical Wiki ProjectMedical Wiki Project
Medical Wiki ProjectKwangmo Yang
 
7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트Young-Ho Cha
 
간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기licubeclub
 
푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification Summary푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification SummaryBrave Cheon
 
안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처JavaCommunity.Org
 
Basics of Denial of Service Attacks
Basics of Denial of Service AttacksBasics of Denial of Service Attacks
Basics of Denial of Service AttacksHansa Nidushan
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT광운 이
 
Victoria's Secret Angels Campaign
Victoria's Secret Angels CampaignVictoria's Secret Angels Campaign
Victoria's Secret Angels CampaignJohn White
 

Andere mochten auch (17)

第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~
第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~
第3回起業、ファイナンスのために起業家が知っておくべき必修法知識 ~ロジックで理解するベンチャーファイナンス~
 
【侍】イベント成功会議121127
【侍】イベント成功会議121127【侍】イベント成功会議121127
【侍】イベント成功会議121127
 
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
 
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
 
Bash-as-a-Interpreter
Bash-as-a-InterpreterBash-as-a-Interpreter
Bash-as-a-Interpreter
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
 
Medical Wiki Project
Medical Wiki ProjectMedical Wiki Project
Medical Wiki Project
 
7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트
 
간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기
 
푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification Summary푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification Summary
 
안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처
 
Basics of Denial of Service Attacks
Basics of Denial of Service AttacksBasics of Denial of Service Attacks
Basics of Denial of Service Attacks
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT
 
DDoS Attacks
DDoS AttacksDDoS Attacks
DDoS Attacks
 
Victoria's Secret Angels Campaign
Victoria's Secret Angels CampaignVictoria's Secret Angels Campaign
Victoria's Secret Angels Campaign
 
sungmin slide
sungmin slidesungmin slide
sungmin slide
 
Denial of Service Attacks
Denial of Service AttacksDenial of Service Attacks
Denial of Service Attacks
 

Ähnlich wie Linux tutorial

IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1Park Jonggun
 
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서Lee Sang-Ho
 
[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2nd[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2ndPark Jonggun
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠SangJung Woo
 
UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제Lee Sang-Ho
 
리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1Sangho Park
 
강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)
강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)
강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)Ubuntu Korea Community
 
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)Eunjeong (Lucy) Park
 
Linux ut-broker-install
Linux ut-broker-installLinux ut-broker-install
Linux ut-broker-installJUNHEEKIM27
 
리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리Seungyong Lee
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851Hyeok Oh
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migrationymtech
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013Jude Kim
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013Jude Kim
 
3.ubuntu custom
3.ubuntu custom3.ubuntu custom
3.ubuntu customsprdd
 

Ähnlich wie Linux tutorial (20)

IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
Linux+정리
Linux+정리Linux+정리
Linux+정리
 
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
 
[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2nd[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2nd
 
linux1
linux1linux1
linux1
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
 
shell and process
shell and processshell and process
shell and process
 
UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제
 
리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1
 
강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)
강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)
강분도 - 나만의 우분투 배포판 만들기 (2011Y06M25D)
 
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
 
Linux ut-broker-install
Linux ut-broker-installLinux ut-broker-install
Linux ut-broker-install
 
리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013
 
3.ubuntu custom
3.ubuntu custom3.ubuntu custom
3.ubuntu custom
 
K8s in action02
K8s in action02K8s in action02
K8s in action02
 

Linux tutorial

  • 2. 오늘 다룰 이야기 • putty를 통한 windows 환경에서 terminal 접속 • Linux terminal 사용시 필요한 명령들 • Terminal 환경에서 파일을 다뤄보기 LinuxTerminal 1
  • 3. 들어가기에 앞서 • Linux terminal의 장점은?  공짜다!  쉽게 설치되는 시스템/프로그래밍 관련 패키지들  알면 알 수록 일 처리의 속도가 빨라짐  효율적인 원격 작업(terminal 이용) • 그렇다면 단점은?  Windows의 장점을 가지고 있지 못함(단언컨데, Windows는…) LinuxTerminal 2
  • 4. iPutty - A SSH Client for Windows • https://bitbucket.org/daybreaker/iputty/wiki/Home LinuxTerminal 3
  • 7. 실습 자료 다운 받기 • 다운 받는 방법 $ wget http://libe.lavida.us/linux.zip … Saving to: ‘linux.zip’ 100%[=====================================>] 6,156 --.-K/s in 0s 2013-09-05 21:11:10 (81.0 MB/s) - ‘linux.zip’ saved [6156/6156] LinuxTerminal 6
  • 8. 압축 풀고 이동하기 $ unzip linux.zip … $ pwd /home/hhjeong/ $ cd linux_seminar $ ls –l … $ pwd /home/hhjeong/linux_seminar LinuxTerminal 7 linux_ 치고 tab을 누르면?
  • 9. txt 파일을 만들어 봅시다! $ cat > first_file.txt 이것은 제가 처음 만든 파일입니다! 내용은 아무렇게 입력을 해보세요~ 그리고 마지막에는 ctrl+d 를 눌러주세요. ctrl누른 상태에서 d를 눌러주시면 됩니다. LinuxTerminal 8
  • 10. 파일 내용 보기 $ cat first_file.txt 이것은 제가 처음 만든 파일입니다! 내용은 아무렇게 입력을 해보세요~ 그리고 마지막에는 ctrl+d 를 눌러주세요. ctrl누른 상태에서 d를 눌러주시면 됩니다. $ head -2 first_file.txt 이것은 제가 처음 만든 파일입니다! 내용은 아무렇게 입력을 해보세요~ $ tail -1 first_file.txt ctrl누른 상태에서 d를 눌러주시면 됩니다. LinuxTerminal 9
  • 11. 덧붙이기 $ cat >> first_file.txt 이어서 입력해봐요 $ cat first_file.txt 이것은 제가 처음 만든 파일입니다! 내용은 아무렇게 입력을 해보세요~ 그리고 마지막에는 ctrl+d 를 눌러주세요. ctrl누른 상태에서 d를 눌러주시면 됩니다. 이어서 입력해봐요 LinuxTerminal 10
  • 12. 여기서 잠깐 Q) 그럼 문서 편집할 때는 어떻게 하나요? A) 일반적으로 vi/emacs등의 에디터를 사용합니다. 개인적으로는 vi를 추천하고, vim을 깔아 사용하는 것이 좋습니다. LinuxTerminal 11http://unix.stackexchange.com/
  • 13. 여기서 잠깐 Q) Vi를 공부하려고 합니다. 어떻게 하는게 좋을까요? A) 다음을 이용하시면 좋습니다.  http://likelion.net/class01/likelion01_vim_seminar.pdf  http://choiyongchol.com/vim/go LinuxTerminal 12
  • 14. 여기서 잠깐(계속) • 읽기 귀찮은 사람들을 위한 간단 요약  vim 파일이름  파일이 있으면 편집, 없을 경우 새로운 파일 생성  i키를 누르면 VS와 메모장 처럼 편집 가능(입력 모드)  Esc를 누르면 다시 복귀 편집 불가(일반 모드)  :를 누르면 저장, 다른 문서 편집등이 가능(명령 모드)  :q(종료)  :w(저장)  :e 다른 파일(다른 파일 편집)  :e . (현재 디렉토리 탐색)  이 말고도 정말 다양한 기능이 많습니다!  vim 쓴지 9년 짼데 아직도 모르는 기능이 많아요.  물론 쓰려면 당연히 공부를 해야… LinuxTerminal 13
  • 15. 그렇다면 cat는 쓸모가 없나요? • 때때로 쓸모가 있습니다.  윈도의 텍스트 문서를 사용하는 terminal을 이용해 저장하기 1. putty 선택 2. $ cat > filename 3. 윈도 내에서 텍스트 복사 4. putty 선택 후에 마우스 우 클릭 5. ctrl+d  만약, 안 될 경우에는 enter를 친 다음 ctrl+d LinuxTerminal 14
  • 16. 원래 위치로 돌아가기 $ cd .. 혹은 $ cd ~ $ pwd /home/hhjeong/ LinuxTerminal 15
  • 17. 파일 지우기 $ rm linux.zip $ rm linux_seminar rm: `linux_seminar/'를 지울 수 없음: 디렉터리입니다 $ rm linux_seminar –rf LinuxTerminal 16
  • 18. 다시 한번 더! • 다시 실습 자료를 다운 받아 봅시다! • 다음의 파일을 다운 받아 봅시다.  http://likelion.net/class01/likelion01_vim_seminar.pdf  저장될 디렉토리의 위치 : /home/username/linux_seminar  저장되는 파일의 이름 : vim.pdf  힌트 : $ wget --help | more LinuxTerminal 17
  • 19. 앞의 문제의 정답 $ wget --help … Download: -t, --tries=NUMBER set number of retries to NUMBER (0 unlimits). --retry-connrefused retry even if connection is refused. -O, --output-document=FILE write documents to FILE. -nc, --no-clobber skip downloads that would download to $ wget http://likelion.net/class01/likelion01_vim_seminar.pdf -O vim.pdf LinuxTerminal 18
  • 21. 알면 좋은 Linux 특징 • file/directory 대소문자 구분(case-sensitive) • 프로그램 실행 방법  ./path/to/your/excutable/file  /usr/bin에 있을 경우 file명 그대로  예시 : python hello.py  Background 실행  command-line &  접속을 종료 해도 해당 process는 살아 남음 LinuxTerminal 20
  • 22. 기본 명령(이것만 해도 해커처럼 보 임!) LinuxTerminal 21 명령 용도 예시 ls 현 위치의 file과 directory listing $ ls -a $ ls -al $ ls -alh mkdir directory 만들기 $ mkdir new_folder cd directory 특정 directory로 이동 $ cd other_folder $ cd /home/hhjeong/Workspace $ cd ~/Workspace cd 혹은 cd ~ change to home-directory cd .. Parent directory로 이동 pwd 현 위치 표시
  • 23. 기본 명령(계속) LinuxTerminal 22 명령 용도 예시 cp src dest 파일을 복사하기 cp *.txt /etc/hello/ cp a.txt b.txt cp * /home/world/ -R mv src dest 파일을 이동시키거나, 이름 변경 mv hello.txt world.txt mv * ~/world/ mv * ../dest/ -R rm file 파일 삭제 rm a.out rmdir directory 디렉토리 삭제(빈 디렉토리만 가능) rmdir /home/username/foo/ wc file 파일의 단어 수/문자 수/줄 수 세기 wc a.txt wc –l a.txt wc –c a.txt wc –w a.txt
  • 24. 응용 하기 • 패키지 설치하기 • 압축 풀기 • 프로세스 죽이기 • 리다이렉션 • 파일 검색하기 • 문자열 검색하기 • 파일을 입맛대로 수정하기 • bash에서 for loop • 파일 나누고 합치기 LinuxTerminal 23
  • 25. 패키지 설치하기 • In CentOS $ yum install 패키지명 • In Debian(or Ubuntu) $ apt-get install 패키지명 LinuxTerminal 24
  • 26. 패키지 이름을 모른다면? • Google it!  검색 키워드 “CentOS 패키지명”  검색 키워드 “Ubuntu 패키지명“ • 버전을 같이 넣어주면 검색의 완성! 보 다 정확한 결과! LinuxTerminal 25
  • 27. 압축 풀기 • *.tar.gz $ tar xvzf filename • *.zip $ unzip filename $ unzip filename –d /some/path/you/want LinuxTerminal 26
  • 28. 특정 프로세스 찾아 죽이기 $ ps a | grep python 8177 pts/0 T 0:00 python runner.py 10 result_0904_10.txt 10102 pts/0 T 0:00 python runner.py 10 result_0904_10.txt 11182 pts/3 T 0:00 python runner.py 10 result_1445.txt 12560 pts/3 T 0:00 python runner.py 10 result_1445.txt $ kill -9 8177 $ ps aux | grep python LinuxTerminal 27
  • 29. 리다이렉션(redirection) $ g++ a_plus_b.cc -O2 -o a_plus_b $ ./a_plus_b < a_plus_b.in 5 2+3=5 $ ./a_plus_b < a_plus_b.in > a_plus_b.out 2+3=5 $ cat a_plus_b.out 5 $ ./a_plus_b < a_plus_b.in 2> a_plus_b.err 5 LinuxTerminal 28
  • 30. 파일 위치 검색하기 $ find . -name “*.txt” $ find / -name “[cb]ar???_*.avi” LinuxTerminal 29
  • 31. 문제 • /usr/bin/ 폴더 안의 py 라는 접두어(prefix)를 가지는 모든 파일들을 찾아보시오 LinuxTerminal 30
  • 32. 파일 내에서 문자열 검색 $ grep word filename $ grep word *.txt $ grep word *.txt –r $ grep -e “V66 “ interaction.txt > V66.txt  Pattern안에 tab 입력시엔 ctrl+v 다음 tab LinuxTerminal 31
  • 33. awk를 이용, 특정 열 뽑기 $ awk ‘{print $1, $2}’ tcga.txt $ awk ‘{print $1}’ tcga.txt | head -10 $ awk ‘{print $1}’ tcga.txt > tcga_id.txt LinuxTerminal 32
  • 34. 특정 열의 개수를 가진 행 뽑기 $ awk '{ if(NF==4) print }' interactions.txt $ awk '{ if(NF==4) print }' interactions.txt > interaction2.txt $ awk '{ if(NF==4) print }' interactions.txt > interaction2.txt $ awk '{ if(NF==5) print }' interactions.txt >> interaction2.txt LinuxTerminal 33
  • 35. 파일 정렬하기 $ sort -r -k 4 interaction2.txt $ sort -r -k 4 -g interaction2.txt > sorted_interaction2.txt LinuxTerminal 34
  • 36. 문제 • interaction.txt 의 구조  SNP1, SNP2, …, 측정 값1, 측정 값2  SNP수가 2개 혹은 3개 존재 • SNP 수가 2개인 행을 int2.txt에 저장, SNP 수가 3개인 행을 int3.txt에 저장  단, 측정 값 2는 제외하고 저장 • 각 파일을 측정 값의 내림 차순 정렬 • 두 파일을 합쳐서 int_all.txt 파일 생성 LinuxTerminal 35
  • 37. for loop 작성하기 $ vim for.sh #!/bin/bash for num in 1 2 3 4 5 6 7 do echo $num done LinuxTerminal 36
  • 38. for loop 작성하기 $ ./for.sh -bash: ./for.sh: 허가 거부 $ bash for.sh 1 2 3 4 5 6 7 LinuxTerminal 37
  • 39. for loop 작성하기 $ chmod 700 for.sh $ ./for.sh 1 2 3 4 5 6 7 LinuxTerminal 38
  • 40. for loop 작성하기 for((i=1;i<=20;++i)) do ./a.out < input.$i > output.$i cat output.$i done LinuxTerminal 39
  • 41. for loop 작성하기 • 특정 filename을 이용한 for loop for filename in *.txt do rm $filename done LinuxTerminal 40
  • 42. for loop 작성하기 • Command line에서 즉시 작성 $ for i in 1 2 3 4; do command; done LinuxTerminal 41
  • 43. 문제 • linux_seminar 폴더의 모든 *.txt파일  맨 첫 줄을 출력  출력 결과는 header.txt에 저장 LinuxTerminal 42
  • 44. Linux terminal을 더 잘 쓰고 싶다 면? • 다음의 세 파일을 설정해보자!  ~/.vimrc  https://github.com/skwp/dotfiles/blob/master/vimrc  ~/.screenrc  http://forcecore.tistory.com/604 • 다음 사이트도 참고해보자!  http://theyearlyprophet.com/love-your-terminal.html LinuxTerminal 43
  • 45. 참고 자료 • http://www.ee.surrey.ac.uk/Teaching/Unix/ • http://www.cyberciti.biz/faq/bash-loop-over-file/ LinuxTerminal 44