리눅스(Linux)란?, 명령어 정리, 권한 관리

wannabeking·2022년 7월 10일
0

CS

목록 보기
9/27
post-thumbnail

리눅스란?

  • 운영체제의 한 종류로 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기 위한 시스템 소프트웨어이다.
  • 1989년 리누스 토르발스가 유닉스를 기반으로 개발했으며 오픈소스 운영체제이다.
  • GPL 라이센스가 적용된 운영체제로 리눅스를 설치한 뒤 사용자가 자신의 운영체제를 수정하여 사용할 수도 있다.
  • 다음과 같은 특징을 가진다.
    1. 오픈소스 운영체제
    2. GPL 라이센스 사용
    3. 다중 사용자 및 다중 처리 시스템
    4. 뛰어난 유연성, 확장성
    5. POSIX와 호환
  • 하드웨어 > 커널 > 셸 > 응용프로그램

커널(Kernel) : 메모리에 상주하면서 시스템을 관리하는 운영체제의 핵심으로 응용프로그램 수행에 필요한 프로세스, 메모리, 입출력, 파일 관리 등 여러 서비스를 제공한다.

셸(Shell) : 사용자가 입력한 문장을 읽어 요청을 실행하는 명령어 해석기/번역기 이다. 커널과 직접적으로 연결되어 명령어를 해석한 결과를 다른 프로그램 또는 커널로 전송한다. 리눅스에서 표준 셸은 bash 셸이다.

파일 시스템 : 파일 저장의 기본적인 구조, 시스템 관리를 위한 기본 환경을 제공한다. 계층적인 트리 구조 형태로 리눅스의 표준 파일 시스템은 ext4 이다.

  • 리눅스는 파생된 운영체제들이 많이 존재하며 대표적으로 우분투가 있다.
  • 리눅스 서버에 접속하여 명령어를 실행하기 위해서는 ssh 접속을 해야하며 mac은 터미널에서 접속 가능하고 window는 PuTTY 등을 설치하여 접속한다.
ssh -i "pem key" "host id"@"host name || server ip" -p "port"


명령어

  • man
    • 각종 명령어, 프로그램의 사용법(매뉴얼)을 확인하는 명령어이다.
  • clear
    • 화면을 지우는 명령어이다.
  • pwd
    • 현재 디렉토리를 확인하는 명령어이다.
  • ls
    • 현재 디렉토리의 파일목록을 조회하는 명령어이다.
    • ls -l : 파일들의 상세 정보를 나타낸다.
    • ls -a : 숨긴 파일도 표시한다.
    • ls -t : 최신 파일부터 표시한다.
    • ls -rt : 오래된 파일부터 표시한다.
  • cd
    • 디렉토리를 이동하는 명령어이다.
    • cd ~ : 어느 곳에서든 홈 디렉토리로 이동한다.
    • cd .. : 상위 디렉토리로 이동한다.
    • cd /dir : 절대경로로 이동한다.
    • cd - : 이동하기 바로 전의 디렉토리로 이동한다.
  • find
    • 특정 디렉토리/파일을 찾는 명령어이다.
    • find "path" -"type" -name '"파일 이름"' | "option"
  • which
    • 특정 명령어의 위치를 찾아주는 명령어이다.
  • touch
    • 파일의 용량이 0인 파일을 생성하는 명령어이다.
    • 파일의 최종 시간을 변경하는 용도로도 사용된다.
  • cat
    • 파일의 내용을 화면에 출력하는 명령어이다.
  • echo
    • 화면에 문자열을 출력한다.
    • 보통 환경 변수를 출력하여 확인할 때 사용한다.
  • mkdir
    • 현재 경로에 디렉토리를 생성하는 명령어이다.
    • mkdir -p "path" : 해당 경로로 모든 디렉토리를 한번에 생성한다.
  • cp
    • 파일을 복사하는 명령어이다.
    • 앞의 파일이 뒤의 파일로 복사되니 주의하자.
    • cp -f : 파일이 있으면 덮어 쓰기한다.
    • cp -R : 디렉토리 복사할 때 사용하며 하위 경로와 파일들을 모두 복사한다.
  • mv
    • 파일을 이동시키는 명령어이다.
    • mv -b : 파일이 이미 존재하면 백업하고 이동한다.
    • mv -f : 파일이 존재하면 백업 없이 덮어 쓴다.
  • rm
    • 파일을 제거하는 명령어이다.
    • rm -f : 파일 이름을 묻지 않고 삭제한다.
    • rm -r : 디렉토리를 하위 모든 것까지 삭제한다.
  • grep
    • 특정 문자열의 위치를 특정 파일에서 찾는 명령어이다.
    • grep -"option" "string" "file"으로 다양한 옵션을 적용하여 수행할 수 있다.
    • 프로세스에도 사용 가능하다.
  • export
    • 환경 변수를 지정, 변경하는 명령어이다.
  • env
    • 현재 지정되어 있는 환경 변수들을 출력하는 명령어이다.
  • redirection
    • 리눅스 스트림의 방향을 조정하는 명령어이다.
    • "command" > "file" : 명령의 결과를 파일로 저장한다.
      • cat file1 file2 > file3 : file1, file2를 출력하고 file3에 저장한다.
    • "command" >> "file" : 멸령의 결과를 파일에 추가한다.
      • cat file4 >> file3 : file4의 내용을 file3에 추가한다.
    • "command" < "file" : 파일의 데이터를 명령에 입력한다.
      • cat < file1 : file1의 내용을 출력한다.
    • 여러 개를 동시에 사용할 수 있다.
      • cat < file1 > file2 : file1의 내용을 출력하는 결과물을 file2에 저장한다.
  • df
    • 파일 시스템의 디스크 공간에 대한 필수 정보를 표시하는 명령어이다.
  • ps
    • 현재 실행 중인 프로세스를 시각화하는 명령어이다.
  • kill
    • 특정 프로세스의 번호를 입력하여 중지하는 명령어이다.
  • tail
    • 대량의 텍스트 파일에서 패턴을 검색할 때 사용하는 강력한 정규식 명령이다.
    • 오류나 파일 로그를 실시간으로 확인할 때 유용하다.


권한 관리

rwx / rw- / r-x : 소유자의 권한 / 그룹의 권한 / 기타 사용자의 권한
2진수로 표현 (위의 예시는 765)

  • chmod
    • 권한을 변경한다.
    • chmod -r : 하위 디렉토리의 모든 권한까지 변경한다.
    • chmod -c : 권한 변경 파일내용을 출력한다.
  • chown
    • 소유자를 변경한다.
    • chown "option" "user || group" "file"
    • chown -r : 하위 디렉토리의 모든 권한까지 변경한다.
  • r
    • 읽기 권한이다.
    • 파일일 때 읽고 카피가 가능하다.
    • 디렉토리일 때 ls 명령어가 가능하다.
  • w
    • 쓰기 권한이다.
    • 파일일 때 수정이 가능하다.
    • 디렉토리일 때 파일 생성 가능하다.
  • d
    • 실행 권한이다.
    • 파일일 때 실행이 가능하다.
    • 디렉토리일 때 cd 접근이 가능하다.


profile
내일은 개발왕 😎

0개의 댓글