명령어는 크게 3가지 구조로 이루어져 있다.
명령어, 전달인자, 옵션 [명령어] 라고 한다면 저번 시간에 다뤘던
ifconfig 혹은 clear, id, ps -ef 등의 명령문들을 명령어라고 할 수 있다.
또한 전달인자(Argument) 는 명령어에 전달하는 데이터라고 생각하면 된다.
쉽게말해 컴퓨터에게 단순히 명령을 내리는것이 아니라 정확히 어떤걸 어떻게 하면 좋겠는지 목적어와 부사를 달아주는것과 같다.
명령어가 단독으로 실행되는 경우도 있지만 명령어 뒤에 전달인자를 붙여 정확한 명령을 해주어야 할 때도 있는것이다.

이와 같이 which id 라는 명령문을 입력했다고 한다면
which 의 경우 해당 명령어의 실행 파일이 어디있는가를 알려주는 명령어이다 이경우 뒤에온 id가 which의 전달인자가 되어 id라는 명령어의 실행파일이 어디있는가를 보여주는 문장이 완성된다

이 명령어를 통해 우리는 모든 명령어가 chrome, explore와 같이 컴퓨터에 설치된 프로그램 이라는것을 알 수 있다.
즉 우리가 zshell 에 id를 입력하면 해당 경로의 프로그램이 실행되면서 우리가 명령한 결과값이 나오게 되는것이다.

마지막으로

마지막 요소인 옵션은 특정한 상황에서 사용되야만 하거나 명령을 실행하기위해 반드시 필요한 위 두 요소와 다르게 옵션은 선택적인 부분이다.
위 명령어를 풀이하며 설명하자면 ping 이라는 명령어는 그 뒤의 아이피 (8.8.8.8) 주소에 핑 데이터를 날리는 명령어 이다.
데이터가 잘 가는지 확인하기 위한 용도의 명령어 인데 그 뒤의 -이후에 나오는 문자가 바로 옵션이다.
옵션은 앞에 -를 붙이는 특징이 있다.

위 명령어를 실행하면 정상적으로 핑이 8.8.8.8까지 전송되었다가 다시 돌아오는걸 확인 할 수 있다.
하지만 -c 3 을 제거하고 명령어를 실행할경우

위와같이 명령어가 실행은 되지만 끝나지않고 계속 작업을 수행하는걸 볼 수 있다.
(명령어를 캔슬하고 싶은 경우 ctrl + c 를 누르면 된다.)
이러한 결과값으로 미루어 볼때 -c 3은 핑을 3번 보낸다 라는 의미로 우리는 해석해 볼 수 있다.
즉 이렇게 명령어의 수행방식을 조정해 주는게 바로 옵션의 역할인 것이다.
또한

옵션은 명령어의 어느 위치에 오든 상관없다는게 특징이다.
명령어 별로 어떠한 옵션이 있는지 보고싶다면 ~-h를 입력하면된다. (예 ping -h)

위와같이 kali-liux 자체에서 정보를 제공하고있다.