Linux 159

환경변수 PATH 추가

PATH Shell에서 입력받은 명령을 실행할 때 실행할 프로그램을 찾는 경로 기본 명령어가 저장된 디렉터리는 자동으로 등록되지만, 별도의 경로에 프로그램을 설치한 뒤 명령어를 사용하기 위해서는 PATH에 프로그램 실행 경로를 추가해주어야 한다. PATH 정보 확인 echo $PATH 먼저 등록된 경로의 우선순위가 높다. 예로 들어 python 실행 경로가 아래와 같을 경우, /usr/local/bin /home/ec2-user/.local/bin python 명령 실행 시 /usr/local/bin 아래의 python이 실행된다. 또한 모든 사용자에 대해 공통적으로 적용되는 기본 PATH 관련 설정은 /etc/profile(또는 /etc/bashrc) 파일에서 확인할 수 있다. PATH 추가 등록(임시..

Linux 2021.07.23

Alias 등록

Alias 복잡한 명령어 또는 여러 옵션을 사용하는 명령어에 별칭을 주어 간단한 형태로 간소화하여 사용할 수 있는 기능을 가진 명령어 Alias 목록 확인 현재 사용 중인 쉘에 등록된 alias를 확인할 수 있다. alias 몇 가지 명령어는 편의를 위해 자동으로 등록된다. Alias 등록 (일회성) 현재 사용 중인 쉘에 alias를 등록한다. alias = free -h 명령을 free로 별칭을 주면, free를 입력했을 때 free -h를 입력한 것과 동일한 결과를 얻을 수 있다. 다만 alias 명령은 현재 쉘에만 적용되기 때문에 다른 쉘에서나 재접속했을 때는 사용할 수 없다. 즉, 일회성이다. Alias 등록 (자동) 등록한 단축 명령어를 자주 사용한다면, 쉘이 실행될 때 자동으로 alias에 등..

Linux 2021.07.22

date - 시스템 시간 확인

시스템 시간 확인은 date 명령어로 간단하게 확인할 수 있다. date 기본적으로 요일 월 일 시간 시간대 연도의 형식으로 결과를 출력한다. 보통 날짜의 경우에는 2021/07/15 또는 2021-07-15 등의 형식을 가장 많이 쓰는데, date format을 지정하면 출력 형식을 변경할 수 있다. 출력 형식 지정 YYYY/MM/DD date +%Y/%m/%d # 2021/07/15​ YYYY-MM-DD date +%Y-%m-%d date +%F # 2021-07-15 HH:MM:SS date +%H:%M:%S # (0 - 23시) date +%T # (0 - 23시) date +%I:%M:%S # (1 - 12시) # 12:33:42 HH:MM:SS AM/PM date +'%I:%M:%S %p' d..

Linux 2021.07.19

grep - 디렉터리에서 키워드를 포함한 파일 찾기

grep은 문자열 검색 명령어로, 입력으로 받은 파일 내용에서 키워드가 포함된 행을 출력해준다. 친근하고 좋은 명령어지만 아무 옵션 없이, 파일도 하위 디렉터리도 많은데, 어떤 파일에서 해당 키워드가 있는지도 모르는 경우에는 상당히 난감해진다. 일일이 파일을 열어봐야 하기 때문이다. 이럴 때는 여러 파일을 입력하거나, 옵션을 지정하면 간단하게 문제를 해결할 수 있다. 1. 여러 파일 입력 grep '' … 입력한 두 파일 중에서 import라는 문자열이 포함된 파일은 send_attachment.py라는 파일이라는 것을 알 수 있다. 이 방법도 파일 이름을 직접 지정해야 하기 때문에 다소 불편하다. 이런 경우에는 *(와일드카드)를 활용하면 좋다. grep '' ** # 예시 grep 'example' *..

Linux 2021.07.17

Chrome 실행 시, Unable to open X display 에러

2021.07.14 - [CentOS] Chrome 및 Selenium 설치 위 글에서 CentOS에 크롬 설치 후 Selenium을 이용해서 브라우저 제어도 해봤지만, 아무래도 CLI로 브라우저를 직접 실행하는 방법은 뭔지 궁금할 것이다. 크롬 브라우저는 아래 명령어로 간단하게 실행시킬 수 있다. google-chrome google-chrome & # 백그라운드로 실행 그런데 아래와 같은 Unable to open X display 에러가 발생하는 경우도 있을 것이다. 왜냐하면 내가 그랬다. 찾아봤는데 잘 모르겠지만 그래픽 인터페이스를 사용하는 필요한 X window, Display Server가 없거나 실행 중이 아니라서 발생하는 에러인 것 같다. X window, Display Server가 뭔지..

Linux 2021.07.15

[CentOS] Chrome 및 Selenium 설치

Selenium 웹 브라우저의 자동화를 가능하게 하는 도구와 라이브러리를 제공하는 프로젝트 Java, Python, C#, Ruby, JavaScript, Kotlin 등의 언어를 지원한다. 리눅스 OS에서 웹 크롤링 환경을 구성하기 위해 웹 브라우저인 크롬과 크롬 드라이버, 그리고 Selenium을 설치하려고 한다. 사용할 OS는 AWS Linux2(CentOS7)이고, Python3이 이미 설치되어 있으므로 Python으로 테스트까지 해보려고 한다. 설치 과정에서는 Sudo 권한이 필요하다. 1. 크롬 설치 공식 Google 저장소를 추가하는 대신 rpm 파일을 다운로드하여서 설치할 것이다. 어차피 설치 과정에서 저장소가 추가되기 때문이다. 아래와 같이 wget 명령으로 최신 크롬 패키지를 다운로드하..

Linux 2021.07.14

crontab - 매달 N번째 특정 요일에 실행시키기

crontab은 기본적으로 분, 시간, 일, 월, 요일 단위로 주기를 설정할 수 있다. 단순한 주기 설정은 기본 설정만으로도 충분히 가능하지만, 매 달 세 번째 일요일 실행 등과 같은 조건은 설정에 한계가 있다. 그렇다면 이런 주기 설정은 어떻게 해야 할까? 이 문제는 매주 특정 요일에 실행하도록 crontab에 설정하고, 실행 시점의 날짜를 체크하는 방식으로 해결할 수 있다. 방법 1. crontab 주기 설정 * * * * 7 테스트하기 쉽도록 일요일인 경우에는 매 시 매 분 실행하도록 설정했다. 2. 날짜 체크 * * * * 7 [ $(date +\%d) -gt 14 ] && [ $(date +\%d) -le 21 ] && /run/your/script.sh &&를 이용해 매 달 세 번째 주에만 스..

Linux 2021.06.24

다중 명령어 실행

Linux에선 기본적으로 한 줄에 하나의 명령어를 실행할 수 있다. 하지만 특수문자를 적절히 활용하면 여러 명령어를 한 줄로 이어서 사용할 수 있다. 다중 명령어를 실행할 수 있도록 하는 특수문자는 다음과 같다. 1. ; 명령어의 끝을 표시하는 문자 앞의 명령어의 실행이 실패해도 다음 명령어가 실행된다. 즉, 명령어가 순차적으로 실행된다. 두 번째로 실행한 명령어를 보면, docker 디렉터리로 이동하는 것을 실패했어도 docker/git 디렉터리로 이동한 것을 볼 수 있다. 2. | 여러 명령어를 실행할 때 이전 명령어의 결과를 다음 명령어의 입력값으로 지정한다. 텍스트 검색 명령어인 grep과 묶여서 자주 쓴다. 3. & 앞의 명령어는 백그라운드로 실행하고, 다음 명령어를 실행한다. 앞의 명령어의 실..

Linux 2021.06.23

명령어 경로 찾기

일반적으로 패키지를 설치하면, 설치한 프로그램을 실행할 수 있는 명령어를 제공한다. 당연하지만 하나의 명령어는 하나의 실행파일을 가리키고 있다. 따라서 패키지 하나의 여러 버전을 설치해서 사용할 때, 명령어가 바라보고 있지 않은 다른 버전을 실행하기 위해서는 실행파일을 직접 지정해서 명령을 실행해야 한다. 명령어의 위치를 찾는 명령어는 다음과 같다. 1. which 실행파일의 위치를 찾는 명령어 which alias가 있으면 alias를 먼저 보여준다. 명령어로 실행하는 것과 실행 파일을 지정하는 것은 동일한 결과를 보여준다. 2. whereis 바이너리, 소스, 매뉴얼 페이지 파일 같은 특정한 파일의 위치를 찾는 명령어 whereis # -b : 바이너리 파일만 검색 # -m : 매뉴얼 파일만 검색 #..

Linux 2021.06.22

No space left on device - inode 100% 사용 시

inode 파일 시스템에서 사용하는 자료구조로, 정규 파일 디렉터리 등 파일 시스템에 관련된 정보를 가진다. 각 파일은 하나의 아이노드를 가지며, 소유자 그룹, 권한, 파일 형태, 아이노드 숫자(inode number) 등 파일에 관한 정보를 가진다. 아이노드에 할당된 공간은 파일 시스템 전체 공간의 1% 정도이다. 아이노드에 할당된 공간이 한정되어 있기 때문에 파일 시스템이 저장할 수 있는 파일의 최대 개수도 한정되어 있다. 아이노드 사용량은 아래 명령어로 확인할 수 있다. df -i 보다시피 각 파일 시스템은 아주 많은 아이노드를, 즉 아주 많은 파일을 가질 수 있다. 하지만 로그 파일 등을 주기적으로 삭제하기 않고 계속 누적시키고 있거나 하는 등의 이유로 아이노드 사용량이 100%가 되는 경우가 있..

Linux 2021.06.15