유닉스 커맨드

LEE GYUHO·2023년 9월 12일
0

유닉스 커맨드

  • 기본 형태: 커맨드(cal, date) 옵션(-j, -y) argument(10 2020, 2023)
  • man cal (cal인자의 매뉴얼 / 매뉴얼 페이지 나가려면 q)
    • NAME
      커맨드 이름과 커맨드가 뭘 하는지 설명
    • SYNOPSIS
      쓸 수 있는 옵션과 argument를 정리
      -가 붙은 것은 옵션
      안 붙은 것은 argument
    • DESCRIPTION
      검색한 커맨드에 대한 설명
      옵션들에 대한 설명
  • 터미널 사용 꿀팁
    • 전에 실행한 커맨드(위쪽 방향키)
    • 커서 이동
      Ctrl + A: 줄 가장 앞으로 커서 이동
      Ctrl + E: 줄 가장 뒤로 커서 이동
      Alt + 왼쪽 방향키: 이전 단어로 커서 이동
      Alt + 오른쪽 방향키: 다음 단어로 커서 이동
      Ctrl + C: 실행하고 있는 작업 취소
      clear: 터미널 내용 지우기
      Tab키: 지금 작성하고 있는 command나 argument 자동완성

파일과 디렉토리(폴더) 커맨드

  • 유닉스 디렉토리 구조
                    root
         home        bin        usr
         codeit             local   bin
    Desktop Docu-ments
    
    home 디렉토리 안에 codeit 디렉토리가 있는 이런 것을
    codeit 디렉토리는 하위(또는 자식) 디렉토리라고 한다
    home 디렉토리는 상위(또는 부모) 디렉토리라고 한다

사용자의 홈 디렉토리(여기서는 codeit / 여러개일 수도 있다 / home 또는 Users 디렉토리 안에 있다)
각종 문서, 바탕화면 파일, 다운로드 파일 등이 있다

  • 파일 경로(디렉토리나 폴더의 위치를 문자열로 표기 하는 것)
    ex) root안에 있는 home안에 있는 codeit은
    /home/codeit

    • 현재 사용자의 홈 디렉토리: ~
      codeit 사용자에 있다면
      ~ --> /home/codeit
  • 디렉토리와 파일 둘러보기
    파일이나 디렉토리 이름에 공백이 있다면 ''나 ""나 \를 사용해줘야 한다(애초에 파일 이름에 공백 없는게 좋다)

    • pwd(Print Working Directory / 현재 위치를 Working Directory라 한다)
      현재 위치해 있는 디렉토리 경로가 나온다
    • cd(Change Directory)
      cd + argument
      다른 디렉토리로 이동 (루트 디렉토리로 이동하고 싶을 때는 cd /)
      홈 디렉토리로 가고 싶을 때는 cd만 입력해도 된다
      cd -는 이전에 있던 디렉토리로 이동
    • ls(List)
      ls에 argument를 안주면 현재 디렉토리에 있는 것을 보여준다
      ls에 argument로 경로를 주면 그곳에 있는 것을 보여준다
      현재 디렉토리 안에 무엇이 있는지 list를 해서 보여준다
      • a옵션(all)
        ls에 a옵션을 주면 모든 파일과 디렉토리를 보여준다
      • l옵션(long format)
        파일과 디렉토리에 대한 자세한 정보를 보고싶을때 사용
  • 절대경로와 상대경로
    경로를 argument로 받는 모든 커맨드에 절대경로, 상대경로 둘 다 사용 가능

    • 절대경로
      루트 디렉토리를 기준으로 고유한 경로 표시
    • 상대경로
      현재 자신의 위치를 기준으로 경로 표시
      현재 디렉토리를 .으로 표시
      상위 디렉토리는 ..으로 표시
  • 알아두면 좋은 디렉토리

    • /bin(binaries)
      컴퓨터가 실행할 수 있는 프로그램의 일부가 있다

    • /sbin
      관리자 전용 프로그램들이 있다

    • /home 또는 /Users
      사용자의 홈 디렉토리로 사용자의 모든 파일을 저장하는 곳

    • /usr
      사용자(user)에게 필요한 파일들을 저장

      • usr안에도 bin이 있는데 컴퓨터가 시작하거나 자신을 수리하기 위해 필요한 커맨드들과 사용자가 필요한 커맨드들이 있다
      • local이라는 디렉토리도 있는데 사용자가 직접 설치한 프로그램과 관련된 파일들이 있다
  • 디렉토리와 파일 만들기

    • mkdir(디렉토리 만들기)
      mkdir + 경로
      ex)mkdir ~/unix_practice 절대경로
      ex)mkdir unix_practice 상대경로
      여러개 한번에 가능 ex)mkdir Jul Aug

    • touch(파일 만들기)
      만드는 방법은 mkdir과 같다
      ex) touch finances.txt performance.txt
      ex) touch Aug/finances.txt Aug/performance.txt

  • 파일 내용 작성

    • Vim
      아무argument없이 vim만 실행하면 새로운 파일을 만드는 것
      파일 경로를 argument로 주면 그 파일을 수정하는 것

    • Vim의 4가지 사용 모드

      • 일반 모드
        커서 이동
        텍스트 붙여넣기
        작업 취소

      • 입력 모드(i / 일반 모드로 돌아오기 esc)
        텍스트 입력

      • 비주얼 모드(v(글자 단위 복사)나 V(줄 단위 복사) / 일반 모드로 돌아오기 esc)
        텍스트 블록 지정
        텍스트 복사(y / yy: 빠르게 복사)
        텍스트 붙여넣기(p)
        텍스트 잘라내기(d / dd: 빠르게 잘라내기)

      • 명령 모드(: / 일반 모드로 돌아오기 esc)
        파일 저장(w): 새로운 파일일 경우 w hello.txt 이런식으로 이름을 붙여줘야 한다
        Vim 종료(q)

        wq를 하면 저장과 동시에 종료
        q!를 하면 저장하지 않고 종료

  • 파일 내용 살펴보기

    • cat(concatenate)
      파일 내용을 한번에 보여준다
      cat + 조회할 파일을 argument로 전달해 주면 된다

    • less
      파일 내용을 페이지 단위로 나눠서 보여준다(위쪽 아래쪽 방향키, space + f, b, G(마지막 페이지), g(처음 페이지), q(종료))
      less + 조회할 파일을 argument로 전달해 주면 된다

    • head
      파일의 시작부분 확인(처음 10줄이 나온다)
      head + 조회할 파일을 argument로 전달해 주면 된다
      -n 5 이런 식으로 옵션을 적용할 수 있다(처음 5줄을 보여줌)

    • tail
      파일의 끝부분 확인(마지막 10줄이 나온다)
      tail + 조회할 파일을 argument로 전달해 주면 된다
      -n 5 이런 식으로 옵션을 적용할 수 있다(마지막 5줄을 보여줌)

  • 디렉토리와 파일 옮기기, 이름 변경하기(둘 다 mv)
    argument로 경로 2개를 받는다
    첫번째 경로는 작업할 대상의 경로
    두번째 경로는 이동할 목적지 또는 변경할 이름
    두번째 argument가 이미 존재하면 이동할 목적지 그렇지 않으면 이름 변경

    • mv performance.txt performance2.txt(이름 변경)
    • mv Sep Oct (이름 변경)
    • mv Jul Aug (Jul이 Aug로 이동 / Aug는 원래 있는 파일이기 때문)
    • mv Aug/Jul . (다시 원래 위치로 옮기기)
  • mv커맨드 사용시 주의할 점
    똑같은 이름의 파일이 목적지에 있을 경우 그것을 덮어쓴다
    이러한 현상을 방지하기 위해서 i옵션을 사용

    • i(interactive)
      충돌이 있을 경우 사용자에게 어떻게 할지 물어본다
      mv -i test1.txt test2.txt
  • 디렉토리 파일 복사 붙여넣기: cp(coy)
    argument를 두개를 받는다
    첫번째 argument는 복사할 대상의 경로
    두번째 argument는 복사할 위치(이미 있는 이름이면 덮어쓴다)
    이러한 현상을 방지하기 위해 mv커맨드처럼 i옵션을 사용한다

    • 디렉토리를 복사할 때는 r옵션을 줘야 한다(recursive)
      복사하려는 대상 안에 자식 디렉토리가 있으면 그것도 복사하는 것
  • 디렉토리와 파일 삭제: rm(remove)
    rm path(삭제할 파일 또는 디렉토리 경로)
    argument로 지우고 싶은 파일이나 디렉토리 경로를 여러개 줄 수 있다

    • 디렉토리를 삭제할 때는 r옵션을 줘야 한다(recursive)
      파일 안에 들은 것을 하나하나 보고 지우고 싶을 때는 i옵션 사용
    • 어떤 상황에서도 파일을 지울 것인지 확인하는 알림 없이 지우는 옵션: f
      rf를 같이 쓰는 경우가 많다
profile
누구나 같은 팀으로 되길 바라는 개발자가 되자

0개의 댓글