1. 리눅스란?
리눅스는 유닉스(Unix) 기반의 오픈소스 운영체제로, 서버, 데스크탑, 임베디드 시스템 등 다양한 환경에서 사용됩니다. 다중 사용자와 멀티태스킹을 지원하며, 커널을 중심으로 다양한 배포판이 존재합니다. 리눅스는 높은 안정성과 보안성을 제공하여 다양한 시스템에서 널리 활용됩니다.
2. 우분투와 PuTTY의 역할
우분투(Ubuntu)는 리눅스 배포판 중 하나로, 사용자 친화적인 인터페이스와 쉬운 설치 과정을 제공하여 리눅스 입문자에게 적합합니다. 주로 서버와 데스크탑 환경에서 사용되며, 광범위한 커뮤니티와 풍부한 패키지를 제공합니다. PuTTY는 윈도우에서 SSH, Telnet, SCP 프로토콜을 통해 리눅스 서버에 원격 접속할 수 있는 무료 터미널 에뮬레이터입니다. 이를 통해 우분투 서버에 접속하여 명령어를 실행하거나 서버를 관리할 수 있습니다.
3. 디렉터리 명령어
pwd: 현재 작업 중인 디렉터리의 경로를 출력합니다.
cd [경로]: 지정한 디렉터리로 이동합니다.
ls: 디렉터리 내 파일 목록을 출력합니다.
ls -a: 숨김 파일 포함 출력
ls -d: 디렉터리 자체 정보 출력
ls -i: inode 번호 출력
ls -A: . 및 .. 제외한 파일 목록 출력
ls -F: 파일 종류 표시 (*: 실행파일, /: 디렉터리 등)
ls -L: 심볼릭 링크의 원본 정보 출력
ls -R: 하위 디렉터리까지 출력
mkdir [디렉터리명]: 새 디렉터리 생성
mkdir -p [경로]: 상위 디렉터리가 없으면 자동 생성
rmdir [디렉터리명]: 빈 디렉터리 삭제
rmdir -p: 상위 빈 디렉터리도 함께 삭제
4. 파일 관련 명령어
cat [파일명]: 파일 내용 출력
cat -n: 행 번호와 함께 출력
more [파일명]: 한 화면씩 출력
more +[행번호]: 특정 행부터 출력
less [파일명]: 한 화면씩 출력하며 탐색 가능
j: 아래, k: 위로 이동, /문자열: 검색
head -n [숫자] [파일명]: 처음 n줄 출력
tail -n [숫자] [파일명]: 마지막 n줄 출력
tail -n +[숫자]: 지정한 행부터 출력
tail -f: 실시간 모니터링
cp [원본] [대상]: 파일 복사
cp -i: 덮어쓰기 여부 확인
cp -r: 디렉터리 복사
rm [파일명]: 파일 삭제
rm -i: 삭제 여부 확인
ln [원본] [링크명]: 하드 링크 생성
ln -s [원본] [링크명]: 심볼릭 링크 생성
touch [파일명]: 빈 파일 생성
grep [옵션] [패턴] [파일명]: 파일에서 패턴 검색
-i: 대소문자 구분 없이 검색
-l: 패턴이 포함된 파일명 출력
-n: 행 번호 출력
find [경로] [조건] [동작]: 파일 검색
find . -name “*.txt”: 현재 경로에서 txt 파일 검색
find /home -type f -name “file.txt”: 특정 파일 검색
find . -type f -exec rm {} \;: 검색된 파일 삭제
whereis [명령어]: 명령어의 위치 출력
which [명령어]: 명령어가 실행되는 경로 출력
5. 문서 편집 명령어 (vi)
파일 열기 및 종료
vi [파일명]: 파일 열기
:q: 종료, :q!: 강제 종료
:w: 저장, :wq: 저장 후 종료, :wq!: 강제 저장 후 종료
입력 모드 전환
i: 현재 위치에 입력
I: 현재 행 처음에 입력
a: 현재 위치 다음에 입력
A: 현재 행 끝에 입력
커서 이동
hjkl: 왼쪽, 아래, 위, 오른쪽 이동
w: 다음 단어로 이동
b: 이전 단어로 이동
G: 마지막 행으로 이동
[n]G: n번째 행으로 이동
내용 삭제
x: 한 글자 삭제
dd: 한 행 삭제
[n]dd: n행 삭제
복사 및 붙여넣기
yy: 한 행 복사
[n]yy: n행 복사
p: 현재 커서 아래에 붙여넣기
P: 현재 커서 위에 붙여넣기
검색 및 치환
/문자열: 문자열을 아래로 검색
?문자열: 문자열을 위로 검색
n: 다음 검색 결과로 이동
N: 이전 검색 결과로 이동
:%s/old/new/g: 전체 파일에서 문자열 치환
외부 명령 실행
:! [명령어]: vi를 종료하지 않고 외부 명령 실행
환경 설정
:set nu: 행 번호 표시
:set nonu: 행 번호 표시 해제
:set showmode: 현재 모드 표시
:set noshowmode: 모드 표시 해제