과학기술 4차인재양성과정
데이터분석가과정
한국과학기술정보연구원 - 연구원님
리눅스
환경설정, linux역사, 명령어 연습, vi편집기, 셸 스크립트, make명령에 관해 배울 예정.
오늘 내용은 강의 첫 주 리눅스 수업 들었던 것과 일부 겹치는 내용이 있을 듯 해 해당 부분은 뺄 예정이다.
putty활용 - ssh접속
putty로 host연결하여 open한 뒤
각자 제공받은 ID와 OTP, Password로 접속했다.
PBS Interactive 작업제출
- 누리온 시스템은 debug 노드 대신 debug 큐를 제공
- /scratch 디렉터리에서 작업 제출 해야 한다
- debug 큐를 이용하여 작업을 제출함으로써 디버깅 수행이가능하다.
>> qsub-I
여러명이 쓰는 것이다 보니 내가 원하는 만큼의 자원이 있는지를 모르므로
필요 자원이 생기길 대기했다가 작업을 진행하는 스케줄러같은 개념.
qsub -I -V -A etc -l select=1 -l walltime=02:00:00 -q debug
-I 직접 들어가서 작업하겠다
-V 환경이 지금은 따로 설정되어있지 않은데, 보통 접속노드와 작업노드는 별개이므로 -A명령어를 써서...어디서 작업할지를 알려주는건가...? 워프한다고?
-l 실제로 작업을 하겠다고 할당 주고받는?느낌
select=1 사용할 자원 수. 사용할 코어 수를 스케줄러에게 알려줌.
이 뒤의 -l역시 실제로 할당받는다는 의미의 명령어
walltime 어느 시간동안 사용할건지
qsub 명령어를 사용하면 작업 가능한 노드가 잡히고
마지막에 작업을 종료할 때는 exit하여 로그아웃해야한다.
지금이야 교육이지만, 나중에 계정을 받아서 과금되는 경우에는 자원을 사용한 만큼 돈이 지불되므로
작업이 끝났다면 빨리 로그아웃 해야한다.
명령어
ls -a 가 숨김파일까지 리눅스에서 보는 명령어. .~~~의 형태로 숨김파일들은 .이 앞에 붙어있다.
앞선 데이터분석 실습에서 bash_profile 파일 등을 수정할 때 썼던 ls -al안에 함께 포함되어있던 옵션이다.
-a 만 사용하면 파일명만, -l은 상세정보를 출력해준다.
which 명령어 : 명령어의 경로를 보여줌
man 명령어 : 명령어에 대해 잘 모르겠을 때 매뉴얼을 보여주는 명령어.
whereis : which와 비슷한 명령어. 실행파일, 소스, man page의 경로를 보여줌
whatis : 명령어가 무슨 일을 하는지 설명해줌
du -h : disk usage에 단위를 붙여서
du -s : 디스크의 전체 usage. 뒤에 경로를 붙여서 특정 파일만 볼 수도 있다.
free : 메모리 사용 현황
history (숫자) : 입력했던 명령어 다시 보기 / 최근 입력한 숫자 갯수만큼의 명령어 보기
!숫자 : 특정 번째 수행한 명령어를 수행
!! 가장 최근에 사용한 명령어를 수행
! da : da로 시작하는 가장 최근의 명령을 수행
alias editor='vim'
unalias editor
중복되어 쓰지 않은 나머지 기본 리눅스 명령어는 https://9n0421.tistory.com/3 에서.
디렉터리 이동/생성/삭제
rm, rmdir, rm -rf의 사용
리눅스는 지워도 복구가 되지 않기 때문에 지울때 신중해야하고
수시로 pwd로 현재 작업 경로가 어떻게 되는지를 확인하는 버릇이 필요하다.
디렉터리/파일 관련
diff : 2개의 텍스트파일을 비교. 상당히 많이 쓰이는 명령어. 결과파일 비교할 때 많이 쓰임.
병렬 코딩을 할 때 순차코딩으로 나온 결과와 mpi를 이용한 결과가 동일하면 잘 짜인거니까 그런걸 비교할때쓴다고..함..
file : 파일의 타입을 알아 볼 때 사용
more : 텍스트 파일 내용을 페이지 단위로 한 화면씩 출력할 때
ln : 파일명이나 경로명을 단순화 시키는 링크 명령
wc 줄(-l) 또는 단어(-w) 개수를 출력
리다이렉팅
리눅스에서 지원하는 가장 강력한 명령어 방식
- 명령어나 프로그램의 결과를 스크린에 보여주는 것처럼 파일로 방향 전환을 하는 기능
-파일을 입력 또는 출력으로 사용
0명령의 결과를 다른 명령의 입력으로 사용할 수 있음
-실행프로그램의 결과를 파일로 보내기
ex) $ test.exe -> test.out
$ cat test.out
ex) $ cal > october.txt
$ cat october.txt
- 파일의 내용을 명령의 입력으로 사용
test.x < input.data > output.dat
mail mark < letter
파이프라인
명령 간의 파이프 -> |
어떤 명령어의 결과가 다른 명령어의 입력이 되도록 해준다.
ex) who | grep "sedu"
who : 시스템에 접소한 사용자가 누구인지, 어떤 터미널이 사용되고 있으며 언제 로그인했는지를 살펴보는 명령어
grep : 주어진 패턴과 일치하는 line만을 골라내어 보여주는 명령어 (주요옵션 -i : ignore, -v : Not match)
즉 위 예시 명령어는 'who'로 나열되는 사용자 중 sedu가 포함된 User가 있는지를 보여준다.
파일의 검색
find : 특정 조건에 맞는 파일을 찾음
Link
Hard Link : ln [링크원본파일] [링크 파일]
Symbolic Link : ln -s [링크원본파일] [링크 파일]
vi 편집기
vi editor ( Visual display editor)
대부분의 유닉스 계열 시스템에 설치 되어 있다.
워드 프로세서 기능의 상당 부분을 가지고 있으며, vim이라는 vi의 클론이 포함되어 있다.
open a file
$ vi file (편집 모드)
$ view file (읽기 모드)
modes
- Insert Mode (입력 모드) / Command Mode (명령 행 모드)
i, I, a, A, o, O, R로 입력 모드를 켜고
ESC로 커맨드모드로 빠져나올 수 있다.
> 기본 단위 커서 이동
h | 커서를 한 문자 왼쪽으로 이동 |
j | 커서를 아래 줄 같은 칼럼으로 이동 |
k | 커서를 위 줄 같은 칼럼으로 이동 |
l | 커서를 한 문자 오른쪽으로 이동 |
<ENTER> | 커서를 다음 줄의 첫 문자로 이동 (10ENTER) |
방향키 | (키보드 방향키로 이동) |
> 화면 단위 커서 이동
H | 화면의 맨 위쪽으로 커서 이동 |
M | 화면의 중간 줄로 커서 이동 |
L | 화면의 맨 아래 줄로 커서 이동 |
> 단어, 문장, 절 단위 이동
w | 다음 단어의 첫 문자로 커서 이동 |
b | 커서가 위치한 앞 방향의 단어로 커서 이동 |
e | 커서가 위치한 단어의 끝으로 커서 이동 |
) | 다음 문장으로 커서 이동 |
} | 다음 절로 커서 이동 |
( | )와 반대 |
{ | }와 반대 |
0 | 현재 줄의 첫 문자로 커서 이동 |
^ | 현재 줄의 처음으로 커서 이동 (탭이나 공백이 아닌) |
$ | 현재 줄의 마지막으로 커서 이동 |
G |
nG : 줄 번호 n으로 이동 1G : 편집 버퍼의 첫 줄로 이동하기 G : 편집 버퍼의 마지막 줄로 이동하기 |
> 데이터 첨가, 삽입, 치환, 해제
a | 현재 커서 위치 오른쪽부터 데이터 첨가 |
i | 현재 커서 위치 왼쪽부터 데이터 첨가 |
o | 현재 줄 아래 줄을 공백 줄로 만듦 |
r | 현재 커서가 위치한 한 문자 치환 |
R | 현재 커서 위치에서 <esc>키를 칠 때까지 문자 치환 |
cw | 현재 커서 위치의 단어를 다른 단어로 치환 |
~ | 현재 커서 위치의 한 문자를 소문자, 대문자로 전환 |
> 데이터 삭제
x | 현재 커서가 위치한 한 문자삭제 |
dd | 현재 커서가 위치한 줄 삭제 |
D | 현재 커서가 위치한 곳에서 오른쪽의 내용삭제 |
> 명령의 취소 및 반복
u | 바로 앞에서 수행한 명령 취소 |
. | 바로 앞에서 수행한 명령 재수행 |
> 데이터 이동과 복사, 줄의 결합
yy | 현재 줄이 버퍼에 복사 |
p | 현재 커서 오른쪽 또는 아래 줄에 버퍼 내용 복사 |
J | 현재 줄과 다음줄을 연결 |
> 기타 명령어
: set nu - vi 상태에 있는 파일에 줄 번호를 부여
> 검색 관련키, 파일 관련 명령어
블록 째로 삽입하기등등,,,
Shell Script
리눅스에 사실 끼워넣기에는 양도 많고 애매한 부분이라, 필요한 사람은 나중에 따로 배우고 여기선 소개많 ㅏㄴ다.
Shell script programming
- Unix / Linux 시스템의 기본 명령어를 반복적으로 사용하고자 할 때 사용
- Shell script는 shell 에서 제공하는 기능을 순차적으로 사용하기 위해서 프로그램처럼 동작하도록 script로 만드는 것
- 필요에 따라 shell용 연산자와 옵션들을 사용할 수 있음
Linux 주요 shell
- bash (Bourne-Again Shell)
- ksh(Korn Shell)
- csh(C Shell)
Shell 확인
- echo $ SHELL
- cat /etc/shells
...
exit and exit status..
Quoting
어떠한 문자열을 따옴표로 묶는 것(" ", ' ', ` `)
산술, 논리, 관계 연산자 모두 지원
Control Structure
IF
CASE
..
float
등등
MAKE
compile
컴파일의 의미 : 사용자가 작성한 소스 코드를 컴퓨터가 실행 가능하도록 바이너리화 하는 과정. 큰 의미에서는 이미 작성해 놓은 라이브러리를 포함 시키는 것까지 포함
컴파일러
- 컴파일 작업을 수행해 주는 역할
사용하는 언어의 종류에 따라 표준화 도어 있으며, 제작 업체별로 여러가지 버전 존재
=> 이 컴파일러의 역할을 해주는게 make
make 유틸리티란?
- 프로그램 그룹을 유지하는데 필요한 유틸리티
- 셸에서 실행되는 각 종 명령의 생성
- 소프트웨어 개발에 작성되는 여러 파일들을 관리
Make 유틸리티의 필요성
- 반복되는 과정을 간단히 처리 (시간절약)
- 갱신된 파일 관리 (단순화)
- 복잡한 소스로 구성된 프로그램일 수록 더욱 강력
make를 이용한 실행파일 생성
,,
Macro
'KISTI 빅데이터 분석가 과정 > 슈퍼컴퓨터' 카테고리의 다른 글
슈퍼컴퓨터 #3 (0) | 2019.08.12 |
---|---|
슈퍼컴퓨터 #2 (0) | 2019.08.08 |