Data Engineering/Bigdata Fundamentals

[LINUX] 리눅스 기본 명령어

qqprty 2024. 7. 9. 16:54

1. pwd, cd

pwd #현재 디렉토리
cd ~ #홈 디렉터리 이동
cd / #root 디렉터리로 이동
cd - #이전 폴더 
cd . #현재 위치 (새로고침)
cd .. #상위 디렉토리 
=> cd ../../ 두단계의 상위 디렉토리

 

2. ls (파일이나 디렉터리의 목록 출력)

ls
ls -l #상세 정보 함께 출력
ls -t #시간 순
ls -r #시간 역순
ls -a #숨겨진 파일도 출력

ls ba* => ba로 시작하는 파일목록 출력 (ba, bat, bash, basssssh 등) *는 임의의 문자열
ls ba?? => ba로 시작하는 4개인 글자 (bash, bast, baqe, bxwq 등) ?은 임의의 한 문장

 

3. mkdir 명령어

mkdir [옵션] <작성할 디렉터리 이름>
mkdir -p report/2021/05 #중첩 디렉터리 한번에 만들기

 

4. 파일 생성 / 삭제 / 복사 / 이동

touch <생성할 파일> #파일 만들기
=> touch newfile

rm [옵션] <삭제할 파일> #파일 삭제
=> rm -r <디렉터리이름> # 디렉터리 삭제

cat [옵션] <파일이름> #파일내용 출력

cp [옵션] <복사할 파일> <복사할 위치>
=> cp /home/oddsummer/ls.log /home/oddsummer/tmp/ls.log
=> cp -r #디렉터리 복사

mv [옵션] <이동할 파일> <이동할 위치>
=> mv file1 file2 file3 dir1

 

5. 리다이렉션( >, >>), head, tail 

touch b #파일 생성
echo "abc" > abc 
cat abc #cat 명령어 이용하여 열고, vi로 편집가능
view abc #주요한 파일, 편집 없이 보고싶을때

echo "내용" > 파일명 #내용 덮어쓰기
echo "내용" >> 파일명 #내용 추가하기

head / tail 명령어 -> 파일의 처음과 끝
tail -n N <파일> #마지막 N줄 출력 
tail -f <파일> #stream으로 읽기 때문에, 파일의 수정 추적

$ PS1="$ "

 

6. 그 외 명령어들

vimtutor ko #vim 튜토리얼 프로그램
cat <file> #파일 열람
history #최근사용 명령어 출력
chmod 000 <file> #파일 접근 권한 설정

vi <file> #vim을 이용하여 파일 열람, 수정
:q 종료
:q! 강제 종료
:wq 저장 후 종료

 

chmod 000 : 앞에서부터 각각 user, group, other 권한 의미, 숫자는 rwx (4/2/1) 합산

ex) chmod 700 : user에 대해 read, write, execute 권한 주어짐 rwx

chmod 001 : other에 대해 exercute 권한 주어짐 --x

 

7. grep 명령어

grep [옵션] <검색패턴> <파일이름>

grep -n PS1 /etc/bash.bashrc (행번호)
grep -i (대소문자 구별하지않고 검색)
grep -v (해당 문자열 제외 출력)

grep 't.st' example.txt
-> test, tfst, tzst 등의 문자열 출력

grep 't..st' example.txt
-> tzzst 문자열 출력

grep '.org' example.txt
-> borg.~ 랑 ~.org 출력됨 (.은 기호도 포함됨)
-> 임의의 문자가 아니라 점이라는 기호를 검색하고 싶으면 \. 사용

grep '\.org\ example.txt => ~.org 만 출력

 

8. 메타문

1. 특정문자 지정

grep 't[ef]st' example.txt => test or tfst (여러 문자중 하나 지정)
grep 'mail[1-4]' example.txt => mail1, mail3 (1-4중)
grep 'mail[^13]' example.txt => mail13 제외

2. 위치 지정
grep '^net' example.txt => net으로 시작하 문자열
grep 'net$' example.txt => net으로 끝나는 문자열

3. 반복지정

grep 'Be*r' drink.txt => e가 0번이상 반복된거 출력
Ber Beer BeerBeer Beeeeeeeeer!!! Br

grep '^B[ea]*r$' drink.txt
1) B로 시작하고
2) r로 끝나며
3) e나 a가 0번이상 반복하는 문자열 (모든 문자열)

4. 확장 정규 표현식

grep -E 'Be+r' drink.txt => e가 1회이상 반복
grep -E 'Wine ?Wine' drink.txt => 공백이 0회 혹은 1회
grep -E 'Be{n,m}r' drink.txt => e가 n이상 m이하 반복
grep -E '(Wine){2,}' drink.txt => Wine 단어(그룹)이 2회이상 반복
grep -E 'My (Vodka|Wine)' drink.txt => My Vodka 혹은 My Wine 검색
<정리>
* 0회이상
+ 1회이상
? 0혹은 1회
{m, n} m회이상 n회이하 반복
{m} m회 반복
{m,} m회 이상 
| or 조건
() 그룹

 

잘 정리되어있는 블로그

https://velog.io/@rbdus96/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%85%EB%A0%B9%EC%96%B4-cd