일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오버라이딩
- spring security
- 멀티프로세싱
- 오블완
- java
- 자바의 정석
- 다형성
- 붕대 감기
- 멀티태스킹
- hackerrank
- continue 사용법
- 리눅스
- 붕대 감기 자바
- 프로그래머스 붕대 감기
- SQL Mapper
- over()
- 혼공얄코
- 쿠키
- break 사용법
- 프로그래머스
- CPU
- 오버로딩
- spring security 설정
- 캡슐화
- 티스토리챌린지
- 입출력
- 중첩 break
- contiune
- 자바의정석
- 객체지향
- Today
- Total
쉽게 쉽게
리눅스 명령어 정리 본문
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 란?
vi는 빌 조이가 만든 UNIX계열 환경에서 가장 많이 쓰이는 오픈 소스 문서 편집기로
한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 'Visual Editor' 라는 뜻
vi와 vim의 차이?
vim은 'VI Improved' 즉, 향상된 vi를 의미하는데, vi의 경우 간결한 텍스트 편집기능만을 제공하는 반면에
VIM은 확장된 정규 표현식 문법, 문법 강조기능, 다중 되돌리기 등 vi보다 확장된 기능을 제공
대다수의 UNIX와 LINUX 배포판의 경우 vim이 설치되어 있는 것을 볼 수 있는데, 이는 내부적으로 vi를 alias 설정하여 vi를 열어도 vim이 열리도록 세팅되어있다.
vi 에디터의 3가지 모드
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
https://danielit.tistory.com/15
https://coding-factory.tistory.com/802
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
'서버 > 리눅스' 카테고리의 다른 글
리눅스 서버시간 확인 및 변경 (1) | 2024.05.28 |
---|---|
리눅스로 DB 계정 생성 (1) | 2024.01.10 |
리눅스 (1) | 2023.04.25 |