본문으로 바로가기
728x90
반응형
SMALL

 

2020/10/01 - [프로그래밍/backend] - [Linux] 맥 터미널 꾸미기 + 리눅스 기본 단축키

 

[Linux] 맥 터미널 꾸미기 + 리눅스 기본 단축키

컴퓨터의 무림 고수처럼 보이기 위해서는 터미널과 친해져야 할 필요가 있다. 그래서 터미널을 예쁘게 꾸미는 방법과 터미널의 기본적인 단축키를 소개해볼까 한다. 1. 맥 터미널 꾸미기 맥을 ��

falaner.tistory.com

 

지난 포스팅에서 맥 터미널 스킨을 이용해서 멋지게 꾸미는 법과 기본적인 단축키 몇가지를 알아 보았다.

이번 포스팅에서는 좀 더 심화적인 단축키와 어느 상황에서 사용하는지에 대해 적어보려고 한다.

 

터미널을 처음 사용하면 머리가 아프고 어지러운데, 개발을 하다보면 터미널과 익숙해져야 한다. 그리고 익숙해지기 위해서는 많이 사용을 해봐야 한다. 그럼 지금부터 쭉 한번 연습해보자.

 

 

단축키와 의미

 

위치 이동 / 폴더 내용 확인 / 파일, 폴더 생성 삭제 등 단축키는 위 링크를 통해 확인

 

● ls

 

ls 에 대한 얘기를 좀 해볼까 한다.

지난 포스팅에서 간단하게 얘기 했었는데 좀 더 자세히 알아본다.

 

ls

위 명령어를 입력하면 해당 위치에 있는 파일 및 폴더를 가로로 나열해준다.

 

 

ls
ls

 

 

 

다음과 같이 뒤에 -l 을 붙여주면 자세한 정보와 함께 나타내 준다.

 

ls -l

 

ls -l
ls -l

 

 

 

다음과 같이 뒤에 -a 를 붙여주면 숨김 파일까지 모두 보여준다. 앞에 .이 붙어 있는 파일이 숨겨진 파일이다.

 

ls -a

 

 

ls -a
ls -a

 

 

아래와 같이 두가지 조건을 붙여서 적을 수도 있다.

 

ls -al

 

 

 

 


 

● rwx 퍼미션

 

ls -l 을 입력 했을 때 앞에 나오는 괴상한 문자열에 대해 설명하고자 한다.

rwx 퍼미션
rwx 퍼미션

rwxrwxrwx 여기에서 rwx가 나타내는 내용은 다음과 같다.

 

r:  읽기 권한

w: 쓰기 권한

x: 실행 권한

 

그리고 각각의 권한에 대해서 번호가 있는데 r 은 4, w 는 2, x 는 1이다.

맨 앞의 rwx는 User, 가운데 rwx는 group, 마지막 rwx는 other 권한을 나타낸다.

 

그래서 해당 파일이나 폴더의 User 읽기 쓰기 권한을 빼고 모든 권한을 없앤다고 한다면 

4+2, 0, 0, 즉 600이 된다.

 

아래와 같이 적는다.

chmod 600 test

 

아래처럼 나타나는 것을 볼 수 있다.

 

터미널
터미널

 

모든 권한을 주려고 한다면 777 을 적어주면 된다.

 

 


 

● 절대 위치, 상대 위치

 

/ 절대 위치 기능

./ 현재 위치

../ 현재위치 상위

~/ Home 위치 기준

 

/는 최상위 경로이다. 최상위 경로 기준에서 절대경로로 바탕화면의 mydir의 위치를 표현하기 위해서는

 

/Users/userdir/Desktop/mydir/

 

위와같이 적어준다.

 

내가 현재 mydir에 있다면 바탕화면은

../ 이 된다.

 

~/는 언제나 홈디렉토리를 나타낸다.

 

~/Desktop/mydir/

 

mydir 의 위치를 위와같이 표현할 수도 있다.

 

이 경로는 익숙해지면 아주 유용하다.

 

 


● mv / cp

 

mv는 파일이나 폴더를 이동하거나 파일이나 폴더의 이름을 바꿀 때 사용된다.

파일이나 폴더 모두 똑같이 작용한다.

 

mv "이름변경할파일" "바꿀이름" // mv myfile myfile2
mv "이동할파일" "이동할폴더" // mv myfile ~/Desktop/mydir
mv "이동할파일" "이동할폴더+변경할이름" // mv myfile ../myfile2

 

 

 

 

cp는 파일이나 폴더를 복사할 때 사용된다.

 

cp "복사할파일" "복사될파일" // cp myfile myfile2
cp "복사할파일" "복사될경로" // cp myfile ~/Desktop/mydir : 같은 이름으로 복사
cp "복사할파일" "복사될경로+변경할이름" // cp myfile ../myfile2 : 다른 이름으로 복사

 

한가지 중요한점은 cp는 mv와 다르게 폴더를 그대로 복사하는 것은 안된다는 점이다.

그럼 cp로 폴더를 복사할수 없나? 가능하다. 폴더 삭제하는것처럼 -r 을 붙여주면 된다.

 

폴더 복사

-r 을 붙이면 폴더 안의 모든 내용까지 카피된다.

cp -r "복사할폴더" "복사될폴더" // cp -r mydir mydir2
cp -r "복사할폴더" "복사될경로" // cp -r mydir ~/Desktop/ : 같은 이름으로 복사
cp -r "복사할폴더" "복사될폴더+변경할이름" // cp -r mydir ../mydir2 : 다른 이름으로 복사

 

 

 

● man

 

man 명령어는 뒤에 나올 명령어에 대한 매뉴얼을 보여준다.

 

man grep // grep 에 대한 사용법을 알려준다. 뒤에 붙을 옵션에 대한 설명도 해준다.

 

 

아래와 같이 자세한 사용법 및 설명서를 볼 수 있으니 어떤 명령어에 대한 상세한 사용법과 설명은 man 명령어를 통해 확인해보면 된다.

 

man
man

 

 

 

● cat

 

파일의 내용을 표준출력 해 주는 명령어이다.

 

 

아래와 같이 사용할 수 있다.

 

cat "파일명" // cat myfile

 

 

 

 

파일의 내용이 길 때에 모든 내용을 확인하고 싶으면 다음과 같이 사용하면 된다.

스페이스를 누르면 다음 화면을 볼 수 있다.

 

cat "파일명" | more  // cat myfile | more

 

 

 

아래와 같이 쳐주면 "파일명" 파일 안의 출력 내용을 aa.txt, bb.txt 파일로 저장해준다.

차이점은 > 을 하나만 쓰면 덮어쓰기, >> 두개 사용하면 원래 내용에 덮어 씌워준다.

 

cat "파일명" > aa.txt // cat myfile > aa.txt
cat "파일명" >> bb.txt // cat myfile >> bb.txt

 

 

 

 

아래 명령어는 파일 안의 모든 내용을 삭제해주는 명령어이다. 파일은 남겨두고 내용만 모두 지우고 싶을 때 사용하면 된다.

cat(띄어쓰기 유의) /dev/null > filename

 

cat /dev/null > filename

 

 

● head

 

head 명령어는 제일 첫줄부터 10줄정도를 출력해준다.

 

head "파일명" // head myfile

 

 

 

● tail

 

tail 명령어는 제일 마지막줄을 기준으로 위로 10줄정도를 출력해준다.

이 명령어는 에러 로그같은 것을 만들어서 최근에 무슨 문제가 찍혔는지 확인해 보거나 할 때 유용하게 사용할 수 있다.

 

tail "파일명" // head myfile

 

 

 

tail 명령어의 뒤에 -f 를 붙여주면 데이터가 추가되는 즉시 출력을 해 준다. 로그파일이 있을 때 그 로그파일에 trace를 걸어두고 사용할 수 있다.

 

tail -f "파일명" // head -f myfile

 

 

 

● grep

 

grep은 어떤 위치, 파일내부등에서 원하는 단어를 검색해준다.

 

grep "찾을문자" "파일명"  // grep txt myfile : myfile 파일에서 txt 가 포함된 줄을 찾아줌

 

 

다음과 같이 현재 폴더 혹은 특정 문자가 포함된 조건의 파일들에서 검색을 해 줄수도 있다.

 

grep "찾을문자" *  // grep txt * : 현재 위치에 있는 모든 파일에서 txt 가 포함된 줄을 찾아줌
grep "찾을문자" *.txt // grep apple *.txt : .txt로 끝나는 모든 파일에서 apple 찾아줌

 

 

 

grep 뒤에 -H 를 붙여주면 검색 결과 앞에 파일 이름도 같이 출력을 해 준다.

 

grep -H "찾을문자" "파일명"  // grep -H txt myfile

 

 

 

grep 뒤에 -w 옵션을 붙여주면 찾을 문자의 정확한 단어가 포함된 것만 검색해준다.

아래 명령어를 입력하면 txtabc는 검색결과에서 배제되고 정확히 txt 가 포함된 것만 출력을 해 준다.

 

grep -w "찾을문자" "파일명"  // grep -w txt myfile

 

 

 

● less

 

 

less는 파일의 내용을 출력해 준다. 파일의 내용을 읽기, 쓰기, 수정하게 도와주는 강력한 에디터인 vim 이 있다. 근데 이 vim 에디터는 파일을 불러서 쓰기 수정이 가능하기 때문에 트래픽도 크고 내용을 불러올 때 많은 리소스를 사용한다.

하지만 읽기만 하능하게 해 주는 것이 바로 less 이다. 빠져나올때는 q로 나오면 된다.

 

less "파일명"

 

 

 

● open

 

파일이나 폴더를 열어준다. 폴더명을 적으면 폴더가 오픈되고 파일명을 적으면 파일이 오픈된다.

 

open "파일명 혹은 폴더명"

 

 

● echo

 

폴더를 만듬과 동시에 안에 내용을 입력해준다.

">" 를 한개만 쓰면 덮어 쓰기

">>" 두개 쓰면 추가하기

 

echo hello world! > "파일명"

 

 

압축하기 / 압축해제하기

 

● tar

 

 

압축하기

 

파일 폴더 모두 상관 없다. 추가할 파일을 뒤에 계속 이어붙여도 되고, * 을 붙여서 모든 폴더의 내용을 압축할 수도 있다.

cvfz는 그냥 이해 할 필요 없이 항상 그대로 사용하면 된다.

tar cvfz filename.tar.gz "압축할파일1" "파일2" "파일3" 
// tar cvfz filename.tar.gz ./mydir ./myfile ./log.txt

 

 

압축해제

 

xvfz 뒤에 압축 해제할 파일을 적어주면 된다. xvfz는 그냥 이해 할 필요 없이 항상 그대로 사용하면 된다.

tar xvfz filename

 

 

 


 

 

 

 

● find

 

find 명령어는 검색을 해 주는 명령어인데 보통은 특정 명령어와 함께 붙여서 파일이나 폴더의 이름을 검색할 때 많이 사용이 된다.

아래와 같이 명령어를 입력하면 현재 폴더 및 하위 폴더에서 myfile 이라는 파일 이름을 가진 파일을 검색해준다.

 

find . -name "파일명" // find . -name myfile

 

 

 

 

● which

 

which는 명령어의 위치를 찾아주는 명령어이다.

예를들어 파이썬 파일을 실행해 주는 명령어인 python3 의 위치를 검색하고 싶을 때 아래와 같이 명령어를 사용하면 된다.

 

which python3

 

아래 그림과 같이 경로를 보여준다.

 

which
which

 

 

 

 


 

시스템 및 프로세스 관련

 

 

 

● top

 

cpu의 메모리를 확인할 수 있는 명령어이다.

 

top

 

 

 

● w/who

 

cpu의 사용률 및 현재 어떤 작업을 하고 있는지 확인할 수 있는 명령어이다.

 

w
who

 

 

 

● ping

 

특정 도메인의 핑 상태를 확인할 수 있는 명령어이다.

 

ping "도메인주소" // ping google.com

 

 

 

● ps

 

ps 현재 진행중인 프로세스를 나타내고 뒤에 -ef  혹은 aux 를 적은 후 파이프라인을 사용해 뒤에 단어를 치면 현재 진행되고 있는 프로세스중에서 apache가 포함된 프로세스를 검색해준다.

ps -ef | grep apache
ps aux | grep apache

 

 

 

● kill

 

위의 ps 명령어를 통해 프로세스 번호를 확인할 수 있고 그 프로세스 아이디를 종료하는 명령어이다.

-9를 붙여주면 강제로 종료한다는 의미이다.

 

kill -9 "프로세스아이디번호" // kill -9 1234

 

 

 

 

이정도 명령어만 알아도 리눅스를 이용한 왠만한 작업은 다 할 수 있다. 명령어와 조건들은 이보다도 훨씬 많지만 대충 이정도만 자유롭게 사용할 수 있어도 개발에 있어서 불편함 없이 사용할 수 있을 것이다.

 

 

 

728x90
반응형
LIST