Linux 130

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

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

activate 없이 virtualenv 환경 이용하기

기본적으로 virtualenv 내 python을 사용해 python 코드를 실행시키기 위해서는 아래의 명령어로 virtualenv를 activate 해야 한다. source /bin/activate 그렇다면 virtualenv 환경은 activate를 해야만 사용할 수 있을까? 결론만 말하자면, virtualenv 내 python의 실행 경로를 직접 지정하면 activate 하지 않아도 virtualenv로 구성한 python과 모듈을 동작시킬 수 있다. 예시 예시로 패키지 충돌을 피하기 위해서 test_env라는 이름의 virtualenv 환경에 python-gitlab이라는 모듈을 설치했다고 가정해보자. 그리고 각 환경에서 python-gitlab 모듈을 import 해보았다. python-gitla..

Python 2021.06.26

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

일반 사용자에 docker 실행 권한 부여

docker 실행에는 root 권한이 필요하다. 보통 일반 사용자가 root 권한이 필요한 명령어를 실행할 수 있도록 하려면 sudo 권한을 부여하는데, 여러 사용자에게 서버 관리 권한을 부여하는 건 위험하기 때문에 권장하지 않는다. 다행히 docker는 사용자가 docker 그룹 멤버인 경우, root 권한 없이도 docker 실행 권한을 가질 수 있다. usermod 명령을 이용하거나 그룹의 멤버 정보를 수정하여 일반 사용자가 docker를 실행할 수 있도록 해본다. 방법 usermod; user modification 사용자 정보 수정 명령어 usermod -aG docker # -a : --append; 사용자를 서브 그룹에 추가한다. -G 옵션과 함께 사용한다. # -G : --groups; 사..

Docker 2021.06.16

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

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

Linux 2021.06.15