728x90
1. Server Setting
서버 접속 | 원격으로 다른 컴퓨터에 접속하여 해당 컴퓨터를 제어하는 것입니다. 이를 위해 SSH 프로토콜을 사용합니다. |
환경설정 파일 전송 | 서버에서 환경 설정 파일을 수정하기 위해서는 해당 파일을 서버로 전송해야 합니다. 이를 위해 FTP, SCP, SFTP 등의 프로토콜을 사용합니다. |
Python 설치 | 파이썬은 인기 있는 프로그래밍 언어 중 하나입니다. 파이썬을 설치하여 서버에서 파이썬 기반의 프로그램을 실행할 수 있습니다. |
Jupyter Notebook 설치 | Jupyter Notebook은 인터랙티브한 데이터 과학 및 기계 학습 환경을 제공하는 웹 응용 프로그램입니다. 이를 설치하여 노트북 형식으로 파이썬 코드를 실행하고 시각화 및 분석 결과를 확인할 수 있습니다. |
Javascript 환경설정 | 자바스크립트는 웹 개발에서 핵심적인 역할을 담당합니다. 서버에서 자바스크립트를 사용하기 위해서는 Node.js를 설치해야 합니다. |
MySQL 설치 | MySQL은 인기 있는 오픈 소스 데이터베이스 관리 시스템입니다. 이를 설치하여 서버에서 데이터베이스를 생성하고 관리할 수 있습니다. |
MongoDB 설치 | MongoDB는 JSON 기반의 NoSQL 데이터베이스입니다. 이를 설치하여 서버에서 비정형 데이터를 저장하고 관리할 수 있습니다. |
Studio 3T | Studio 3T는 MongoDB를 시각화하고 관리하는 도구입니다. 이를 사용하여 MongoDB 데이터베이스를 쉽게 관리할 수 있습니다. |
Nginx | Nginx는 인기 있는 웹 서버 및 프록시 서버입니다. 이를 사용하여 서버에서 웹 애플리케이션을 배포하고 관리할 수 있습니다. |
Flask | Flask는 파이썬 기반의 마이크로 웹 프레임워크로, 쉽고 간단하게 웹 애플리케이션을 개발할 수 있습니다. 이를 사용하여 파이썬 기반의 웹 애플리케이션을 만들 수 있습니다. |
웹 애플리케이션의 백엔드가 파이썬 기반으로 개발되었다면, 먼저 파이썬과 Flask를 설치하고, 이후 데이터베이스 설치, Nginx를 사용한 웹 서버 설정 등을 진행할 수 있습니다.
또는, 데이터베이스 설치와 설정이 먼저 이루어진 후에, 이를 사용하는 웹 애플리케이션의 백엔드를 구성할 수도 있습니다.
SSH( Secure Shell)
개념 | SSH는 인터넷을 통해 안전한 연결을 제공하는 프로토콜로, 다른 컴퓨터에 안전하게 접속하고, 데이터를 전송하거나 원격으로 명령을 실행할 수 있습니다. |
특징 |
암호화된 통신을 사용하여 보안성이 높습니다. |
공개키/비밀키 방식으로 인증을 처리합니다. | |
기본적으로 22번 포트를 사용합니다. | |
장점 | 보안성이 높아 다른 컴퓨터에 안전하게 접속 및 명령을 실행할 수 있습니다. |
다양한 용도로 사용이 가능하며, 특히 원격 서버 관리나 파일 전송에 많이 사용됩니다. | |
다양한 운영체제에서 지원되고, 쉽게 사용할 수 있습니다. | |
단점 | 네트워크 환경이나 연결 상태에 따라 성능이나 안정성이 좌우될 수 있습니다. |
설정이나 구성이 복잡할 수 있어, 초기 설정에 어려움을 겪을 수 있습니다. | |
관리와 보안을 위해서는 적절한 설정과 규칙이 필요합니다. |
2. Bash Shell Commands
개념 | Bash Shell Commands는 Unix 계열 운영체제에서 사용되는 쉘 프로그램 중 하나로, CLI 환경에서 명령어를 입력하고 실행하는 인터페이스입니다. |
특징 |
Bash는 무료로 사용이 가능하며, 다양한 운영체제에서 사용됩니다. |
CLI 인터페이스를 통해 사용자가 직접 명령어를 입력하여 작업을 수행할 수 있습니다. | |
다양한 기능과 명령어를 제공하여, 강력한 작업 환경을 제공합니다. | |
장점 | CLI 환경을 통해 명령어를 입력하고 실행할 수 있어, GUI보다 빠르고 간단한 작업이 가능합니다. |
다양한 기능과 명령어를 제공하여, 강력한 작업 환경을 제공합니다. | |
다양한 확장성을 가지고 있어, 자신에게 필요한 기능을 추가하거나 변경할 수 있습니다. | |
단점 | CLI 인터페이스를 사용하기 때문에, 명령어를 알고 있어야 하며, 사용법에 익숙해져야 합니다. |
복잡한 작업을 수행하기에는 CLI보다 GUI가 더 편리할 수 있습니다. | |
CLI 인터페이스에서는 그래픽 디자인과 같은 시각적인 요소가 없기 때문에, 작업 결과를 시각적으로 확인하기 어려울 수 있습니다. |
local $: 로컬 환경
ubuntu $: ubuntu 환경
Bash Shell Commands
Commands | 설명 | 예시 |
ls | 디렉토리의 파일리스트 출력 | ls -al |
echo | 문자열 출력 | echo "hello world!" |
touch | 파일 생성 | touch test.txt |
mkdir | 디렉토리 생성 | |
pwd | 현재 디렉토리 위치 출력 | pwd |
cd | 디렉토리 이동 | cd ../test/notebooks |
cat | 파일 안에 있는 텍스트 모두 출력 | cat test.txt |
head | 파일 안에 있는 텍스트 상단 부터 출력 | head -n 10 test.txt |
tail | 텍스트 출력 | tail -n 10 test.txt |
chmod | 파일 권한 수정 | chmod 400 test.txt |
chown | 파일 소유자 수정 | chown -R ubuntu:ubuntu test.txt |
History | 이전에 입력한 commands 히스토리 출력이전에 입력한 commands 히스토리 출력 | history |
clear | 화면 초기화 | clear |
cp | 파일 복사 | cp test.txt ../notebooks/ |
mv | 파일 이동, 파일 이름 바꾸기 | mv test.txt ../notebooks/test2.txt |
ps | 프로세스 출력 | ps -e | grep note |
kill | 프로세스 종료 | kill -9 1234 |
df | 하드 디스크의 남은 용량을 확인 | df -h |
free | 현재 메모리 사용량 출 | free -h |
tree | 트리 형태로 디렉토리의 구조를 출력 | tree |
특수 기호들
기호 | 설명 | 사용 예시 |
| | 파이프라인 : 명령을 실행한 출력 결과에서 특정 조건으로 필터링하여 데이터를 출력 |
history | grep ssh |
> | 출력 결과를 over write | echo "hello world" > test.txt |
>> | 출력 결과를 append | echo "hello world" >> test.txt |
&& | 연결해서 실행 | mkdir notebooks && cd notebooks |
SCP 파일전송
개념 | SCP는 SSH 프로토콜을 기반으로 하는 파일 전송 프로토콜로, 리눅스나 유닉스 시스템에서 파일을 안전하게 복사하고 전송하기 위해 사용됩니다. |
특징 |
SSH 프로토콜을 기반으로 하기 때문에, 안전하고 보안적으로 안정적인 파일 전송이 가능합니다. |
CLI(Command-Line Interface) 인터페이스를 사용하기 때문에, GUI(Graphical User Interface)보다 빠르고 간편하게 파일 전송이 가능합니다. | |
다양한 파일 전송 기능을 제공하며, 원격지 서버에서의 파일 복사 및 전송이 가능합니다. | |
장점 | 안전하고 보안적으로 안정적인 파일 전송이 가능합니다. |
CLI 인터페이스를 사용하기 때문에, GUI보다 빠르고 간편하게 파일 전송이 가능합니다. | |
다양한 파일 전송 기능을 제공하며, 원격지 서버에서의 파일 복사 및 전송이 가능합니다. | |
단점 | CLI 인터페이스를 사용하기 때문에, 사용법에 익숙해져야 하며, 명령어를 알고 있어야 합니다. |
대용량 파일 전송 시 속도가 느릴 수 있습니다. | |
파일 전송 시간이나 상태를 GUI처럼 시각적으로 확인할 수 없기 때문에, 파일 전송 상황을 확인하기 어려울 수 있습니다. |
VI / VIM에디터
vi와 vim은 모두 Unix와 Unix 계열 운영체제에서 사용하는 텍스트 편집기입니다.마우스 없이 키보드 입력으로 모든 기능사용 가능하며 CLI(command line interface) 환경 또는 터미널 환경에서 사용가능합니다.
그러나 둘은 서로 다른 에디터로 각각의 개념, 특징, 장점, 단점, 사용법 및 차이점이 있습니다.
개념 | vi는 1976년에 개발된 Unix용 텍스트 편집기이며, vim은 vi의 개선 버전으로 1991년에 출시된 텍스트 편집기입니다. |
|
특징 | vi와 vim은 명령 모드(Command mode)와 편집 모드(Insert mode)로 구분됩니다. 명령 모드에서는 키보드로 명령을 입력하여 파일을 편집하고, 편집 모드에서는 파일을 편집할 수 있습니다. |
|
장점 | vi와 vim은 운영체제가 설치되어 있는 대부분의 시스템에서 기본적으로 제공되므로, 별도의 설치 없이 사용할 수 있습니다. 또한 키보드만으로 파일을 편집할 수 있어서 효율적이고 빠른 편집이 가능합니다. | |
단점 | 명령 모드와 편집 모드를 번갈아가며 사용해야 하기 때문에 처음 사용자에게는 다소 어렵게 느껴질 수 있습니다. 또한 GUI 기반의 텍스트 편집기에 비해 사용자 인터페이스가 간소화되어 있어서, 쉬운 사용성을 제공하지 못할 수 있습니다. | |
사용법 | 일반모드 | 문서의 특정 기능이나 위치로 이동할수 있는 모드 텍스트를 읽을 수 있으며, 명령모드로 전환할 수 있습니다. |
편집모드 | 문서 내용을 편집할수 있는 모드 텍스트를 편집할 수 있으며, 명령모드로 전환할 수 있습니다. |
|
명령모드 | 일반모드에서 : 입력하면 에디터 가장 마지막줄에 : 문자 뒤에 명령실행가능 텍스트를 저장하거나, 삭제하거나, 복사하는 등의 명령을 실행할 수 있습니다. |
|
차이점 | vim이 vi보다 더 많은 기능을 제공한다는 점입니다. vim은 vi와 호환되지만, 더욱 발전한 버전으로 다양한 기능을 추가하여 사용자들에게 편리한 기능을 제공합니다. 예를 들어, vim은 문법 강조, 자동 완성, 붙여넣기 등의 기능을 제공합니다. |
일반모드
esc | 일반모드로 변경 | dd | 행삭제 |
w | forword : 단어 뒤로 이동 | gg | 문서 시작으로 이동 |
b | backword : 단어 앞으로 이동 | G | 문서의 끝으로 이동 |
^ | 행의 가장 앞으로 이동 | 숫자 + G | 숫자 라인으로 이동 |
$ | 행의 가장 뒤로 이동 | { | 이전 페이지로 이동 |
x | 현재 커서위치 문자 삭제 | } | 다음 페이지로 이동 |
dw | 현재 커서 위치 단어 삭제 | yw | 단어 복사 |
D | 현재위치에서 라인 끝까지 삭제 | yy | 한줄 복사 |
p | 붙여넣기 | u | 되돌리기 |
편집모드
a | 커서 위치의 다음 칸부터 입력 | o | 커서 위치의 다음줄부터 입력 |
i | 커서 위치 부터 입력 |
명령모드
/ | 정방향 검색 | w | write : 파일저장 |
n | 다음 검색 단어로 이동 | q | quit : 나가기 |
? | 역방향 검색 | ! | 강제실행 |
set number | 줄번호 표시 |
매크로
매크로 작성 | q + 매크로이름(문자하나) + 매크로 키 입력 + q |
매크로 실행 | 매크로 실행횟수 + @ + 매크로이름 |
예시 ) 행의 마지막에 , 붙이기
매크로 작성 : q + a + $ + a + , + esc + (아래 화살표) + q
매크로 실행 : 4 + @ + a
TMUX
Terminal Multiplexer
- Linux 접속 환경의 세션 관리
세션 : 접속정보를 저장하는 연결
윈도우 : 세션이 가지고 있는 여러개의 명령어 입력 환경
팬 : 윈도우가 가지고 있는 여러개의 분할된 화면
세션생성 | $ tmux new -s kt(세션이름) | 팬생성(종분할) | ctrl + b, % |
세션종료 | $ tmux kill-session -t kt(세션이름) | 팬생성(횡분할) | ctrl + b, " |
세션 목록 보기 | $ tmux ls | 팬이동 | $ ctrl + b, 화살표 : $ ctrl + b, q (번호) |
세션접속 | $ tmux a -t kt(세션이름) | 팬종료 | $ ctrl + b, x |
윈도우생성 | $ ctrl + b, c | ||
윈도우종료 | $ ctrl + b, & | ||
윈도우이동 | $ ctrl + b, 0-9 |
세션
728x90
반응형
'KT AIVLE School 3기 > AIVLER 활동' 카테고리의 다른 글
[AIVLE_AI] SQL 1일차 (0) | 2023.05.08 |
---|---|
[AIVLE_AI] WEB/WAS/DB 2일차 (0) | 2023.05.08 |
[AIVLE_AI] 웹 프로그래밍 2일차 (0) | 2023.05.08 |
[AIVLE_AI] 웹 프로그래밍 1일차 (0) | 2023.05.08 |
[AIVLE_AI] AICE ASSOCIATE 시험 후기 (0) | 2023.05.05 |