Linux & shell errors
- /bin/bash^M: bad interpreter: No such file or directoryThe script has Windows (CRLF) line endings, so Linux looks for an interpreter literally named "bash\r". Convert the file to Unix line endings.
- Argument list too longA glob like `*.log` expanded to so many filenames that the command line exceeded the kernel's ARG_MAX limit (E2BIG). Use find, xargs or a loop instead of passing all files as arguments.
- bash: ./script.sh: Permission deniedThe file isn't marked as executable, or it lives on a filesystem mounted with noexec. Add the execute bit or run it through the interpreter.
- cannot execute binary file: Exec format errorThe file is a program built for a different CPU architecture or OS (e.g. x86_64 binary on an ARM Raspberry Pi/Apple Silicon VM, or a macOS/Windows binary on Linux), or you're running a non-binary file as one.
- command not foundThe shell can't find a program with that name in any PATH directory. Install it, fix the PATH, or use the full path.
- E: Could not get lock /var/lib/dpkg/lock-frontendAnother apt or dpkg process is running — usually automatic updates right after boot. Wait for it to finish rather than deleting lock files.
- E: Unable to locate packageapt doesn't know the package name. The package lists are outdated, the name is misspelled, the needed repository (universe, a PPA) isn't enabled, or the package doesn't exist for your Ubuntu/Debian release.
- Error: listen EADDRINUSE: address already in useAnother process is already listening on that port. Find it with lsof or ss and stop it, or use a different port.
- Failed to start nginx.service: Unit nginx.service not found.systemd has no unit file with that name loaded. The package isn't installed, the service has a different name, a custom unit file is in the wrong place, or systemd hasn't been reloaded after you created it.
- Job for X.service failed because the control process exited with error codesystemd started the service, but its start command (ExecStart, or ExecStartPre) exited with a non-zero status. The message itself is generic; the real reason is in the service's logs.
- No space left on deviceA filesystem is full — or it has run out of inodes. Find what's using space with df and du, then clean logs, caches and old files.
- Read-only file systemThe filesystem is mounted read-only — either deliberately (a read-only mount, container image, snap, ISO) or because the kernel remounted it after detecting disk errors. Check dmesg before simply remounting.
- Segmentation fault (core dumped)The program accessed memory it wasn't allowed to and the kernel killed it. Get a backtrace with gdb or the core dump to find where.
- Start request repeated too quicklysystemd tried to restart a crashing service too many times within the rate-limit window (by default 5 starts in 10 seconds) and gave up. The real problem is why the service keeps exiting.
- sudo: unable to resolve hostThe machine's hostname isn't listed in /etc/hosts. Add it next to 127.0.1.1 (or 127.0.0.1).
- Temporary failure in name resolutionThe system could not turn a hostname into an IP address because no DNS server answered. Usually no network, a broken /etc/resolv.conf, systemd-resolved down, or DNS blocked inside Docker/WSL.
- Text file busyLinux refuses to overwrite a binary that is currently running (ETXTBSY), or to execute a file that is still open for writing. Stop the process, or replace the file instead of writing into it.
- Too many open filesA process hit its file descriptor limit (ulimit -n), or file watchers hit the inotify limit. Raise the limit, or fix code that leaks open files/sockets.
- umount: target is busy / Device or resource busyThe kernel refuses because something is still using the filesystem or device: a process has a file open, its current directory is inside the mount, another mount sits on top, or the device is held by LVM/RAID/swap.