본문 바로가기
728x90

[Linux]33

SMB / NFS / CIFS란 무엇인가? SMB란 무엇인가? Server Message Block 의 줄임말로, 도스 윈도우 에서 파일 및 디렉토리 및 주변 장치(프린트)를 공유하는데 사용되는 메세지 형식이다. SMB는 윈도우 유닉스 NT 등 운영체제가 난잡할 시기에 운영체제간 자원 공유를 쉽게 해 줄 목표로 만들어졌다. 윈도우로 거의 통일된 지금도 NAS와 같이 리눅스 등과의 파일공유를 클라이언트 없이 탐색기로 직접 가능하다는 장점이 있어 아직도 많이 쓰이고 있다. 리눅스에서는 SAMBA(삼바)를 통한담녀 쉽게 SMB를 사용할 수 있다. 445 포트를 이용해 경유한다. TCP/IP 기반의 Net BIOS 프로토콜을 사용한다. 이런 편한 장점이 있는 반면 단점이 존재한다. 최근 가장 이슈가 되는 랜섬웨어의 공격 루트중 하나가 바로 SMB의 취약.. 2023. 11. 20.
DB 접근 제어 방식 DB 접근제어란? DB 접근제어는 DB에 저장된 데이터의 보안을 위해서 사용자별에 따른 접근 권한을 두어 접근을 제한하는 역할을 의미한다. 주 역할은 DB에 대한 접근을 제한하며, 기능에 따라서 권한을 제어하는 권한제어의 역할을 하기도 한다. 접근제어는 감사를 위해 보안정책 및 설정을 관리하는 콘솔과 접근을 차단하며 모니터링 및 로깅을 수행하는 서버로 구성이 된다. 접근제어 솔루션 중에 DB 접근제어 솔루션 뿐 아니라 시스템 접근제어의 기능을 가지고 있는 경우도 있다. 주로 Gateway Sniffing Hybrid 방식을 이용해서 DB 접근에 대한 구현 방식이 존재한다. 스니핑방식 스니핑이란 냄새를 맡다 라는 사전적인 의미를 가지고 있다. 스니핑 방식은 DB의 사용자와 DB 서버간 주고받는 패킷을 복사.. 2023. 9. 25.
SSH란 무엇인가? SSH란 무엇인가? SSH는 Secure SHell의 줄임말로 네트워크상에서 다른 PC에 로그인하거나 원격 시스템에서 명령을 실행하며, 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용프로그램 또는 프로토콜을 의미한다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 만들어졌으며, 22번 포트를 사용하며, 암호화 기법을 사용하여 통신이 노출된다 하더라도 암호화 된 문자로 보일 수 있게 한다. SSH 작동 원리 SSH의 보안 방식은 가장 대중적으로는 Key 방식을 사용한다. 사용자와 서버가 각각 키를 가지며 이 키를 대조하여 상대를 인증하고 안전하게 데이터를 송,수신한다. 키를 생성하는 방식에 따라 대칭키와 비대칭키가 나뉜다. 먼저 비대칭 키이다. 비대칭 키는 공개키와 비공개키로 나뉘며 공개키는.. 2023. 9. 20.
프록시란 무엇인가? 요즘 다루는 솔루션 중 프록시 방식으로 동작하는 솔루션이 존재해 프록시가 정확하게 뭔지 파악하기 위해 조사 해 보았다. 프록시란 무엇인가? 프록시란 대신이라는 의미를 가진다. 프록시 서버란 클라이언트가 프록시 서버를 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 말한다. 서버와 클라이언트 사이의 중계기로서 대리로 통신을 수행하는 것을 프록시라고 하며 그 기능을 수행하는 서버를 프록시 서버라고 하는 것이다. 프록시 종류 1. 포워드 프록시 특정 사이트에 클라이언트가 방문하려고 한다면 가고싶은 목적지의 사이트 주소를 프록시 서버로 전달하며 프록시 서버가 해당 목적지에 대한 내용을 받아 전달 해 주는 개념이다. 이 경우 내부망에서 외부망으로 접근을 할 때 .. 2023. 9. 13.
Linux 디스크 마운트 하기 디스크 마운트 하기 클라우드, 온프레미스 가리지 않고 디스크를 마운트 할 일은 굉장히 많다. 오늘은 디스크를 추가해서 마운트 하는 과정을 진행 할 것이다. fdisk -l 가장 먼저 fdisk -l 명령어를 사용해 줬다. 이 명령어는 현재 내 디스크와 파티션을 보는 것이다. 나는 가장 밑에 있는 /dev/sdc 에 위치한 32GiB의 하드디스크를 추가 해 주었다. 디스크 경로를 봤을 때 뒤에 숫자가 붙는 것은 하나의 디스크에 몇개의 파티션이 나누어 졌는지를 확인할 수 있다. 그 이후 파티션을 생성했다. 나는 하나의 파티션을 구성했고 파티션이 하나였기 때문에 전체 용량을 다 집어 넣어 주었다. 그 후 p를 통해 내가 설정한 내용을 확인할 수 있었고 w를 통해서 저장을 해 주었다. 그 후 ext4의 파일 형.. 2023. 9. 11.
ln이란 무엇인가? ln이란 무엇인가? 리눅스에는 파일 링크라는 개념이 있다. 여기서 ln 역시 link의 줄임말이라고 할 수 있다. 이는 A에 저장된 실행파일을 A까지 가지 않고 다른 경로에서 실행할 수 있게 하는 것이다. 윈도우에 바로가기 어플리케이션이라고 생각하면 된다. 링크를 사용하는 이유는 먼저 경로의 단축을 위해서이다. 리눅스 부팅은 /etc/rc.d라는 디렉토리 밑에 있지만 etc 밑에 링크가 있어 바로 etc 하위로 실행할 수 있다. 두번째는 데이터의 안전한 보관이다. 원본의 위치를 쉽게 노출시킨다면 파일의 변조에 취약하며 파일이 위험해 진다. 그런 것을 방지하며 여러 사람이 한 서버를 사용할 때 파일의 안전성을 보장할 수 있다. 마지막으로는 파일의 정합성을 유지시키기 위해 사용한다. ln 종류 링크에는 하드.. 2023. 9. 6.
이중화 - DRBD란 무엇인가? DRBD란 무엇인가? distributed replicated storage system 의 줄임말로 분산 복제 스토리지 시스템의 줄임 말이다. drbd는 HA 즉 고가용성 클러스터 구축을 하기 위해 디자인 된 디바이스이다. 이는 네트워크를 통해서 Raid1의 방식으로 동작을 한다. Raid1은 데이터 백업을 미러링하는 구성이다. DRBD는 네트워크를 통해 미러링 하게 된다. DRBD는 네트워크를 통해 미러링만 하므로 다른 유틸을 함께 사용하는 것이 좋다. 위에서 언급했듯이 DRBD는 HeartBeat을 같이 사용하는 경우가 많다. 테스트에서는 클라우드 리눅스 시스템에서 테스트를 진행하도록 하겠다. 장점 장점은 오픈소스로 이중화가 가능하다는 점이다. 또한 별도의 장비가 추가적으로 필요한게 아닌 네트워크 .. 2023. 9. 2.
우분투 22.04 MariaDB 특정버전 설치 방법 가장 먼저 우분투 22.04의 시스템을 준비 해야 한다. 나는 Azure VM을 통해 생성했다. https://mariadb.org/download/ Download MariaDB Server - MariaDB.org REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server" mariadb.org 가장 먼저 마리아 DB의 공식 홈페이지를 들어가 준다. 들어가서 보면 가장 먼저 OS를 선택할 수 있다. 나는 Ubuntu 22.04 버전이므로 22.04를 선택 해 주었다. 그 후 자신이 원하는 Maria DB의 버전을 선택할 수 있다. 나는 10.6 버전을 선택했다. 그 이후 Mirror 링크를 어디에서 받을 건지.. 2023. 8. 29.
Network - Ping 칠 때 DUP! 뜨는 현상 서버 테스트를 하다 보니 ping 으로 통신이 되는지 확인을 많이 한다. 그런데 ping 테스트를 진행 할 당시 64 bytes from 192.168.0.5: icmp_seq=1289 ttl=46 time=11018 ms (DUP!) 라고 하는 오류가 뜨면서 핑이 깨지기도 하고 응답 시간이 너무 느린 상태가 있었다. DUP란? dup는 duplication의 줄임말로 icmp_seq가 중복된 경우에 주로 발생한다. 이는 동일한 네트워크에 IP가 중복되는 경우나, LAN 상에서 루핑이 발생할 때 주로 나온다. 확인 결과 설정한 IP가 다른 서버의 IP와 같았기 때문에 내부 네트워크에서 충돌이 발생해 루핑이 돌아서 발생하였다. 서버의 IP를 바꿔주자 문제가 해결되는 것을 확인 할 수 있었다. 2023. 8. 24.
DNS란무엇인가? DNS란 무엇인가? DNS는 Domain Name Server의 줄임말로 사람이 읽을 수 있는 이름 (ex: www.example.com ) 을 머신이 읽을 수 있는 IP 주소로 변환시키는 것을 의미한다. 인터넷에 연결된 각 기기는 다른 컴퓨터가 기기를 찾는 데 사용하는 고유 IP 주소가 있다. DNS를 사용하면 IPv4나 IPv6를 기억할 필요가 없다. DNS 3가지 구조 작동원리에 들어가기 전 DNS는 3가지로 구성되어 있다. 1. Domain Name Space 2. Name Server 3. Resolver 도메인 네임 시스템에서 Domain Name Space는 데이터 자료구조를 정의하는데 사용된다. 도메인 네임을 중복되지 않게 이름을 생성하여 사용하도록 정의된 네임 구성 체계이다. 위 그림에서.. 2023. 8. 17.
리눅스 특수권한 리눅스 권한이란 무엇인가? 리눅스 OS는 디렉토리 및 파일에 대한 권한이 존재한다. ls -al 명령어를 입력해보자 그럼 위와 같이 가장 왼 측에 권한이 나온다. 가장 좌측은 파일의 형태를 의미하고 그 후로는 사용자의 권한, 그룹의 권한, 다른사람의 권한이 나오게 된다. r은 read(4), w는 write(2), x는 execute(1) 즉 읽고 쓰고 실행하는 권한이라고 할 수 있다. 즉 755의 경우 소유자만 모든 권한을 가지고 그룹과 나머지 사용자는 읽기와 실행할 수 있는 권한만 가지는 것이다. 이는 우리가 잘 알고 있는 사실이다. 즉 이 권한이 없으면 파일을 실행하는 것, 수정하는 것 등 수행이 제한된다. 리눅스 특수 권한은 무엇인가? 리눅스에는 특수권한이라고 불리는 SetUID, SetGID, .. 2023. 8. 15.
리눅스 메인보드 변경 시 네트워크 설정 문제 문제 리눅스 서버(Centos)의 메인보드 문제로 인해 메인보드를 교체하였지만 기존 네트워크에 대한 설정을 가져오지 못하였다. 그래서 통신이 되지 않았다. eth 0, 1, 2 로 세팅을 해두었는데 메인보드를 교체하자 잡힌 것은 eth 3, 4, 5 였다. 해결 방법 70-persistent-net.rules 이라는 파일이 있다. 이 파일은 네트워크 NIC의 이름과 맥 주소 정보를 담고 있는 설정파일이라고 생각하면 된다. 메인보드를 바꾸게 되면 보드 교체로 인해 네트워크 정보와 맥 주소가 바뀌기 때문에 네트워크 연결에 문제가 생긴다. 이는 커널 2.6부터 udev 라는 디바이스 장치파일을 자동으로 등록해주는 시스템 관리 프로그램을 제공하기 때문이다. 장치를 추가하면 커널이 추가 여부를 감지한 후 새로운 .. 2023. 8. 14.
Linux ) tar란 무엇인가? 리눅스를 접하다 보면 tar 형태의 파일을 많이 접하게 된다. 그렇다면 tar란 무엇일까? tar 정의 tar란 여러개의 파일을 하나의 압축 형태로 묶거나 풀 때 사용하는 명령어이다. Type Archive의 줄임말로 우리가 흔히 아는 테이프를 저장한다는 의미이다. 과거에는 tar 자체를 백업 용도로 사용했었다. 그래서 데이터를 하나로 묶고 저장을 한 것이고 그래서 Archive라는 말을 쓰는 것이다. tar는 단순 아카이브 기능 즉 백업의 기능을 가지므로 완전히 똑같은 파일을 복사한 후 .tar로 묶이게 된다. 즉 묶이기 전 파일들의 속성과 링크, 디렉토리의 구조를 그대로 가져갈 수 있기 때문에 사용을 한다. tar 파일은 압축한다 라는 표현은 쓰지만 실제로는 데이터의 크기가 줄어들지는 않는다. 이는 .. 2023. 8. 13.
CentOS 7 사용자 관리 리눅스는 여러명의 사용자가 한 서버에 접속해서 작업을 진행 할 수 있다. 그러다 보니 사용자의 권한을 관리해 주지 않으면 나도 모르는 사이에 시스템에 많은 변화가 생길 수 있다. 그러므로 사용자와 그룹을 관리하고 그에 할당하는 권한을 조율하는 것이 중요하다. 사용자 리스트 확인 가장 먼저 진행 할 것은 사용자에 대한 리스트 확인이다. [root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin.. 2023. 8. 11.
TCP 3-way Handshake, 4-way Handshake TCP란 무엇인가? TCP는 전송 제어 프로토콜(Transmission Control Protocol)의 줄임말로 인터넷 프로토콜의 핵심 프로토콜 중 하나로 IP와 함께 TCP/IP로 불린다. 전송 계층의 대표적인 연결 지향 프로토콜로 하위 계층에서의 패킷 손실, 중복 오류 등의 전송 문제를 검출하고 해결한다. IP가 패킷을 목적지까지 보내는 가장 효율적인 방법이지만 패킷의 안전성과 순서를 보장하지 못한다면 TCP가 그 역할을 이행한다. 3 way handshake란 무엇인가? TCP 통신을 통해 데이터를 전송시키기 위해 네트워크를 연결하는 과정을 의미한다. Client -> Server : TCP SYN Server -> Client : TCP SYN ACK Client -> Server : TCP A.. 2023. 8. 10.
[Linux] 시스템 조회 명령어 top top 명령어는 유닉스 계열의 시스템에서 프로세스 목록을 CPU 사용률이 높은것부터 보여주는 명령어이다. 시스템의 프로세스와 메모리 사용상태를 5초간의 간격으로 업데이트하여 화면에 출력하며, 어떤 프로세스가 리소스를 많이 사용하는지 체크할 때 실시간으로 보는 명령어이다. 가장 위에 있는 top - 옆에 있는 숫자는 현재 서버의 시간을 나타내며, up은 가동중인 시간을 의미한다. users는 몇명의 유저가 접속해있는지를 파악할 수 있다. 그 후 Task 즉 프로세스의 개수를 나타내며 몇개의 프로세스가 실행중인지는 running을 통해서 확인하며 sleeping은 아직 대기중인 프로세스를 의미하며 stopped는 정지상태, zombie는 좀비상태의 프로세스를 의미한다. 그 밑은 CPU의 정보이다 us.. 2023. 2. 23.
[Linux] 디렉토리 구조 Unix에서 디렉토리가 중요한 이유 UNIX 운영체제에서는 디렉토리가 매우 중요하다. 디렉토리는 파일 시스템의 구조를 형성하며, 파일과 다른 디렉토리를 저장하는 데 사용된다. 디렉토리는 파일 시스템의 계층 구조를 형성하며, 파일의 경로를 나타내는 데 사용한다. 다른 운영체제와 달리 UNI 계열은 파일 시스템에서 모든 것을 파일로 처리한다. 이것은 디렉토리 역시 파일이라는 것을 의미한다. UNIX 파일 시스템은 트리 구조로 구성되어 있으며 루트 디렉토리를 시작으로 하위 디렉토리를 계속 생성할 수 있다. 이러한 디렉토리 구조를 통해서 파일을 구성하고 관리할 수 있다. 또한 각각의 파일 및 디렉토리의 권한을 설정할 수 있으며 이를 통해서 파일 및 디렉토리에 대한 접근 권한을 제어할 수 있다. 이를 통해서 파일.. 2023. 2. 15.
[Linux] Web 서버와 Was 서버의 차이점 Web서버란 무엇인가? 사전적 정의는 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램이다. 즉 클라이언트가 웹 브라우저에서 어떠한 페이지 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 정적 컨텐츠란 HTML, CSS, JS, Image, File 등 응답이 가능한 컨텐츠이다. HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스하는 기능이다. 정적인 컨텐츠를 제공(Was를 거치지 않고 바로 자원 제공) 혹은 동적인 컨텐츠 제공을 위한 요청을 전달 클라이언트 요청을 WAS에 보내고 WAS가 처리한 결과를 클라이언트에게 전달한다. Was 서버란 무엇인가? 인터넷상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나.. 2023. 1. 31.
[linux] 메일서버란 무엇인가? 메일서버 기본개념 E-Mail 송수신에서 사용되는 프로토콜을 사용하게 된다. 위 사진을 보면 두개의 PC가 메일을 주고받는 것을 볼 수 있다. 먼저 PC1은 daum 계정을, PC2는 paran이라는 계정을 가지고 있다고 가정한다. 먼저 PC1은 이메일을 작성한 후 메일을 보낸다. 이 때 보내는 프로토콜이 SMTP이다. SMTP (Simple Mail Transfer Protocol)란 클라이언트가 메일을 보내거나 메일 서버끼리 메일을 주고받을 때 사용하는 프로토콜이다. 이렇게 메일이 메일서버에 도착하게 된다면 메일서버는 상대방에게 메일을 보내게 된다. 그럼 Daum의 메일서버가 Paran 메일서버로 메일을 보내게 되고 Paran은 메일을 보존한다. PC2가 집에 도착한 후 컴퓨터를 켜서 메일을 끌어온다.. 2023. 1. 25.
[Linux] [따배셸] Bash shell script란 무엇인가? Script란 무엇인가? 스크립트란 하나의 파일에다 기존에 존재하는 명령어들을 집어넣어 순차적으로 해석해서 실행하는 것을 의미한다. 대표적으로 펄 스크립트, 셸 스크립트가 존재한다. 프로그램이란 무엇인가? 하나 혹은 여러개의 파일에 소스코드를 집어넣어놓고 컴파일러가 컴파일해서 바이너리 명령어 프로그램을 만들어 동작시키도록 해주는것을 프로그램이라고 한다. 이를 인터프린터, 컴파일러 프로그램이라고도 한다. 대표적으로 C, C++, 자바 이런것들이 될 수 있다. Shell Script란 무엇인가? 리눅스 command들을 모아놓은 아스키 텍스트 파일이다. 간단한 예를 보자 vi 편집기를 통해 하나의 셸 파일을 만들어 보자 echo, date, df 와 같은 간단한 명령어를 모아놓은 셸 파일을 만들었다. 이를 .. 2023. 1. 19.
[총정리] Crontab 사용법 매일 혹은 정기적으로 실행해야 하는 예약작업이 있다. 리눅스에서는 이런 일을 해 주는 것이 cron이다. cron은 간단한 텍스트 파일에 할 일들을 기록하는데, 관리자인가 아닌가에 따라서 기록할 곳이 달라진다. 관리자 권한이 있다면 /etc/crontab 파일에 기록한다. 이 파일에 기록하면 한 눈에 예약 작업을 확인할 수 있다는 장점이 있고, 명령을 실행할 사용자도 명시할 수 있다. 따라서 관리자 권한에 접근할 수 있다면 여기에 기록하자. 관리자 권한이 없다면 crontab -e 명령어를 실행해서 예약 파일을 편집한다. /etc/crontab 파일을 편집할 때와 달리 실행할 주체를 명시하는 부분이 없다. root 권한 있는 경우 - /etc/crontab 편집 root 권한이 있는 경우 /etc/cro.. 2023. 1. 15.
[linux] [따베셸] Bash shell과 Rules2 Redirection 이란 무엇인가? Redirection을 보기 전 먼저 Communication Channels를 살펴보자. 먼저 우리가 프로그램을 하나 실행하고자 한다. 프로그램과 사용자와 상호작용을 한다고 가정하자. 내가 입력을 통해서 프로그램에게 전달하는 것을 stdin이라고 한다. 그 때 사용하는 기기가 바로 키보드가 된다. 프로그램이 작업을 한 후 결과를 도출하는 디바이스는 Terminal이 된다. 그 전달 과정을 stdout이라고 한다. 성공적이지 못한 결과가 나오면 stderr이라는 에러가 터미널로 전달된다. Bash shell에서는 번호를 붙여서 이를 관리한다. 입력은 0번, 출력은 1번, 에러 메세지 출력은 2번으로 관리한다. 0번은 키보드와의 연결, 1번은 터미널과의 연결, 2번 역.. 2023. 1. 12.
[linux] [따배셸] Bash shell과 Rules 1 Metacharacters란 무엇인가? shell에서 특별히 의미를 정해놓은 문자들을 의미한다. ex: ? () $ ... * {} [] 등등.. Metacharacters에 대해서 한번 알아보자. 먼저 몇가지 파일을 생성 해 주었다. 그 후 echo *를 입력한다. 아스테리스크는 모든, 전체 라는 의미를 가지고 있다. 입력을 하니 위에서 생성했던 모든 파일들을 출력하는 것을 확인할 수 있다. 그렇다면 echo a*는 무슨 의미일까? a로 시작하는 파일을 모두 보여주는 의미를 가지고 있다. 그 다음은 ?을 써보자. ?은 하나당 Any single Character라는 의미이다. 즉 4개를 입력했으므로 4개의 글자를 가지는 모든 폴더에 대해서 출력을 하게 된다. Quoting Rule이란 무엇인가? 메타 .. 2023. 1. 11.
[linux] [따배셸] Bash Shell의 변수 Shell의 변수란? 데이터를 넣는 그릇이다. 선언할 필요 없이 사용이 가능하다. 변수명: 문자, 숫자, _로 구성할 수 있지만 시작은 반드시 문자나 _로 시작해야 한다. 변수 선언 vername=value ex : fname=yang ex : score=100 먼저 변수를 하나 생성해 보았다. 두번째로 firstname이라고 하고 띄어쓴 후 변수를 선언하니 오류가 뜨는 것을 확인할 수 있었다. 그리고 마지막으로 score라는 변수를 선언해 주었다. 변수 확인 echo, set ex : echo $fname ex : set 다음은 변수를 확인하는 방법이다. echo 이후 $표시를 한 후 위에서 지정한 변수명을 입력 해 주었다. 위에서 지정한 이름을 차례대로 입력하자 yang과 100이 제대로 나오는 것을.. 2023. 1. 10.
[linux] crontab이란 무엇인가? Crontab이란 무엇인가? crontab이란 리눅스에서는 일반적으로 crons 데몬이 주기적인 작업 실행을 처리한다. cron이 시작될 때부터 끝날때까지 실행되며 cron 설정 파일은 cron table이라 하며 이를 줄여 crontab이라고 한다. 윈도우의 스케줄러와 비슷한 역할을 한다고 생각하면 된다. Crontab 기본 먼저 crond 데몬 구동이 되고있는지 확인한다. 그 후 sudo 명령어를 사용해서 현재 cron 데몬이 실행중인 역시 확인해 준다. 그 후 기본이 되는 crontab -e를 입력한다. 이는 크론탭을 이용해 작업을 할당할 때 사용하는 명령어이다. 위 커맨드를 입력하면 vi 편집기와 비슷한 텍스트 편집기가 열린다. 만약 처음 시작하면 nano를 사용할 것인지 vi를 사용할 것인지 묻.. 2023. 1. 9.
[Linux 기초] 쉘 스크립트란 무엇인가? 쉘 스크립트란 무엇인가? 우리는 쉘을 이용해서 하나만의 명령을 지정할 수 있지만 여러개의 명령을 순차적으로 실행하는것을 통해서 하나의 업무를 진행할 수 있다. 순차적으로 명령을 실행해야 하는 것을 어딘가에 작성한 후 추후에 재사용할 수 있도록 하는 것이다. 또한 6개월 ~ 1년사이에 한번씩 사용하지만 매우 복잡한 코드거나 하나라도 오타가 나면 안될 경우 역시 쉘 스크립트를 사용하는 것이 안전하고, 사용자에게 편의를 준다. 쉘 스크립트 실습 먼저 우리는 간단한 실습을 위해 script라는 디렉토리를 만든 다음 script 디렉토리로 이동 해 주었다. 우리는 .log으로 끝나는 파일들을 정기적으로 bak 이라는 디렉토리로 백업을 시키려고 한다. 먼저 쉘 스크립트가 아닌 명령어를 통해서 실행해보도록 하자. 먼.. 2022. 12. 17.
[Linux 기초] 쉘과 커널 쉘이란 무엇인가? 쉘을 공부할 때 같이 커널도 공부를 하는게 좋다. 커널이란 알맹이 코어 이런 뜻을 가지며, 쉘은 껍데기, 주변 이라는 뜻을 가진다. 먼저 이 사진을 보면 가장 안쪽에 하드웨어가 있다. 하드웨어란 우리가 쓰는 CPU, 메모리, SSD 등을 의미한다. 컴퓨터를 쓴다는건 결국 기계를 동작시켜 결과를 얻어내는 일이다. 하드웨어를 감싸는 것이 바로 커널이다. 커널은 하드웨어를 직접적으로 제어하는 운영체제에서 가장 중심이 되는 코어이다. 그 커널 바깥쪽에는 쉘이 존재한다. 쉘은 사용자가 리눅스에서 ls 명령어를 내리면 디렉토리의 리스트를 보여주는것 같은 입력한 명령이 쉘을 대상으로 명령을 내리는 것이다. 쉘은 우리가 입력한 명령을 해석해서 커널이 이해할 수 있는 방식으로 커널에게 전달한다. 그렇다.. 2022. 12. 14.
[Linux 기초] 왜 CLI를 사용하는 것인가? 우리는 왜 명령어를 이용해서 리눅스를 다루게 되는 걸까? 우리가 GUI와 CLI를 이용해서 컴퓨터를 이용한다면 당연히 GUI가 많은 컴퓨터의 에너지를 사용하게 된다. 일반인들이 사용하는 컴퓨터 시스템은 쉽게 사용하게 하기 위해 많은 컴퓨터 에너지가 사용에 초점이 맞춰진다. 하지만 서버 컴퓨터 같은 경우 일반인에 대한 초점이 아니기 때문에 명령에 집중하는 기능만 가지면 컴퓨터 용량, CPU, Memory 등 에너지를 효율적으로 사용할 수 있다. 두 번째 이유는 GUI 방식은 쉽다는 장점이 있지만 많은 노동이 필요하다. 예를들어 GUI 시스템에서 일을 처리한다고 가정하면 주어진 프로그램을 실행시킬 때 어떤 일을 실행한 후 기다리고 완료된 후 다음일을 진행하게 된다. 즉 배우기는 쉽지만 그걸 이용해서 순차적으.. 2022. 12. 11.
[Linux 기초] 다운로드 방법 (wget, git) 명령어 기반 환경인 리눅스 환경에서 파일을 다운로드 받을 때는 어떻게 해야할까? GUI 방식에서는 다운로드를 클릭하면 다운로드를 받는 형식이다. 하지만 리눅스 환경에서는 다르게 다운로드를 받는다. 가장 많이 사용하는 것 중 하나가 wget이라는 프로그램이다. URL을 통해서 파일을 다운로드 받는게 가능하다. 그렇다면 URL은 어떻게 알아내야 할까? 이렇게 GUI 환경에 보면 Copy Link address를 할 수 있다. 이걸 복사한 이후 그 주소를 wget 뒤에 붙여 넣을 수 있다. 그 후 ls -l을 통해서 다운로드 받은 download 파일을 알 수 있었다. 두번째로는 git 이라고 하는 프로그램이다. git은 버전관리 시스템이라는 카테고리에 속하는 구체적인 제품 중 하나이다. 이 git은 굉장히 .. 2022. 12. 11.
[Linux 기초] Package Manager Package란 흔히 프로그램 혹은 애플리케이션 혹은 앱이라고 부르는 것들을 의미한다. 그리고 우리가 컴퓨터를 사용한다고 하는 것은 이러한 Package에 있는 기능을 이용해 다양한 처리를 하는 것이 컴퓨터를 사용하는 행위라 할 수 있다. 윈도우나 맥과 같은 컴퓨터와 마찬가지로 리눅스에서도 여러가지 소프트웨어 패키지가 존재한다. 기본적으로 탑재되어 있는 패키지들 역시 존재한다. ls, mkdir 등 모두 패키지라고 할 수 있다. 이렇게 기본적으로 내장된 프로그램 말고 기본적으로 포함되어 있지 않지만 여러가지 패키지를 설치해야 할 때가 있다. 오늘날의 리눅스는 패키지 매니저를 기본적으로 지원한다. 이 매니저는 다운, 삭제 서칭 등 관리를 지원한다. 리눅스에서는 대표적으로 apt, yum이라는 것이 있다. .. 2022. 12. 8.
728x90