2025. 5. 6. 17:55ㆍ리눅스
1.1 리눅스 명형어의 개요
리눅스의 명령어는 내장 명형어와 외장 명형어(또는 내부 명령어와 외부명령어)로 구분할 수 있습니다.
내장 명령어에는 export, history, logout, exit 등이 있는데,
파일로 존재하지 않고 셸에 내장되어 있어서 셸이 직접 해석해서 실행해준다.
따라서 명령어 실행 시 별도의 프로세스를 발생시키지 않는다.
외장 명령어는 리눅스의 대부분을 차지하고 있는데, /bin 또는 /sbin디렉터리등에 파일 형태로 존재합니다.
외장 명령어를 실행하면 fork하여 새로운 서브 프로세스를 발생시킵니다.
bash 내장 명령어(built-in command)
내장 명령어 관련 정보는 man builtin이나 man bash에서 확인 가능하다.
그러나 매뉴얼 페이지의 내용은 배포판 리눅스 버전에 따라 차이가 있을 수 있다.
예를 들면 cd나 alias 명령은 전통적으로 내장 명령어에 분류되어 있다.
이 명령어들은 CentOS 6 버전에서는 파일 형태로 존재하지 않고 bash에서 직접 해석해서 처리하였으나,
CentOS 7 버전에서는 파일 형태로 존재한다. 따라서 각 버전별로 which 명령을 실행해서 존재 유무를 확인해야 한다.
$ which cd
명령어 검색
리눅스에서 명령어를 입력하면 셸이 직접 해석하거나 명령어를 찾아서 실행시켜준다.
리눅스에는 수많은 디렉터리가 존재하기 때문에 전부 검색하기에는 시간이 많이 소요된다.
따라서 명령어 검색의 효율성을 높이기 위해서 대부분의 명령어를 /bin, /usr/bin, /sbin 등의 디렉터리에 모아두고,
지정한 디렉터리에서만 명령어를 찾도록 하고 있다.
즉, root와 일반 사용자가 사용하는 명령어가 다르기 때문에 환경변수인 PATH값을 사용해서 필요한 디렉터리만 검색을 제한하고 있다. PATH는 사용자들이 실행 명령어를 입력했을 때 찾는 디렉터리의 목록을 지정하고 있는 환경변수이다.
쉽게 설명하면 dongwok이라는 사용자가 셸 프롬프트에서 'ls'라는 명령을 입력하면 PATH라는 변수에 저장되어 있는 경로 순서에 맞추어 그 경로에 명령어 ls를 존재하는지 확인하고 존재하지 않으면 'command not found'라는 에러 메시지를 나타내게 된다. 검색 경로의 확인은 echo 명령을 사용해서 확인할 수 있다. echo는 그 문자를 그대로 출력해 주는 명령어지만 특수문자 $와 함께 사용하면 뒤에 오는 문자열이 변수로 선언된 것일 경우에 그 변수의 값을 출력해준다. 따라서 echo $PATH를 입력하면 명령어 검색 경로를 확인할 수 있다.
[dongwok@localhost ~]$ echo I love yuloje
I love yuloje
[dongwok@localhost ~]$ echo PATH
PATH
[dongwok@localhost ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/posein/bin
[dongwok@localhost ~]$
명령어 검색 경로는 :으로 구분되어 있고, 경로를 추가하려면 홈 디렉터리의 .bash_profile에 등록하면 된다.
아울러, 모든 사용자들에게 적용하려면 /etc/profile에 등록하면 반영된다.
실행 명령 검색: which
which는 실행되는 명령어의 위치를 절대경로로 보여준다.
이 명령은 사용자가 명령을 실행시켰을 때 어떤 명령이 실행되는지를 알고 싶을 때 사용할 수 있다.
환경변수인 PATH에 등록된 경로에서만 검색하고, alias가 설정되어 있는 경우에는 설정된 내용까지 확인할 수 있다.
[dongwok@localhost ~]$ which ls
alias ls='ls --color=auto'
/bin/ls
[dongwok@localhost ~]$
엘리어스(alias)
alias란 별명 또는 별칭이라는 뜻으로 어떠한 명령을 지정해 놓으면,
사용자가 그 명령을 실행했을 때 alias로 지정해 놓은 명령이 대신 실행되게 된다.
이 기능은 대부분의 shell에서 지원하는데, 특정 명령 실행 시에 기본으로 옵션을 사용하게 등록하거나
나만의 새로운 명령어를 만들 때 유용하게 쓰인다.
1. alias 지정과 해제
- alias의 지정:
alias 나만의명령어='기존 명령어의 조합' - alias의 해제:
unalias 지정한_명령어
2. 사용 예
- ls 명령만 실행해도 기본으로 -alF 옵션이 지정된다.
- aaa라는 명령은 기본적으로는 존재하지 않는다. 사용자가 고유의 명령어인 aaa를 생성하게 된다. 이 경우에 which aaa하게 되면 관련 정보를 출력해준다.
- bbb라는 명령을 실행하면 ls 명령을 실행한 뒤에 pwd 명령을 실행한다.
- c라는 명령어에 clear가 실행되도록 설정한다.
- aaa에 설정된 alias를 해제한다.
- 모든 alias를 해제된다
'리눅스' 카테고리의 다른 글
리눅스 마스터 2급 - 리눅스 명령어(사용자 계정 관리 및 삭제) (2) | 2025.05.08 |
---|---|
리눅스 마스터 2급 - 리눅스 명령어(사용자 생성 명령어) (0) | 2025.05.07 |
리눅스 마스터 2급 - 리눅스의 철학 (0) | 2025.05.06 |
리눅스 마스터 2급 - 리눅스의 역사 (1) | 2025.05.06 |
리눅스 마스터 2급 - 리눅스의 이해 (리눅스 등장에 영향을 준 요소와 관련 용어) (0) | 2025.05.06 |