[Linux] 리눅스 명령어 (파일 및 디렉터리 관리 / 시스템 재부팅 및 종료)

2022. 1. 17. 14:33·System/Linux
728x90

 

  본 게시물에서는 업무를 진행하며 자주 사용하는 리눅스 (파일 및 디텍터리 관리 / 시스템 재부팅 및 종료)에 대한 명령어에 대한 내용을 다룬다. 

세부적인 옵션에 대한 내용을 다루지 않으며, 지속해서 추가 및 수정을 진행한다. 

 

* 본 게시물은 Linux RedHat 계열에서 Bash 쉘 환경을 기준으로 작성하였다.  

 

1. 파일 및 디렉터리 관리

inode와 하드링크, 심볼릭링크
inode
- 파일이름을 제외한 파일 또는 디렉터리의 여러가지 모든 속성 정보가 담겨잇는 자료구조
- 기본적으로 1개의 inode 부여
- i-node number는 파일 시스템 내에서 해당 파일을 식별하기 위한 고유 식별자를 의미
- inode 내에는 파일 타입, 소유자, 접근권한, 크기, MAC Time, 실 데이터 주소 등이 담겨있다. 

 

하드링크 심볼릭 링크
- 원본과 같은 inode를 공유
- 원본의 경로가 바뀌거나 삭제 되어도 사용 가능.
- 파일에만 링크 가능
- 연결파일을 구분짓기 힘듬
- 파일 복사와의 차이는 공간을 차지하지 않음.
- 원본과 다른 inode를 공유
- 원본의 경로가 바뀌면 사용 불가능
- 하나의 파일 시스템에서만 사용 가능. 
- 파일과 디렉터리에 링크 가능
- 연결된 파일을 찾기 용이함. 
- 윈도우에서 흔히 알고 이는 바로가기

 

 

디렉터리 생성 및 삭제
$ mkdir abc abc 디렉터리 생성
$ mkdir -p abc/def abc 디렉터리를 생성하고 하위에 def 디렉터리 생성
$ rmdir 디렉터리 삭제 (빈 디렉터리만)

 

 

파일/디렉터리 삭제
$ rm 파일명
$ rm -r 디렉터리 삭제
$ rm -rf 하부디렉터리까지 삭제
$ rm -i 삭제 확인

 

 

디렉터리/파일 이름 변경 및 위치 이동
$ mv aaa.txt bbb.txt 이름변경
$ mv aaa bbb aaa디렉터리를 bbb 디렉터리로 이동
$ mv aa.txt aaa aa.txt 파일을 aaa 디렉터리로 이동

 

 

파일 복사
$ cp aa.txt a.txt aa.txt를 복사하여 a.txt 생성
#중복된 이름은 오버라이딩
$ cp -r aaa a aaa 디렉터리를 복사하여 a 디렉터리 생성

 

 

심볼릭링크 (바로가기) 생성
 $ ln -s 원본파일이름 복사파일이름 심볼릭링크 생성
 $ ln 원본파일이름 복사파일이름 하드링크 생성

 

 

디렉터리 이동
$ cd 이동 디렉터리
[ / ] root 디렉터리(최상위)를 의미
[ ~ ] home 디렉터리를 의미
[ ../ ] 현재 디렉터리의 부모 디렉터리를 의미
[ ./ ] 현재 디렉터리를 의미
[ - ] 이전 경로로 이동을 의미

 

 

현재 디렉터리 출력
$ pwd

 

 

파일 및 디렉터리 목록 출력
$ tree dir dir 디렉터리를 트리형태로 출력
$ tree -d dir dir 디렉터리만 출력
$ tree -f dir 디렉터리 전체경로 출력 
$ ls *txt txt확장자 파일 출력
$ ls -a 숨김파일 포함
$ ls -l 자세히 보여줌
$ ls | grep abc abc가 포함된 내용을 출력

 

해당 명령어($ls -l)를 이용하여 출력하면 아래와 같은 구조로 출력된다.

-rwxrwxrwx 1 root root 10 Dec 22 01:25 test.txt

 

위의 정보를 예시로 해당 행이 나타내는 정보는 다음과 같다.

파일유형 + 파일권한 링크수 소유자 그룹 크기 날짜 시간 파일명
-rwxrwxrwx 1 root root 10 Dec 22 01:25 test.txt

 

파일유형 및 파일 권한은 아래와 같이 4가지 파트로 구별된다.

파일유형 User  권한 Group 권한 Other 권한
일반 파일 (-), 디렉터리 (d), 특수파일(심볼릭(l), 블럭파일(b), 문자장치 (c) 등) r(Read), w(Write), x(eXecute)
# 불허는 -로 표기
r(Read), w(Write), x(eXecute)
# 불허는 -로 표기
r(Read), w(Write), x(eXecute)
# 불허는 -로 표기

 

탐색
$ grep [옵션] [패턴] [파일]

- n : 줄의 번호와 내용을 함께 출력.
- i : 대소문자를 구별하지 않음. 
- l : 문자가 들어간 파일 이름을 출력.
- r : 하위 디텍터리에서도 문자가 들어간 파일을 찾음.

$ grep -rnil 검색어 ./*     : 현재 디렉터리 이하의 모든 파일에서 검색어의 대소문자를 구별하지 않고 줄의 번호와 내용, 파일이름을 찾음.

 

 

파일 내용 출력
$ cat
$ more
# 스페이스: 다음 페이지, b: 이전 페이지, enter: 한줄 이동
$ less
$ head
$ tail -f 파일명 
: 파일의 업데이트 내용을 실시간으로 출력. 

 

 

파일 압축 및 압축해제 

# tar: 압축보다는 파일을 하나로 합쳐주는 도구. 

# tart.gz: tar을 gzip으로 압축해주는 도구.

$ tar -cvf [파일명.tar] [폴더명]  # tar 압축
$ tar -xvf [파일명.tar]  # tar 압축해제

$ tar -zcvf [파일명.tar.gz] [폴더명]  # tar.gz 압축
$ tar -zxvf [파일명.tar]  # tar.gz 압축해제

 

이전 명령어 인자값 전달

 !$ 키워드로 이전 명령어의 인자값을 전달할 수 있다. 

$ cd /etc/
$ ls !$  # 이전 명령어의 인자값 /etc/가 전달되면서 해당 경로의 목록을 보여준다.

2. 시스템 재부팅 및 종료

 

시스템 종료 / 리부팅
$ shutdown -h now 즉시 시스템 종료
$ shutdown -h 5 5분 뒤 시스템을 종료
$ shutdown -h 20:00 20시 00분에 시스템을 종료

$ shutdown -r now 즉시 시스템 재부팅
$ shutdown -r 5 5분 뒤 시스템 재부팅
$ shutdown -r 20:00 20시 00분에 시스템을 재부팅

$ shutdown -c 예약된 shutdown 명령을 취소
$ reboot  시스템 재부팅
$ reboot -f 시스템 강제 재부팅
$ halt 시스템 종료
$ halt -f 시스템 강제종료

 

 

사용자 로그아웃
$ logout

 

 

런레벨 실행(종료/재부팅)
$ init 0 시스템 종료
$ init 6
시스템 재부팅

 

 

셸 스크립트 종료
$ exit

 

 

반복문 실행 (Bash 기준)
$ while true; do ls -al; sleep 1; done

# 1초마다 ls -al 명령어를 실행. 
# 명령어로 while문 활용 가능.
# 상태변화 관찰에 유용함.  

 

 

별칭(alias) 설정
$ alias pd='pwd' # pwd 명령어를 pd로 별칭 지정
$ unalias pd      # pd 별칭을 삭제

# 영구적으로 지정하고 싶다면 홈디렉터리의 .bashrc 파일에 해당 내용을 추가한다. 

 

 

수정내용
  • [22.01.17] 최초작성
  • [22.02.07] 파일압축 내용추가
  • [22.02.10] 반복문, 별칭, cd 명령어 내용 추가
  • [22.02.16] tail, grep 내용 추가

 

 

※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.

 

 

* CopyRight 2022. Jay Park All rights reserved.

728x90
저작자표시 비영리 변경금지 (새창열림)

'System > Linux' 카테고리의 다른 글

[Linux] Rocky 8 방화벽(Firewall) 설정  (0) 2022.06.27
[Linux] SSH(Secure Shell) 포트변경  (0) 2022.05.27
[Linux] Vi(Vim) .vimrc 파일 수정을 통해 가독성을 높이는 방법  (0) 2022.01.13
[Liunx] Vi(Vim) 조작 명령어 모음  (0) 2022.01.12
[Linux] 리눅스 C/C++ 패키지 설치  (0) 2021.12.15
'System/Linux' 카테고리의 다른 글
  • [Linux] Rocky 8 방화벽(Firewall) 설정
  • [Linux] SSH(Secure Shell) 포트변경
  • [Linux] Vi(Vim) .vimrc 파일 수정을 통해 가독성을 높이는 방법
  • [Liunx] Vi(Vim) 조작 명령어 모음
dev.parkjh
dev.parkjh
Jay Blog. Github: https://github.com/GreatPark96
  • dev.parkjh
    0과 1을 공부하다.
    dev.parkjh
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • Profile (2)
      • Paper (6)
      • Column (3)
      • Project (8)
        • Smart Home (3)
        • 3D Printing (5)
      • Front-End (0)
        • Web (3)
      • Back-End (8)
        • API (1)
        • DB (1)
        • Laravel (4)
      • Language (16)
        • Kotlin (11)
        • C, C++ (3)
        • JAVA (0)
        • python (2)
      • System (28)
        • Server (15)
        • Security (1)
        • Network (1)
        • Linux (8)
        • Cloud (3)
      • ETC (34)
        • Book Recommend (Computer) (3)
        • IoT (7)
        • BlockChain (7)
        • ETC (17)
      • My YOLO (1)
      • Note (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    NAS HDD교체
    nas
    3D모델링
    Kotlin
    코틀린개발환경
    ai code review
    ncp container registry
    docker
    git
    데이터 직렬화 포맷
    kubernetes
    네이버클라우드
    github
    data serialization formats
    docker private register
    Notification
    coderabbit
    docker container
    ci/cd
    gitlab
    3D프린터
    Database
    리눅스 파일동기화
    3d프린터 초보
    work hour
    3D
    Jenkins
    3D프린터 입문
    linux job
    C언어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.parkjh
[Linux] 리눅스 명령어 (파일 및 디렉터리 관리 / 시스템 재부팅 및 종료)
상단으로

티스토리툴바