윈도우 사용자 리눅스 빨리 배우는 방법

2021. 12. 27. 12:30 컴퓨터/우분투·리눅스

리눅스에 빨리 익숙해지려면

꽤 오랫동안 MS 윈도우만 사용해 왔습니다. 애플 맥으로 바꾸고 싶었지만, 키보드가 윈도우 PC와 너무 달라서 엄두가 안 나네요. MS 윈도우와 애플 맥의 사용 방법이 많이 차이 나서 그렇다면 몰라도 기껏 키보드 때문이냐? 이해가 안 될 수 있겠습니다만, 제가 키보드에 민감하고 자판이 조금만 바뀌어도 한참을 애먹습니다.

타이핑을 많이 하는 직업이라 애플 맥에서 한영전환 방법과 Ctrl 키 조합만 생각하면 자신이 안 나네요. 무엇보다도 리얼포스 키보드를 사용할 수 없다는 것입니다!! 돈 때문은 아닙니다. 회사에서 맥을 바꾸어 주겠다고 몇 번이나 기회를 주었거든요. 지금도 유효합니다.

회사에서 바꾸어 준다고 하는데도 바꾸지는 않고 애플 맥을 가지고 있는 분을 부러워하기만 하고 있는데요, 엉뚱하게 리눅스를 사용하게 되었습니다. 업무 때문이라 어쩔 수 없이 싫든좋든 배워야 했는데요, 어우~ 사용하는 방법이나 환경이 윈도우와 달라도 너무 다르네요. 같은 인텔 PC에서 어쩜 이렇게 틀릴까요?

일단, 파일부터 어떻게 저장해야 하는지 혼란스럽습니다. 윈도우에서는 파일 탐색기로 C드라이브·D드라이브를 선택하고 그 안에 폴더를 찾아 들어가면 되는데, 리눅스는 도대체 C드라이브·D드라이브 이런 개념이 없어요. 뭐지? 나중에 조금 익숙해지고서야 영어 알파벳 C·D로 자동으로 인식되는 윈도우와는 달리 리눅스에서는 파티션에 따라 마운트한다는 개념을 알고서야 좀 이해가 되더군요.

머리가 둔해서 배움 속도가 느리기도 하지만, 한동안 윈도우와 비교하면서 많이 답답해했습니다. 윈도우에서는 이렇게 하면 간단한데, 윈도우는 알아서 해주는데 등 리눅스보다 윈도우가 더 훌륭하다는 것을 깨닫는 것이 리눅스를 배우는 과정이었습니다.

재미있는 것은 애플 맥이 유닉스 계열이라고 합니다. 정확히는 유닉스의 한 갈래인 BSD로 애플 맥을 만들었다고 하는데요, 그렇다면 애플 맥과 리눅스는 사촌지간입니다만, 환경이 달라도 너무 다릅니다. 일단 대하는 태도가 다릅니다. 리눅스도 화려한 GUI를 제공하는데도 키보드에 의존하는 터미널 시스템에 가깝다고 생각합니다. 리눅스도 멋진 윈도우 플랫폼을 제공하는데요 이렇게 생각하는 이유가 애플 맥은 개인 PC용 OS라고 한다면 리눅스는 서버용 OS로 많이 사용하기 때문인 것 같습니다.

MS 윈도우도 개인용 OS로 시작했습니다. 이후로 서버용이 필요하다고 해서 MS에서 따로 개인용과 서버용으로 나누어서 기능을 넣고 빼고 해서 구분해서 내놓기는 하지만, 오히려 마우스 사용이 많은 MS 윈도우와 애플 맥과 사촌지간처럼 보입니다.

왜 이런 말씀을 드리냐면 윈도우는 개인용 OS, 리눅스는 서버용 OS라는 구분부터 인정하는 것이 리눅스를 이해하는데 도움이 될 것이라고 생각하기 때문입니다. 리눅스를 배우면서 윈도우와 비교하지 않을 수 없고 또 비교하다 보면 도움도 됩니다만, 리눅스를 윈도우 식으로 생각하고 윈도우처럼 사용하려고 하면 너무 힘들어지고요, 윈도우처럼 사용하는 방법을 찾는 것은 괜한 시간 낭비가 됩니다.

리눅스를 개인용 PC OS로 사용하려면

업무용 PC를 마련하려고 하는데, 비용을 줄이기 위해서 윈도우 없이 PC를 구매했고 리눅스를 설치해서 사용하려고 한다면, 리눅스 학습보다는 윈도우 프로그램을 대용할 수 있는 리눅스 프로그램을 찾아서 활용하는 것이 빠릅니다. 기본적으로 프로그램을 설치하는 방법과 실행하는 방법 등 필요한 것만 검색해서 프로그램 실행 위주로 사용하는 것이죠.

대부분의 리눅스 책이 어려운 내부 구조를 일일이 다루고 리눅스 명령어를 설명합니다. 이것을 다 이해하고 리눅스를 사용하기에는 쉽지도 않고 지쳐 버리죠. 윈도우를 처음 사용했을 때를 생각한다면 윈도우 내부 속속히 학습하기보다는 당장 필요한 프로그램을 찾아서 실행했을 것입니다.

웹 브라우저를 실행해서 자료 검색하고 MS 오피스로 문서를 작성해서 인쇄를 했지, 윈도우 시스템 구성이 어쩌고, 파일 시스템은 어떻고, DOS 명령어부터 시작해서 명령창에 일일이 실행하면서 학습하지 않았을 것입니다.

즉, 윈도우에서 필요한 프로그램을 찾아서 작업했듯이 리눅스에서도 프로그램을 위주로 사용하면 됩니다. 다만, 리눅스는 훌륭한 시스템이지만, 개인용으로는 편한 OS가 못됩니다. 리눅스가 문제가 아니라 리눅스에서 완벽히 윈도우를 대용할 만한 프로그램이 없다는 것에 절망하게 될 것입니다.

오래전에 리눅스가 무료인 점을 이용해서 저렴한 개인용 PC가 나왔습니다만, 오래가지 못했습니다. MS 윈도우와 비슷한 프로그램, 비슷한 게임은 있지만, 만족도가 윈도우 프로그램과 게임만 못한 것이죠. 웹 브라우저만 사용한다면 모를까, 리눅스를 개인용 PC OS로 사용하는 것은 별로 권하고 싶지 않습니다.

리눅스 파일 시스템을 이해하는 것부터 시작

아마도 리눅스를 선택했다면 대부분 시스템을 개발하기 위해, 또는 서버를 운영하기 위함일 것입니다. 요즘 MS의 윈도우10은 많이 안정되었지만, 24시간 돌리는 시스템이나 서버는 역시 유닉스 계열의 OS가 안전하지요.

윈도우 개발자라면, 리눅스의 파일 시스템의 특성부터 이해하는 것이 리눅스에 익숙해지는데 도움이 매우 큽니다. MS 윈도우에서는 윈도우 탐색기만 실행해도 PC에 연결한 하드 디스크가 개별적으로 보이고 구별이 확실합니다. 그러나 리눅스에서는 하드 디스크의 장치 구별이 모호하게 보입니다.

윈도우 PC에 하드디스크 C와 D드라이브를 연결하고 C드라이브에 윈도우를 설치했습니다. 그러면 C드라이브 안에 Windows 파일과 사용자 마다 개인 영역이 따로 있고, 그 폴더 안에 내문서·바탕화면·사진·음악 폴더들이 들어갑니다. 그래서 C드라이브가 마스터처럼 보이죠. 여기에 D드라이브를 새로 PC에 연결한다고 해서 D드라이브가 C드라이브 안에 들어가지는 않습니다.

그러나 리눅스는 다릅니다. C드라이브에 리눅스를 설치하면 최상위에 루트 디렉터리가 있고 그 밑으로 C드라이브 모습은 보이지 않고 /home, /usr, /boot, / proc 등등 이상한 디렉터리가 잔뜩 생깁니다. 그래서 윈도우 사용자라면 루트 디렉터리(/)를 C드라이브로 생각합니다.

그런데 아닙니다. 물론 /home, /usr, /bin 등이 C드라이브에 설치되었다고 해도 루트 디렉터리(/)가 C드라이브가 아닙니다. 루트 디렉터리(/)는 가상의 디렉터리이고 C드라이브도 루트 디렉터리에 연결된 장치입니다. 다만, 윈도우의 C드라이브처럼 생각하기 쉽게 구분되지 않는 것일 뿐 C드라이브 안에 있는 /home, /usr, /bin 디렉터리 등이 루트 디렉터리(/)에 연결된 것입니다.

그렇다면 D드라이브를 하나 더 추가하면? 루트 디렉터리(/) 밑에 적당한 이름, 예를 들어서 /drive_d를 만들고 D드라이브의 파티션을 연결(마운트)합니다. C드라이브의 디렉터리를 연결하는 모습과 D드라이브를 연결한 모습이 같은 것이 이상하게 생각되나요? 디렉터리와 파티션이 같아?

디렉터리와 하드 디스크를 연결한 모습이 어떻게 같지? 이렇게 생각하면 MS 윈도우처럼 생각하는 것입니다. 하드 디스크와 디렉터리로 생각하지 말고 하드 디스크 내에 파티션을 디렉터리처럼 연결한다고 생각하는 것이 이해가 쉽습니다. 하드 디스크를 파티션을 두 개로 나누어서 /data_bank, /photo 이렇게 연결할 수 있습니다. 이렇게 리눅스와 연결하면 하드 디스크의 장치는 더욱 안 보입니다. 루트 디렉터리(/)에서 파일 내용을 확인하면 아래와 같이 보일 것입니다.

]$ ls -al
합계 136
drwxr-xr-x  27 root root  4096  4월 21  2020 .
drwxr-xr-x  27 root root  4096  4월 21  2020 ..
drwxr-xr-x   2 root root  4096  8월 28 22:36 bin
drwxr-xr-x   3 root root  4096 10월 20 22:04 boot
drwxr-xr-x  18 root root  3980 10월 20 22:10 dev
drwxr-xr-x  18 root root  3980 10월 20 22:10 data_bank
drwxr-xr-x 153 root root 12288 10월 20 22:10 etc
drwxr-xr-x   5 root root  4096  1월 17  2020 home
drwxr-xr-x   9 root root  4096 10월 20 22:03 opt
dr-xr-xr-x 221 root root     0 10월 21 02:02 proc
drwxr-xr-x  16 root root  4096  5월 28  2009 usr
drwxr-xr-x  16 root root  4096  5월 28  2009 utility
drwxr-xr-x  12 root root  4096 12월 13  2017 var

어떻습니까? C·D 드라이브로 구별돼서 보이나요? 리눅스 시스템과 빨리 친숙해지려면 윈도우와 다른 리눅스의 파일 시스템부터 이해하는 것이 좋습니다. MS 윈도우에서는 C·D드라이브가 명확히 보이지만, 리눅스에서는 장치를 어떻게 연결하느냐에 중점을 둡니다. 그래서 리눅스에서 C·D드라이브처럼 저장 장치로 찾기보다는 영역을 어떻게 연결해서(마운트해서) 사용하는 지를 따지는 것이 이해가 쉽습니다. 디렉터리도 크기를 정하지 않았을 뿐 파일을 저장하는 공간입니다.

터미널 명령과 친숙해야

시스템 개발이나 서버 운영에 리눅스를 사용한다면 무엇보다도 터미널에 익숙해져야 합니다. 그리고 터미널에서 실행할 수 있는 유용한 명령을 숙지해서 자유롭게 사용할 수 있어야 합니다. 요즘 리눅스는 깔끔한 그래픽 환경을 제공하고 갖공 관리 툴을 윈도우로 제공하지만, 프로그램 찾아서 실행하고 마우스 클릭하기보다는 터미널에서 키보드로 명령을 실행하는 것이 오히려 간편하고 빠릅니다.

터미널에서 자주 사용하는 유용한 명령 몇 가지를 소개합니다.

cd 디렉터리 이동
$ cd ~/temp
cat 파일 내용 출력
$ cat readme.txt
chgrp 파일 그룹 속성 변경
$ chgrp sudatv readme.txt
chown 파일 소유자 변경
$ chwon sudatv readme.txt
chmod 파일 접근 권한 변경
$ chmod 777 readme.txt
cp 파일 복사
$ cp readme.txt /tmp
move 파일 이동, 파일 이름 수정
$ mv readme.txt readme.doc
rm 파일 삭제
$ rm readme.txt
df 파일 시스템별 용량 출력
$ df -m
grep 문자열 패턴 검색
$ ls -al | greap *.txt
kill 프로세스 죽이기
$ kill 9999
ls 파일 목록 출력
$ ls -al
mkdir 디렉터리 만들기
$ mkdir new_dir
rmdir 디렉터리 삭제
$ rmdir new_dir
tar 압축 파일 만들거나 풀기
$ tar zcvf readme.tar.gz readme.txt
mount 장치를 시스템에 연결
$ mount -t nfs -o nolock 192.168.10.70:/nfs /mnt/nfs
umount 장치 연결 해제
$ umount /mnt/fns
ifconfig 네트워크 설정
$ ifconfig eth0 192.168.10.10 netmask 255.255.0.0
ping 상대 시스템 네트워크 연결 확인
$ ping 192.168.10.10
shutdown 시스템 종료
$ sudo shutdown -h now

이렇게 리눅스 파일 시스템을 이해하고 터미널에서 유용한 명령어 사용에 익숙해진다면 리눅스가 한결 쉽게 느껴질 것입니다.

이 댓글을 비밀 댓글로
  1. 포스팅 잘보고갑니다
    편안한 월요일 오후 보내세요 ^^
    • 모란들꽃님 감사합니다. 즐거운 한 주 되세요
      ^^