본문 바로가기
부트캠프 개발일기/Linux

3일차: Linux(CLI 사용법)

by shyun00 2023. 2. 15.

CLI(Command-Line Interface): 명령어를 사용해 컴퓨터를 제어하는 방식

GUI(Graphic User Interface): 그래픽을 통해 컴퓨터를 제어하는 방식

❯ CLI 기본 명령어

  • 프롬프트(Prompt) 리눅스 상에서 키보드의 입력을 확인하고 편집할 수 있는 한줄의 공간을 의미함
  • pwd(print working directory): 현재 위치를 확인함
  • mkdir(make directories): 새로운 폴더를 생성함
  • ls(list): 특정 폴더의 파일이나 폴더를 표시함 / 옵션으로 -l(포맷 표시), -a(all, 숨겨진 것을 모두 표시함) 가 존재함
  • cd(change directory): 폴더에 진입하기
  • touch: 파일 생성하기 ex. touch hello.txt
  • > : 실행 결과를 파일로 저장하기 ex. ls > ls.txt : ls 의 결과를 ls.txt 에 저장함
  • cat: 파일의 내용을 터미널에 출력함 ex. cat ls.txt
  • rm(remove): 폴더나 파일 삭제하기 / 휴지통을 거치지 않고 바로 삭제됨. 폴더를 삭제할 경우 옵션 -rf를 사용함
  • mv(move): 폴더나 파일의 이름을 바꾸거나 위치를 옮길때 사용
  • cp(copy): 폴더나 파일을 복사하기 / 폴더를 복사할 경우 -rf 옵션 사용 (r: recursive, f:force)

❯ 관리자의 권한과 경로

관리자(프로그램 설치, 변경, 삭제 가능) vs 사용자(프로그램 실행 가능하나 변경 불가)

절대 경로의 기준점인 루트폴더(/)는 리눅스 관리자의 영역으로, 사용자는 username 폴더 내에서만 자유롭게 작업 가능

  • 절대경로: 기준점으로부터의 절대적인 위치
  • 상대경로: 특정 폴더 또는 파일의 위치를 기준으로 하는 위치. 현재 폴더는(.) 상위폴더는 (..) 폴더 내부는(/)
  • sudo(Super User Do): 관리자 권한을 획득하는 명령어
  • 테스트 에디터 nano (CLI 환경 에디터로 vim, emacs 등이 있으나 nano가 비교적 사용법이 간단함)

❯ 패키지와 패키지 매니저

패키지: 여러 파일을 모아 하나의 파일로 저장하고 있는 압축파일

패키지 매니저: 패키지의 설치, 변경, 삭제를 편리하게 해주는 도구

 

mac에서는 homebrew를 사용함

 

패키지 예시: wget(URL을 통해 파일을 다운로드하는 기능), neofetch(시스템 정보를 띄워주는 기능)

 사용권한

  • 각 파일, 폴더별로 권한이 지정되어있음. 리눅스에서 ls -l로 조회하면 속성 확인 가능
  • r(read permission), w(write permission), x(executive permission)으로 읽기, 쓰기, 실행 권한을 나타냄
  • (---)(---)(---) 총 세개 구조로 이루어져있으며 각각 user, group, other의 권한을 나타냄
  • chmod(change mode): 권한을 변경하는 명령어. 사용자와 파일이나 폴더의 소유자가 같으면 바로 권한 변경 가능
    사용자와 소유자가 다를경우 sudo로 관리자 권한 얻은 뒤 사용가능

    권한 변경에는 연산자(+,-,=)를 사용하는 Symbolic method와 rwx를 숫자로 표현한 Absolute form이 있음
    (예시) Symbolic method: [chmod g-r 파일명: group의 읽기 권한 삭제], [chmod a=rw 파일명: 모두에게 읽고 쓰기 권한 적용]
    (예시) Absolute form: [chmod 744 파일명: user는 모든권한, 그 외에는 읽기권한만 부여]

환경변수

환경변수는 환경에 따라 프로그램의 동작에 영향을 줄 수 있는 값으로, 운영체제는 환경변수를 설정하고 프로그램이 환경변수를 찾아 사용하도록 함

  • 지역환경변수: 환경 변수를 생성한 특정 사용자만 사용 가능
  • 전역환경변수: 모든 사용자가 사용할 수 있는 환경변수

환경변수 임시 적용하기 (터미널 종료시 환경변수 자동 삭제)

  • 지역 환경변수: 등호(=)를 사용해 선언. = 앞뒤로 공백이 없어야하며 변수에 공백이 있을 경우 " "로 묶어줌 ex. hello="good day!"
  • 전역 환경변수: 명령어 export를 사용하여 변수 추가. ex. export class="good student"
  • 환경변수 확인하기: echo 명령어를 사용하며 환경변수 앞에 $(뒤의 문자열이 환경변수임을 의미)기입

환경변수 영구 적용하기 (터미널 종료 혹은 컴퓨터 재부팅시에도 유지)

  • 지역 환경변수: ~ 경로에서 .zshrc 혹은 .bashrc 파일을 열어(nano등 편집기 사용) 설정하고자하는 환경변수를 작성하고 저장
  • 전역환경변수: 전역 환경변수를 영구 적용하기 위해서는 환경변수를 저장하고자 하는 파일에 수정 권한을 부여해야함
    ⤑ sudo chmod 777 파일명(루트 디렉토리의 etc 디렉토리 내의 profile이라는 파일)
     [nano 파일명] 입력하여 환경변수를  지정하고 저장한 뒤, [source 파일명] 입력하여 변경 내용을 적용함

환경변수 확인하기

  • export  키워드를 사용해 생성된 환경변수의 이름과 값을 확인할 수 있음

CLI 명령어 더 알아보기

  • 명령어 옵션
    -r(recursive) 특정 행동을 순차적으로 반복. 폴더의 삭제나 변경시에 사용
    -f(force) 어떤 행위를 강제함  ==> -rf 사용시 주의!
  • cat 대신 쓰이는 명령어: 파일이 너무 크거나 일부분만 열때 사용
    head: 파일의 앞부분만 출력. 옵션 없을 경우 10줄이 기본값. head [-n lines / -c bites] 파일명 형태
    tail: 파일의 뒷부분만 출력. 
    more: 파일을 화면 단위로 출력. 엔터키는 한줄씩 넘겨주며 스페이스바는 한 페이지씩 넘김. -n(n 만큼씩 보여줌), +n(n부터 보여줌)
    less: 한번에 보이는 만큼만 출력하며 방향키를 사용해 페이지 이동 가능

오늘은 리눅스에 대해 간단히 알아보는 시간이었다.

공부를 하면서 모르는것들을 찾아보니 영어로 된 자료가 많아서 코딩을 제대로 하려면 영어공부도 해야될것 같다는 생각이 들었다.

강의 내용 외에도 부족한 것들은 계속 찾아보면서 학습해야겠다.