2020/10/01 - [프로그래밍/backend] - [Linux] 맥 터미널 꾸미기 + 리눅스 기본 단축키
지난 포스팅에서 맥 터미널 스킨을 이용해서 멋지게 꾸미는 법과 기본적인 단축키 몇가지를 알아 보았다.
이번 포스팅에서는 좀 더 심화적인 단축키와 어느 상황에서 사용하는지에 대해 적어보려고 한다.
터미널을 처음 사용하면 머리가 아프고 어지러운데, 개발을 하다보면 터미널과 익숙해져야 한다. 그리고 익숙해지기 위해서는 많이 사용을 해봐야 한다. 그럼 지금부터 쭉 한번 연습해보자.
단축키와 의미
위치 이동 / 폴더 내용 확인 / 파일, 폴더 생성 삭제 등 단축키는 위 링크를 통해 확인
● ls
ls 에 대한 얘기를 좀 해볼까 한다.
지난 포스팅에서 간단하게 얘기 했었는데 좀 더 자세히 알아본다.
ls
위 명령어를 입력하면 해당 위치에 있는 파일 및 폴더를 가로로 나열해준다.
다음과 같이 뒤에 -l 을 붙여주면 자세한 정보와 함께 나타내 준다.
ls -l
다음과 같이 뒤에 -a 를 붙여주면 숨김 파일까지 모두 보여준다. 앞에 .이 붙어 있는 파일이 숨겨진 파일이다.
ls -a
아래와 같이 두가지 조건을 붙여서 적을 수도 있다.
ls -al
● rwx 퍼미션
ls -l 을 입력 했을 때 앞에 나오는 괴상한 문자열에 대해 설명하고자 한다.
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 명령어를 통해 확인해보면 된다.
● 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
아래 그림과 같이 경로를 보여준다.
시스템 및 프로세스 관련
● 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
이정도 명령어만 알아도 리눅스를 이용한 왠만한 작업은 다 할 수 있다. 명령어와 조건들은 이보다도 훨씬 많지만 대충 이정도만 자유롭게 사용할 수 있어도 개발에 있어서 불편함 없이 사용할 수 있을 것이다.
'프로그래밍 > backend' 카테고리의 다른 글
[Linux] E: Unable to locate package python3-pip 오류 해결 (0) | 2020.10.09 |
---|---|
윈도우에서 리눅스 환경 구축하기 (0) | 2020.10.09 |
[linux] 맥(macOS) 터미널 크론탭(crontab) 실행 안될 때(Operation not permitted 에러) (0) | 2020.10.01 |
[Linux] 맥 터미널 꾸미기 + 리눅스 기본 단축키 (0) | 2020.10.01 |
[php] macOS php 파일이 텍스트로 인식 될 때 해결법(아파치-php 연결) (0) | 2020.09.29 |