Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Kwon's Study Blog !

[Linux] 기본 명령어 및 개념 본문

Linux

[Linux] 기본 명령어 및 개념

순샤인 2022. 4. 12. 23:26

 

기존 Java나 Spring framework, JSP, node.js 등을 이용해 애플리케이션을 만드는 것에만 관심이 많았지

이를 서버에 배포하고 관리하는 기술엔 너무 관심없이 살았습니다... 

 

컴퓨터 공학을 전공하며 운영 체제를 공부하고 리눅스 시스템에 대한 기초를 배우긴 했지만 

잘 써먹지는 않았죠. (결국 휘발성 메모리가 되버린 ㅎㅎ)

 

요즘 백엔드 개발자들도 어느정도는? 서버를 다룰줄 아는 기술이 필요하다 느껴져서 

리눅스 개념에 대해선 짧게 다루고 활용하는 방법에 대해서 주로 정리를 할 계획이며 

 

일단은 리눅스에 대해 기초를 다루고 자주 사용하는 명령어를 정리해 보겠습니다.!!!

 

그 다음엔 리눅스에 아파치나 톰캣, DB 등을 설치해보고 연동하면서 

FTPS, SFTP 등 사용을 해보겠습니다. (대다수 실무에서 이런 경험을 원하는 것 같아서)

 

Linux 란 ?

리눅스는 오픈 소스 운영 체제, 혹은 커널을 뜻하기도 합니다.
리눅스는 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본이며,
리눅스는 다중 사용자, 다중 작업(멀티태스킹), 다중 쓰레드를 지원하는 네트워크 운영 체제(NOS)입니다.

 

운영 체제(Operating Syetem)는 CPU, MEMORY, STORAGE 처럼 시스템의 하드웨어와 리소스를 직접 관리하는 SW입니다. 이러한 자원들을 효율적으로 운영 관리함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어를 말합니다.

결국 OS 핵심 목적은 사용자가 편리하고 효율적인 방식으로 프로그램을 실행하는 환경을 제공하는데 있습니다.

이 외에도 다양한 역할을 합니다. 

 

오픈 소스라 함은 누구나 공짜로 가져다 쓸 수 있을 뿐 아니라 그 코드도 마음껏 들여다볼 수 있고 이를 원하는대로 개조할 수도 있다는 의미입니다.

리눅스 커널

리눅스 커널은 OS의 가장 안쪽에 있는 구성 요소로 소프트웨어와 하드웨어 간의 통신을 설정합니다.
커널은 시스템 리소스를 관리하며 장치, 공정, 메모리, 시스템 호출을 관리합니다.

 

사실 이런 개념들이 막 와닿지는 않습니다.

그냥 어렵게 생각할 필요없이 리눅스 커널이 곧 리눅스이며 

물리적 컴퓨터, 즉 하드웨어 요소들을 OS의 최하단, 기계를 상대하는 최전선에서 직접 다루고 관리하는게 커널입니다.

즉 커널이 OS SW의 존재이유이자 핵심입니다.

우리가 컴퓨터란 기계에게 명령을 내리고 결과를 받아올 수 있는건 이 커널 덕분입니다.

리눅스의 주요 디렉토리

  • bin : 기본 명령어들이 저장된 디렉토리
  • boot : 부팅에 필요한 파일들이 저장되는 곳
  • dev : 시스템 디바이스 관련 파일이들이 저장되는 곳
  • etc : 시스템 설정에 관련된 각종 파일들이 저장되는 곳
  • home : 사용자의 홈 디렉토리가 생성되는 곳
  • lib : 커널과 프로그램에 필요한 각종 라이브러리가 저장되는 곳
  • media : CD, USB같은 외부 장치를 연결하는 곳
  • mnt : 탈부착 가능한 장치들을 임시로 연결하는 곳 (WSL의 경우 윈도우의 디렉토리와 연결)
  • opt : 추가 패키지가 설치되는 곳
  • root : root(최고관리자) 계정의 홈 디렉토리
  • run : 실행중인 서버스와 관련된 파일들이 저장되는 곳
  • sbin : 시스템 관리자용 명령어들이 저장되는 곳
  • sys : 리눅스 커널 관련 정보가 있는 곳
  • tmp : 시스템 사용중 발생하는 임시데이터가 저장되는 곳
  • usr : 기본 실행파일, 라이브러리, 헤더 파일들이 저장되는 곳 
  • var : 시스템 운영중 발생하는 데이터, 로그가 저장되는 곳
  • proc : 실행중인 프로세스 및 커널 정보가 저장되는 곳(디스크상이 아닌 메모리에 존재)

리눅스의 주요 명령어

  • pwd : 현재 위치한 디렉토리의 절대경로를 표시
  • ls : 현재 위치한 디렉토리 내 파일/디렉토리 목록을 표시
    • -a : 숨긴파일을 포함한 모든 항목 표시
    • -d : 디렉토리 정보만 표시
    • -F : 디렉토리는 /, 실행가능 파일은 *, 소켓파일은 =, 링크인 경우@를 파일뒤에 표시
    • -l : 각 항목의 상세 정보들을 함께 표시
    • -m : 각 항목들을 쉼표로 구분하여 표시
    • -r : 각 항목들을 역순으로 표시
    • -R : 하위 디렉토리의 내용들도 표시
    • -s : kb단위로 표시
    • -t : 최종 수정시간을 기준으로 표시
    • -u : 최종 엑세스 시간 기준으로 표시
  • cd {경로} : 경로로 이동
  • mkdir {디렉토리명} : 디렉토리 생성
  • rmdir {디렉토리명} : 빈 디렉토리를 삭제, 비어있지 않은경우 삭제 불가
  • cp {복사할 대상} {붙여넣을 경로 또는 새 파일명} : 파일을 복사, 디렉토리를 복사 시 cp 뒤에 -r 붙임
  • mv {옴길 대상} {대상 디렉토리 또는 새 파일명} : 파일이나 디렉토리를 옮김, 이름을 변경할 때도 사용
  • rm {삭제할 대상} : 파일이나 디렉토리 삭제, 디렉토리를 삭제할 땐 rm 뒤에 -r 붙임
  • sudo {명령어} : 최고관리자 권한이 있어야 실행할 수 있는 명령어 앞에 붙임
  • touch {파일명} : 파일의 용량이 0인 파일을 생성, 파일의 날짜 시간 변경
    • -a : 현 시간으로 파일의 접근 시간, 변경 시간을 수정
    • -d : 지정한 시간으로 접근 시간, 수정 시간이 수정되고 변경시간은 현재 시간으로 수정
    • -m: 현 시간으로 파일의 수정 시간, 변경 시간을 수정
    • -r a b : b의 날짜정보를 a의 날짜정보와 같게 변경
  • cat {파일명} : 파일의 내용을 출력
    • cat a b : a와 b의 내용을 이어서 출력
    • cat a b | more : a,b를 출력하는데 페이지별로 출력
    • cat a b | head : a,b를 출력하는데 처음부터 10번째 까지만 출력
    • cat a b | tail : a,b를 출력하는데 끝에서 10번째 까지만 출력
  • vi {파일명} : 새로운 문서를 편집할 수 있는 환경이 만들어짐 

 

 

이번 글에선 기초적인 명령어들이나 주요 디렉터리에 대해 알아보았고,

이 이외에도 더 많은 명령어들이 있지만 그건 이후에 더 알아보도록 하겠습니다.

 

원래 이것 저것 해보면서 익히고 찾아보고 해야 진짜로 배우는 것이기 때문에 ! 

 

 

reference

 

가장 쉽게 배우는 리눅스

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

리눅스(Linux)는 무엇이고 우분투(Ubuntu)는 무엇인가 - 하나몬

❗️리눅스(Linux)란? 👉 Linux는 커널이다. ⇒ 커스텀 OS 만들기 가능 Windows나 Mac과 달리 Linux는 실제로 분리되고 잘 정의된 운영 체제가 아니다. 오히려 Linux는 커스터마이즈된 OS를 만들 수 있는 커

hanamon.kr

 

[Linux] vi 편집기 사용법 및 명령어

셀 상에서 vi [파일명]을 입력하면 새로운 문서를 편집할 수 있는 환경이 만들어진다. vi의 세 가지 모드 1. 명령 모드 (command mode) vi 명령어를 통해 vi를 시작할 경우 실행되는 모드. 방향키를 통해

velog.io