명령어 (컴퓨팅)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
명령어는 운영 체제, 프로그래밍 언어, 주변 기기 제어, GUI 환경, 게임 등 다양한 맥락에서 사용되는 용어이다. 운영 체제 명령어는 셸이 해석하고 실행하는 문자열로, 인수를 가질 수 있으며, 내부 명령어와 외부 명령어로 나뉜다. 프로그래밍 언어에서는 조건문, 표현식, 문, 함수 등 다양한 의미로 사용되며, 주변 기기를 제어하거나 GUI 요소를 조작하는 데에도 사용된다. 게임에서는 플레이어가 캐릭터에게 내리는 지시를 의미하며, 특히 격투 게임에서는 필살기 사용을 위한 입력 순서를, 숨겨진 커맨드는 공식 매뉴얼에 없는 옵션을 활성화하기 위한 입력 방식을 지칭한다.
더 읽어볼만한 페이지
- 컴퓨팅 명령어 - 명령 프롬프트
명령 프롬프트는 사용자로부터 명령을 입력받아 운영체제나 셸에 전달하는 인터페이스로, 사용자 정의가 가능한 셸 프롬프트 형식으로 다양한 운영체제 환경에서 여러 작업을 수행하는 데 활용된다. - 컴퓨팅 명령어 - 명령줄 인터페이스
명령줄 인터페이스(CLI)는 텍스트 기반으로 컴퓨터와 상호 작용하는 방식으로, 시스템 리소스 소모가 적고 스크립팅을 통한 자동화가 용이하며, 프로그래머, 시스템 관리자, 시각 장애인에게 유용하다. - 사용자 인터페이스 - 로그인
로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다. - 사용자 인터페이스 - 키넥트
키넥트는 마이크로소프트에서 개발한 동작 인식 장치로, 적외선 프로젝터와 센서를 사용하여 사용자의 움직임과 음성을 인식하며, Xbox용으로 출시되어 큰 인기를 얻었지만 개인정보 보호 문제 등으로 판매가 부진하여 생산이 중단되었고, 다양한 분야에서 활용되며 기술적 가치를 인정받아 클라우드 기반 Azure Kinect로 이어졌으나 단종되었다.
명령어 (컴퓨팅) | |
---|---|
명령어 (컴퓨팅) | |
유형 | 컴퓨터 소프트웨어 |
사용 분야 | 명령 줄 인터페이스 |
설명 | 컴퓨터에게 특정 동작을 수행하도록 지시하는 것 |
종류 | |
내부 명령어 | 셸 자체에 내장된 명령어 |
외부 명령어 | 별도의 실행 파일로 존재하는 명령어 |
셸 함수 | 셸 스크립트 내에서 정의된 함수 |
별칭 (Aliases) | 다른 명령어를 대신하는 짧은 이름 |
예시 | |
유닉스 명령어 예시 | `ls` (파일 목록 보기) `cd` (디렉터리 변경) `mkdir` (디렉터리 생성) `rm` (파일 삭제) `cp` (파일 복사) `mv` (파일 이동/이름 변경) `cat` (파일 내용 출력) `echo` (텍스트 출력) `grep` (텍스트 검색) |
DOS 명령어 예시 | `DIR` (파일 목록 보기) `CD` (디렉터리 변경) `MD` 또는 `MKDIR` (디렉터리 생성) `DEL` (파일 삭제) `COPY` (파일 복사) `MOVE` (파일 이동) `TYPE` (파일 내용 출력) `ECHO` (텍스트 출력) |
2. 운영 체제 명령어
운영 체제(OS) 명령어는 사용자가 컴퓨터 시스템과 상호 작용하는 기본적인 방법이다. OS 명령어는 명령 줄 인터프리터(셸)가 해석하고 실행하는 문자열을 말하며, 대부분 임의 개수의 인수를 가질 수 있다. 일반적으로 인수는 임의의 문자열이지만, 명령어가 작동할 때 대상이 되는 객체(파일 등)를 지정하거나 명령어의 세부 동작을 변경하는 옵션으로 크게 나눌 수 있다.
유닉스 계열 시스템에서는 옵션 문자열에 하이픈 `-`을, MS-DOS의 표준 명령어 등에서는 슬래시 `/`를 앞에 붙이는 관습이 있다. 옵션을 생략하면 기본값이 사용된다.
2. 1. 명령 줄 인터프리터
명령 줄 인터프리터(CLI)는 사용자가 텍스트 형태로 명령어를 입력하여 시스템을 제어할 수 있게 해주는 프로그램이다. 유닉스 셸, 윈도우 명령 프롬프트 등이 대표적인 예시이다.[6][7]명령 줄 인터프리터에 내릴 수 있는 몇 가지 명령어 예시는 다음과 같다.
'''유닉스 셸'''
명령어 | 설명 |
---|---|
cd /home/pete | 현재 위치에서 `/home/pete` 디렉터리로 사용자 공간을 바꾼다. "cd"는 명령어이고, "/home/pete"는 변수이다. |
echo "안녕 친구야" | `안녕 친구야` 문자열을 표준 출력 스트림에 출력하고 화면에 표시한다. "echo"는 명령어이고 ""안녕 친구야""는 변수이다. |
ls -l -t -r /bin | `/bin` 디렉터리 안의 파일을 나열한다. "ls"는 명령어이고 "/bin"은 변수이며 "l", "t", "r" 세 개의 플래그가 있다. |
ls -ltr /bin | 위와 동일한 명령어이다. |
cat ch1.txt ch2.txt | `ch1.txt`와 `ch2.txt` 파일의 내용을 보여준다. "cat"는 명령어이고 "ch1.txt"와 "ch2.txt"는 둘 다 변수이다. (도스에서는 `TYPE`을 쓴다) |
'''MS-DOS 및 마이크로소프트 윈도우 명령 프롬프트'''
명령어 | 설명 |
---|---|
DIR /A | 현재 디렉터리의 내용을 나열한다. "DIR"은 명령어이고 "A"는 플래그다. 변수는 없다. |
TYPE /P readme.txt | `readme.txt` 파일의 내용을 보여준다. "TYPE"은 명령어이고, "readme.txt"는 변수다. "P"는 매개 변수다.[6] |
대화형 환경을 갖춘 운영 체제(OS)에서 명령 줄 인터프리터(셸)가 해석하고 실행하는 문자열을 "명령어"라고 부른다. 대부분의 경우, OS 명령어는 임의 개수의 인수를 가질 수 있다. 일반적으로 인수는 임의의 문자열이지만, 명령어가 작동할 때 대상이 되는 객체(파일 등)의 지정과 명령어의 세부 동작을 변경하는 옵션으로 크게 나눌 수 있다. 후자의 옵션 문자열에는, 유닉스 등 많은 시스템에서는 하이픈 `-`을, MS-DOS의 표준 명령어 등에서는 슬래시 `/`를 앞에 붙이는 관습이 있다. 옵션을 생략하면 기본값이 사용된다.
2. 2. 명령어의 예시
다음은 다양한 운영 체제에서 사용되는 명령어의 예시이다.유닉스 셸에서는 다음과 같은 명령어를 사용한다.
- `cd`: 디렉터리를 변경한다.
- `echo`: 문자열을 출력한다.
- `ls`: 파일 목록을 나열한다.
- `cat`: 파일 내용을 보여준다.
MS-DOS 명령 프롬프트에서는 다음과 같은 명령어를 사용한다.
- `DIR`: 디렉터리 내용을 나열한다.
- `TYPE`: 파일 내용을 보여준다.
명령어 파이프라인 less는 페이지 단위로 내용을 보여주며, more와 유사하다.
2. 2. 1. 유닉스 계열
- cd /home/pete
- * 사용자의 현재 디렉터리를 `/home/pete`로 변경하는 명령어이다. "cd"가 명령어이고, "/home/pete"가 인수이다.
- echo "Hello World"
- * "Hello World"라는 문자열을 표준 출력 스트림에 출력하여 표시하는 명령어이다. 이 경우에는 단순히 화면에 표시한다. "echo"가 명령어이고, "Hello World"가 인수이다. 따옴표는 "Hello"와 "World"가 별도의 인수로 해석되는 것을 방지하기 위해 사용된다.
- ls -l -t -r /bin
- ls -ltr /bin
- * 이 두 명령어는 동일하다. `/bin` 디렉터리의 파일을 나열한다. "ls"는 명령어이고 "/bin"은 인수이며, 세 개의 플래그 "l", "t", "r"을 지정한다.
- cat ch1.txt ch2.txt
- * ch1.txt와 ch2.txt 파일의 내용을 보여준다. "cat"는 명령어이고 "ch1.txt"와 "ch2.txt"는 인수이다.
- touch hoge.txt piyo.txt
- * hoge.txt와 piyo.txt라는 두 개의 파일을 생성한다. "touch"가 명령어이고, "hoge.txt"와 "piyo.txt"가 인수이다.
2. 2. 2. 윈도우
DIR /A 명령어는 현재 디렉터리의 내용을 표시하는 데 사용되며, 여기서 "DIR"은 명령어이고 "A"는 플래그이다.[7] TYPE /P readme.txt 명령어는 readme.txt 파일의 내용을 표시하며, "TYPE"은 명령어, "readme.txt"는 변수, "P"는 매개 변수이다.[6]2. 3. 내부 명령어와 외부 명령어
외부 명령어를 참고하십시오.2. 4. 명령어 프로세서의 실행과 보안 취약성
C 언어 및 C++(C++)에서는 호스트 환경의 명령어 프로세서를 실행하여 명령을 실행할 수 있는 `system()` 함수가 준비되어 있다[10][11].[POSIX]에는 파이프를 이용한 스트림을 여는 `popen()` 함수도 준비되어 있다. 이러한 기능을 이용하면 시스템이 제공하는 명령을 애플리케이션 소프트웨어에서 직접 이용하는 것도 가능해진다. 이는 Perl이나 Python과 같은 스크립트 언어에도 준비되어 있다.하지만 사용자가 입력한 명령 문자열을 무해화하도록 배려하지 않고 임의의 OS 명령을 실행할 수 있도록 해버린 경우, 공격자가 악의적인 명령 문자열을 입력함으로써 실행 환경에 침입·탈취하거나 시스템 파괴를 허용하는 보안 취약성이 발생할 수도 있다[12]. 이러한 공격 수법은 "OS 커맨드 인젝션" 또는 "명령어 삽입"이라고 불린다[13].
3. 프로그래밍 언어에서의 명령어
프로그래밍 언어에서 '명령어'라는 용어는 문맥에 따라 다른 의미를 가진다. 예를 들어, 어떤 저자들은 조건문을 명령어라고 부르기도 하지만[1], 이는 프로그래밍 언어에 따라 다르게 불린다. 파이썬과 Bash에서는 표현식으로[2][3], 자바에서는 문(statement)으로 불린다.[4]
표준 출력에 내용을 쓰는 작업은 printf (Bash) 또는 `print()` (Python) 등의 명령어를 통해 수행된다.[5]
3. 1. 표준 입출력
명령 줄 인터프리터에서 특정 작업을 수행하기 위해 사용되는 몇 가지 명령어는 표준 입출력과 관련되어 데이터를 화면에 표시하거나 파일 내용을 보여주는 기능을 한다.- '''echo "안녕 친구야"'''
: 이 명령어는 `"안녕 친구야"`라는 문자열을 표준 출력 스트림에 출력하여 화면에 표시한다. `"echo"`는 명령어이고, `""안녕 친구야""`는 변수이다.
- '''cat ch1.txt ch2.txt'''
: `ch1.txt`와 `ch2.txt` 파일의 내용을 화면에 표시한다. `"cat"`는 명령어이고, `"ch1.txt"`와 `"ch2.txt"`는 변수이다. (도스에서는 `TYPE`을 사용한다.)
- '''TYPE /P readme.txt'''
: `readme.txt` 파일의 내용을 보여준다. `"TYPE"`은 명령어이고, `"readme.txt"`는 변수이다. `"/P"`는 매개 변수이다.
- '''[명령어] 명령어 파이프라인 less'''
: 페이지 단위로 내용을 보여준다. more와 유사하다.
표준 출력에 내용을 쓰는 작업은 printf (Bash) 또는 `print()` (Python) 등의 명령어를 통해 수행된다.[5]
4. 주변 기기 제어 명령어
컴퓨터에 연결된 주변 기기를 제어하기 위한 명령을 "명령어"라고 부른다. 소프트웨어는 시리얼 통신 등 규격화된 인터페이스를 통해 기기의 사양에 따른 정보를 전송함으로써 명령어를 발행하여 하드웨어와 통신한다. 예를 들어 그래픽스 하드웨어(GPU)나 프린터에 대한 그리기 명령 등이 있다. 명령어는 하드웨어를 고도로 추상화한 API나 장치 드라이버를 통해 발행되기도 하며, 이 경우 응용 소프트웨어 계층에서는 명령어의 존재를 의식할 필요가 없는 경우도 많다.
5. GUI 환경에서의 명령어
그래픽 사용자 인터페이스(GUI)의 요소를 조작하여 해당 액션을 발생시키는 것을 "명령"이라고 부르기도 한다. 예를 들어, 메뉴 내의 각 항목이나 버튼을 클릭했을 때 특정 동작을 소프트웨어에 실행시키는 것을 소프트웨어 또는 컴퓨터에 대한 지시로 간주한다. 이 "명령"은 GUI 프레임워크에서 개념 및 용어로 사용될 수 있다.[14]
6. 게임에서의 명령어
컴퓨터 게임에서 사용자가 캐릭터에게 내리는 지시를 '커맨드'라고 부른다. 커맨드는 어드벤처 게임, 시뮬레이션 게임, 롤플레잉 게임(컴퓨터 RPG) 등 다양한 장르에서 사용된다. 대전 격투 게임에서는 캐릭터의 필살기를 사용하기 위해 조이스틱과 버튼을 조합하는 것이 커맨드 입력에 해당한다.
6. 1. 커맨드 메뉴
컴퓨터 게임에서 유저(플레이어)가 게임 내 캐릭터에게 내리는 지시를 "커맨드"라고 부르는 경우가 있다.예를 들어 고전적인 어드벤처 게임이나 시뮬레이션 게임, 턴제 롤플레잉 게임(컴퓨터 RPG)에서는 장면에 따라 각 캐릭터가 다음에 할 수 있는 행동이 몇 가지 선택지로 준비되어 있으며, 이 선택지를 커맨드라고 부른다. 화면상에서 커맨드가 배치되어 있는 영역을 커맨드 메뉴라고 부르며, 세로 방향이나 가로 방향으로 커맨드의 텍스트가 나열되어 있는 경우도 있고, 커맨드의 동작을 시각적으로 나타내는 아이콘이 세로, 가로 또는 원형으로 배치되어 있는 경우도 있지만, 어느 경우든 커서를 움직여 선택 및 결정하는 것만으로 실행된다. 각 커맨드를 선택한 후, 추가로 동작 대상이 되는 것(공격 목표나 사용하는 아이템・마법 등)을 선택해야 하는 경우도 있다.
6. 2. 격투 게임에서의 커맨드
대전 격투 게임에서는 캐릭터마다 고유한 필살기가 준비되어 있으며, 이를 사용하기 위해 조이스틱(레버)이나 버튼을 이용한 일련의 입력 순서나 조합, 즉 커맨드를 입력해야 한다. 커맨드는 정해진 시간 안에 입력을 완료해야 하며, 일반적으로 위력이 높은 기술일수록 커맨드가 길고 복잡해져 입력 난이도가 높아지는 경향이 있다.특정 화면 또는 상황에서 일정 시간 안에 특정 방향키나 버튼을 순서대로 입력하면, 공식 매뉴얼에는 없는 숨겨진 옵션(비기)을 사용할 수 있는 숨겨진 커맨드를 가진 작품도 있다.
6. 3. 숨겨진 커맨드
대전 격투 게임에서 캐릭터마다 고유의 필살기를 사용하기 위한 조이스틱(레버)이나 버튼을 사용한 일련의 입력 순서나 조합을 커맨드라고 부른다. 커맨드를 완성하려면 일련의 입력을 일정 시간 안에 완료해야 한다. 일반적으로 위력이 높은 기술일수록 커맨드가 길고 복잡해져 입력 난이도가 높아지는 경향이 있다.특정 화면 또는 상황에서 일정 시간 안에 특정 방향키나 버튼을 순서대로 입력하면, 공식 매뉴얼에는 없는 옵션(비기)을 사용할 수 있는 '숨겨진 커맨드'를 가진 작품도 있다.
참조
[1]
서적
Programming Languages - Principles and Paradigms
Springer London
[2]
웹사이트
Conditional expressions
https://docs.python.[...]
python.org
2023-10-23
[3]
웹사이트
Bash Conditional expressions
https://www.gnu.org/[...]
gnu.org
2023-10-23
[4]
웹사이트
The if-then and if-then-else Statements
https://docs.oracle.[...]
oracle.com
2023-10-23
[5]
웹사이트
Built-in Functions - print
https://docs.python.[...]
python.org
2023-10-23
[6]
웹사이트
Type - Display a text file - Windows CMD
https://ss64.com/nt/[...]
SS64.com
2019-03-14
[7]
웹사이트
DIR - list files and folders - Windows CMD
https://ss64.com/nt/[...]
SS64.com
2019-03-14
[8]
웹사이트
コマンド(command)とは - IT用語辞典 e-Words
https://e-words.jp/w[...]
[9]
웹사이트
Imperative Programming Languages (IPL) | School of Engineering & Applied Science | The George Washington University
https://www2.seas.gw[...]
[10]
웹사이트
system - cppreference.com
https://ja.cpprefere[...]
[11]
웹사이트
std::system - cppreference.com
https://ja.cpprefere[...]
[12]
웹사이트
ENV33-C. コマンドプロセッサが必要ない場合は system() を呼び出さない
https://www.jpcert.o[...]
[13]
웹사이트
OSコマンドインジェクションの被害事例とその対策について解説|ICT Digital Column 【公式】NTTPCコミュニケーションズ
https://www.nttpc.co[...]
[14]
웹사이트
コマンド実行の概要 - WPF .NET Framework | Microsoft Docs
https://docs.microso[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com