나는 수년 동안 Linux를 사용하고, 연구하고, 개발해 왔으며 시간이 지남에 따라 몇몇 사람들을 설득할 수 있었습니다.대의에 동참하세요, Linux로 전환합니다.
그런데 이 사람들이 이 완전히 새로운 세계를 발견하러 가면서 결국 그들 각자가 나에게 와서 물었다.이 작업이나 해당 작업을 수행하는 명령은 무엇입니까?:
- 소프트웨어를 설치하는 명령은 무엇입니까?
- 현재 디렉토리의 내용을 나열하는 명령은 무엇입니까?
- 웹 브라우저를 여는 명령은 무엇입니까?
- ...
하지만 나에게는 그들이 잘못된 질문을 하고 있는 것처럼 느껴집니다. 사실 나는 그들이 다음과 같이 질문할 것이라고 예상했습니다.
- 시스템에 설치된 소프트웨어를 관리하기 위해 어떤 프로그램을 사용합니까?
- 현재 디렉토리의 내용을 나열할 수 있는 프로그램은 무엇입니까?
- 어떤 웹 브라우징 프로그램을 사용할 수 있나요?
- ...
내 생각엔 이 말이주문하다쉘 프롬프트에 입력하는 거의 모든 것을 설명하는 데 사용되는 매우 추상적인 단어입니다. 이 생각을 염두에 두고 내가 데려온 몇몇 새로운 사람들은 다음과 같은 사실을 믿기 시작했습니다.
- Linux는 수많은 명령으로 구성됩니다.
- 모든 것에는 명령이 있고, 각 명령은 한 가지 일을 합니다.
- 더 많은 명령을 배우면 Linux 사용자/관리자로서의 능력이 더욱 향상될 것입니다.
- run을 사용하면
./something
명령을 실행하는 것이 아니라 현재 디렉터리에 저장된 프로그램(아마도 내가 직접 컴파일한 것)을 실행합니다. - ...
그래서 나는 이 단어를 잘 사용하지 않는 편이다.주문하다을 사용하는 것을 선호합니다.프로그램또는실행 가능 파일. 또한 이 메커니즘 덕분에 $PATH
절대 경로를 입력하지 않고도 이러한 실행 파일을 자동으로 찾을 수 있다고 설명했습니다. 덕분에 입력 ls
실행 /bin/ls
이프로그램/bin
변수 에 등록된 디렉터리에 저장됩니다 $PATH
.
그래도 그 단어를 접하게 됐어요주문하다많은 책, 튜토리얼, 가이드 등에서 마침내 나는 다음과 같은 질문에 이르렀습니다. 이 단어는 무엇입니까?주문하다UNIX/Linux 어휘에서 실제로 의미가 있습니까? 그 외에 다른 것을 가리키는가?"터미널에 무엇을 입력하든"?
답변1
이것POSIX 쉘 사양추천간단한 명령,복합 명령,명령 위치,게다가주문하다 command
.
처음 두 개의 참조 셸 어떻게/언제주문하다파싱되어 실행됩니다. 예를 들어:
#one compound command
{ simple command; simple command && simple command; }
이것복합 명령구성 요소를 평가하고 실행하기 전에 쉘이 읽어야 하는 입력의 양입니다.간단한 명령.
명령 위치각 단어의 첫 번째 단어입니다.간단한 명령이는 나머지 부분의 방법을 결정하기 때문에 특별한 의미를 갖습니다.주문하다구문 분석이 필요합니다. 확증하다예약어,(예: if
및 while
), 언제명령 위치, 이는 다음 내용이 다음과 같이 해석되어야 함을 파서에게 나타냅니다.복합 명령하나만이 아니라간단한 명령.
이것주문하다 command
이동하는 데 사용할 수 있습니다.주문하다밖의명령 위치. 예를 들어, 다음 두 코드는 동일한 방식으로 실행되지만 다르게 구문 분석될 수 있습니다.
command simple command
simple command
답변2
ㅏ명령줄시스템에 작업을 지시하기 위해 쉘에 입력하는 전체 라인입니다. 이것주문하다일반적으로 명령줄의 첫 번째 단어입니다. 일반적으로 실행할 프로그램을 식별하지만 제어 흐름에 사용되는 키워드(예 if
: 또는 while
)이거나 셸별 작업을 위한 내장 명령(예 read
: set
또는 export
)일 수도 있습니다. 때때로주문하다전체 명령줄을 참조하는 데 사용되며 컨텍스트를 통해 의미가 명확해집니다.
오늘날에는 명령과 응용프로그램 사이에 공통적인 차이가 있습니다. GUI 환경에서 응용 프로그램은 그래픽 셸을 사용하여 시작되는 프로그램입니다. 셸에 명령을 입력하면 호출됩니다.
귀하가 제공한 예시 질문에 대한 답변은 다음과 같습니다.
- 소프트웨어를 설치하는 명령은 무엇입니까? 그것은 마치
apt-get install
. - 현재 디렉토리의 내용을 나열하는 명령은 무엇입니까?
ls
- 웹 브라우저를 여는 명령은 무엇입니까?
firefox &
아니면chrome &
아마도 그럴 것입니다. 윈도우 시스템을 사용하는 경우 브라우저를 선택할 수 있는 메뉴가 있을 수 있으므로 이 작업을 수행하기 위한 명령을 사용하지 않을 것입니다.