본문 바로가기

분류 전체보기102

JAVA 배경지식 유투브로 게임 영상이나 보고 있다가,, 추천 영상에 JAVA 관련 잘 정리되고 설명도 유익한 영상 있어서 시청하며 공부할겸 따라 적어본다. 출처는 글 마지막에 작성하였다. JDK, JRE, JVM JAVA는 바이너리 코드(0과 1)밖에 해석 불가하다. 즉, 우리가 작성하는 프로그래밍 언어로 작성된 것은 컴퓨터가 이해 불가능하다. 컴파일 프로그래밍 언어로 작성된 코드를 바이너리 코드로 바꿔주는 과정. 이러한 컴파일을 해주는 프로그램을 컴파일러 라고 한다. 그런데 이러한 C언어의 경우 0과1의 조합은 OS 마다 다르다. Windows OS 에서 Hello World 를 출력하더라도 MAC OS 나 Linux OS 에서 출력되지 않을 수 있다. 따라서, 각각 다른 컴파일러(윈도우 C 컴파일러, MAC C 컴파.. 2023. 9. 25.
[Docker] 복습 출처 - https://futurecreator.github.io/2018/11/16/docker-container-basics/ namespace 먼저 컨테이너라는 가상의 독립된 환경을 만들기 위해 리눅스 커널의 namespace 라는 기능을 사용합니다. 쉽게 얘기하면 리눅스 오브젝트에 이름표를 붙여 같은 이름표가 붙여진 것들만 묶어 관리합니다. 아래 내용에서 격리(isolated)라는 의미는 다른 네임스페이스에서는 접근이 불가능하다는 걸 의미합니다. 네임스페이스설명 항목 설명 PID namespace 각 프로세스에 할당된 고유한 ID 인 PID 를 기준으로 다른 프로세스를 격리. 네임스페이스가 다르면 액세스 불가. Network namespace 네트워크 리소스(IP 주소, 포트 번호, 라우팅 테이블.. 2023. 4. 20.
Ubuntu 에 Docker 설치 실행환경 Ubuntu 22.04 Docker 설치방법 1. 우분투 시스템 패키지 업데이트 sudo apt-get update 2. 필요한 패키지 설치 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 3. Docker의 공식 GPG키를 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 4. Docker의 공식 apt 저장소를 추가 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(ls.. 2023. 4. 20.
2. 테스트 환경 구성하기(3). "컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커" 책 보고 공부하기 2.3 터미널 프로그램으로 가상 머신 접속하기 푸티로 여러 대 가상 머신에 접근할 수 있지만, 한 번에 한 대씩만 접근할 수 있다. 우리가 원하는 것은 한 번에 여러 대의 가상 머신에 접근해서 관리하는 것이므로 추가 프로그램을 설치하자. 2.3.2 슈퍼 푸티(SuperPuTTY) 설치하기. 1. 웹 브라우저에서 슈퍼푸티를 제공하는 아래 깃허브 페이지에 접속해 최신 버전 파일을 다운 받는다. http://github.com/jimradford/superputty/releases 2. putty.exe Location 옆의 Browse 를 클릭 후, 푸티(putty.exe)의 위치를 지정. 3. 정상 실행 확인. 2.3.2 슈퍼 푸티(S.. 2022. 11. 21.
2. 테스트 환경 구성하기(2). "컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커" 책 보고 공부하기 2.2 베이그런트로 테스트 환경 구축하기 베이그런트로 Virtualbox 에 가상 머신을 설치하는 방법을 알아보았다. 이번에는 Vagrantfile 을 수정하여 원하는 구성이 자동으로 CentOS 에 입력해도록 해보자. 2.2.1 가상 머신에 필요한 설정 자동으로 구성하기 앞에서는 Vagrantfile 에 기존에 있던 이미지 파일을 추가해 가상 머신을 생성했다. 이번에는 원하는 구성을 자동으로 생성할 수 있도록 Vagrantfile 을 새롭게 작성해 보겠다. Vagrant 코드는 루비(Ruby)라는 언어로 작성한다. 코드 입력 # -*- mode: ruby -*- // 에디터에 현재파일이 루비(ruby)임을 인식하게 하는 호환 코드 .. 2022. 11. 15.
[Shell Programming] 오래된 로그 삭제 명령행 인자 2개 전달 1) Log 경로 2) 1,0 //1:삭제, 0:삭제 안함 출력 출력 ( Command : {스크립트 파일명}.sh {경로} {0 or 1} ) hostname df -h // 파일시스템 용량. 오래된 파일 순으로 해당 디렉토리 파일들. 삭제 대상 리스트 출력 (1일 지난 파일들). #!/bin/bash count=$(find $1 -type f -mtime +1 | wc -l) hostname -f echo -e "\nExecute the command 'df -h' \n" df -h echo -e "\nSort oldest files first\n" ls $1 --time-style="+%Y-%m-%d %H:%M:%S" -altr | grep ^- echo -e "\nNeed .. 2022. 11. 13.
2. 테스트 환경 구성하기. "컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커" 책 보고 공부하기 2.1 테스트 환경을 자동으로 구성하는 도구 컨테이너 인프라 환경은 컨테이너를 중심으로 구성된 인프라 환경. 컨테이너(Container)는 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태를 의미. 2.1.1 Virtualbox 설치 https://www.virtualbox.org/wiki/Downloads Downloads – Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, yo.. 2022. 11. 11.
1. 새로운 인프라 환경이 온다. "컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커" 책 보고 공부하기 1.1 컨테이너 인프라 환경이란? 컨테이너 인프라 환경은 컨테이너를 중심으로 구성된 인프라 환경. 컨테이너(Container)는 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태를 의미. 1.1.1 모놀리식 아키텍처(monolithic architecture) 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합돼 있는 구조를 의미. (장점) 모놀리식 아키텍처에서는 소프트웨어가 하나의 결합된 코드로 구성되기 때문에 초기 단계에서 설계하기 용이하며 개발이 좀 더 단순하고 코드 관리가 간편. (단점) 서비스를 운영하는 과정에서 수정이 많을 경우, 어떤 서비스에서 이뤄진 수정이 연.. 2022. 11. 9.
Prometheus Architecture Prometheus 와 Grafana 란? Prometheus : 오픈 소스 기반의 모니터링 시스템으로 Alerting을 지원. Grafana : 오픈소스 매트릭 데이터 시각화 도구로 메트릭(Metric) 분석 플랫폼 보통, Prometheus 와 Grafana 가 같이 언급되는데 Prometheus 가 대상 시스템(Target System) 들에서 필요한 모니터링 지표를 수집하여 저장하고 Grafana 에서 이를 시각화(Visualization)한다. Prometheus 오픈 소스 기반의 모니터링 시스템으로 각종 모니터링 지표를 수집하여 저장하고 검색할 수 있는 시스템이다. 현재 Kubernetes 상에서 가장 많이 사용하는 오픈 소스 기반 모니터링 시스템이며, 간단한 텍스트 형식으로 메트릭(Metri.. 2022. 10. 30.
[Github] 기초(2) 되돌아가기 (git rest , git revert) 1. reset, revert (1) reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지운다. git reset --hard (돌아갈 커밋 해시) -> 뒤에 커밋 해시가 없으면 마지막 커밋을 가리킨다. - "reset" 명령어를 사용하여 이전 Commit 으로 돌아가기. - "reset" 명령어를 사용하기 전 시점으로 복원하기 .git 파일을 백업해둔 뒤 기존 .git 파일 삭제 후, 백업본으로 교체 다시 git reset --hard 명령어 입력. (2) revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행한다. git revert --hard (돌아갈 커밋 해시) (3) Git Clone $ git clon https://github... 2022. 9. 6.
[Github] 기초 1. 터미널용 어플리케이션 추천 CUI Mac OS -> iTerm2 Windows OS -> Cmder GUI Sourcetree 2. Git 관련 설정 확인 (1) git 설정 $ git config --list (2) git 설정(global) 파일 열기. git config --global -e // 글로벌로 설정된 것을 edit 모드로 열기 (3) 터미널에서 Visual Studio 열기 $ code . (4) git Config 설정하기 git config --global user.name "이름" git config --global user.email "이메일" git config --global core.autocrlf true windows OS git config --global cor.. 2022. 9. 5.
[Jenkins] 기본개념(2) 여러 배포 환경의 관리 인프라를 모듈화하여 어떤 것이 변수인지 잘 설정하고 이를 잘 설계하는 것. - 배포하고자 하는 것이 무슨 환경인지 설정하고 - 앱 내에서 사용하는 다양한 변수들을 환경에 맞게 잘 가져다 쓰는 것. - 클라우드 리소스를 활용해서 개발하는 요즘에는 클라우드 리소스 내에서 인프라별 키관리가 매우 중요하여 클라우드 내에 키 관리 서비스를 사용하는 것이 좋다. 실습 (1) Github Repository 생성 (2) Github 에 로컬 저장소 연결 $ git clon https://github.com/naonana/CICD.git (3) Jenkins 에서 Github 에 접근할 수 있도록 권한 부여. (4) Git Credential 등록 Username 는 본인 Github ID Pa.. 2022. 9. 5.
[Jenkins] 기본 개념 목차 CI/CD 파이프라인의 기본 개념 기본적인 운영환경 (DEV, QA, PROD) 이 어떻게 구성되고 운영되는가 Jenkins 의 기본 개념. Jenkins 를 통해 기본적인 배포 파이프라인을 직접 구축 CI/CD 파이프라인의 기본 개념 1. CI/CD 란 무엇인가 (1) Continuous Integration - 여러 개발자들의 코드베이스를 계속해서 통합하는 것. 기본적으로 코드. 여러 명의 많은 개발자들이 코드 베이스를 계속해서 통합하는 것. (2) Continuous Delivery 내부 사용자(내부 QA, 마케터, 기획자)든, 사용자든 서비스를 지속적으로 배달. 즉 코드 베이스가 항상 배포 가능한 상태를 유지하는 것을 의미. (3) Continuous Deployment - 코드베이스를 사용.. 2022. 8. 23.
[WEB] NginX - Tomcat 연동 NginX-Tomcat NginX 는 정적 페이지를 처리하고, Tomcat 은 동적 페이지를 처리한다. 이러한 역할 배분을 통해 더 빠른 응답을 기대할 수 있다. Nginx의 장점 Apache와 달리 구성 시스템이 없어 빠른 속도 Request 에 대해 Event-Driven 방식으로 동작 정적 파일에 대해 Apache 요청의 2배량을 제공 2019년 4월 기준 Apache 사용량 추월 순서 (1) Tomcat 설치 (2) NginX 설치 (3) NginX 와 Tomcat 연동 NginX 설치 1. 패키지 관리자 업데이트 sudo yum update 2. NginX 설치 (1) Nginx 환경 설정 nginx repository 생성 vi /etc/yum/repos.d/nginx.repo에 아래 내용 생.. 2022. 8. 12.
[Jenkins] Jenkins Jenkins 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. 흔히 말하는 CI/CD 중 CI(지속적 통합, Continuous Integration) 을 구현하기 위한 툴이다. 개발 중인 저장소(git, svn 등) 에 업로드된 소스를 테스트, 빌드, 빌드 후 작업 등을 자동 동작하게 해주어 개발자의 리소스 소모가 줄어든다. 젠킨스는 정기적인 빌드에서 한발 나아가 서브버전, Git 과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다. Jenkins 이점 개발중인 프로젝트에서 커밋은 매우 빈번히 일어나기 때문에 커밋 횟수만큼 빌드를 실행하는 것이 아니라 작업이 큐잉되어 자신이 실행될 차례를 기다리게 된다 코드.. 2022. 8. 11.
[리눅스커널이야기] free 명령 free 명령 메모리는 커널이 제공하는 중요한 리소스 중 하나. CPU 가 프로세스의 연산 과정에 필요한 리소스라면, 메모리는 프로세스가 연산할 수 있는 공간을 제공해 주는 리소스이다. 프로세스는 메모리라는 공간에 자신이 필요한 함수를 넣어 두거나 변수에 값을 저장하거나 하는 방식으로 연산을 위한 공간을 확보하고 작업을 진행한다. 메모리가 부족하다면 프로세스는 더 이상 연산을 위한 공간을 확보할 수 없고, 이는 시스템 응답 불가 현상 또는 큰 성능 저하를 일으킬 수 있다. 1. 메모리 사용량 확인하기 free : 리눅스 시스템에서 메모리의 전체적인 현황을 가장 빠르게 살펴볼 수 있는 명령어 free 명령은 현재 시스템의 메모리 사용량에 관한 종합적인 정보를 보여준다. 전체 메모리 용량과, 사용 중인 용량.. 2022. 7. 29.
[리눅스커널이야기] Load Average 와 시스템 부하 Load Average 와 시스템 부하 1. Load Average 의 정의 Load Average 란? 앞에서 확인한 프로세스의 상태 중 R(running)과 D(uninterruptible sleep) 상태에 있는 프로세스 개수의 1분, 5분, 15분 마다의 평균 값. 즉, 얼마나 많은 프로세스가 실행 중 혹은 실행 대기 중인가를 의미하는 수치. Load Average 가 높다면 많은 수의 프로세스가 실행 중이거나 I/O 등을 처리하기 위한 대기 상태에 있다는 것이다. CPU Core 수가 많을 수록, Load Average 가 낮다. (하나의 Run Queue 에 두 개의 프로세스가 있고 하나만 실행되고 나머지 하나는 대기하는 것보다 서로 다른 CPU 에서 동시에 실행 될 수 있기 때문에) upti.. 2022. 7. 26.
[리눅스커널이야기] top 을 통해 살펴보는 프로세스 정보들(2) 프로세스의 상태 보기 1. Process Status D = uninterruptible sleep R = running S = sleeping T = traced or stopped Z = zombie - D(uninterruptible sleep) : 디스크 혹은 네트워크 I/O 를 대기하고 있는 프로세스를 의미. - R(running) : 실행 중인 프로세스. 실제로 CPU 자원을 소모. - S(sleeping) : sleeping 상태의 프로세스로, D 상태와의 가장 큰 차이점은 요청한 리소스를 즉시 사용할 수 있는지 여부. - T(traced or stopped) : 프로세스의 시스템 콜을 추적하고 있는 상태. (자주 볼 수 없는 상태) - Z(zombie) : 부모 프로세스가 죽은 자식 프로세.. 2022. 7. 26.
[Prometheus/Shell script] node exporter 와 mysqld exporter 설치 Docker 에서 node exporter 를 실행하는 것은 권장하지 않는다는 글을 본 적이 있다. Docker의 경우, 머신의 내부동작과 컨테이너를 격리시키려고 하기 때문에 노드 익스포터에서 내부 동작 결과가 작동하지 않을 수 있다는 이유 였다. 그래서 직접 node exporter 와 mysqld exporter 를 설치하는 과정을 Shell script로 작성해보았다. [ 사전 준비 ] - mysql 설치 node exporter #!/bin/bash wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz tar -xvf node_exporter-0... 2022. 6. 23.
[NHN Cloud(공공기관용)] WAF(Web Application Firewall) SSL VPN 연결 후 SSH 혹은 Web UI 접속 앞에서는 NHN Cloud에서 WAF(Web Firewall) 설치하여 사용하는 방법에 대해서만 다뤘지만, - https://haengsin.tistory.com/105 [NHN Cloud] WAF(Web Application Firewall) *NHN Cloud, 사용자 가이드를 읽으며 학습 및 실습 기록을 위하여 작성함. *(주)파이오링크 에서 제공하는 WAF 설정 가이드를 읽으며 학습 및 실습 기록을 위하여 작성함. WAF(Web Application Firewall) 웹 haengsin.tistory.com WAF(Web Firewall) 인스턴스는 eth0 인터페이스만 자동으로 인식한다. NHN Cloud(공공기관용) 에서 특별한 다른 케이스가 아니라면 인스턴스 관리 및 접속을 위하여 Priva.. 2022. 6. 17.
[NHN Cloud] WAF(Web Application Firewall) *NHN Cloud, 사용자 가이드를 읽으며 학습 및 실습 기록을 위하여 작성함. *(주)파이오링크 에서 제공하는 WAF 설정 가이드를 읽으며 학습 및 실습 기록을 위하여 작성함. WAF(Web Application Firewall) 웹 애플리케이션 방화벽은 웹 서비스와주고받는 HTTP 트래픽을 필터링, 모니터링 및 차단하는 특정 형태의 애플리케이션 방화벽. NHN Cloud의 WAF WEB Firewall 서비스에는 Self 서비스와 Managed 서비스가 있습니다. Self 서비스를 선택하면 고객이 직접 웹 방화벽을 구축할 수 있고, Managed 서비스를 선택하면 전문 엔지니어가 웹 방화벽 운영 및 보안관제 서비스를 제공합니다. 고객 클라우드 영역에 웹 방화벽이 구성되며, 독립적인 운영 환경을 제공.. 2022. 6. 7.
[NHN Cloud] Block Storage *NHN Cloud, 사용자 가이드를 읽으며 학습 및 실습 기록을 위하여 작성함. 블록 스토리지(Block Storage) 인스턴스 기본 디스크 외에 추가로 연결하여 사용할 수 있는 가상의 디스크. (서버에 추가로 디스크를 장착하는 것과 비슷하게 이해하면 쉬움) 1.상세 내용 - 연결된 인스턴스를 삭제해도 블록 스토리지는 삭제되지 않는다. - 블록 스토리지는 여러 개의 인스턴스에서 동시에 연결하여 사용할 수 있다. - 연결이 해제된 블록 스토리지는 다른 인스턴스에 연결하여 사용할 수 있다. - 블록 스토리지는 동일 프로젝트 내에 같은 가용성 영역(AZ, Availability Zone) 안에 있는 인스턴스에만 연결할 수 있다. (중요 및 주의 사항) ※ "복제" 기능을 통해 다른 리전(Region), 다.. 2022. 5. 30.
[NHN Cloud] CentOS 7 인스턴스에 GUI 환경으로 접속. 인스턴스의 설정 변경과 재부팅이 필요합니다. 1. 사전 준비 및 참고 사항 CentOS GUI 설치 약 3G 의 설치 용량 필요. 서버 내 3389 Port 허용 Security Group 에 3389 Port 허용 설치 시 커널 및 프로세스 업데이트가 진행되기 때문에 영향도 있는 서비스에 대해서 백업 필수 2. 설치 방법 가이드 1. CentOS Desktop 설치 후 OS Run-Level 변경 (1) CentOS Desktop 설치 $ yum -y update (패키지 최신화) $ yum groupinstall "GNOME Desktop" "Graphical Administration Tools" (2) OS Run-Level 변경 $ ln -sf /lib/systemd/system/runlevel.. 2022. 5. 24.
[Linux] 01. 운영체제의 구조와 특징 운영체제 또는 오퍼레이팅 시스템(OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시슽메 서비스를 제공하는 시스템 소프트웨어. - 프로세스 관리. - 사용자에게 멀티테스킹 환경 제공. 1. 운영체제의 부팅 과정 (1) BIOS - Health Check - 시스템에 전원이 공급되면 가장 먼저 메인보드의 ROM-BIOS에서 BIOS 프로그램을 자동 실행하여 시스템 제어권을 가지고 장착된 H/W에 대한 기본적인 점검과 인식을 한다. 이 과정이 모두 끝나고 나면 ROB-BIOS는 하드디스크의 첫 번째 부트섹트인 MBR에 있는 부트로더에게 그 제어권을 넘겨준다. - POST(Power On Self Test) > CPU, Memory, Graphic C.. 2022. 5. 23.
[리눅스커널이야기] top 을 통해 살펴보는 프로세스 정보들 top 을 통해 살펴보는 프로세스 정보들 - 옵션 없이 입력하면 주어진 Interval 간격(기본 3초)으로 화면을 갱신하면서 정보를 보여준다. (1) 현재 서버의 시간, 서버가 얼마나 구동되었는지 (2) 몇 명의 사용자가 로그인해 있는지, 시스템의 Load Average는 어느정도인지 Load Average는 현재 시스템이 얼마나 많은 일을 하고 있는지를 보여주는 데이터 (3) 현재 시스템에서 구동 중인 프로세스의 개수. (4) 각각의 CPU, Mem, swap 메모리의 사용량. swap 메모리가 상단에 있다는 것은 swap 메모리의 사용 여부가 시스템의 상태에 중요한 영향을 끼친다는 뜻으로 해석 가능. (5) PR, NI, VIRT, RES, SHR, S PR : 프로세스의 실행 우선 순위, 즉 다른.. 2022. 4. 7.
[Shell Programming] 10. Backup 리눅스 시스템에서 주기적으로 파일과 데이터베이스 백업을 하는 방법. 정책 세우기 1. 백업 주기 정책 언제마다 백업을 할 것인가? ex) 매일 새벽 2시, 매일 오전/오후 4시, 매주 토요일 새벽1시 2. 백업 방식 정책 (데이터를 복사할 목적 디스크 혹은 저장소의 여유 공간을 먼저 파악해야 함.) 백업 방식은 어떤 것인가? (백업은 파일을 읽어서 새로운 곳에 기록하는 것. 즉, CPU의 연산이 이루어진다.) 압축 백업 - $ tar -czpf : 일반적으로 많이 사용되는 백업. CPU가 많이 사용됨. 압축 해제 - $ tar -zxvf -c : 파일을 tar로 묶음. -p : 파일 권한을 저장. -v : 묶거나 파일을 풀 떄 과정을 화면에 출력. -f : 파일 이름을 지정. -C : 경로를 지정 -x .. 2022. 3. 17.
[Ansible] Install on CentOS7(Cloud), nginx Install/Remove NHN Cloud 에서 진행. Ansible Ansible이란 서버의 설정 및 관리 소프트웨어 배포, 다수의 서버 구성에 대해 자동화를 구성하여 관리할 수 있는 도구. Automation 언어 Agent less SSH 접속이 가능한 Host라면 별도의 Agent를 설치할 필요 없이 Ansible 작업을 실행할 수 있음. 비교적 이해하기 쉬운 YAML 문법으로 작업을 실행 가능. Play book을 사용하여 여러 Host에 정의된 'Role'과 'Task'를 Mapping하여 실행. 사전 준비 1. Instance 설치 ( Host 1개, Client 3개 ) 2. 접속 확인 + 각 Instance 간에 SSH로 통실할 수 있도록 Security Group(보안 그룹) 설정해주어야 함. Ansible 설.. 2022. 3. 16.
[Shell Programming] 9. Looping Looping 1. 산술연산 expr, let (1) expr 정수형 산술연산( +, -, *, /, % ), 논리연산( | , & ), 관계연산( =, !=, >, >=, echo Number: $num > ((num++)) > done Number: 1 Number: 2 Number: 3 Number: 4 Number: 5 (2) until until 다음의 command가 성공할 때 까지 do~done 사이의 명령어를 반복 실행. until 조건명령어 do 반복명령어 done [centos@linux-mypc bin]$ num=1 [centos@linux-mypc bin]$ until test $num -gt 5 > do > echo Number: $num > ((num+=1)) > done Num.. 2022. 3. 11.
[Shell Programming] 8. Branching Branching 1. exit 실행된 프로그램이 종료된 상태를 전달 // 모든 명령어는 종료될 떄 종료 코드를 발생. exit 0 : 프로그램 또는 명령이 성공으로 종료했음을 의미 1-255 : 프로그램 또는 명령이 실패로 종료했음을 의미 1 : 일반 에러 2 : Syntax error 126 : 명령을 실행할 수 없음 127 : 명령 (파일)이 존재하지 않음. 128+N : 종료 시그널 + N (Kill -9 PID 로 종료 시 128+9=137) $? : 종료 값 출력. Example [centos@linux-mypc ~]$ date > /dev/null [centos@linux-mypc ~]$ echo $? 0 # 정상 종료 => 0 [centos@linux-mypc ~]$ cp file1 cp:.. 2022. 3. 8.
[Shell Programming] 7. Input & Output Input & Output 1. echo prints text to standard output echo -n : 메시지 출력 후 newline 문자를 추가하지 않는다. (자동 줄바꿈 취소) -e : backslach escapes 문자를 해석하여 특별한 의미를 지정한다. \t TAB키 \n 줄바꿈 \a alert(bell) Example [centos@linux-mypc ~]$ echo "Your time is up" Your time is up [centos@linux-mypc ~]$ echo "Your time is up" > time.txt [centos@linux-mypc ~]$ cat time.txt Your time is up [centos@linux-mypc ~]$ echo "Name:" .. 2022. 3. 7.