Если у вас уже есть список команд, вы можете сделать что-то вроде этого:
>>> from subprocess import Popen, PIPE
>>>
>>>
>>> def get_stderr(cmd):
... return Popen(cmd, shell=True, stderr=PIPE).communicate()[1]
...
>>>
>>> for c in ['garbage_cmd1', 'grep', 'which', 'garbage_cmd2']:
... if 'not found' in get_stderr(c).decode():
... print('%s is not valid' % c)
... else:
... print('%s is valid' % c)
...
garbage_cmd1 is not valid
grep is valid
which is valid
garbage_cmd2 is not valid
Если вы работаете на Linux-машине, вы также можете запустить compgen -c >> cmds.txt