백엔드 개발자 공부/Linux 기초

[Linux] CLI 기본 명령어

gotoguy 2022. 8. 26. 21:41
728x90

명령줄 인터페이스(CLI, Command-Line Interface)

    - 명령어로 컴퓨터를 제어하는 방식으로, GUI에 비해 높은 안정성과 빠른 속도를 가짐

        GUI(그래픽 사용자 인터페이스) : 평소 컴퓨터를 사용할 때 적용되는 컴퓨터 제어 방식

    - GUI가 할 수 있는 모든 작업은 CLI로 할 수 있음

    - AWS와 같은 서버 컴퓨터의 대부분은 Linux 운영체제가 설치되어 있기 때문에, 서버 컴퓨터와 원격으로 소통할 개발자들에겐 CLI 이용이 필수적임

 

CLI 기본 명령어 - 리눅스 명령어 모음 BEST 50

    - pwd : 현재 경로 출력(print working directory)

    - mkdir : 새로운 폴더 생성(make directories)

    - ls : 특정 폴더에 포함된 파일이나 폴더 확인하기(list)

        특정 명령어의 옵션 사용 : 하이픈(-) 입력

        ls -a : 숨어있는 폴더나 파일을 포함한 모든 항목 출력(all)

        ls -l : 폴더나 파일의 포맷 표현 (사용 권한)

맨 왼쪽 'd'는 디렉토리(cd 명령어를 통해 진입 가능), '-'는 파일(진입 불가)이라는 의미이다.

    - cd : 폴더에 진입(change directory)

        cd .. : 상위 폴더로 이동

        cd ~ : 홈 디렉토리로 이동

    - touch : 파일 생성

    - > : 실행 결과를 파일로 저장하기    e.g. ls > ls.txt → ls 명령어의 실행 결과를 ls.txt에 저장

    - echo : 화면에 텍스트 출력    e.g. echo hello → hello

    - cat : 파일의 모든 내용을 터미널에 출력(매우 비효율적, 대신 사용할 수 있는 명령어 존재)

        head 명령어, tail 명령어, more 명령어, less 명령어

    - rm : 폴더나 파일 삭제(remove)

        CLI에서 삭제된 파일은 휴지통에 가지 않고 즉시 삭제되므로 주의할 것(^C(Ctrl + C) : 프로세스 종료)

        폴더 삭제는 -rf 옵션 사용(recursive : 특정 행동 반복, force : 강제로 행동)

    - mv : 폴더나 파일 위치 옮기기/이름 변경(move)

        파일 옮기기 - mv [옮길 폴더/파일 이름] [도착 폴더 이름]

        이름 변경 - mv [기존 폴더/파일 이름] [바꿀 폴더/파일 이름]

    - cp : 폴더나 파일 복사(copy)

        cp [원본 폴더/파일 이름] [복사할 폴더/파일 이름]

        폴더 복사는 -rf 옵션 사용

    - 명령어 -h(또는 --help) : 명령어의 옵션 확인

 

관리자 권한

    - 관리자 권한을 만든 이유 : 악성코드 설치를 막을 수 있는 안전장치 역할, 프로그램 충돌 방지

    - sudo 명령어 : 관리자 권한 일시적 획득

        사용자가 새로운 프로그램을 설치/변경/삭제할 때는 권리자 권한이 필요

        sudo 명령어는 리눅스 계정을 생성할 때 만든 비밀번호를 입력해야 명령 가능(비밀번호를 타이핑해도 화면에 출력되지 않지만, 정상적으로 입력됨)

 

경로

    - 절대 경로 : 기준점(루트 폴더, /)으로부터의 절대적인 위치

    - 상대 경로 : 현재 위치로부터의 위치. 현재 위치한 폴더는 점(.)으로, 상위 폴더는 두 개의 점(..)으로 표현

        e.g. ./hi : 현재 폴더(.) 아래의(/) hi 폴더로 진입

 

텍스트 에디터 nano

    - CLI 환경에서 가장 사용하기 쉬운 에디터

    - AWS와 같은 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 할 상황이 생김

    - nano 명령어를 통해 실행    e.g. nano hello.java : hello.java를 nano에서 실행

728x90

'백엔드 개발자 공부 > Linux 기초' 카테고리의 다른 글

[Linux] 환경변수  (0) 2022.08.26
[Linux] 사용 권한  (0) 2022.08.26
[Linux] Ubuntu 패키지 매니저 apt  (0) 2022.08.26