Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 3d프린터 초보
- gitlab
- docker
- 3D프린터
- 코틀린개발환경
- 3D 프린터 용어
- 3D프린터입문
- NAS HDD교체
- Kotlin
- 네이버클라우드
- Notification
- 3D프린터 입문
- kubernetes
- nas
- OnlineIDE
- Jenkins
- ci/cd
- 3D모델링
- linux job
- 데이터 직렬화 포맷
- docker container
- 리눅스 파일동기화
- 3D
- C언어
- octoprint
- Token인증방식
- github
- git
- data serialization formats
- IoTNetwork
Archives
- Today
- Total
0과 1을 공부하다.
[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
'Study > 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 |
Comments