Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
A node REPL with ShellJS loaded by default.
This was inspired by (and forked from) n_.
Give it a star on Github
$ npm install -g n_shell
Invoking n_shell
starts a node REPL with ShellJS required globally, with
shell-like output:
bash $ n_shell
shelljs $ ls()
LICENSE
README.md
bin
node_modules
package.json
src
tmp
shelljs $ pwd()
/path/to/dir
shelljs/global
No problem:
bash $ n_shell --no_global
shelljs $ typeof ls // not in the global namespace
'undefined'
shelljs $ shell.ls() // uses 'shell' prefix
LICENSE
README.md
bin
node_modules
package.json
src
tmp
shelljs $ shell.pwd()
/path/to/dir
You're covered:
bash $ n_shell --no_global=$
shelljs $ $.ls() // now uses '$' as the prefix
LICENSE
README.md
bin
node_modules
package.json
src
tmp
shelljs $ $.pwd()
/path/to/dir
Just install that version locally (npm install shelljs
) and start up
n_shell
with the --path
option:
bash $ n_shell --path=node_modules/shelljs
shelljs $
bash $ n_shell --noinspect
shelljs $ ls()
[ 'LICENSE',
'README.md',
'index.js',
'node_modules',
'package.json',
stdout: 'LICENSE\nREADME.md\nindex.js\nnode_modules\npackage.json\n',
stderr: null,
code: 0,
to: [Function],
toEnd: [Function],
cat: [Function],
head: [Function],
sed: [Function],
sort: [Function],
tail: [Function],
grep: [Function],
exec: [Function] ]
This supports any command that ShellJS supports. It also adds some extra commands, for convenience. So far, this adds:
shell.clear()
(from
shelljs-plugin-clear)shell.open()
(from
shelljs-plugin-open)shell.sleep()
(from
shelljs-plugin-sleep)--global
: Start a node REPL with the equivalent of
require('shelljs/global')
. This is the default behavior.--no_global [PREFIX]
, --local [PREFIX]
, -n [PREFIX]
: Start a node REPL
with the equivalent of var PREFIX = require('shelljs')
. PREFIX
defaults
to shell
, if not specified.--use_strict
: enforce strict mode (default is false)--prompt <FORMAT>
: use this format to generate the REPL prompt. Default is
"shelljs %v%l $
"
%%
: a literal %
sign%v
: show the current version (from package.json
)%l
: show [local]
if this is using a local version of ShellJS--noinspect
: disable the default --inspect
behavior. This provides
less-readable REPL output, but behaves just as a standard Node REPL would.--path=path/to/shelljs/
: the argument should be a path to a folder
containing a ShellJS package.--inspect
(default): an experimental switch to add a .inspect()
method to
the output of each command. The return values are still ShellStrings, but
appear more readable and shell-like. Also, commands with no arguments can be
invoked without parentheses, such as shell.pwd
and shell.ls
. Recommended
for ShellJS v0.7+. Credit for the idea goes to
piranna.Similarly to n_
, n_shell
stores REPL history under ~/.n_shell_history
.
FAQs
A node REPL with ShellJS loaded by default
We found that n_shell demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.