새로운 OS에 익숙해지는 것은 쉬운 일이 아닙니다. 그러나 개발을 위해 선택한 OS는 작업 공간인 만큼 친숙해질 필요가 있습니다. 그러나 Microsoft 사의 OS만 사용해 오던 저로서는 리눅스와 친해지는 것은 정말 쉽지 않더군요.

 

또한, 작업하다보면 막히는 경우가 매우 많은데, 책이나 웹에 의존하게 됩니다. 책은 너무 방대하기 때문에 웹에 더 의존하게 되는데요, 어렵게 웹 검색해서 알아낸다고 하더라도, 이것을 어떻게 처리 해야 할 지 당혹스러울 때가 많습니다.

결론적으로 말씀드린다면 리눅스의 쉘 모드와 친해질 필요가 있습니다. 또한 리눅스 책이나 웹에서 리눅의 기본 명령어를 다는 모르더라도 어떤 것이 있는지 죽 보아 두신다면 도움이 매우 큽니다.

 

이 글에 함께 올려진 동영상을 꼭 한번 봐주십시오. 많은 내용은 담지 못했지만 쉘모드에서 기본 명령어 사용의 필요성을 느끼실 수 있으리라 생각됩니다.

기본 명령어를 알자!

동영상에서도 말씀을 드렸습니다만 기본 명령어를 알아야 되는 것은 기본 명령어인 만큼 반드시 필요합니다. 이런 이유로 본 강좌 게시판에 리눅스 파일 시스템에 대한 내용을 올렸습니다. 그 내용에 기본과 시스템 관리를 위한 명령어 중 자주 사용되는 프로그램을 정리해서 올렸습니다. 리눅스에 있는 디텍토리별 성격과 기본 명령어를 이해하신다면 리눅스 초보를 벗는데 도움이 되지 않을까 생각됩니다.

파일 찾기 find 명령어

작업을 하다 보면 어떤 파일이 어디에 있는지 찾게 되는 경우가 많은데, 초보의 설음은 이것 마저도 쉽지 않다는 것입니다. 이럴 때, find 명령을 이용하면 아주 간단합니다. 예로 모든 디렉토리를 검색해서 inittab 파일이 어디있는지 찾아 보겠습니다.

find / -name inittab -print

find     -> 명령어
/        -> 찾기 시작 위치
-name    -> 파일 이름으로 검색
inittab  -> 찾고자하는 파일 이름
-print   -> 찾은 결과를 화면에 출력

grep 를 애용합시다.

리눅스 명령어의 특징은 작게 만든다 입니다. 예상되는 모든 기능을 하나에 모두 담는 것 보다는 작게작게 기능에만 충실히 프로그램을 만들고, 다른 기능은 파이프를 이용하여 다른 프로그램으로 넘긴다는 것입니다.

예를 들어 보겠습니다. ls -al 하면 모든 파일 목록을 출력합니다. 이 ls 명령 프로그램에 다양한 기능을 넣어서 덩치를 키우는 것이 아니라 다른 필요한 기능은 다른 프로그램에 위임하는 것이죠. 예로 파일 목록 중에 inittab 문장이 있는 열만 출력하게 하려면 아래와 같이 하면 됩니다.

ls -al | grep inittab

뭐가 이렇게 복잡해 하실지 모르겠습니다만, 기능 충실하게 만들어 놓으면 다른 작업에서도 사용할 수 있습니다. 예로 실행되도 있는 모든 프로세스의 정보를 출력하는 것이 ps 입니다. 이렇게 많은 프로세스 중에 superdaemon 이라는 프로세스 정보만 보고 싶다면,

ps -al | grep supperdaemon

이렇게 다른 곳에서도 얼마든지 사용할 수 있습니다. 리눅스를 학습하시면서 이렇게 하나하나 알아 나가신다면, 이것도 하나의 재미로 리눅스와 점점 친숙해 지실 수 있습니다.

도움을 드리고자 리눅스 파일 시스템의 글 중에 /bin 과 /sbin 의 내용을 올립니다.

/bin

binaries의 약어로 이진 파일들이며 리눅스에서 가장 기본이 되는 명령어들이 모여 있는 디렉토리입니다. 파일 목록을 보여주는 ls 라든지 일반 사용자가 root 계정으로 잠시 로그인하게 해주는 su 라든 하는 일반 사용자를 포함한 모든 사용자들이 사용하는 프로그램이 들어 있습니다.

 

또한 이곳에는 부팅에 필요한 명령어들이 위치하여 부팅한 후에 시스템의 계정 사용자들이 사용할 수 있는 일반적인 명령어들도 위치 하고 있습니다.

프로그램이 많아서 모두 설명드릴 수 없지만 자주 사용하는 몇 가지를 올립니다.

 

프로그램  설    명
cat 파일 내용을 출력
chgrp

파일의 그룹 속성 변경

chmod 파일의 접근 권한 변경
chown 파일의 소유자 변경
cp 파일 복사
cut 특정 필드를 파일 밖으로 복사
date  현재 날짜 출력
df 파일 시스템별 용량 출력
dmesg

부팅 메시지 출력

grep 파일 안의 특정 패턴을 검색

gupzip
gzip

파일 압축
hostname 컴퓨터 이름 출력
kill 프로세스 죽이기
link 링크 만들기
ls 파일 목록 출력
mkdir 디렉토리 만들기
mount 장치를 시스템에 연결
mv 파일 이동/파일 이름 변경
netstat 현재 연결된 네트워크에 대한 모든 정보
ping 상대 P.C. 가 네트워크에 연결되어 있는지 확인
ps 실행 중인 프로세스 목록
pwd 현재 작업 디렉토리 출력
rm 파일 삭제
rmdir 디렉토리 삭제
rpm rpm 관리자
sleep 초 단위 대기
su 사용자 변경
tar 여러 개의 파일을 묶거나 풀기
touch 크기가 0인 파일을 만들거나 파일의 날짜/시간을 변경
umount mount 해제
unlink link 파일 제거
usleep 1/1,000,000초 단위로 대기
vi vi 에디터

/sbin

시스템 관리를 위한 다양한 프로그램이 들어 있는 디렉토리입니다. 매우 많은 프로그램이 들어 있어서 모두 설명을 드리기에는 어렵고 몇가지를 정리해 보겠습니다.

 

프로그램  설    명
clock 현재의 날짜와 시간을 출력
fdisk

파티션을 새로 생성하거나 삭제

findfs 라벨에 해당되는 파티션 정보 구하기
fixfiles 파일과 관련하여 많은 거부 상황이 발생할 때 사용
grub grub 부팅 관리자 관련 프로그램
grub-install
grub-md5-crypt
grub-terminfo
halt 시스템 종료
ifconfig 네트워크 설정
ifdown 네트워크 종료
ifup

네트워크 시작 

*** 네트워크 설정 상태를 변경하셨다면 ifdown 과 ifup으로 네트워크를 다시
*** 시작하실 수 있으나 /etc/init.d/network restart 로 한버에 재 시작할 수 있습니다.

lilo lilo 부팅 관리자 프로그램
mkfs 하드 디스크 파티션을 리눅스 파일 시스템
poweroff halt 와 같이 시스템 종료
reboot 시스템 리부팅