리눅스 : 커널 & 애플리케이션으로 구성
커널(Kernal) : 운영체제의 핵심
- 하드웨어 관리 : 메모리 관리, 프로세스 관리, 파일 시스템 관리, 입출력(I/O) 관리, 프로세스 간 통신(IPC) 관리
- 어플리케이션이 커널을 통해 하드웨어를 제어할 수 있도록 하는 시스템 콜(system call) 제공
시스템 콜의 예: open, read, write, stat, unlink - 하드웨어를 제어하는데 사용되는 프로그램인 디바이스 드라이버를 포함
애플리케이션
쉘(shell) : 애플리케이션의 명령을 해석하는 명령어 해석기
ex) Bash, Zsh, Fish

- 파일: 일반 파일, 디렉토리, 디바이스도 파일로 취급
- 스트림: 데이터의 흐름
- 프로세스: 프로세서(CPU)를 사용하여 실행중인 프로그램
리눅스 명령어
man 명령어 : 리눅스 명령어 찾기 도움말
→ man [Section number] command
Section | Content |
1 | 쉘 명령어 & 유틸리티 |
2 | 시스템 콜 |
3 | 라이브러리 함수 |
which 명령어 : 명령어의 위치 표시
which java
whereis 명령어 : 명령어 위치, 명령어와 관련된 설정 및 소스파일 ... 표시
whereis java
data 명령어 : 현재 날짜 & 시간 표시
date
clear 명령어 : 화면 지우기
clear
history 명령어 : 실행했던 명령어 표시
history
history를 통해 특정 명령어 선택
!! //가장 최근 명령어 실행
!number //number에 해당하는 명령어 실행
password 명령어 : user pw 변경
password
whoami 명령어 : 사용자 이름 표시 (= echo %User)
hostname 명령어 : 호스트 이름 표시
whoami
echo $User
hostname
sudo 명령어 : 관리자 권한으로 명령어 실행
sudo 명령어
시스템 종료 및 재부팅 명령어
halt //시스템 종료
poweroff //시스템 종료
shutdown //1분 후 시스템 종료
shutdown -c //shutdown 명령 취소
reboot //시스템 재부팅
du 명령어 : 디렉토리와 하위 디렉토리의 디스크 사용량 확인
du 디렉토리
- '-h' 옵션 : 파일크기를 (K, M, G) 단위로 바꿔줌
- '-s' 옵션 : 선택한 디렉토리만 사용량 확인
cd 명령어
cd 디렉토리
. | 현재 위치 |
.. | 상위 디렉토리 |
~ | 홈 디렉토리 |
- | 이전 디렉토리 |
※ 참고 : intellij에서 절대경로 찾는 단축키 (Command + Shift + C)
디렉토리 클릭 → (Command + Shift + C) → terminal → cd + (Command + V)
echo 명령어 : 홈 디렉토리 확인
echo $HOME
pwd 명령어 : 현재 위치 경로 표시
pwd
mkdir 명령어 : 디렉토리 생성
mkdir 디렉토리
- '-p'옵션 : 하위 디렉토리까지 생성
rmdir 명령어 : 디렉토리 삭제
rm 명령어 : 파일 삭제
rmdir 디렉토리
- 'rm -rf'옵션 : 디렉토리와 그 하위 디렉토리까지 삭제
ls 명령어
ls [옵션] [파일 or 디렉토리]
option | content |
-l | 파일 속성 출력 |
-a | 숨긴 파일 출력 |
-h | 파일 크기 (K, M, G) 단위로 출력 |
-r | 역순 출력 |
-t | 마지막 변경 날짜 순 출력 |
-F | 실행파일(*), 디렉토리(/), 심볼릭 링크(@) 각각 끝에 추가 |
-R | 해당 디렉토리 및 하위 디렉토리 모두 출력 |
파일 종류
character | content |
- | 일반 파일 |
b | 블록 디바이스 파일 |
c | 문자 디바이스 파일 |
d | 디렉토리 |
l | 심볼릭 링크 파일 |
p or = | named pipe |
s | 유닉스 도메인 소켓 |
권한
character | 권한 | 8진수 | 2진수 |
r | read | 4 | 100 |
w | write | 2 | 010 |
x | execution | 1 | 001 |
- | 없음 | 0 | 000 |
chmod 명령어 : 권한 설정
chmod 퍼미션 파일 or 디렉토리
ex. chmod 777 test.txt
chown 명령어 : 파일 소유자와 소유그륩 설정
chown 소유자 파일
chown :소유그룹 파일
chown 소유자:소유그룹 파일
chgrp 명령어 : 파일 소유그룹 설정
chgrp 소유그룹 파일
touch 명령어 : 크기 0인 파일 생성
touch 파일명
cp 명령어 : 파일 복사
cp 원본파일 복사 위치(디렉토리)
다른 이름으로 복사
cp test.txt test/test2.txt
- '-r' 옵션 : 디렉토리 복사
mv 명령어 : 파일 및 디렉토리 이동
mv 파일 이동할 디렉토리
파일명 변경
mv test.txt rename.txt
cat 명령어 : 파일 내용 화면에 출력
cat 파일
more 명령어 : 파일 내용 한 화면씩 출력
more 파일
- enter 키 : 한 줄씩 넘김
- space 키 : 다음 장
head 명령어 : 파일의 처음 n줄 출력
head -n 파일
ex) head -5 test.txt
tail 명령어 : 파일의 마지막 n줄 출력
tail -n 파일
ex. tail -5 test.txt
'-f' 옵션 : 실시간으로 파일 내용 출력
tail -f 파일
grep 명령어 : 파일 내 검색어 검색
grep 검색어 파일
ex. grep hello test.txt
- '-r' 옵션 : 하위 디렉토리까지 검색
- '-n' 옵션 :검색어가 있는 행번호 출력
find 명령어 : 파일 검색
find 검색 위치 -name 찾고자 하는 파일명
ex. find ~/ -name test.txt
명령어 >> 명령어 : 출력 방향 (모니터 → 파일)
//파일 목록을 test.txt 안에 저장
ls >> test.txt
- 이미 파일 존재하면 뒤에 내용 추가됨
명령어 > 명령어
- '명령어 >> 명령어' 와 비슷함
- 이미 파일이 존재하면 지우고 덮어씀
명령어 < 명령어 : 입력 방향 (키보드 → 파일)
명령어 | 명령어 : pipe
ls -arlth | more
파일 묶음
tar -cvf test.tar text
파일 묶음 해제
tar -xvf test.tar
파일 압축 & 압축 해제
zip -r test.zip test //test 디렉토리를 test.zip으로 압축
unzip test.zip //test,zip 압축해제
'CS > Linux' 카테고리의 다른 글
Process & Signal (0) | 2023.08.29 |
---|---|
디렉토리 관리 관련 함수 (0) | 2023.08.29 |
파일 관리 관련 함수 (0) | 2023.08.29 |
Func (File System & File Input/Output) (0) | 2023.08.29 |
텍스트 에디터(vi) (0) | 2023.08.28 |