[유닉스 커맨드]디렉토리와 파일 다루기

티라노·2023년 9월 12일
1
post-custom-banner

폴더 = 디렉토리
현재 사용자의 홈 디렉토리를 ‘~’로 표시할 수 있음.

파일과 디렉토리를 둘러볼 때 사용하는 디맨드

  • pwd: 현재 위치한 디렉토리(working directory) 확인 (print working directory)
  • cd: change directory. 다른 디렉토리로 이동 (cd - : 이전 디렉토리 경로로 이동)
  • ls: list. 디렉토리의 내용들을 쭉 리스트해서 보여줌.

절대 경로:

  • 루트 디렉토리를 기준으로 어떤 파일이나 디렉토리의 고유한 경로를 표시하는 것
  • ~: 홈 나타내는 경로
  • 📢 dir과 /dir은 다른 경로를 나타냄. /dir은 루트 디렉토리 안에 있는 dir 디렉토리를 뜻함.

상대 경로:

  • 현재 자신이 위치해 있는 디렉토리 기준으로 경로를 나타내는 것
  • 현재 경로를 ‘.’으로 표시 (’/’로 경로 시작하지 않으면 ‘.’없어도 자동으로 상대 경로로 인식)
  • 상위 디렉토리는 ‘..’임. 두번 상위 디렉토리는 ../..
  • 상위 디렉토리로 올라가서 다른 경로로 가려면 cd ../(디렉토리이름)

ls 의 중요한 옵션들

  • ls -a: 숨겨진 파일들을 보여줌. 보통 컴퓨터가 자동으로 설치한 파일들
    • 숨겨진 파일들은 확장자가 없음(.txt같은. 물론 일반 파일들도 확장자 없을 수 있음)
  • ls -l: (long format) 파일들의 추가 정보를 보여줌
    • :/dev$ ls -al
      total 4 (←디렉토리의 내용들의 용량)
      drwxr-xr-x 8 root root 2940 Sep 11 18:46 block
      • d: directrory, -: 일반 파일

      • rwxr-xr-x: 권한 관련 내용. 조회, 실행, 수정 등

      • 8: 이 파일과 연결된 링크의 개수

      • root: 파일의 소유자

      • root: 소유자가 속한 그룹

      • 2940: byte (유닉스 파일 시스템과 관련된 용량으로, 실제 컴퓨터 용량과 다름)

      • Sep 11 18:46: 파일의 마지막 수정 날짜

      • block: 파일 이름


root 디렉토리 안에 존재하는 디렉토리들

  • /bin : 'binaries’. 컴퓨터가 실행할 수 있는 프로그램. ls 프로그램도 /bin 안에 있음
  • /sbin : 관리자 전용 프로그램들이 있음
  • /etc : 컴퓨터 설정 파일(각종 프로그램 설정 파일, 관리자 권한 등) 존재
  • /home(리눅스) 또는 /Users(맥 OS) : 사용자들의 홈 디렉토리(사용자의 모든 파일을 저장해 놓는 곳)
    • 참고로 맥 OS /home 에는 아무 파일도 없음
  • /usr : 유저에게 필요한 파일들을 저장.
    • /bin에는 컴퓨터가 시작하거나 자신을 수리하기 위해서 꼭 필요한 커맨드들이 있고, /usr/bin에는 컴퓨터가 필요하기보다는 사용자가 필요한 커맨드들이 있음

디렉토리와 파일 만들기: mkdir, touch

  • mkdir ~/unix_practice (or) mkdir unix_practice ← 홈 디렉토리 안에 디렉토리 만드는 커맨드
  • mkdir Sep Jul Aug ← 3개 디렉토리 동시에 만듦
  • touch finances.txt performance.txt ← 2개 파일 동시에 만듦
  • touch Sep/finances.txt Sep/performance.txt ← Sep 디렉토리 안에 만들기
  • 참고로, touch는 파일에 접근해서 파일에 마지막 접근 시간 등을 수정하는 커맨드인데, 파일이 없으면 직접 만들기 때문에 파일을 생성할 때도 쓰임

CLI 텍스트 에디터 vim(파일에 내용 작성하기)

  • if GUI 환경이였다면? Micrisoft Word, VS code, PyCharm, 메모장 같은 기능
  • CLI 전용 텍스트 에디터를 사용해야 함 → vim
    • vim : 아무 argument 없이 실행하면 새 파일 만듦. argument 주면 그 파일을 수정함
    • vim의 4가지 사용 모드
      • 일반 모드(Normal Mode) :
        • 처음 열면 실행되는 모드. 다른 모드로 갈 때도 항상 일반 모드를 거쳐야 함.
        • 입력모드로 가려면 ‘i’, 비주얼 모드 ‘v,V’, 명령 모드 ‘:’ 로 갈 수 있음.
        • esc 키 누르면 일반 코드로 돌아옴
      • 입력 모드(Insert Mode) :
        • 원하는 텍스트 입력
      • 비주얼 모드(Visual Mode) :
        • 글자 단위로 선택하려면 v, 문장 단위로 선택하려면 V.
        • 텍스트 복사(y), 붙여넣기(p), 잘라내기(d)
          • 텍스트를 한 줄씩 붙여넣거나 잘라낼 때는 비주얼 모드 킬 필요 없이 yy, pp 누르면 됨
      • 명령 모드(Command Mode) :
        • 파일 저장하기(:w), 종료하기(:q) + enter
          • :w (파일이름).txt ← 이렇게 파일 이름 지정해줘야 저장 가능. 파일 수정할 때는 필요 없음.
          • :q! ← 파일을 수정하지 않고(즉, 수정한 텍스트 저장 안하고) 나가기

파일 내용 살펴보기: cat, less, head, tail

  • cat: concatenate(이어붙이다). 파일 조회.
    • 알규먼트로 조회할 파일 입력하면 됨.
    • 여러 파일을 알규먼트로 주면 이어서 두 파일 내용을 볼 수 있음
  • less: 파일 내용을 페이지 단위로 보여줌
    • 방향키 사용하면 됨.
      • SPACE BAR or f 키로 다운페이지
      • b로 이전 페이지
      • ‘G’ 누르면 마지막 페이지로 이동
      • ‘q’ 눌러서 종료)
  • head, tail: 파일의 시작 부분이나 끝부분 확인할 때 사용
    • head -n 5 (파일이름.txt)
      • -n 사용해서 확인할 줄 개수 설정할 수 있음. 위처럼 하면 위에 5줄 보여줌.

파일과 디렉토리 옮기기, 이름 변경하기: mv

  • mv path1(작업할 대상의 경로) path2(이동할 목적지 or 변경할 이름)
    • path2 에서 이미 존재하는 경로일 경우 목적지가 이동하고, 경로가 없으면 path2로 이름이 변경됨
  • -i option
    • mv 커맨드를 사용 시 기존 파일을 덮어쓰는 문제가 발생할 수 있음
      (ex: mv test1.txt test2.txt → test1 이 test2를 덮어써버림)
    • 이렇게 충돌이 발생했을 시 대처를 위해 보통 -i 옵션과 함께 사용함
      • mv -i test1.txt test2.txt → 파일을 덮어쓸지 말지 선택지 나타남

디렉토리와 파일 복사 붙여넣기: cp

  • cp path1(복사할 대상의 경로) path2(복사할 위치)
    • path2가 이미 존재한다면 그 안으로 복사됨
    • 없다면 path2 이름을 가진 파일or디렉토리 생성
  • -i option 사용 권장(overwrite 방지)
  • 디렉토리를 복사할 때는 옵션 -r 을 함께 사용해줘야 작동함 (디렉토리 안에 존재하는 여러 파일을 한번에 복사하기 위해 사용함)

디렉토리와 파일 삭제하기: rm(remove)

  • re (알규먼트)
  • re -r (디렉토리)
  • re -i (파일을 지울건지 확인 메세지 뜸. -ri 면 디렉토리에 있는 파일 하나씩 검토해줌)
  • -f : 어떤 상황에서도 정말 지울건지 확인하지 않고 지움.
profile
어쩌다 프론트 도전기
post-custom-banner

0개의 댓글