본문 바로가기
Study/Udemy

[Linux] Linux Command Line 부트캠프: 리눅스 초보자부터 고수까지(9/5~)

by ganyga 2024. 9. 5.

Linux Kernel

- 하드웨어와 소프트웨어 간의 상호 작용을 가능하게 해주는 것

- Kernel은 운영체제가 아님, 운영체제의 핵심 요소

https://digilent.com/blog/demystifiying-the-linux-kernel/

 

Shell

- 운영체제의 인터페이스가 되는 소프트웨어를 말함

- 사람이 읽을 수 있는 것을 운영체제에게 번역해주는 것

- 중간자 역할을 하는 것으로, 터미널에 무언가를 입력하면 그것이 shell로 전달되고 그 명령어들을 운영체제로 전달하는 것 

 

섹션 4 : 도움말 확인하기

  • man -k 옵션을 사용하면 숨겨진 관리자 명령어(다른 세션)까지 확인할 수 있음
  • type command : 명령어가 어디에 내장되어 있는지 알 수 있음
  • help : man 페이지에서 찾을 수 없을 때 help를 이용하면 됨

섹션 5: 파일 시스템 탐색

가상 머신에서는 파일 크기를 최소화 하기 위해 크기가 비슷함

  • / : 최상위 디렉터리 (root 디렉터리와는 다른 것), 컴퓨터 내 모든 것이 들어있는 곳, 이 시스템의 모든 폴더가 그 아래에 있음
  • /home(~) : 사용자 관련 정보가 들어있음, 모든 사용자는 각자의 이름으로 된 서브 디렉터리가 있음(/home/gany)
    기본적으로 파일이나 사용자 데이터 등 특정 유저에 대한 모든 것이 있음
  • ls -h : 파일 크기를 사람이 읽기 쉬운 단위로 출력함
  • ls -a : 숨긴 파일까지 포함해서 보여줌
  • ls -l --sort=size : 파일 크기 별로 정렬함
  • ls -R : 재귀적으로 하위 파일까지 포함해서 출력

모든 폴더에는 .과 ..이 있음

  • . : 현재 디렉토리
  • .. : 상위 디렉토리

상대 경로 : 현재 디렉토리를 기준으로 한 경로

절대 경로 :

- 현재 위치에 상관없이 컴퓨터에 있는 모든 위치를 참조하고 실행할 수 있음

- 루트(/)로 시작하는 절대 경로를 사용하기만 하면 어디든 갈 수 있음

- 최상위의 루트 디렉토리인 /부터 시작해서 특정 폴더나 파일에 이르기까지 중간에 있는 모든 하위 디렉토리를 포함한 경로

 

  • bin 파일(binaries) : 실행할 수 있는 프로그램 파일을 포함하고 있는 곳, 최상위에 있는 폴더, 누가 로그인 하든지 해당 프로그램에 접근할 수 있어야 하기 때문
  • var 디렉토리(variable) : 로깅과 관련된 일을 처리하는 수많은 파일이 있음, 생성된 로그 파일에 로그 정보를 기록하는 것, 캐시(caches)파일 등
  • root 디렉토리 : root라는 사용자의 home 폴더임, 권한이 있어야 함, 모든 리눅스 기기에는 root라는 이름의 특별한 사용자 계정이 있음
  • usr 디렉토리 : 실행 파일과 각종 라이브러리, 다양한 프로그램이 있음, 소프트웨어를 설치하거나 새로운 명령어를 설치하면 설치 파일은 이 폴더 어딘가로 오게됨

섹션 6: 파일 및 폴더 생성

  • touch로 파일을 생성할 수 있는데 경로를 따로 지정해줄 수도 있음, 기존 파일의 접근 및 수정 시간을 업데이트 할 수 있음, 여러 개의 파일을 새로 생성할 때 주로 사용함
  • file : 파일의 확장자를 알려줌
  • 파일의 이름을 설정할 때 공백은 최대한 사용하지 말기, ""로 묶거나 단어 사이에 \를 둬서 하는 방법은 있지만 매우 번거로움
  • mkdir -p : 상위 폴더가 없을 때 중첩된 디렉토리를 생성 할 때 사용 ex) mkdir -p /desktop/ganyga/test

섹션 7: Nano 텍스트 편집기

  • Ctrl + o : 파일 이름을 물어보고 저장
  • Ctrl + s : 그냥 저장 
  • Ctrl + x : 종료

섹션 16 : 권한 기초

  • whoami : 어떤 사용자로 로그인 했는지
  • /etc/sudoers : sudo 권한이 있는 곳

파일 속성

  • 파일의 소유자의 읽기, 쓰기, 실행 권한, 그룹 소유자의 권한과 다른 사용자의 권한
  • 파일 유형
    • - : 일반 파일
    • d : 디렉토리
    • c : 문자 디바이스, 특수 파일에 해당하는 파일
    • l : 심볼릭 링크
    • b : 블록 디바이스, 블록 특수 파일, 하드 드라이브 파티션과 관련됨

파일 권한

  • 소유자
  • 그룹
    모든 파일에는 그룹 소유자가 있으며, 그룹에는 여러 사용자가 있을 수 있음
  • 그외
    파일 소유자도 아니고, 그룹 소유자에 속한 멤버도 아닌 제 3자에 해당하는 사용자들

읽기 권한 r(Read)

  • 파일의 내용을 읽을 수 있는 권한
  • 디렉토리라면, 디렉토리 안에 있는 파일을 확인할 수 있는 권한

쓰기 권한 w(Write)

  • 파일의 내용을 쓸 수 있는 권한
  • 디렉토리는 이름 변경과 파일에 대한 삭제 여부 권한

실행 권한 x(Execute)

  • 파일이 실행 가능한 파일이고, 프로그램으로 실행 가능하다는 뜻
  • x 권한이 있을 경우 사용자는 cd명령을 통해 디렉토리에 접근할 수 있다는 의미

섹션 17 : 퍼미션 변경하기

chmod 8진법 표기

  • r(read) : 4
  • w(write) : 2
  • e(excute) : 1

 

su

  • 대체 사용자
  • su 기본값은 현재 디렉토리를 변경하지 않음
  • 항상 --login인 옵션을 사용하는 것을 권장함
  • --login = - 
  • 환경이 섞일 수 있기 때문

su와 su - 차이점

colt@myUbuntu:~/Permissions$ whoami
colt

colt@myUbuntu:~/Permissions$ ls
happy.txt

colt@myUbuntu:~/Permissions$ pwd
/home/colt/Permissions

## -을 사용하지 않고 su만 입력 했을 때
colt@myUbuntu:~/Permissions$ su kitty
Password:

## 사용자는 kitty로 변했지만, 작업 중이던 현재 디렉토리 경로가 그대로 유지됨
kitty@myUbuntu:/home/colt/Permissions$ whoami
kitty

kitty@myUbuntu:/home/colt/Permissions$ pwd
/home/colt/Permissions
## --login 옵션 사용
colt@myUbuntu:~/Permissions$ su --login kitty
Password:

## /home/kitty로 이동됨
kitty@myUbuntu:~$ pwd
/home/kitty

kitty@myUbuntu:~$ exit
logout

## -도 마찬가지
colt@myUbuntu:~/Permissions$ su - kitty
Password:

kitty@myUbuntu:~$

 

sudo

  • 루트 사용자인 것처럼 커맨드를 실행할 수 있는 권한이 있는 특정 사용자를 허용함
  • 사용자로 로그인하지 않고 자신의 비밀번호를 사용함
  • 15분 동안은 패스워드를 요구하지 않음

 

chown을 활용하여 소유권 변경하기

chown USER[:GROUP] FILE(s)

  • 파일이나 디렉토리의 소유자 또는 그룹 소유자를 변경할 수 있는 방법
  • 파일 또는 소유자를 변경하려는 파일을 지정함
  • 가운데 USER는 사용자를 소유자로 변경하거나 그룹 소유자로 설정하려는 그룹을 의미함
  • 파일의 소유자는 단 한 명뿐임
  • 소유자를 바꾸려면 루트나 sudo 권한이 있어야 함
  • 새로운 그룹 소유자를 설정하려면 :(콜론)을 사용한 다음 그룹 이름을 사용해야 함
  • 파일의 소유자일 경우 그룹을 변경할 때는 sudo 권한이 필요하지 않음
  • 소유자와 그룹을 동시에 바꾸기 위해서는
    chown gany:group file.txt 이런식으로 적으면 됨

 

group

  • groups : 현재 속한 그룹의 이름을 알려줌
    • groups [USER] : USER가 어디 그룹에 속한지 알려줌
    • addgroup [GROUPNAME] : 그룹 생성, 루트 사용자나 sudo 권한이 있어야 함
    • adduser [USER GROUP] : 사용자 생성, 이미 존재하는 다른 그룹과 섞이지 않게 조심해야 함
  • 공유폴더를 만들어서 사용할 수도 있음
  • root 사용자인 것을 그룹을 변경하기 root root -> root group 으로
sudo mkdir /shared
cd /shared
sudo chown :group /shared
  • 참고) 그룹 할당을 변경할 때 해당 할당을 적용하려면 로그아웃 해야함!

섹션 18 : 환경

 

'Study > Udemy' 카테고리의 다른 글

[Linux] Learn Linux in 5 Days and Level Up Your Career(9/6, 9/9)  (2) 2024.09.06
[AWS] AWS SA 교육 1 (9/3~9/6)  (1) 2024.09.05