리눅스 공부를 하려고 찾다가 유튜브에서 강의 목록을 하나 찾았는데 뉴렉처라는 분이하는 강의였다. 예전에 자바 공부할 때 유튜브에서 이분 강의를 들었는데 좋았던 기억이 있어서 바로 눌러서 들으면서 공부를 시작했다. 딱 내가 하려는 목적에 맞게 개발할 때 필요한 수준의 리눅스를 가르치려한다고 해서 바로 쭉쭉 들었다. 먼저, 유닉스-리눅스로 이어지는 계보와 역사에 대해서 설명을 해주었다.
쭉 듣던중 계보얘기를 하다 이제 내가 아는 이름들인 데비안 계열의 Ubuntu와 레드햇계열인 CentOS가 나왔고 Virtual Box를 통해서 리눅스 설치를 진행했다. 강사분은 Oracle의 Virtual Box를 설치했지만 예전에 VMware가 더 편했던 기억이 있어 어차피 상관없겠지 하고 VMware로 진행했다.
우분투를 설치한 후 쉘의 명령어를 차근차근 따라했다.
제일 처음으로한 것은 파일을 보고, 만들고, 수정하는 작업이었다. 개발의 제일 기초이기도 한것같다.
배운 명령어는
ls : 현재 위치의 파일 리스트를 출력 (-l 옵션으로 상세히 출력가능)
touch : 파일 생성
pwd : 현재 디렉토리 위치 출력
그러고 나서 잘 모르던 리눅스의 루트파일에 있는 폴더들의 존재 이유에 대해 알게됬다.
그냥 OS 구조 파일들이 겠지 했던거를 Windows의 파일구조와 엮어서 설명해주니 알기 쉬웠다.
디스크를 마운트 시켜 사용하는 mnt 라는 폴더 (현재는 media로 갈아타는 추세이기도 하다고 한다.)
바탕화면과 기본 폴더들인 다운로드, 동영상, 문서 ... 등등인 /home/user/* 의 폴더들
윈도우 registry와 비슷한 기능인 etc, 실행파일을 두는 bin(binary)폴더, 어드민의 실행파일을 놓는
sbin(system binary) 폴더 등등... 알고나니 어색한 리눅스가 좀 친숙해지는 기분이다. ㅎㅎ
이후에는 파일 시스템을 위한 추가적인 기본 명령어를 배웠다.
mkdir : 디렉토리 생성
rmdir : 디렉토리 삭제 (rm -r도 된다.)
mv : 파일 이동 (같은 폴더내로 하면 이름변경이 된다.)
rm : 파일 삭제
cp : 파일 복사
이후에는 파일 편집기에 대해 배우는 시간이었는데 가장 기본이 되는 VI 편집기와 유용하게 자주 사용한다는 nano 편집기를 배웠다. (nano를 알고있긴했지만 그냥 vim 편집기를 썼었는데 이번에 쓰다보니 좀 편한거 같기도해서 갈아타보려고 한다.)
이후에는 쪼오오끔 난이도가 상승한 find와 grep 명령어를 배웠다.
맨날 블로그 같은데 포스팅을 보고 그대로 따라만 쳤는데 좀 다양한 옵션이랑 |(or)연산자를 막 섞어써서 알기가 조금 어려웠다.
find : 파일을 찾는 명령어 (권한을 줘야 폴더를 진입할 수 있기때문에 적절한 범위와 권한으로 찾기를 권장)
-name : 이름 추가 옵션 (*이나 ?로 패턴을 만들어 검색할 수 있다.)
-size : 파일의 크기를 기준으로 찾기 (+1은 기본단위인 512-byte 이상, 단위를 바꾸려면 c를 넣어서 1당 1바이트로 변경 가능)
ex) find . -name *.java -size +1c
cat : 안에 있는 내용을 확인 가능함
-head n : 다른거에서도 사용가능한데 출력을 앞에서부터 n개만 출력(tail로하면 뒤에서부터)
ex) cat Hello.java -head 5
grep : 파일 내부에서 검색하기 (띄워쓰기가 있으면 ""로 검색 문장을 감싸서 검색 문자열로 구분해줘야함)
-i : 대문자, 소문자 구분없이 검색
ex) grep "Hello Li" Hello.java
cmp : 두 개의 파일의 차이점을 출력 (바이트나 라인수)
diff : 차이나는 점을 문장을 출력해서 보여줌
file : 디렉토리인지 파일인지 모를때 무슨 파일인지 알려줌
'OS > Linux' 카테고리의 다른 글
리눅스 설치 (VMware) (0) | 2022.05.02 |
---|