Infra/Linux (10) 썸네일형 리스트형 [Linux] CRLF vs LF 리눅스에서 쉡 스크립트를 실행하려고 하다보면 아래와 같은 에러가 발생하는 경우가 있다. $'\r': command not found 스크립트를 열어보면 다른 특수문자나 오타는 없는데 이러한 에러가 나는 것이 이상했다. 검색해보니 윈도우와 리눅스에서 사용하는 개행문자와 관련된 형식의 차이로 발생하는 문제였다. 이와 관련해서 이 글에서 정리해본다.1. CR + LFCRLF 는 Carriage Return (CR) 과 Line Feed (LF) 두가지 단어를 합친 용어이다. 이 용어들은 예전 타자기에서 유래한 단어로 타자기에서 한 줄을 다 친 후 종이를 한 줄 간격만큼 올려주는 행위 (LF, Line Feed) 와 커서를 맨 앞으로 돌리는 행위 (Carriage Return) 에서 기반한 용어이다. 프로그래밍.. [Linux] systemd, service, systemctl 리눅스 서버에서 시스템 서비스를 실행하기 위해 systemctl 또는 service 명령어를 사용한다. 이 글에서는 해당 명령어들이 어떤 의미를 가지고 어떻게 동작하는지, 시스템 서비스는 어떤 것들인지에 대해서 정리한다.1. systemdservice와 systemctl을 이해하기 위해서는 먼저 systemd에 대한 이해가 필요하다. systemd는 리눅스에서 PID 1번을 차지하고 있는 프로세스로 리눅스에서 실행되는 서비스, 데몬들을 관리하는 역할을 한다. 데몬이란, 사용자가 직접적으로 제어하지 않고 백그라운드에서 여러 작업을 수행하는 프로그램을 말한다. 리눅스가 부팅되면 네트워크 요청을 처리하는 데몬, 하드웨어 동작을 처리하는 데몬 등 시스템에 필요한 여러 데몬들이 실행된다. 리눅스에서는 이러한 데몬.. [Linux] 디스크 마운트 (fdisk, mkfs, mount, df) 서버의 디스크 용량을 확인하고 추가 디스크를 마운트 작업을 정리한다. 1. 디스크 상태 확인 서버의 현재 디스크 정보를 fdisk 명령어를 사용하여 확인한다. fdisk 명령어는 서버의 디스크 파티션 정보를 출력하거나 디스크 파티션을 조작하는데 사용하는 명령어이다. 아래와 같이 fdisk 의 l 옵션을 사용하여 디스크 파티션 목록을 확인할 수 있다. 디스크 파티션 조회 결과로 /dev/xvda 에 연결되어 있는 디스크와 /dev/xvdb 에 연결되어 있는 디스크 두가지를 확인할 수 있다. 이중에서 /dev/xvda 디스크는 /dev/xvda1 으로 파티션이 나누어 있지만 /dev/xvdb 디스크는 파티션이 설정되어 있지 않은 것을 확인할 수 있다. df 명령어로 디스크의 용량을 확인하면, 위의 이미지에서.. [Linux] 사용자 권한 (sudo, sudoers, chmod, chown) linux 서버를 사용하기 위해서 사용자 계정을 만들어서 사용하다보면 권한 문제에 부딪히게 된다. 서로 다른 사용자가 만든 파일에 접근하거나 시스템 설정 등을 위해서 root 권한이 필요하곤 하다. 이와 관련해서 sudo 권한과 파일의 권한을 조작하는 chmod, chown 등을 정리해본다. 1. sudo sudo 는 Super User DO 의 줄임말로 명령어의 앞에 붙여서 사용하는 명령어이다. 일반적으로 root 권한이 없는 사용자가 sudo 를 사용하여 superuser, root 권한으로 명령어를 실행할 수 있도록 해준다. 이를 통해서 시스템의 관리자 권한을 root 계정뿐만 아니라 여러명이 사용할 수 있도록 한다. - sudoers sudo 명령어가 어떤 명령을 실행할 수 있는지는 /etc/su.. [Linux] 사용자 계정 생성 (adduser, useradd) 서버를 운영하면서 root 계정이 아닌 각각의 사용자별로 계정을 생성해야했다. 이에 더해서 때로는 특정 계정이 sudo 를 사용할 수 있도록 sudo 권한을 부여해야 하는 경우도 발생하였다. 이와 관련해서 ubuntu 에서 계정을 생성하는 방법과 권한 부여와 관련된 내용을 정리하려고 한다. 이 글은 Ubuntu 20.04.3 LTS 버전을 기반으로 작성하였다. 1. ubuntu 계정 생성 ubuntu 에서 계정을 생성하는 명령어는 두가지가 존재한다. adduser 와 useradd 이다. 두 명령어는 모두 사용자 계정을 생성하는 명령어지만 계정 생성시에 계정 정보 입력, 홈 디렉토리 생성, 쉘 설정 등을 함께할 것인지, 계정만 생성할 것인지에 차이가 있다. adduser 의 경우에는 계정 생성시에 계정 .. [Linux] 리눅스 locale 설정 리눅스 기반의 OS 에서 개발을 진행하다 보면 한글의 인코딩 문제로 에러가 나는 경우가 있다. 파이썬으로 개발을 하던 도중 한글명의 파일을 다룰 때 ascii encoding 과 관련된 에러가 발생했다. 파이썬의 encoding 설정을 확인하기 위해서 sys 모듈의 메서드를 확인했는데, getdefaultencoding() 을 호출하는 경우 utf8 로 설정되어 있지만 getfilesystemencoding() 을 호출하는 경우 ascii 로 되어있는 것을 확인하였다. 이로 인해서 filesystem 의 encoding 설정을 바꾸는 방법을 찾아보았다. 1. locale locale 은 리눅스 명령어이자 사전적으로 장소, 지역 등을 의미한다. 지역에 따라서 해당 코드의 세트, 날짜 및 시간 형식 지정 규.. [Linux] df Linux 에서 현재 디스크의 용량을 확인할 때가 있다. 이때는 디스크의 남은 용량을 화면에 출력하는 명령어 df 를 사용하면 된다. 1. df df 는 'display free disk space' 라는 의미로 파일 시스템의 전체 용량, 사용중인 용량, 사용률, 마운트 위치 등의 정보를 출력한다. 매개변수로 filesystem 또는 file 등을 넘겨주어 특정 파일시스템의 정보만 출력되도록 할 수 있다. filesystem 은 파일 시스템이 위치하는 장치 이름, 파일 시스템이 마운트 된 디렉토리 또는 파일 시스템의 상대 경로 이름으로 지정할 수 있다. 만약 filesystem 이 지정되지 않은 경우 현재 마운트 된 모든 파일 시스템에 대한 정보를 표시한다. 파일이나 디렉토리가 지정되는 경우 해당 파일이.. [Linux] PID, PPID 1. PID, PPID - PID PID 는 Process ID 의 줄임말로 운영체제에서 프로세스를 식별하기 위해 부여하는 번호를 의미한다. 프로세스는 실행 중인 프로그램을 의미한다. 메모리에 적재되어 있으며, 프로세스의 상태 정보, PCB 를 포함한 개념이다. PID 의 최대값은 32768 이다. 32768 인 이유는 16bit signed integer 를 사용하기 때문이다. PID 의 ID 할당 방식은 최근 할당된 PID 에 1을 더한 값으로 할당한다. 순서대로 1씩 할당되다가 32768 을 넘어가면 다시 1부터 시작한다. - PPID PPID 는 Parent Process ID 의 줄임말로 부모 프로세스의 PID 를 의미한다. 부모 프로세스는 현재 실행 중인 프로세스 (자식 프로세스) 를 시스템 .. 이전 1 2 다음