티스토리 뷰

728x90

리눅스 명령어 만들기

리눅스 명령어의 구분

• 사용자는 리눅스 셸을 통해 명령어를 내려 리눅스 운영체제의 기능을 수행함.

 리눅스 셸의 명령어는 쉽게 내부 명령어와 외부 명령어로 구분할 수 있음.

     - 내부 명령어 : 셸에 내장된 명령어. 셸 프로그램 자체가 갖고 있는 명령어로  cd echo  등이 있음.

     - 외부 명령어 : 셸에 내장된 명령어가 아닌 모든 명령어는 파일 형태로 존재함. 외부 명령어는 실행 파일 형태로 존재하여 사용자가 명령어를 입력할 때마다 해당 실행 파일이 실행되는 원리임.

  type  명령어를 통해 확인할 수 있음.

     - 내부 명령어의 경우 셸 내장 명령어라고 출력됨.

     - 외부 명령어의 경우 해당 명령어 파일의 경로가 출력됨.

type 명령어를 통해 cd, echo, cp, mv, type 명령어의 위치 확인

 

 

환경 변수 PATH

리눅스에서 실행 파일을 실행하기 위해선  경로 + 이름 의 형태로 실행하여야 함.

하지만 PATH라는 환경 변수에 등록된 경로에 존재하는 실행 파일들은 경로를 따로 입력하지 않아도 됨.

셸은 사용자가 경로 없이 명령어를 입력하면, 셸 내부 명령어인지를 먼저 판단 후 내부 명령어가 아니라면, 환경 변수 PATH에 등록된 경로의 디렉토리들을 뒤져 해당 명령어가 존재하는지 찾아 실행함.

환경 변수 PATH는  echo $PATH  명령을 통해 확인 가능.

echo $PATH 명령을 통해 환경 변수 PATH에 저장된 경로들을 확인

즉, 현재 나의 리눅스 환경에서는  /usr/local/sbin ,  /usr/local/bin ,  /usr/sbin ,  /usr/bin ,  /sbin ,  /bin ,  /usr/games ,  /usr/local/games ,  /snap/bin 에 존재하는 실행 파일들을 경로 없이 이름만으로 실행이 가능하다는 뜻!

 

명령어 만들기

• 나의 실행 파일을 경로를 적지 않고 이름만으로 실행할 수 있게 하기 위해서 세 가지 선택지가 있음.

     1. 나의 실행 파일을 환경 변수 PATH에 등록되어 있는 경로 중 한 곳에 위치시킨다.

     2. 나의 실행 파일이 존재하는 경로를 환경 변수 PATH에 추가한다.

     3. 실행 파일의 심볼릭 링크 파일을 생성하여 환경변수 PATH에 등록되어 있는 경로 중 한 곳에 위치시킨다.

• 관리의 편의로 인해 3번이 가장 많이 쓰임.

     - 1번 방법은 내 실행 파일을 내가 관리하고 싶은 디렉토리에 위치 시키지 못한다는 단점.

     - 2번 방법은 PATH에 추가되는 경로가 많아지게 되면 바로 실행되는 명령어가 너무 많아지게 되면서 보안상의 이슈나 명령어 겹침에 대한 이슈가 있음.

n 명령어를 통해 ~/sayHello의 심볼링 링크 파일을 /usr/bin 디렉토리에 생성한 모습
그 후 ls -l 명령어로 /usr/bin 디렉토리의 파일 목록을 조회한 결과 sayHello가 잘 생성된 것이 보임.
아무 디렉토리에서 sayHello를 경로없이 입력해도 잘 실행됨.

 

 

 

 

 

 

 

 

 

 

이 글은

유튜브 뉴렉처 리눅스(Linux) 서버 강의/강좌 for 개발자

강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.


728x90
댓글
250x250
공지사항