기본 명령어
경로를 슬래시(/)로 구분 확장자 상관 없이 호출 가능 (리눅스는 확장자 개념이 없음) 대소문자 구분
| 명령어 | 설명 |
|---|---|
| ls | list, 윈도우 dir과 같음 |
| cd | change directory, 홈디렉터리로 이동 |
| pwd | present working directory, 현재 디렉터리 전체 경로 확인 |
| touch | 파일 생성 |
| cp | copy, 파일 복사 |
| rm | remove, 파일 삭제 |
| mv | move, 파일/디렉터리 이동 |
| mkdir | make directory, 새 디렉터리 생성 |
| rmdir | remove directory, (비어있는) 디렉터리 삭제 |
| cat | concatenate, 파일(들) 내용 순서대로 전체 출력 |
| head/tail | 텍스트 파일 앞/뒤 내용 출력 |
| file | 파일 종류(확장자) 출력 |
| clear | 명령창 내용 지우기 |
| history | 이전 수행 명령 출력 |
기본 명령어 사용
ls
ls [OPTION]
| 옵션 | 설명 |
|---|---|
| -al | all, 숨김 파일 포함 전체 목록 출력 |
| -l | long, 자세한 정보의 파일 목록 출력 |
| -S | size, 파일 크기 순 목록 출력 |
| -r | reverse, 파일명 알파벳 역순 목록 출력 |
| -R | recursive, 하위 디렉터리까지 출력 |
| -h | human, 파일 크기를 보기 좋게 정렬해 목록 출력 |
cd
cd [PATH]...
| 옵션 | 설명 |
|---|---|
| . | 현재 디렉터리 |
| .. | 상위 디렉터리 |
| / | 최상위 디렉터리 |
| ~ | 현재 사용자의 홈 디렉터리로 이동 |
| [PATH] | 원하는 경로를 지정해 이동 |
| - | 이전 경로로 이동 |
cat
cat [OPTION] [FILE] [FILE]...
| 옵션 | 설명 |
|---|---|
| -n | 모든 라인에 라인 번호 출력 |
| -b | 비어있지 않은 라인 번호 출력 |
| [FILE] > [FILE] | 파일 내용 합치기 |
| [FILE] | more | 파일 내용 페이지 단위로 출력 |
| *.txt | 특정 확장자 모든 파일 내용 출력 |
cp abc.txt zzz.txt # abc.txt 복사해 zzz.txt 생성
touch abc.txt # (크기가 0인) 새 파일 생성
# 위험 높은 파일명을 미리 생성해두어 보안성 향상 기능하기도 함
mv abc.txt zzz.txt #zzz.txt로 이름 변경/위치 이동
.abc.txt #숨김파일 설정
head /etc/systemd/bootchart.conf #bootchart.conf 내용 앞 10행 출력
tail -n 15 /etc/systemd/bootchart.conf #bootchart.conf 파일 뒤 15행 출력
file /etc/systemd/system.conf #system.conf 파일 유형 출력
tail -f /var/log/syslog # foreground 옵션
# (관제) 새로운 로그 실시간 출력 시 유용
clear # 명령창을 깨끗이 지움
사용자/그룹 명령어
기본정보 설정
| 명령어 | 설명 |
|---|---|
| adduser [USER] | 새로운 사용자 추가 |
| passwd [PWD] | 사용자 비밀번호 지정/변경 |
| usermod [ATTR] [OLD] [NEW] | 사용자 속성 변경 |
| userdel [USER] | 사용자 삭제 |
| chage [TIME] [USER] | 사용자 비밀번호 주기적으로 변경 설정 |
| groups | 현재 사용자의 그룹 조회 |
| groupadd [GROUP] | 그룹 생성 |
| groupmod [ATTR] [OLD] [NEW] | 그룹 속성 변경 |
| groupdel [GROUP] | 그룹 삭제 |
| gpasswd [PWD] | 그룹 암호 설정, 관리 |
파일 접근 설정
| 파일 유형 | 파일 허가권 | 링크 수 | 파일 소유자 | 파일 소유 그룹 | 파일 크기 | 최근 변경 일자 | 파일 이름 |
|---|---|---|---|---|---|---|---|
d 디렉터리- 일반 파일 s 소켓 파일 l 링크 파일 |
r(4) 읽기 w(2) 쓰기 x(1) 실행 |
| 명령어 | 설명 |
|---|---|
| chmod [user|group|other] [FILE] | 파일 허가권 변경 |
| chown/chgrp [FILE] | 파일 소유권 변경 |
패키지 관리 명령어
| 명령어 | 설명 |
|---|---|
| apt install [PKG] [-y] | [사용자 확인을 모두 y로 설정하고] 설치 |
| apt update | 패키지 목록 업데이트 |
| apt remove [PKG] | 특정 패키지 삭제 |
| apt autoremove | 사용하지 않는 패키지 제거 |
| apt clean | 내려받은 파일 제거 |
압축/해제 명령어
| 확장명 | 설명 |
|---|---|
| xz [FILE] | xz파일 압축(압축률 높음) |
| xz -d [FILE].xz | xz파일 압축 해제 |
| bzip2 [FILE] | bz2파일 압축(압축률 높음) |
| bzip2 -d [FILE].bz2 | bz2파일 압축 해제 |
| gzip [FILE] | gz파일 압축 |
| gzip -d [FILE].gz | gz파일 압축 해제 |
| zip [SAVE_AS].zip [FILE] | zip파일 압축 |
| unzip [FILE].zip | zip파일 압축 해제 |
| 명령어 | 동작 | 옵션 |
|---|---|---|
| tar | c (묶기) | f (파일) |
| x (풀기) | v (과정 보이기) | |
| t (경로확인) | J (xz파일로 묶기) | |
| j(bz2파일로 묶기) | ||
| z(gzip) |
작업 예약
cron
# 기본 구조
ss mm hh dd ww action
crontab -e # 예약
crontab -l # 예약 목록 확인
crontab -r # 모든 예약 취소
crontab -u user1 #user1이 등록한 예약 목록 확인
시간
| 의미 | 범위 |
|---|---|
| Seconds | 0~59 |
| Minutes | 0~59 |
| Hours | 0~23 |
| Day | 1~31 |
| Month | 1~12 / JAN~DEC |
| Week | 0~6 / SUN~SAT |
| Year | 1970~2099 |
특수문자
| 문자 | 설명 |
|---|---|
| * | all |
| ? | |
| [n]-[m] | between n and m |
| [n],[m] | n or m… |
| [n]/[m] | from n, every m |
| L | last |
| W | closest weekday |
| [n]#[m] | date m in week n |
at
at 3:00am tomorrow reboot #내일 오전 3시에 재부팅
at now + 1hours reboot #1시간 후 재부팅
at -l #예약 확인
atrm [job_num] #예약 취소
sleep
sleep 5: touch new.txt #5초 후 new.txt. 생성
사용자 접근 설정 실습
# user1 계정 추가
adduser user1
ls -altr
# 사용자 패스워드 12345 설정
passwd user1
12345
# /etc/passwd 파일을 내 디렉토리에 passwd.backup 파일로 복사
cd
pwd
cp /etc/passwd ./passwd.backup
ls -altr
# 복사한 파일을 아무도 읽을 수 없게 소유권 변경
chmod 000 ./passwd.backup
# 내 홈 디렉토리에 sysBackup 디렉토리 생성, passwd.backup 파일 옮기기
mkdir sysBackup
ls
mv passwd.backup ./sysBackup
# 로그인할 수 없도록 변경
vi /etc/passwd
user1: /usr/sbin/nologin
VI 에디터 명령어
파일 생성/열기
vi [FILE]
모드 변경
Command Mode
esc 입력시 작동
| 커서 이동 | 설명 |
|---|---|
h |
왼쪽 |
j |
위쪽 |
k |
아래쪽 |
l |
오른쪽 |
| H | 파일 최상단 |
| M | 파일 중간 |
| L | 파일 최하단 |
| 텍스트 다루기 | 설명 |
|---|---|
x |
현재 커서 위치 삭제 |
| X | 현재 커서의 앞 글자 삭제 |
| dd | 현재 행 전체 삭제 |
| [n] dd | 현재 행부터 n행 삭제 |
| yy | 현재 행 전체 복사 |
| [n] yy | 현재 행부터 n행 복사 |
| p | 현재 행 이후에 붙여넣기 |
| P | 현재 행 이전에 붙여넣기 |
Insert Mode
텍스트 입력 명령어 작성 시 작동
| 텍스트 입력 | 설명 |
|---|---|
| i | 현재 커서 위치 입력(입력모드로 전환) |
| I | 현재 행 맨 앞부터 입력(입력모드로 전환) |
| a | 현재 커서 뒤에 입력(입력모드로 전환) |
| A | 현재 행 맨 뒤에 입력(입력모드로 전환) |
Escape Mode
콜론(:) 입력 시 작동
| 작업 종료 | 설명 |
|---|---|
| w | 다른이름으로 저장 |
| w! | 덮어쓰고 강제 종료 |
| q | 종료 |
| q! | 저장 없이 종료 |
| wq | 저장 후 종료 |
| i | 취소 |
| 기타 명령어[^기타명령어] | 설명 |
|---|---|
| s/pattern | 특정 단어 찾기 |
| s/old/replace | 특정 단어 바꾸기 |
| [n]d | n번째 줄 삭제 |
| [n],[m]d | n~m번째 줄 삭제 |
| [n],[m] co $ | n~m번째 줄 복사 후 맨 뒤에 붙여넣기 |
| [n] mo [m] | n번째 줄 복사 후 m번째 줄 뒤로 이동 |