CS 18

source ~/.bashrc 설명

source어떠한 스크립트 파일을 실행시키기 위해 터미널에 명령어를 입력하면 해당 스크립트 파일은 기본적으로 새로운 서브 프로세스에서 실행되기 때문에, 스크립트 내부에서 설정된 변수나 환경은 부모 프로세스 즉, 현재 셸에 영향을 주지 않습니다.서브 프로세스는 부모 프로세스와 독립적으로 동작하며, 그 내부에서 일어나는 변화는 부모 프로세스에 전파되지 않습니다. 이 독립성은 프로세스 간 격리를 유지하는 운영체제의 중요한 원칙 중 하나입니다. source 명령어는 새로운 서브 프로세스를 생성하지 않고 현재 셸에서 직접 스크립트의 명령을 실행하는 명령입니다. 이를 통해 스크립트 내부에서 설정된 변수나 환경 설정이 현재 셸에 그대로 남아 있게 되며 바로 적용됩니다.. 또한 source 와 동일한 기능을 수행합니다..

CS/Linux 2024.09.26

커널 (Kernel)

커널 (Kernel)커널은 운영체제의 핵심 구성 요소로, 메모리에 상주하며 시스템 자원 관리 및 하드웨어와 소프트웨어 간의 중재를 담당합니다.운영체제 (Operating System, OS) : 커널을 포함하여 사용자 인터페이스, 시스템 유틸리티 등을 포괄하는 개념으로, 컴퓨터 자원을 관리하고 사용자와 하드웨어 간의 인터페이스를 제공합니다.커널 시작부팅 과정에서, 컴퓨터가 처음 켜지면 하드웨어는 부트로더 (bootloader) 를 메모리에 로드합니다. 부트로더는 하드웨어의 초기화 작업을 수행한 후, 운영체제의 커널을 디스크에서 메모리로 로드합니다.커널은 메모리에 로드된 후 초기화 과정을 거치며 시스템의 하드웨어 자원들을 설정합니다. 이 과정에서 드라이버를 로드하고, 시스템 호출 인터페이스를 설정하며, 프..

CS/OS 2024.09.24

#!/bin/bash vs #!/usr/bin/env bash

#!#! 은 # (sharp, hash) 과 ! (bang) 이 합쳐진 문자열로 셔뱅 (shebang) , 혹은 해쉬뱅 (hashbang) 이라고 읽습니다. 유닉스 및 유닉스 계열 운영체제에서는 셔뱅이 스크립트 파일의 맨 처음에 위치할 경우 해당 줄을 셔뱅 라인 (shebang line) 으로 인식합니다. 셔뱅 라인은 커널에게 해당 스크립트 파일을 실행할 때 어떤 인터프리터 (ex. /bin/bash, /usr/bin/python3) 를 사용해야 하는지 알려주는 역할을 합니다. 셔뱅 뒤에 인터프리터의 실행 경로를 표기합니다.#!/bin/bash셔뱅 라인 동작 원리사용자는 터미널에 ./sample.sh 와 같이 명령을 입력합니다.셸은 명령 (./sample.sh) 을 해석하여 커널에 작업 처리를 요청합니다..

CS/Linux 2024.09.22

useradd, userdel, usermod 등 명령어 설명

useradduseradd -m -s /bin/bash username용도: 사용자 계정 추가명령어 설명:-m: 홈 디렉터리 생성-s: 셸 지정username: 사용자 이름passwdpasswd username용도: 사용자 계정 비밀번호 설정명령어 설명:username: 사용자 이름passwd 뒤에 사용자 이름을 추가하지 않을 경우 현재 사용자의 비밀번호를 변경합니다.usermodusermod -aG sudo username용도: 사용자 계정 속성 변경명령어 설명:-aG: 기존의 보조 그룹을 유지한 채로 새로운 보조 그룹에 추가-a: 사용자를 기존 보조 그룹에 더하여 새로운 보조 그룹에 추가단독으로 사용할 수 없으며 반드시 -G 옵션과 함께 사용해야 합니다.-G: 사용자가 속할 보조 그룹의 목록 지정해당..

CS/Linux 2024.09.21

Linux 사용자 계정, sudo, su, su - 설명

Linux 사용자 계정Linux 에서의 계정은 시스템에서 각 사용자를 식별하고 그들에게 특정 권한과 리소스를 할당하는 기본적인 방법입니다.루트 계정시스템의 모든 권한을 가진 최고 관리자 계정입니다. 모든 파일과 디렉터리에 접근할 수 있으며, 시스템 설정을 변경할 수 있습니다. 홈 디렉터리는 /root 입니다.일반 사용자 계정제한된 권한을 가진 계정입니다. 일반적으로 홈 디렉터리 내의 파일과 디렉터리에만 쓰기 권한이 있으며, 시스템 설정을 변경하려면 루트 권한이 필요합니다. 홈 디렉터리는 username 이라는 사용자를 예로 들면 /home/username 입니다.각 사용자 계정에는 고유한 홈 디렉터리가 할당됩니다. 이 디렉터리는 사용자가 생성한 파일, 개인 설정 파일 (예: .bashrc) , 다운로드한..

CS/Linux 2024.09.21

CLI 환경의 이해

CLI (Command-Line Interface)CLI 는 Command-Line Interface 의 줄임말로 사용자와 컴퓨터 시스템 간의 상호작용을 텍스트 명령을 통해 수행하는 방식을 말합니다. 명령어를 입력하면 명령어의 결과를 텍스트로 표시합니다.셸 (Shell)셸은 사용자가 입력한 명령어를 해석하고 실행하는 프로그램으로 CLI 의 인터프리터 역할을 합니다. 명령어를 파싱하고, 필요한 작업을 수행하며, 결과를 터미널에 전달합니다.일반적인 셸 (ex. bash, sh, zsh) 과 Python 셸은 약간의 차이점이 존재합니다. 일반적인 셸은 운영 체제 명령어를 해석하고 실행하는 인터프리터인 반면 Python 셸은 Python 코드를 해석하고 실행하는 인터프리터입니다.엄밀히 말하면 셸은 해당 인터프리..

CS/OS 2024.09.16

APT 설명

apt update/etc/apt/sources.list 파일과 /etc/apt/sources.list.d/ 디렉터리 안에 있는 파일들에는 저장소 URL 이 적혀 있습니다. 각 저장소에서 제공하는 패키지 목록 파일들을 다운로드하여 /var/lib/apt/lists/ 디렉터리에 저장합니다./var/lib/apt/lists/: 패키지 목록 캐시 파일들이 위치하는 디렉터리입니다. 이 디렉터리에는 각 저장소의 패키지 목록 정보가 담긴 파일들이 저장되어 있습니다./var/lib/apt/lists/partial/: apt update 명령이 실행되는 동안 임시로 패키지 목록을 다운로드하는 데 사용되는 디렉터리입니다. 업데이트가 완료되면, 이 디렉터리의 내용은 /var/lib/apt/lists/ 로 이동합니다. 캐시..

CS/Linux 2024.09.09