쉽게 쉽게

리눅스 명령어 정리 본문

서버/리눅스

리눅스 명령어 정리

곱마2 2024. 3. 17. 19:00
반응형

1. 리눅스 기본 명령어

명령어 설명 사용예시
cd Change Directory의 약자로
디렉터리를 이동하는 명령
# cd /parents/test
test 디렉터리로 이동


# cd ..                   
바로 상위의 디렉터리로 이동

'..'은 현재 디렉터리의 부모 디렉터리를 의미
즉 parents 디렉터리로 이동
ls List의 약자로디렉터리(폴더)에 있는
파일의 목록을 나열하는 명령
옵션
-l :
 파일들을 나열할때 자세히 출력

-a : 경로안의 모든 파일을 나열(숨김파일도 포함)
-R : 위치한 디렉토리 하부 디렉토리의 파일까지 모두 출력
-h : 파일크기를 해석하기 편하게 출력
-r : 출력 결과를 내림차순으로 정렬
-t : 출력 결과를 파일이 수정된 시간을 기준으로 정렬

# ls -al
숨김파일을 포함하여 목록 자세히 출력

# ls -alRr
하위 디렉토리까지 숨김파일을 포함한 목록을
자세히 역순으로 출력 
pwd Print Working Directory의 약자로
현재 디렉터리의 경로를 화면에 표시
# pwd
현재 작업 중인 디렉터리의 경로를 출력
mv Move의 약자로
파일이나 디렉터리의 이름을 변경하거나 다른 디렉터리로 옮길 때 사용
# mv [디렉터리 or 파일(옮길대상)] [디렉터리(위치)]
디렉터리로 파일(디렉터리) 이동

# mv [a파일명] [b파일명]
a파일명을 b파일명으로 변경

옵션
-f : 파일이 이미 있어도 강제로 이동
-i : 파일이 이미 있는경우 덮어쓸지 여부를 물어봄
-u : 이동할 파일이 이미 있는 파일보다 최신일 경우만 이
-v : 파일 이동의 진행상태를 출
-b : 이동 위치에 파일이 있을경우 백업파일을 생성

# mv a.txt b.txt ddd           
a, b파일을 /ddd 디렉터리로 이동

# mv abc.txt www.txt           
→ abc.txt의 이름을 www.txt로 변경
mkdir Make Directory의 약자로 새로운 디렉터리를 생성
생성된 디렉터리는 명령을 실행한
사용자의 소유가 된다.
# mkdir abc           
현재 디렉터리에 /abc 이름의 디렉터리 생성

# mkdir -p /a/b    
/a/b 디렉터리를 생성.
만약
/a 부모디렉터리가 없다면 자동 생성(p는 Parents의 약자)
rm Remove의 약자로 파일이나
디렉터리를 삭제
#rm [옵션][디렉터리 or 파일]

옵션
-f :
 강제로 파일이나 디렉토리를 삭제하고 대상이 없는 경우에는 메시지를 출력하지 않는다.
-r :
 디렉토리 내부의 모든 내용을 삭제

-d : 비어있는 디렉토리들만 제거
-i : 매번 삭제할때마다 사용자에게 삭제할것인지 질문
-l : 3개의 이상의 파일을 삭제하거나 디렉토리 내부가 비어있지 않을때만 삭제할것인지 질문
-v : 삭제되는 대상의 정보를 출력

# rm abc.txt     
해당 파일을 삭제

# rm -i abc.txt   
삭제 시 정말 삭제할 지 확인하는 메시지를 표시

# rm -f abc.txt   
삭제 시 확인하지 않고 바로 삭제

# rm -r abc
해당 디렉터리를 삭제

# rm -rf abc     
abc 디렉터리와
하위 디렉터리를 강제로 전부 삭제
cp Copy의 약자로 파일이나
디렉터리를 복사
#cp [옵션][디렉터리 or 파일(복사대상)][디렉터리 or 파일]

옵션
-i : 파일의 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 질문
-b : 파일의 이름이 이미 존재할 경우, 백업파일을 생성
-f : 파일의 이름이 이미 존재 할 경우, 강제로 덮어쓰기
-r : 하위 디렉토리 까지 모두 복사
-a : 원본 파일의 속성, 링크 정보까지 모두 복사
-p : 원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사
-v : 복사 진행 상태를 출력

# cp a.txt b.txt
현재 디렉터리에 있는 a.txt 파일을 b.txt 이름으로 현 위치에 복사

# cp /a/b/a.txt /c/d/b.txt 
/a/b에 있는 a.txt 파일을 b.txt 이름으로 /c/d에 복사
find 파일, 디렉토리 검색 find [옵션] [경로] [표현식]

옵션
-P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.

-L : 심볼릭 링크에 연결된 파일 정보 사용.
-D : 디버그 메시지 출력.

표현식
name : 해당 이름의 파일을 찾음. 

type : 지정된 파일 타입에 해당하는 파일 검색
user : 해당 유저에게 속한 파일 검색
empty : 빈 디렉토리 혹은 크기가 0인 파일 검색

# find . -name "*abc*"
현재 디렉토리에서 abc가 포함되는 파일찾기

# find . -name "*.txt"
현재 디렉토리에서 .txt 확장자 모두 찾기

# find . -name "abc*"
현재 디렉토리에서 abc로 시작하는 파일찾기

# find . -name "*abc"
현재 디렉토리에서 abc로 끝나는 파일찾기
tail 파일 마지막 부분을 출력
옵션없이 쓰면 파일의 마지막
10줄을 확인할 수 있다.

tail [옵션][파일명]

옵션
-f : tail을 종료하지 않고 파일의 업데이트 내용을 실시간으로 계속 출력

-n (라인 수) : 파일의 마지막줄부터 지정한 라인수까지의 내용을 출력

# tail -f a.log

a로그 파일을 실시간으로 보기 
grep 특정 문자열을 찾을 때 사용
 tail 명령어나 find 명령어 등
다양한 명령어들과 함께 사용

grep [옵션][패턴][파일명]

옵션
-c : 일치하는 행의 수를 출력
-i : 대소문자를 구별하지 않음
-v : 일치하지 않는 행만 출력
-n : 포함된 행의 번호를 함께 출력
-l : 패턴이 포함된 파일의 이름을 출력
-w : 단어와 일치하는 행만 출력
-x : 라인과 일치하는 행만 출력
-r : 하위 디렉토리를 포함한 모든 파일에서 검색
-m 숫자 : 최대로 표시될 수 있는 결과를 제한
-E : 찾을 패턴을 정규 표현식으로 찾음
-F : 찾을 패턴을 문자열로 찾음

# 특정 파일에서 'error' 문자열 찾기
grep 'error' 파일명

# 여러개의 파일에서 'error' 문자열 찾기
grep 'error' 파일명1 파일명2

# 현재 디렉토리에 있는 모든 파일에서 'error' 문자열 찾기
grep 'error' *

# 특정 확장자를 가진 모든 파일에서 'error' 문자열 찾기
grep 'error' *.log

사용예시
패턴

특정 문자열을 찾을 수 있는 기능(정규식)

# 특정 파일에서 문자열이 포함된 행을 찾는다.

grep '^[ab]' 파일명 

# 특정 파일에서 a로 시작하는 모든 단어를 찾는다.
grep 'a*' 파일명 

# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어를 찾는다.
grep 'a...z' 파일명 

# 특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep [a-c] 파일명

# 특정 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.
grep [aA]pple 파일명 

# 특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep '^[ab]' 파일명 

# 특정 파일에서 apple로 시작되고 0나 9의 숫자로 끝나로 시작되는 모든 행을 찾는다.
grep 'apple'[0-9] 파일명

최대 검색 결과 제한하기
grep -m 100 'Apple' mylog.txt

grep 한 결과 값 txt 파일로 저장하기
grep -n 'Apple' mylog.txt > result.txt

실시간 로그 보기 (tail + grep)
tail -f mylog.log | grep '100'

특정 파일에서 여러개 문자열 찾기
cat mylog.txt | grep 'Apple' | grep 'Banana'

2. vi 명령어

vi는 빌 조이가 만든 UNIX계열 환경에서 가장 많이 쓰이는 오픈 소스 문서 편집기로

한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 'Visual Editor' 라는 뜻

 

vim은 'VI Improved' 즉, 향상된 vi를 의미하는데, vi의 경우 간결한 텍스트 편집기능만을 제공하는 반면에

VIM은 확장된 정규 표현식 문법, 문법 강조기능, 다중 되돌리기 등 vi보다 확장된 기능을 제공

대다수의 UNIX와 LINUX 배포판의 경우 vim이 설치되어 있는 것을 볼 수 있는데, 이는 내부적으로 vi를 alias 설정하여 vi를 열어도 vim이 열리도록 세팅되어있다.

1. 일반 모드

화살표 이동이나 특정 문자 수정/삭제 및 편집에 쓰이는 대부분의 명령어가 여기서 실행

esc 눌렀을 때 또는 vi에 들어갔을 때 초기상태로 엔터를 치지 않아도 명령이 들어간다.

명령어 설명
i 커서 위치에 입력가능 (입력모드로 전환) 
a 커서 바로 다음위치에 입력가능 (입력모드로 전환) 
o 현재 줄 다음 위치에 입력가능 (입력모드로 전환)
x 글자 1개 삭제. (5x : 문자 5개 삭제)
dw 단어 삭제
dd 한 줄 삭제(잘라내기)
(숫자)dd: 숫자행만큼 삭제
단 삭제가 되는 것 처럼 보이지만 버퍼에 들어가 있기 때문에 p를 이용해서 복구가능
u 되돌리기(ctrl + z)
yy 현재 줄을 버퍼로 복사 (5yy : 5줄 복사)
p 버퍼 내용 붙여넣기 (ctrl + v)
G 파일의 끝으로 이동.
( 현재 문장의 처음
) 현재 문장의 끝
{ 현재 문단의 처음
} 현재 문단의 끝
cc  커서가 있는 그 줄의 내용 변경

 

2. 입력 모드

일반 모드에서 i(현 커서 위치에서 입력모드), a(현 커서 한 칸 뒤에서 입력모드), o(한 줄 추가 후 입력모드)등을 입력했을 때 자동으로 들어가는 모드로, 이 상태에서만 텍스트 입력이 가능하다.

 

3. 명령 모드(콜론 모드)

시스템과 관련된 부분을 담당하는 모드

i(현 커서 위치에서 입력모드), a(현 커서 한 칸 뒤에서 입력모드), o(한 줄 추가 후 입력모드)등을 입력했을 때

일반 모드에서 :(콜론)을 누르면 되며 뒤에 느낌표를 붙이면 강제 명령으로 실행된다.

명령어 설명
w 파일 저장
w [파일명] 입력한 파일명으로 파일 저장
q  vi 종료 (저장 x)
q!  vi 강제 종료 ( ! 가 붙으면 강제로 수행)
wq 저장 후 종료 
wq!  강제 저장 후 종료 ( ! 가 붙으면 강제로 수행) 
f [파일명] 파일이름을 [파일명]으로 변경
숫자  해당 라인으로 이동
$ 파일의 맨 끝 줄로 이동 
e! 마지막 저장 이후 모든 편집 취소 
/문자열 커서 위치에서부터 파일 앞쪽으로 문자열 탐색
?문자열 커서 위치에서 부터 파일 뒤쪽으로 문자열 탐색 
set nu
set nonu
vi 라인 번호 출력
 vi 라인 번호 출력 취소 

 

참고

https://blockdmask.tistory.com/25

 

[vi 명령어] vi 명령어 정리

[리눅스나 유닉스에서 사용하는 vi 편집기 명령어 총 정리 입니다.] 1. vi 편집기 명령어 전체 구조 살펴보기 2. vi 명령어 총정리 (자주 사용하는 것은 색으로 표시)3. 제가 진짜로 사용하는 vi 알짜

blockdmask.tistory.com

https://danielit.tistory.com/15

 

📖VI 에디터 & 명령어의 모든 것

📌vi 에디터란? - vi는 빌 조이가 만든 UNIX계열 환경에서 가장 많이쓰이는 오픈 소스 문서 편집기로 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 'Visual Editor' 라는 뜻에서 유래

danielit.tistory.com

https://coding-factory.tistory.com/802

 

[Linux] 리눅스 grep 명령어 사용법 (파일 내 특정 문자열 찾기)

리눅스 grep명령어는 로그파일이나, 텍스트 파일에서 특정 문자열을 찾을 때 사용하며 tail 명령어나 find 명령어등 다양한 명령어들과 함께 사용하여 로그 파일에서 실시간으로 특정 문자열을 찾

coding-factory.tistory.com

잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.

 

반응형

'서버 > 리눅스' 카테고리의 다른 글

리눅스 서버시간 확인 및 변경  (1) 2024.05.28
리눅스로 DB 계정 생성  (1) 2024.01.10
리눅스  (1) 2023.04.25