반응형

파일다루기

  • 파일보기 : $ ls [OPTION] ... [FILE] ...
    • $ ls : list
    • $ ls -l : long list
    • $ ls -a : all
    • $ ls -al, ls -a -l : all + long
    • $ ls *.txt : 확장자가 *.txt 파일인 것만

  • 파일 내용 보기 : cat, more, less
    • $ cat [OPTION]...[FILE]... : 파일 내용 보여주기 (정확히는 input과 output의 연결(concatenate)하기)

      $ cat hello.txt
      $ cat /etc/passwd
      $ cat -e /etc/passwd  // 줄의 맨 뒤에 $붙이지 (히든 캐릭터 공백 등 확인을 위해)
      $ cat -n /etc/passwd    // 줄 번호 보여주기
    • $ more [OPTION]...[FILE] : 페이지 단위로 이동 (space), 줄 단위로 이동 (enter)

      $ more hello.txt
      $ more /etc/passwd
      // 단점 : 뒤로 올라가기를 할 수 없음
    • $ less [OPTION]...[FILE]... : more를 개선 => 방향기 - 상하좌우, 페이지 up/down

      • less의 경우 모든 파일을 메모리에 올리지 않아 more 대비 속도가 빠르다.

  • 파일 만들기/지우기 : touch, rm
    • $ touch [OPTION] ... [FILE] ... : 파일을 건드린다는 느낌의 명령어

      파일 생성보다는 수정 시점을 현재 시간(timesteamp)으로 바꾸는 것으로 만약 해당 파일이 존재하지 않는 경우 0바이트 파일 생성

      $ touch hello.txt                        => hello.txt가 없다면 생성, 있다면 현재 시간으로 변경
      $ touch test1 test2 test3   => 여러 파일도 가능
    • $ rm [OPTION]...[FILE]... : 파일(or 디렉토리) 삭제

      $ rm hello.txt
      $ rm test1 test2 test3
      $ rm /etc/passwd => (실패) - 삭제 확인, but 권한 X
      
      $ rm -r dir1 => 폴더를 rm으로 지우기위해서 -r (recursive)옵션 필요

  • 디렉토리 만들기/지우기 : mkdir, rmdir
    • $ mkdir [OPTION]...[DIRECTORY]... : 디렉토리 생성

      $ mkdir dir1
      $ mkdir dir2 dir3
      $ mkdir dir1/sub1
      $ mkdir -p dir4/sub1    => dir4와 sub1을 동시에 생성, -p(parents)
    • $ rmdir [OPTION]...[DIRECTORY]... : 디렉토리 삭제

      $ rmdir dir1
      $ rmdir dir2 dir3

  • 디렉토리 이동 : cd (change directory), cd -
    • 디렉토리 구조

      • . : (현재) 나 자신
      • .. : 부모 디렉토리
      • ~ : 홈 디렉토리
      • - : 이전 디렉토리
      $ cd dir1        => dir1으로 이동
      $ cd ..         => 부모 디렉토리로 이동
      $ cd ~            => 홈 디렉토리로 이동
      $ cd -             => 이전 디렉토리로 이동
      $ ../..            => 부모의 부모 디렉토리로 이동
  • 파일 복사 : $ cp [OPTION]...[SRC] [DST]
    // 사전 준비
    $ touch hello.txt test1
    $ mkdir dir1
    
    // 복사 예제
    $ cp hello.txt hello2.txt        => hello.txt를 hello2.txt라는 이름으로 복사
    $ cp test1 dir1                            => test1을 dir1으로 복사
    $ cp -r dir1 dir2                        => dir1 디렉토리를 dir2로 복사 (-r 옵션)

  • 파일 이동 : $ mv [OPTION]...[SRC] [DST]
    // 사전 준비
    $ touch hello.txt test1
    $ mkdir dir1
    
    // 이동 예제
    $ mv hello.txt hello2.txt        => hello.txt를 hello2.txt라는 이름으로 변경
    $ mv test1 dir1                            => test1을 dir1으로 이동
    $ mv dir1 dir2                            => dir1 디렉토리를 dir2라는 이름으로 변경 (-r 옵션 필요X)

    Rename 명령어도 있지만 일반적으로 mv를 사용해 이름 변경이 편리함.


  • 파일 숏컷 : $ ln [OPTION]...[TARGET] [LINKNAME]
    $ ln -s hello.txt hellosymlink    => -s 옵션으로 심볼릭링크(소프트링크) 만들기
    $ ls -ali                                             => 파일링크 확인
    
    $ ln hello.txt hellolink                => 하드링크 만들기
    • 하드링크 : 새로운 포인터가 파일을 직접 가르킨다.

    • 소프트링크(심볼릭링크) : 새로운 포인터가 현재 파일을 가르키는 포인터를 가르킨다. => 하드링크에 비해 공간을 효율적으로 관리 가능.

    • [참고] inode : 유닉스 계통 파일 시스템에서 파일이나 디렉토리에 정보를 가지고 있는 자료구조

    • inode 관련 자료


  • 파일 속성 보기 : $ file [OPTION]...[FILE]...
    • $ file hello.txt
    • $ file dir1
    • $ file hellosymlink

  • 터미널 지우기 ( 화면 청소 ) : $ clear

  • 시스템 종료
    • 재부팅 : $ reboot

    • 종료 : $ poweroff

      재부팅과 종료 명령어는 확인 과정이 없어 주의해야한다.

    • 주어진 시간 후 종료 : $ shutdown [OPTION] [TIME] (기본값 : +1 - 1분 후)

      • $ shutdown -c : 앞선 shutdown 명령어 취소
      • $ shutdown -P now : 바로 종료
      • $ shutdown -r now : 바로 재시작

  • 도움말/매뉴얼 : $ man [OPTION]...[PAGE] [COMMAND]
    • PAGE 종류

      1. 일반 명령어
      2. 시스템 호출
      3. C 표준 라이브러리 함수
      4. 특수파일 (/dev 등)
      5. 파일 형식과 Conventions
      6. 게임과 화면보호기
      7. 기타
      8. 시스템관리 명령어와 데몬
    • Ex)

      $ man man
      $ man printf
      $ man 3 printf
      $ man socket
      
      $ man -a printf        => '-a' : 모두 출력
      $ man -k printf        => '-k' : 검색
      $ man -k ^printf  => 정규표현식 검색 가능

  • 파일 편집기 (vi / vim / nano)
    $ vi hello.txt
    $ nano hello.txt
반응형

BELATED ARTICLES

more