본문 바로가기

Computer Science/Linux5

[Linux] Flex와 Bison 이 글은 flex & bison 책의 예제코드를 실행하는데 도움이 되기 위해 작성했습니다. Flex와 Bison의 문법에 대한 설명이 없으므로 예제코드를 이해하기 위해서 원문을 먼저 읽어보는 것을 권장드립니다. 이 글의 예제코드는 다음 출처에서 가져왔습니다. Chapter 1. Introducing Flex and Bison Flex Flex는 토큰을 저장해서 알맞는 enum 타입으로 변환하는 어휘 분석(Lexer)을 위한 도구입니다. Bison을 사용하면 헤더파일에 %token으로 등록한 토큰들이 enum으로 자동 생성됩니다. %{ #include "fb1-5.tab.h" %} %% "+" { return ADD; } "-" { return SUB; } "*" { return MUL; } "/" { r.. 2024. 2. 28.
[Linux] 쉘 변수와 환경변수 이 글은 shell에서 환경 변수를 참조하는 방법과 env에서 쉘 변수를 어떻게 지정하는지에 대해 다루고 있습니다. env 명령어 minishell 과제에서 built-in 명령어들은 모두 환경변수와 관련된 명령어 입니다. env 명령어는 옵션을 제외하고 다음과 같이 3가지 방식으로 사용할 수 있습니다. 1. 환경변수 목록 출력 # 입력 env # 출력 TERM_SESSION_ID=w0t0p0:4A2AC993-C7C8-4745-9387-F181921C1CC8 SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.bGePyIUzEC/Listeners LC_TERMINAL_VERSION=3.4.23 # ... 2. 하나 이상의 쉘 변수를 포함한 환경변수 목록을 출력 # 입력 env.. 2024. 2. 27.
[Linux] SSH가 무엇인가요? shell 쉘(shell)은 kernel을 제어하기 위한 인터페이스이다. kernel을 마치 껍데기처럼 감싸고 있다는 의미에서 shell이라는 이름이 붙었다. 커널(Kernel)은 쉘로부터 명령(cat, ls 등)을 받아 CPU, I/O, 메모리 등 다양한 리소스에 접근한다. 쉘은 bash, zsh 등 여러가지 종류가 있다. bash는 기존의 Bourne Shell을 대체하기 위해 만들어진 Unix용 쉘이다. 대부분의 리눅스 운영체제에서 기본으로 채택하고 있다. zsh은 bash, ksh, tcsh의 기능을 결합하여 만든 쉘로 bash보다 다양한 기능을 지원한다. 현재 macOS에서 기본으로 채택하고 있다. ssh ssh(Secure Shell)는 네트워크 상의 다른 컴퓨터에 원격으로 시스템에서 명령을 .. 2023. 11. 28.
[Linux] 접근 통제 방법 DAC와 MAC 접근통제(Access Control) 접근 통제란 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것이다. 시스템 자원은 객체(Object), 자원에 접근하는 사용자나 프로세스는 주체(Subject)라고 부른다. DAC(Discretionary Access Control) 임의 접근 통제(DAC)는 시스템 객체에 대한 접근을 사용자나 또는 그룹의 신분을 기준으로 제한하는 방법. 즉, 자원의 소유자가 자원에 대한 다른 사람들의 권한을 직접 제어하는 방법이다. 객체에 적용된 DAC 접근 통제는 퍼미션 정보를 통해 확인할 수 있다. 권한을 저장하는 방법에는 대표적으로 ACL(Access Control List), CL(Capability.. 2023. 11. 28.