리눅스 공부

정우석·2025년 3월 15일

2025.03.15

명령어

ping -c 3 8.8.8.8
	= ping : 명령어
 	= -c 3 : 옵션
 	= 8.8.8.8 : argument (전달인자)

pwd : 현재 경로 확인
ls -l -> -l 옵션 : 파일 정보 확인
	= \- : 파일
	= d : 디렉토리
    
옵션의 경우 합쳐쓰기 가능 -> -l -a = -la = -al

용어

~ : 홈 디렉토리
파일 이름 앞에 .이 붙으면 숨김 파일

폴더

/bin : 리눅스에서 사용하는 바이너리 파일
/dev : device의 약자, 리눅스 연결되는 하드웨어 장치 파일
/etc : 리눅스의 설정 파일
/home : 각 계정의 홈 디렉토리
/lib : library의 약자, 공유 라이브러리 파일들이 존재하는 디렉토리
/root : root 계정의 홈 디렉토리
/sbin : system binary의 약자, 시스템 관리를 위한 명령어(바이너리)
/tmp : temp의 약자, 임시 디렉토리 -> 누구나 이 디렉토리를 쓸 수 있다. 껏다 키면 안에 있는 파일들이 다 사라짐
/var : 리눅스에서 사용하는 프로그램들이 사용하는 파일들을 보관

2025.03.16

용어

절대 경로: 최상위 디렉토리부터 쭉 다 표현하면 절대 경로
상대 경로: 현재 내가 위치한 곳부터 표현하면 상대 경로

2025.03.18

명령어

. : 지금 내가 있는 이 곳!
.. : 지금 내가 있는 곳에서 한 단계 위의 경로!
cd /root/Desktop -> 절대 경로로 표현 = cd ./Desktop -> 상대 경로로 표현
/root/Desktop/.. = /root
cat 경로 : 파일 읽기
file 경로 : 파일 형태 확인
more 경로 : 긴 파일을 읽을 때 사용. 스페이스바로 페이지 넘김
cp [src] [dst] : src = 복사할 파일, dst(destination) = 복사할 위치, 목적지에 원하는 파일 이름으로 저장도 가능
cp -r [dir] [dst] : dir = 복사할 디렉토리, 디렉토리를 복사할 땐 -r 
mkdir : 경로 생성
rm 파일 : 파일 remove(제거)
rm -r 디렉토리 : 디렉토리 제거
rm -rf : 강제 삭제
mv [src] [dst] : 이동하기(잘라내기), cp와 방식 동일, 목적지에 원하는 파일 이름으로 저장도 가능 -> 같은 위치에 이름을 바꿔서 저장하면 이름바꾸기도 가능.

vi

- 2가지 모드
	1. 입력 모드 : i로 진입
	2. 명령 모드 : esc로 진입

- 명령어
:w - 저장
:q - 나가기
/단어 - 단어 찾기
:숫자 - 숫자 줄로 이동
지우고 싶은 줄로 이동 dd - 그 줄 전체 삭제
숫자 dd - 숫자개 줄 삭제

용어

UID : User ID
GID : Group ID
root : 최고 관리자 권한 / UID=0, GID=0
root:x:0:0:root:/root:/usr/bin/zsh
-> 계정 이름(ID):비밀번호:UID:GID:사용자의 별명:홈 디렉토리:로그인 쉘, /usr/bin/nologin = 로그인이 안되는 계정(시스템 계정 or 프로그램이 사용하는 계정)

명령어

su : switch user

2025.03.19

용어

rwx :
	r : read, 읽기 권한
    -> 파일 : 그 파일을 읽을 수 있는지!
    -> 디렉토리 : 그 디렉토리 안에 어떤 파일이 있는지!
    
    w : write, 쓰기 권한
    -> 파일 : 그 파일의 내용을 수정할 수 있는지!
    -> 디렉토리 : 그 디렉토리 안에 파일, 디렉토리를 생성할 수 있는지!
    
    x : execute, 실행 권한
    -> 파일 : 그 파일을 실행할 수 있는지
    -> 디렉토리 : 디렉토리에 접근할 수 있는지 (cd)
    
-rw-r--r--1 root root -> - rw- r-- r-- :
	- : 파일 / d : 디렉토리
    (1) rw- : 소유자 권한
    (2) r-- : 그룹 권한
    (3) r-- : 기타 사용자 권한 = 소유자도 아니고, 그룹 멤버도 아닌 사람

특수 권한
	(1) setuid
    -> 그 파일을 실행할 때, 그 파일의 소유주의 권한으로 실행한다!
    -> rws : 실행 권한 있음 / rwS : 실행 권한 없음
    
    -rwsr-xr-x 1 root 72424 Mar 3 14:41 /passwd
    -> 비밀번호를 변경하는 명령어, 일반 사용자라도 자신의 비밀번호를 바꿀 수 있어야 한다. 따라서 비밀번호 바꿀 때 만큼은 root 권한으로 실행할 수 있게 한다.
    
    (2) setgid
    -> 그 파일을 실행할 때, 그 파일의 그룹의 권한으로 실행한다!
    -> rws : 실행 권한 있음 / rwS : 실행 권한 없음
    
    (3) sticky bit
    -> 디렉토리에 설정되는 권한!
    -> rwt : 실행 권한 있음 / rwT : 실행 권한 없음
    -> 그 디렉토리는 누구나 마음껏 파일을 생성할 수 있게 된다!
    -> 예시 : /tmp
    drwxrwxrwt 18 root root 4096 Apr 25 21:49 tmp

명령어

vi 명령어
	:q! - 강제 종료
    
chmod [] [파일]
	u				r
	g		+,-		w
	o				x
    
    권한을 숫자로 표현할 수 있다!
    r -> 4 / w -> 2 / x -> 1
    
    rwxr--r-- = 744

2025.03.20

용어

# 데이터 스트림 (Data Stream)

	           [입력]
	   /-------------------->
	사람 <---> 운영 체제 <---> 컴퓨터
       <--------------------/
			   [출력]
               
- 표준 입력 : standard input stream, fd = 0
- 표준 출력 : standard output stream, fd = 1
- 표준 에러 : standard error stream, fd = 2

*** 파일 디스크립터 (fd) : 파일을 처리하기 위한 id

# Redirection
[명령어] [fd]> [파일 이름] : 명령어의 결과를 파일로 저장 (기존 내용 싹다 지우고 새로 저장)
[명령어] [fd]>> [파일 이름] : 명령어의 결과를 파일로 저장 (기존 내용에 이어서 저장)

*** /dev/null : 쓰레기통 경로

# PIPE
어떤 프로세스의 출력을 다른 프로세스의 입력으로 넣어주고 싶을 때!
[명령어의 출력을] | [명령어의 입력 값으로]
ex) ifconfig | grep inet = grep inet ifconfig

*** grep [파일 패턴] [수색할 파일/디렉토리]

0개의 댓글