LINUX
01. 리눅스
- 모든 인터렉션은 파일을 읽고, 쓰는 것처럼 이루어져있음
파일 네임스페이스는 전역 네임스페이스를 사용
- 리눅스 설치 방법
- 가상 머신 소프트웨어 - PC 환경에 따라서 복잡한 편.
- 클라우드 컴퓨팅 서비스 활용 - 동일한 환경에서 사용 가능, 주로 AWS
02. 리눅스 명령어
리눅스 명령어, 즉 쉘이 제공하는 명령어
명령어 | 설명 | 예시 | 주요 옵션 |
---|---|---|---|
whoami | 현재 로그인한 사용자 ID를 출력합니다. | whoami | |
sudo | root 권한으로 명령어를 실행합니다. | sudo apt-get update | -i : 로그인 셸로 실행 |
-u [user] : 지정한 사용자로 실행 | |||
-k : 자격 증명 캐시 무효화 | |||
pwd | 현재 작업 중인 디렉토리의 절대 경로를 출력합니다. | pwd | |
ls | 현재 디렉토리의 파일과 디렉토리 목록을 출력합니다. | ls | -l : 자세한 정보, -a : 숨김 파일 포함, -h : 사람이 읽기 쉬운 형식 |
cd | 작업 디렉토리를 변경합니다. | cd /home/user1 | |
mkdir | 새로운 디렉토리를 생성합니다. | mkdir new_directory | |
rm | 파일을 삭제합니다. | rm file.txt | -r : 디렉토리 재귀 삭제, -f : 강제 삭제 |
cp | 파일이나 디렉토리를 복사합니다. | cp source.txt destination.txt | -r : 디렉토리 재귀 복사 |
mv | 파일이나 디렉토리를 이동하거나 이름을 변경합니다. | mv oldname.txt newname.txt | |
touch | 파일의 타임스탬프를 갱신하거나 새로운 빈 파일을 생성합니다. | touch newfile.txt | |
chmod | 파일이나 디렉토리의 권한을 변경합니다. | chmod 755 script.sh | |
chown | 파일이나 디렉토리의 소유자와 그룹을 변경합니다. | chown user1:group1 file.txt | |
ps | 현재 실행 중인 프로세스 목록을 출력합니다. | ps | -e : 모든 프로세스, -f : 풀 포맷 출력 |
top | 실시간으로 시스템의 프로세스와 자원 사용 현황을 표시합니다. | top | |
df | 파일 시스템의 디스크 사용량을 표시합니다. | df | -h : 사람이 읽기 쉬운 형식으로 출력 |
03. 파일 권한
리눅스 계열 시스템에서 파일 권한은 사용자가 파일 및 디렉토리에 접근하고 조작할 수 있는 방법을 결정합니다. 파일 권한은 다음과 같이 구성됩니다:
사용자 유형
- 소유자 (Owner)
- 파일이나 디렉토리를 만든 사용자로, 해당 파일이나 디렉토리의 소유자입니다.
- 소유자는 자신의 파일에 대한 읽기, 쓰기, 실행 권한을 설정할 수 있습니다.
- 그룹 (Group)
- 파일이나 디렉토리에 할당된 사용자 그룹입니다.
- 그룹 내의 모든 사용자는 해당 그룹에 지정된 권한을 가집니다.
- 공개 (Others)
- 소유자와 그룹에 속하지 않는 모든 다른 사용자입니다.
- 공개 사용자에 대한 권한은 일반적으로 가장 제한적입니다.
퍼미션 종류
리눅스에서는 세 가지 기본 퍼미션 종류가 있습니다:
- 읽기 (Read,
r
)- 파일의 내용을 읽을 수 있는 권한입니다.
- 디렉토리의 경우, 디렉토리 내 파일 목록을 볼 수 있는 권한입니다.
- 쓰기 (Write,
w
)- 파일의 내용을 수정하거나 삭제할 수 있는 권한입니다.
- 디렉토리의 경우, 디렉토리 내 파일을 생성, 삭제, 이름 변경할 수 있는 권한입니다.
- 실행 (Execute,
x
)- 파일을 실행할 수 있는 권한입니다.
- 디렉토리의 경우, 디렉토리 내 파일이나 디렉토리에 접근할 수 있는 권한입니다.
퍼미션 표현 방식
리눅스 파일 시스템에서 퍼미션은 주로 두 가지 방식으로 표현됩니다:
- 기호적 표현 (Symbolic Representation)
- 파일 권한을 세 부분으로 나누어
r
,w
,x
문자로 표현합니다. - 예를 들어,
-rwxr-xr--
는 다음을 의미합니다:- 소유자: 읽기(r), 쓰기(w), 실행(x)
- 그룹: 읽기(r), 실행(x)
- 공개: 읽기(r)
- 파일 권한을 세 부분으로 나누어
- 8진수 표현 (Octal Representation)
- 각 권한을 8진수 숫자로 표현합니다.
- 읽기 = 4, 쓰기 = 2, 실행 = 1로 합산합니다.
- 예를 들어,
-rwxr-xr--
는755
로 표현됩니다:- 소유자: 7 (읽기+쓰기+실행 = 4+2+1)
- 그룹: 5 (읽기+실행 = 4+1)
- 공개: 4 (읽기)
04. 입출력과 리다이렉션
리눅스에서 명령어로 실행되는 프로세스는 기본적으로 세 가지 스트림을 가지고 있습니다:
- 표준 입력 스트림 (stdin)
- 기본적으로 키보드 입력을 받는 스트림입니다.
- 파일 디스크립터 번호: 0
- 표준 출력 스트림 (stdout)
- 기본적으로 화면(터미널)에 출력하는 스트림입니다.
- 파일 디스크립터 번호: 1
- 오류 출력 스트림 (stderr)
- 오류 메시지를 화면(터미널)에 출력하는 스트림입니다.
- 파일 디스크립터 번호: 2
리다이렉션 (Redirection)
리다이렉션은 표준 스트림의 흐름을 변경하는 기능을 말합니다. 이를 통해 입력과 출력을 파일이나 다른 명령어로 변경할 수 있습니다.
아래는 리다이렉션 명령어를 표로 정리한 것입니다:
리다이렉션 명령어 | 설명 | 예시 |
---|---|---|
> | 표준 출력을 파일로 리다이렉션 (덮어쓰기) | ls > filelist.txt |
>> | 표준 출력을 파일에 추가 리다이렉션 | echo "New line" >> filelist.txt |
< | 파일을 표준 입력으로 리다이렉션 | sort < unsorted.txt |
2> | 오류 출력을 파일로 리다이렉션 | ls non_existing_file 2> error.log |
&> | 표준 출력과 오류 출력을 동시에 파일로 리다이렉션 | command &> output.log |
\| (파이프) | 한 명령의 출력을 다른 명령의 입력으로 사용 | ls \| grep "txt" (ls 명령으로 해당 파일 중에 txt 파일이 있는지 출력) |
> output 2>&1 | 표준 출력과 오류 출력을 같은 파일로 리다이렉션 | command > output.log 2>&1 |
2>&1 > output | 표준 출력과 오류 출력을 각각 다른 파일로 리다이렉션 | command > output.log 2> error.log |
05. 프로세스
리눅스에서 프로세스는 실행 중인 프로그램을 의미하며, 프로세스는 여러 상태로 실행될 수 있습니다. 두 가지 주요 프로세스 유형은 다음과 같습니다:
Foreground Process
- 설명:
- 포그라운드 프로세스는 사용자가 터미널에서 명령을 입력하고 바로 실행되는 프로세스입니다.
- 사용자가 다른 입력을 할 수 없으며, 프로세스가 종료될 때까지 터미널을 점유합니다.
- 예시:
1
$ tar -czf archive.tar.gz /path/to/directory
이 명령어가 실행되는 동안 사용자는 다른 작업을 수행할 수 없습니다.
Background Process
- 설명:
- 백그라운드 프로세스는 사용자가 터미널에서 명령을 입력하고, ‘&’ 기호를 붙여 실행시키면 백그라운드에서 실행됩니다.
- 터미널을 점유하지 않으며, 사용자는 다른 명령을 입력하고 작업을 계속할 수 있습니다.
- 예시:
1 2
$ tar -czf archive.tar.gz /path/to/directory & [1] 1234
이 명령어는 백그라운드에서 실행되며, 사용자는 터미널을 계속 사용할 수 있습니다.
[1] 1234
는 작업 번호와 프로세스 ID를 나타냅니다.
프로세스 관리 명령어
명령어 | 설명 | 예시 |
---|---|---|
jobs | 현재 쉘 세션에서 백그라운드로 실행 중인 작업 목록을 보여줍니다. | jobs |
fg | 백그라운드 프로세스를 포그라운드로 가져옵니다. | fg %1 |
bg | 일시 중지된 백그라운드 프로세스를 재개합니다. | bg %1 |
kill | 프로세스를 종료합니다. 일반적으로 kill 명령어 뒤에 프로세스 ID(PID)를 사용합니다. | kill 1234 |
ps | 현재 실행 중인 프로세스 목록을 보여줍니다. | ps |
top | 실시간으로 시스템의 프로세스와 자원 사용 현황을 보여줍니다. | top |
06. 링크
기타
This post is licensed under CC BY 4.0 by the author.