리눅스에서 어떤 실행 파일을 실행했을 때 "error while loading shared libraries"라는 에러가 출력되면서 실행되지 않는 경우가 있다. 아래 예시는 hello라는 라이브러리(libhello.so)를 링크해서 사용하는 app라는 어플리케이션을 실행했을 때 출력된 에러 메시지이다. $ ./app ./app: error while loading shared libraries: libhello.so: cannot open shared object file: No such file or directory $ 이는 말 그대로 app 어플리케이션을 실행하기 위해 필요한 libhello.so 파일을 찾을 수 없다는 이야기인데, libhello.so 라이브러리 파일을 시스템 라이브러리 디렉토리(..
본 글에서는 윈도우 방식의 줄 구분자(\r\n)가 포함된 텍스트 파일을 리눅스 방식의 줄 구분자(\n)로 변환해 주는 방법에 대해 설명합니다. 줄 구분자 (Line separator) 우리가 사용하는 텍스트 파일 내 각 줄의 끝에는 줄 구분자(Line separator)가 포함되어 있습니다. 편집기 프로그램들은 텍스트 파일을 열 때, 줄 구분자가 있는 부분에서 개행(줄바꿈)을 하여 화면에 표시합니다. 예를 들어 다음과 같이 두 줄이 포함된 텍스트 파일이 있다고 가정해 보겠습니다. 안녕하세요 오늘도야근 블로그입니다. 반갑습니다. 위 텍스트 파일은 실제로는 다음과 같이 저장되어 있습니다. (리눅스와 macOS 등 유닉스 계열의 운영체제에서는 줄 구분자로 "\n"을 사용합니다) 안녕하세요 오늘도야근 블로그입니..
1. 개요 iperf3이라는 유틸리티를 이용하여 장치간 네트워크 트래픽에 대한 Throughput을 측정할 수 있습니다. Throughput은 보통 장치의 네트워킹 성능을 측정하거나 네트워크의 품질을 판단하는데 사용됩니다. 본 글에서는 리눅스 시스템(우분투 16.04) 상에서 iperf3 유틸리티를 이용하여 두 장치간 네트워크 Throughput을 측정하는 방법을 소개합니다. 2. 장치(PC 등) 별 네트워크 인터페이스 주소 설정 두 장치 사이에서 교환되는 네트워크 트래픽에 대한 성능을 측정하므로 2개의 리눅스 장치를 사용합니다. 장치1에서 다음 명령으로 IPv4 및 IPv6 주소를 설정합니다. 원할 경우 MAC 주소도 설정할 수 있습니다. 여기서는 네트워크 인터페이스 이름으로 eth0을 사용하고 임의의..
우분투(Ubuntu) 리눅스에 네트워크 관련 유틸리티 설치하기 본 글에서는 우분투(Ubuntu) 리눅스에 ping, ifconfig, ip 등과 같은 네트워크 관련 유틸리티를 설치하는 방법을 소개한다. ping, ifconfig, ip 등은 네트워크에 관련된 주요 유틸리티이기 때문에 일반적인 리눅스 머신에는 기본적으로 설치가 되어 있다. 하지만 도커의 초기 이미지처럼 최소화된 패키지의 우분투를 실행하면 설치가 되어 있지 않은 경우가 있다. 위 유틸리티들이 설치되어 있지 않을 경우 다음과 같이 apt install 이나 apt-get install 명령을 이용하여 설치할 수 있다. apt install iputils-ping : ping 설치 apt install net-tools : ifconfig 설치..
리눅스 ip 유틸리티 사용법 : IPv4/IPv6 라우팅 테이블 관리 ip 유틸리티를 이용하면 각 네트워크 인터페이스의 정보를 설정하거나 확인할 수 있으며, 그 외에도 라우팅(Routing) 테이블, 이웃정보(Neighbor) 테이블 등 많은 정보를 제어할 수 있다. 본 글에서는 ip 유틸리티를 이용하여 IPv4/IPv6 라우팅 테이블을 관리하는 방법을 설명한다. 그 외 ip 유틸리티의 기능 및 사용법은 다음 글에 설명되어 있다. 2020/03/14 - [리눅스(Linux) 활용] - 리눅스 ip 유틸리티 사용법 : IPv4/IPv6 주소 관리 본 글의 예제에서 사용된 리눅스는 Ubuntu 18.04 버전이다. ip 유틸리티 설치하기 만약 ip 유틸리티가 설치되어 있지 않으면 다음과 같이 apt inst..
리눅스 ip 유틸리티 사용법 : IPv4/IPv6 주소 관리 ip 유틸리티를 이용하면 각 네트워크 인터페이스의 정보를 설정하거나 확인할 수 있으며, 그 외에도 라우팅(Routing) 테이블, 이웃정보(Neighbor) 테이블 등 많은 정보를 제어할 수 있다. 본 글에서는 ip 유틸리티를 이용하여 네트워크 인터페이스의 IPv4 주소와 IPv6 주소를 추가, 제거, 확인하는 방법을 설명한다. 그 외 ip 유틸리티의 기능 및 사용법은 다음 글에 설명되어 있다. 2020/03/15 - [리눅스(Linux) 활용] - 리눅스 ip 유틸리티 사용법 : IPv4/IPv6 라우팅 테이블 관리 본 글의 예제에서 사용된 리눅스는 Ubuntu 18.04 버전이다. ip 유틸리티 설치하기 만약 ip 유틸리티가 설치되어 있지 ..
우분투(Ubuntu) 리눅스에 ifconfig 설치하기 본 글에서는 우분투 리눅스에 ifconfig 유틸리티를 설치하는 방법을 소개한다. ifconfig은 네트워크에 관련된 주요 유틸리티이기 때문에 일반적인 우분투 리눅스 머신에는 기본적으로 설치가 되어 있다. 하지만 도커의 초기 이미지처럼 최소화된 패키지의 우분투를 실행하면 설치가 되어 있지 않은 경우가 있다. 실제로 도커를 이용하여 공식 우분투 리눅스 컨테이너를 실행하면, ubuntu:16.04 와 ubuntu:18.04에는 ifconfig이 설치되어 있지 않다. (ubuntu:14.04에는 설치되어 있다) "apt install net-tools" 또는 "apt-get install net-tools" 명령을 통해 ifconfig 유틸리티를 설치할 ..
리눅스 시스템에서 IPv6 주소 설정/확인하기 본 글에서는 리눅스 시스템 내 네트워크 인터페이스의 IPv6 주소를 추가, 제거하거나 확인하는 방법을 소개한다. IPv6 주소를 관리하기 위해서는 관련 유틸리티가 필요한데 ifconfig이나 ip라는 명령 유틸리티를 사용할 수 있다. ifconfig을 이용한 IPv6 주소 관리 IPv6 주소 추가 시에는 ifconfig 명령의 "inet6 add" 옵션을 사용한다. ifconfig inet6 add / IPv6 주소 제거 시에는 ifconfig 명령의 "inet6 del" 옵션을 사용한다. ifconfig inet6 del / 다음 화면은 ifconfig 명령을 이용하여 eth0 네트워크 인터페이스에 "2001:0db8:0:f101::1/64" 값을 갖는 I..
본 글에서는 리눅스 상에서 텍스트 파일이나 바이너리 파일 등의 내용을 16진수 형식으로 확인(hex dump)할 수 있는 xxd 라는 유틸리티에 대해 소개한다. 본 글에서 사용된 환경은 다음과 같다. 우분투 리눅스 18.04 우분투 리눅스 18.04 에 xxd 는 기본 설치되어 있지 않으며, 터미널 상에서 다음 명령을 통해 설치할 수 있다. $ sudo apt update -y $ sudo apt install xxd xxd 의 설치가 완료되면 다음과 같은 기본 명령으로 원하는 파일의 내용을 hex dump 할 수 있다. $ xxd 좌측에는 파일 내 데이터의 오프셋(몇번째 바이트인지)이 출력되며, 중앙에는 파일의 내용이 16진수 형식으로 출력된다. 우측에는 파일의 내용이 ASCII 코드 형식으로 출력된다.
리눅스에서 동작 중인 프로세스를 강제 종료하는 방법으로 kill 명령을 사용할 수 있다. kill 명령은 인자로 PID(프로세스 식별번호) 입력 받아, 해당되는 프로세스를 강제 종료한다. 따라서 종료하고자 하는 PID를 알아야 하며, 이는 다음과 같이 ps 명령을 통해 알 수 있다. 아래 화면에서 ps 라는 프로세스의 PID는 42465 이다. $ ps -ef UID PID PPID C STIME TTY TIME CMD gyun 1 0 0 Nov01 pts/0 00:00:00 /bin/bash gyun 42466 1 0 11:21 pts/0 00:00:00 ps -ef PID를 알아낸 후에는 kill 명령을 통해 해당 프로세스를 강제 종료할 수 있다. $ kill -9 42466 하지만 이렇게 PID를 ..
필요에 따라 리눅스 시스템(서버 혹은 장치 등)의 시스템 시각을 UTC 또는 KST 기준으로 설정해야 할 때가 있다. UTC란 Universal Time Coordinated의 약자로써, 세계협정시를 의미한다. 전세계적으로 기준이 되는 시각이다. KST란 Korean Standard Time의 약자로써, 한국표준시각을 의미한다. 즉, 한국에서 현재 사용되고 있는 시각을 의미하며, UTC와 비교할 때 9시간 빠르다. 즉, UTC가 오전 1시일 때, KST는 오전 10시가 된다. 최근의 리눅스 시스템에서는 UTC와 KST 뿐 아니라 각 국가별 기준 시각으로 시스템 시각을 설정할 수 있는 기능을 제공한다. 리눅스 시스템은 /etc/localtime 설정파일의 내용에 따라 시스템 시각의 기준을 결정한다. 따라서..
본 포스트는 리눅스 터미널 상에 표시되는 프롬프트의 표시 형식을 변경하는 방법에 관련된 것입니다. 명령어 입력 대기 화면인 프롬프트는 생각보다 다양한 형태로 출력할 수 있습니다. 다음 화면은 bash 쉘을 사용하는 우분투 리눅스의 기본적인 프롬프트가 출력되고 있는 화면입니다. 사용자에 따라 이 프롬프트 상에 사용자 및 호스트 명을 표시하거나 생략하고 싶은 경우도 있고, 현재 디렉토리의 전체경로를 표시하거나 생략하고 싶은 경우도 있을 것입니다. 본 포스트에서는 우분투 리눅스 상의 bash 쉘 프롬프트를 변경하는 방법을 기술합니다. (시험 환경은 Ubuntu 16.04.1 64bit입니다) 프롬프트의 표시 형식은 각 사용자 계정별로 지정할 수 있으며, 이는 각 계정별 홈 디렉토리에 있는 .bashrc 파일의..