nix-shell 1 Nix nix-shell start an interactive shell based on a Nix expression nix-shell name value name value attrPath cmd regexp paths Description The command nix-shell --run-env will build the dependencies of the specified derivation, but not the derivation itself. It will then start an interactive shell in which all environment variables defined by the derivation have been set to their corresponding values, and the script $stdenv/setup has been sourced. This is useful for reproducing the environment of a derivation for development. Options All options not listed here are passed to nix-store --realise, except for and / which are passed to nix-instantiate. See also . cmd In the environment of the derivation, run the shell command cmd instead of starting an interactive shell. However, if you end the shell command with return, you still get an interactive shell. This can be useful for doing any additional initialisation. regexp Do not build any dependencies whose store path matches the regular expression regexp. This option may be specified multiple times. If this flag is specified, the environment is almost entirely cleared before the interactive shell is started, so you get an environment that more closely corresponds to the “real” Nix build. A few variables, in particular HOME, USER and DISPLAY, are retained. Note that ~/.bashrc and (depending on your Bash installation) /etc/bashrc are still sourced, so any variables set there will affect the interactive shell. The following common options are supported: Examples To build the dependencies of the package Pan, and start an interactive shell in which to build it: $ nix-shell '<nixpkgs>' -A pan $ unpackPhase $ cd pan-* $ configurePhase $ buildPhase $ ./pan/gui/pan To clear the environment first, and do some additional automatic initialisation of the interactive shell: $ nix-shell '<nixpkgs>' -A pan --pure \ --command 'export NIX_DEBUG=1; export NIX_CORES=8; return' Environment variables