Как отличить оригинальные команды Linux от сторонних программ? - PullRequest
0 голосов
/ 22 июня 2019

Мой учитель хотел, чтобы я реализовал функцию вызова команд оболочки, используя nodejs, и рассчитывал напечатать исполняемый путь при вызове программных команд третьей стороны.

var exec = require('child_process').exec;
const iconv = require('iconv-lite');
function execute(cmd) {
            if(not linux original command) cmd='whereis '+cmd  
            exec(cmd, {encoding: 'buffer'}, (error, stdout) => {
                if(error) console.log(error);;
                console.log(iconv.decode(stdout,'gbk'))
            });
}
execute("ls -l");  //  the result is 'drwxr-xr-x 2 root root 4096 ...'
execute("node") // the result is 'usr/local/node'

1 Ответ

0 голосов
/ 23 июня 2019

Если вы хотите посмотреть, какие команды встроены в ядро, возможно, вам это может помочь (с помощью команды which):

> which -a which
which: shell built-in command
/usr/bin/which
> which -a find
/usr/bin/find

Команда type также работает:

> type -a which
which is a shell builtin
which is /usr/bin/which

> type -a cd
cd is an alias for __enhancd::cd
cd is a shell builtin
cd is /usr/bin/cd

> type -a ls
ls is an alias for ls -G
ls is /bin/ls
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...