Skip to content

Nix cheat sheet

WARNING

this is bad, improvements coming soon™

nix-env package management

actionUbuntuNixnotes
update package listsudo apt updatesudo nix-channel --update
searchapt search <query>nix search <query>also try search.nixos.org/packages
installsudo apt install <package>nix-env -i <package>no root, atomic, per user
upgrade installedsudo apt upgradenix-env -uno root, atomic, per user
removesudo apt remove <package>nix-env -e <package>no root, atomic, per user
undo last operation...nix-env --rollbackno root, atomic, per user
list installeddpkg -lnix-env -qper user
show generations...nix-env --list-generations

nix-shell isolated build/dev/run environments

Nix Reference Manual: nix.dev

commandresult
nix-shell -p <packages>start shell in env with <packages>
nix-shellstart shell in the env defined by shell.nix or default.nix in current dir
nix-shell --puresame, but outside env is inaccessible

nix run run a nix application

Nix Reference Manual: nix.dev

Examples: nix run nixpkgs#vim nix run nixpkgs#statix -- help nix run github:astro/deadnix -- -eq .

NixOS declarative operating system configuration management

commandresultnotes
edit /etc/nixos/configuration.nixdefine new system configurationrunning system is unaffected
nixos-rebuild switchswitch to the configuration defined in /etc/nixos/configuration.nixatomic*
nixos-rebuild switch --rollbackswitch to previous configurationatomic*
nixos-option <option>show option value and documentationalso try search.nixos.org/options

*services can fail to start

Useful linting commands

Alejandra

GitHub

Deadnix

GitHub

Check

bash
nix run github:astro/deadnix -- .

Format

Remember to commit/stage to git first, as this command will change files.

bash
nix run github:astro/deadnix -- -eq .