저 문제는 풀었는데..
else if (preg_match("/flag/i", $cmd)) { echo "<pre>Error!</pre>"; } 이렇게 돼있어서 flag는 안돼는구나 했는데 왜 g대신 *를 넣어야 하나요?
cat ../dream/fla*.txt
*은 와일드카드로 일치되는 모든 문자열을 찾기 때문에, flag 대신 사용해 볼 수 있습니다.