Linux | 명령어

나는경서·2021년 11월 23일
6

Linux 란?

  • 리눅스는 UNIX 운영체제에서 파생된 오픈소스 운영체제이다.
  • 보안면에서 우수하고 많은 네트워킹 기술을 제공하기 때문에 서버용 운영체제로 적합하다.
  • 오픈소스 운영체제이기 때문에 개발자가 개조하고 배포하는 것이 가능하다.
  • 리눅스 기반인 대표적인 운영체제로 안드로이드가 있다.
  • Windows는 한 사용자가 한 컴퓨터를 사용(단일 사용자)하는 것을 기반으로 만들어진 운영체제이지만,Linux는 여러 사용자가 한 컴퓨터에 접속해서 사용(다중 사용자)하는 것을 기반으로 만들어진 운영체제이다.
  • ubuntu는 Linux의 수많은 배포 버전 중 하나이다.
  • 리눅스는 명령어로 컴퓨터를 제어하고 이를 CLI(Command Line Interface)라고 한다.CLI는 GUI보다 용량, CPU, 메모리를 적게 차지하는 장점이 있다.

구름(Goorm)으로 리눅스 익히기

  • Goorm
    클라우드 개발환경 구축 서비스이고, 리눅스 설치 없이 온라인으로 리눅스를 사용할 수 있다.

먼저 회원가입을 해주고, IDE로 들어가서 콘솔로 가기를 누른다.

새 컨테이너를 생성해줘야한다. 컨테이너를 생성한다는 것은 리눅스가 설치된 컴퓨터를 제공해주는 것이라고 보면 된다.

컨테이너의 이름은 대문자없이 소문자로만 해주는 것이 편하다. 언더바를 넣어도 되지만 안 넣는것이 좋다.

밑으로 내려오면 Ubuntu를 사용한다는 것을 알 수 있다. LTS는 Long Term Support의 약자이며, 번역하면 장기 지원 버전이라는 뜻이다.

컨테이너를 열면 아래와 같은 창이 나온다.
여기서 창 -> 새 터미널 창 을 눌러주고 여기서 명령어를 실행하면 된다.

꼭 알아야할 리눅스 기본 명령어

  1. ls - 현재 위치의 파일 목록을 조회하는 명령어
  2. cd - 디렉토리를 이동하는 명령어
  3. touch - 파일의 용량이 0인 파일을 생성, 날짜 변경하는 명령어
  4. mkdir - 디렉토리를 생성하는 명령어
  5. cp - 파일을 복사하는 명령어
  6. mv - 파일을 이동시키는 명령어, 이름을 변경하는 명령어
  7. rm - 파일을 제거한느 명령어
  8. cat - 파일의 내용을 화면에 출력하거나 파일을 만드는 명령어
  9. redirection - 화면에 출력되는 결과를 파일로 정하는 명령어
  10. alias - 자주 수행하는 명령어들을 쉽게 사용할 수 있도록 설정하는 명령어
  1. pwd - 현재 있는 폴더를 보여주는 명령어(print working directory)

  2. clear - 명령어 및 결과들이 지워지는 명령어

  3. vi file - file 명령모드로 이동

  4. i - 명령모드에서 입력모드로 전환

  5. ese + :wq! - 명령모드로 돌아가며 저장 후 종료

  6. wget 이미지 주소 - 이미지 불러오기

  7. find ./ -name 'file.txt' : 현재 폴더 기준으로 file.txt 파일을 모두 출력하세요.

  8. find ./ -name '*.txt' : 현재 폴더 기준으로 확장자가 .txt 파일을 모두 출력하세요.

  1. ls(list segments)
    • ls-l : 파일들의 상세정보를 나타낸다.
    • ls-a : 숨어있는 파일들도 표시한다.
  1. cd(change directory)
    • cd one : one이라는 디렉토리로 이동한다.
    • cd ~ : 어느 곳이든지 홈디렉토리로 바로 이동한다.
    • cd .. :상위 디렉토리로 이동한다.
    • cd / : 최상위 디렉토리로 이동
    • cd/dir : 절대경로 dir로 이동할 경우 사용한다.
    • cd - : 이동하기 바로 전의 디렉토리로 이동한다.
  1. touch

  2. mkdir (make directory)

    • mkdir one : one의 디렉토리를 생성
  3. cp (copy)

    • cp file cfile: file을 cfile 이라는 이름으로 복사한다.
    • cp -f file cfile: 복사 대상이 있으면 지우고 강제로 복사한다.
    • cp -R dir cdir: 디렉토리 복사 시, 폴더 안의 모든 하위 경로와 파일들을 모두 복사한다.
  4. mv(move)
    mv와 cp의 다른 점은 cp는 파일을 복사하여 원본 파일이 남지만 mv는 원본 파일이 지워진다. 그러므로 이름을 변경 시에도 사용한다.

    • mv fname mfname : fname 파일을 b로 이동/변경한다.
    • mv -b fname mfname :mfname 파일이 존재하면 mfname를 백업한 뒤 이동한다
    • mv -f fname mfname : mfname 존재하면 백업 없이 덮어쓴다.
  5. rm(remove)

    • rm fname : fname을 삭제한다.
    • rm -f fname : fname을 묻지않고 삭제한다.
    • rm -r dir: dir을 삭제한다. (디렉토리는 -r 없이 삭제할 수 없다.)
  6. cat(catenate)

    • cat fname: fname의 내용을 출력한다.
    • cat fname1 fname2: fname1과 fname2의 내용을 이어서 출력한다.
  7. redirection ('>'.'>>')

    • 리눅스 스트림의 방향을 조절한다.
    • 명령 > 파일 : 명령의 결과를 파일로 저장한다.
      - cat fname1 fname2 > fname3 : fname1 fname2을 출력하고 fname3 이라는 파일에 저장한다.
    • 명령 >> 파일 : 명령의 결과를 파일에 추가한다.
      - cat fname4 >> fname3 : fname3에 fname4의 내용을 추가한다.
    • 명령 < 파일 : 파일의 데이터를 명령에 입력한다.
      - cat < fname1 : fname1의 내용을 출력한다.
  8. alias

  • alias ne ='command' : command를 실행하는 새 명령어 new를 만든다.
    • alias ls='ls -l' : ls를 실행하면 -l 옵션을 갖는 ls를 실행한다.
  • unalias new : new 라는 alias를 해제한다.

명령모드에서 사용하는 명령어

한줄 삭제 dd
한줄 복사 yy
붙여넣기 p
현재 커서 앞에서 글자 추가 -> i
현재 커서 뒤에서부터 글자 추가 -> a
바로 다음 줄부터 편집 -> o
문장 맨 앞에서부터 편집 -> shift + i
문장 맨 뒤에서부터 편집 -> shift + a
여러줄 선택(하이라이팅) -> shift + v
자동완성 -> tab

깃허브의 레파지토리로 서비스 런칭하기

  1. sudo apt-get update
  2. sudo apt-get install nginx -> Y
  3. vi /etc/nginx/sites-available/default
    을 하면 편집모드로 들어가고 i 눌러서
  4. 기본값인 이 부분을

    내 디렉토리에 맞는 이름으로 변경해준다.
    workspace/ testtest가 내 디렉토리 경로
    10000hours는 깃허브 레파지토리에 있는 파일명
  5. esc /wq! 로 종료한다.
  6. 10000hour 프로젝트 불러오기
    git clone https://github.com/paullabkorea/10000hour.git
  7. sudo service nginx start
  8. 프로젝트 > 실행URL과 PORT > 바로가기
profile
얼레벌레 돌아가는 Frontend Developer

1개의 댓글

comment-user-thumbnail
2021년 12월 1일

rm부분에서 잘못된 부분이 있어 댓글남깁니다.
rm -r dir은 디렉토리 하위 파일을 포함하여 모두 제거하는 명령어 입니다.
디렉토리를 삭제하는 명령어는 rm -d dir입니다.
단, rm -d dir의 경우에는 하위에 다른 파일이 존재하면 제거할 수 없습니다.

디렉토리는 -r옵션 없이 삭제할 수 없다는 말은 부분적으로 맞는 말입니다.

그리고 vi와 관련해서 명령모드, 입력모드 등은 리눅스 명령어가 아니며 별도 포스팅을 하여 구분하면 좋을 것 같습니다! 명령모드랑 입력모드랑 다 설명하려면 양도 많구요...ㅠ

좋은 정보 감사합니다.

답글 달기