728x90

Linux를 사용하다보면 SSH로 접속을 하더라도 운영체제에 대해서 정확히 모를때가 많습니다.

그럴때 사용하는 명령어에 대해서 설명드리겠습니다.

 

Linux의 커널의 버전은 /proc/version에서 관리합니다.

 

cat 명령어

cat명령어를 사용해 /proc/version을 확인해 보면 아래와 같이 커널 정보를 확인할 수 있습니다.

cat /proc/version

cat 명령어

일반적 커널 정보 확인

uname이란 명령어를 통해 확인이 가능합니다.

 

uname은 옵션은 아래와 같습니다.

 

a : 상세정보

r : 커널의 릴리즈 버전을 확인합니다.

 

보통 a라는 옵션을 사용해 사용합니다.

 

uname 명령어

OS 버전 정보 확인

버전을 까지 한번에 확인하는 방법도 있습니다.

그 방법은 아래와 같이 2가지 명령어로 확인이 가능합니다.

 

cat /etc/redhat-release

cat /etc/*release*

 

OS 비트 확인

OS에 대해 비트에 대해 확인해서 설치를 해야될때가 있습니다.

그럴때는 아래와 같은 명령어를 통해 간단히 확인이 가능합니다.

 

getconf LONG_BIT

반응형
728x90

프로젝트를 진행하다 보면 보안에 따라 mac주소를 넘겨야 하는 경우가 많이 생깁니다.

대표적인 OS 리눅스&WINDOW mac 주소 확인하는 방법에 대해 포스팅하려고 합니다.

 

WINDOW

Window에서는 시작 버튼을 누른 후 cmd로 콘솔 창을 열어 준 후 명령어를 통해 확인이 가능합니다.

명령어로는 아래 2가지로 확인이 가능합니다.

1. ipconfig -all

ipconfig -all 실행화면

cmd 창을 실행시킨 후 ipconfig -all 을 통해 전체 IP 정보와 mac주소 정보를 확인할 수가 있습니다.

2.getmac -v

getmac -v 실행화면

cmd 창을 실행시킨 후 getmac -v 명령어를 통해 mac 주소를 직관적으로 볼수가 있습니다.

 

window에서는 위에 2가지 명령어로 간단하게 확인이 가능합니다.

 

리눅스(Linux)

리눅스 terminal에 접속 후 ifconfig -a | grep eth 명령어를 통해 확인이 가능합니다.

ifconfig -a grep eth

 

반응형
728x90

서버 관리를 하다 보면 실시간으로 서버 상태를 체크해야 되는 경우가 많이 생깁니다.

갑자기 운영하는 서버가 느려지거나 하는 고객 컴플레인이 걸려올 때는 원인 분석을 해야 되기 때문입니다.

 

top 명령어

그걸 위해 리눅스에서는 Top 명령어를 지원해줍니다.

 

리눅스 서버를 접근 후 top명령어를 실행하면 아래와 같은 화면이 나옵니다.

top 명령어 실행 화면

 

위에 실행화면으로 line 별로 대략적으로 설명을 하자면 아래와 같습니다.

  • 1 Line - 서버시간 10:17:44 , 1 user 사용자 접속,  load average 서버 부하율
  • 2 Line - 전체 프로세스 tasks 247 total , 실행 중인 프로세스 1 running, 대기 중인 프로세스 246 sleeping, 멈춘 프로세스 0 stopped , 좀비 상태 프로세스 0 zombie 
  • 3 Line - 유저 cpu 비중 0.6 us, 시스템 cpu 비중 0.1 sy, 나이스 한 cpu 비중 0.0, 99.1

이 외에 라인 밑에 있는 부분들은 프로세스 리스트입니다.

해당 실행화면은 오라클 DB서버에 접속한 것 입니다.

이에 따른 예시입니다.

 

아래 표는 프로세스 리스트 컬럼에 대한 설명입니다.

 

PID  프로세스 ID
USER 프로세스 실행시킨 사용자
PRI 우선순위
NI NICE 값
마이너스를 가지는 Nice value 우선순위 높음
VIRT 가상 메모리 사용량
RES 현재 페이지 크기
SHR 분할된 페이지, 사용된 메모리를 나눈 총합
S 프로세스 상태
%CPU 프로세스가 사용하는 CPU 사용율
%MEM 프로세스가 사용하는 메모리 사용율
COMMAND 실행된 명령어

 

이러한 top 명령어를 통해 실행되는 프로세스의 cpu 사용량을 체크하여 해당 프로세스를 kill 해주어 서버 지연 상태를 해결합니다.

반응형
728x90

우리는 리눅스 즉 서버에 대해서 이야기할 때 쉘이라는 말을 수도 없이 많이 들을 것입니다.

쉘 스크립트로 많은 리눅스 서버는 실행이 되고 활용이 됩니다. 또한 서버에 연동되어 사용되는 Jenkins 등 여러 페이지는 쉘 스크립트를 만들어 활용이 됩니다. 그렇다면 리눅스 프로그래밍에서 가장 기초인 쉘이란 무엇인지 알아보도록 하겠습니다.

쉘(Shell) 이란?

쉘은 리눅스에서 명령어와 프로그래밍을 실행할 때 사용되는 인터페이스입니다.

 

커널(Kernel)과 사용자 간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 합니다.

 

쉘 환경 화면(Putty)

 

리눅스 & 유닉스에서 많이 사용하는 주요 쉘 종류

구분 위치 비고
sh /bin/sh 대부분의 유닉스와 리눅스에 설치된 쉘
bash /bin/bash 리눅스의 기본 쉘, sh와 호환
ksh /bin/ksh 1980년대 벨 연구소에서 개발, 부동 소수점 계산 가능
csh /bin/csh C와 비슷한 스타일, 스크립트 작성 가능
tcsh /bin/tcsh csh에 커멘드 히스토리 등을 추가 기능 보완

쉘은 유닉스와 리눅스에서 지원하는 명령어들의 집합을 묶어 프로그램화합니다. 그래서 보통 프로그래밍 언어는

그 방식에 따라 컴파일과 인터프리터로 나누지만, 스크립트는 인터프리터 방식이라 각 언어별로 별도의 인터프리터가 존재합니다. 쉘은 쉘 자체 내의 인터프리터가 존재하기 때문에 별도로 설치할 필요가 없습니다.

 

쉘 스크립트 장점

쉘은 텍스트 기반 명령어로 이루어져 있기 때문에 강력한 리다이렉션 기능을 활용할 수 있습니다. 명령에 필요한 값을 받거나 또는 명령의 수행 결과를 파일이나 장비에 전송해 관리자가 원하는 형식의 결과로 재가공하거나 관리 절차는 자동화하는데 유용합니다.

 

* 리다이렉션(Redirection) 연산자 예시

 

리다이렉션 ">" 연산자로

파일이 존재하지 않으면 새로운 파일을 만들고, 같은 파일이 있으면 생성하여 hello.txt로 생성했고

cat을 통해 출력한 예시입니다.

 

 

* 좀 더 자세한 리다이렉션 참고자료

 

https://whitehats.tistory.com/37

장점 정리

 

1. 동일한 작업을 반복하거나 스케줄에 의한 자동화 구현 가능합니다.

 

2. 기본적인 명령어를 시스템 관리자만의 명령어로 보완해 제작, 즉 각 운영체제에서 기본적으로 제공하는 명령어에 따른 결과를 관리자가 원하는 결과로 재가공 가능합니다.

 

3. 특별한 툴 없이 개발 가능하며, 실행 속도가 빠릅니다. 대신에 쉘 스크립트 운영체제에 대한 이해가 선행되어야 합니다.

 

 

 

 

 

 

반응형
728x90

노련한 Linux 사용자가 되기 위해서는 리눅스(Linux) 명령어를 마스터하는 것은 필수적인 요소입니다.

 

모든 명령어를 암기하는 것은 힘들지만 많이 쓰이는 명령어는 필수적으로 알아야 된다고 생각하며 이 정도는 외워야 된다는 것들만

간추려고 포스팅 하게 되었습니다.

 

1. pwd

 

Print Work Directory

현재 사용자가 작업 중인 디렉토리를 보여줍니다.

사용자의 작업 위치를 알고 정확하게 작업을 할 수 있게 도와주는 역할을 합니다.

 

2. ls

 

List Segments

유닉스 세계에서 가장 유명한 명령어 중 하나 일 것입니다.현재 위치해 있는 곳의 파일, 디렉토리의 정보를 제공합니다. pwd와 함께 사용하면 파일의 위치 및 정보를 알아내는데 유용합니다.

 

ls -l 파일 상세정보 리스트로 표현
ls -a 숨어있는 파일들까지 리스트로 표현
ls -t 파일들을 생성된 순으로 리스트로 표현
ls -rt 파일들을 오래된 순으로 리스트로 표현
ls -F 파일을 표시할 때 마지막에 유형을 나타내는 파일명을 끝에 표현
ls -lrt 파일들의 상세정보, 오래된 순으로 리스트로 표현

 

 

3. cd

 

Change Directory

경로를 이동할 때 사용하는 명령어 입니다.

 

cd ~ 어느 곳에서든지 홈 디렉토리로 바로 이동
cd .. 상위 디렉토리로 이동
cd /dir 절대경로 dir로 이동
cd - 이동하기 직 전 디렉토리로 이동

 

4. touch

 

유효한 빈 파일을 작성하기 위한 명령어, 타임스탬프를 변경하기 위한 이동 명령어입니다.

터미널에서 이동 중에 파일을 생성하고 요구 사항에 따라 실시간으로 파일을 채울 수가 있습니다.

 

* fn = filename

touch fn fn 파일 생성
touch -c fn fn의 시간을 현재시간으로 변경
touch -t 날짜 fn fn의 시간을 날짜정보 (YYYYMMDDhhmm)로 변경
touch -r fn1 fn2 fn2의 날짜정보를 f1의 날짜정보와 같게 변경

 

5. cat

 

Catenate

여러 파일을 연결하기 위해 고안된 cat

 

* fn = filename

cat fn fn 내용 출력
cat fn1 fn2 fn1과 fn2의 내용을 이어서 출력
cat fn1 fn2 | more fn1과 fn2를 페이지 별로 출력
cat fn1 fn2 | head fn1과 fn2를 처음부터 10번째까지 출력
cat fn1 fn2 | tail fn1과 fn2를 끝에서 부터 10번째까지 출력

 

6. mkdir

 

Make Drirectory

새로운 디렉터리를 생성하는 명령어로 mkdir에 필요한 권한을 가지고 있다면 사용 가능합니다.

 

* dn  = dirname

 

mkdir dn 현재 디렉토리에 dn 디렉토리 생성
mkdir /dn /fnxm 디렉토리에 dn 디렉토리 생성
mkdir dn1 dn2 dn3 현재 디렉토리에 dn1, dn2, dn3 디렉토리 생성
mkdir dn1/dn2/dn3 현재 디렉토리에 dn1 생성, 그 하위에 dn2 생성, 그 하위에 dn3 생성

 

7. cp

 

Copy

파일을 복사하는 명령어입니다.

 

* fn = filename

* dir = directory

 

cp fn fn1 f을 f1 이라는 이름으로 복사
cp -f fn fn1 복사할 떄 복사대상이 있으면 지우고 강제 복사
cp -R dir dir1 디렉토리 복사, 폴더안의 모든 하위경로 파일도 복사

 

8. rm

 

Remove

파일 또는 디렉터리를 삭제할 때 사용하는 명령어입니다.

 

* fn  = filename

 

rm fn fn을 삭제
rm -f fn fn을 묻지 않고 삭제
rm -r dir dir을 삭제. 디렉토리는 -r 옵션 없이는 삭제 불가

 

9. mv

 

Move

파일 이동하는 명령어입니다. cp와 비슷하지만 다른 점은 cp는 파일을 복사하여 원본 파일이 남아있지만

mv는 원본 파일이 남아있지 않습니다.

 

* fn  = filename

 

mv fn fn1 fn의 파일을 fn1의 이름으로 이동 및 변경
mv -b fn fn1 fn1의 파일이 존재하면 백업 후 이동
mv -f fn fn1 fn1의 파일이 존재하면 백업 없이 덮어쓰기

 

10. less

 

텍스트 파일을 한 번에 한 화면씩 보여주는 터미널 페이지입니다. 기능적으로 more와 유사하나 파일의 앞쪽과

뒤쪽으로 이동할 수 있는 more의 개량형 명령어입니다. less 내부 명령어를 이용하여 문서를 자유롭게 볼 수가 있습니다.

 

* fn  = filename

 

less 내부 명령어

page up & b 한 페이지 위로
page down & 스페이스바 한 페이지 아래로
위쪽 방향키 한 줄 위로
아래쪽 방향키 한 줄 아래로
G 텍스트 파일의 맨 마지막으로 이동
1G 또는 g 텍스트 파일의 맨 처음으로 이동
/문자열 아래 방향으로 진행하여 입력된 문자열 찾기
n 이전 검색어의 다음 찾기
h 도움말 보기
q 프로그램 종료

 

Linux에서 주로 많이 쓰이는 총 10가지의 기본 명령어에 대해서 정리해봤습니다.

이것뿐만 아니라 많은 명령어가 있지만 이 10가지의 기본 명령어를 익힌다면 Linux 사용하는데

크게 어려움은 없지 않을까??라고 생각합니다.

 

글을 읽고 큰 도움이 되길 바랍니다.

반응형
728x90

PuTTY

PuTTY는 Simon Tatham이 개발한 오픈소스 터미널 에뮬레이터입니다.

 

개인 PC 운영체제에서도 서버로 접속할 수 있도록 물리적인 단말장비가 아닌 논리적인 가상 단말기를 제공됩니다.

접속 방식으로는 Telet, SSH, Rlogin 등 다양한 방법을 제공하는 무료 오픈소스 프로그램 중 하나가 PuTTY입니다.

 

PuTTY 접속 방법

 

1. 푸티를 사용하는데 필요한 설정 및 기능 목록

2. 원격 서버 IP

3. 원격 서버 PORT

4. 서버 설정을 저장해서 사용하는 목록

 

2번 밑에 ContentType 즉 서버 접속방식을 선택하고

알맞은 IP와 Port를 입력하고 Open 버튼을 누르면 서버 접속이 완료됩니다.

 

인증키가 있는 경우

 

접속을 눌렀는데 putty no supported authentication methods available public key라는 오류가 발생하게 되면

인증키가 필요하다는 겁니다.

 

 

1. 키에 발급된 인증키를 갖고 옵니다.

 

1을 작업을 실행하고 접속하면 정상적으로 실행됩니다.

 

참고로 Saved Session에 저장된 것으로 open을 시키려면 다시 저장을 시켜주고 접속을 해야 합니다.

반응형

+ Recent posts