Sources: mostly Wikipedia or Unix basics guides, or as given >>Definitions, etc. tty TeleTYpwriter general term for computer terminal, whether physical (teleprinter) or electronic (monitor) tar Tape ARchive Files archived with tar are called "tarballs". root admin sh shell - user interface, i.e.: Command-Line Interface (CLI) or Graphical User Interface (GUI) ssh secure shell ~ home folder / root folder $ in terminal: logged in as standard user (regular privileges) e.g., [user@localhost ~]$ . hidden files or directories start with a period dotfile hidden-by-default file storing configuration settings (e.g., .bashrc) rc Run Commands localhost name of computer swap move memory between RAM and disk inode index node Data structure storing information about files and directories (metadata, owner, permissions, location on disk, etc.) ioctl input/output control errno error number Unix time: number of seconds since the Unix epoch (00:00:00 UTC, 1 Jan 1970). (Note however that occasional leap seconds have been inserted). /dev/null The "null device"; a folder that deletes everything sent/moved to it Daemon A computer program that runs as a background process. Unix daemons typically have a process name ending with d. Binaries Compiled versions of executable programs. Mask Data used for bitwise operations (operations on individual bits). Pipe (|) Use the output of one program or command as the input to another: A | B (http://www.ee.surrey.ac.uk/Teaching/Unix/unix3.html) Redirect (>) Redirect the input or output of a command: A < B use contents of file B as input to command A A > B place output of command A in file C (http://www.ee.surrey.ac.uk/Teaching/Unix/unix3.html) ./script_name.sh run script_name script & run process in background (placed at end of command invoking process) \ escape character in Bash >File extensions .d directory .c C/C++ source code .h header file (C/C++) .sh shell script .conf config file .tar file archived with tar .gz file compressed with gzip .xz file compressed with xzip The modular nature of Unix utilities means files can be archived and compressed separately; this is indicated by the extension .tar.gz (or .tar.xz). >Utilities cron job scheduler (from Greek "chronos", "time") init initialization First process (PID 1) run during startup >>Filesystem >Directory hierarchy / root . current directory .. parent directory /bin binaries of user utilities (like ls and cp) /boot files needed for boot /dev devices /etc system-wide configuration files and system databases /home user home directories - personal files and documents /lib libraries /media mount point for removable media /mnt mounted devices /opt optional add-on packages (user-installed software) /proc processes /run temporary data from system processes /root root user's home folder /sbin system (superuser) binaries /srv servers /sys system (kernel and device/driver) information from sysfs /tmp temporary files not preserved on reboot /usr user files /bin binaries /include headers /lib libraries /local local software /share architecture-independent shareable program data /var variable - files that may change often /log system log files /mail incoming mail /spool spool (data copied between different devices) /src source - uncompiled source code /tmp temporary files to be preserved on reboot >File permissions File permissions are managed by class and mode. Class: the class of users to whom the permissions belong. user the owner of the file group users who are members of the file's group other users who are neither the fileowner nor filegroup members Mode: the permissions available to a class. Read read file or list directory contents Write write to file or directory eXecute execute file or recurse directory tree Numerical notation in octal or binary is also used: read 4 100 write 2 010 execute 1 001 File permissions are listed in the file mode string: -rwxrwxrwx The first letter indicates the file type: d directory - regular file l symbolic link p FIFO (named pipe) s socket c character device b block device Class permissions are then listed in the order of user, group, other. A hyphen indicates that the class does not possess the requisite permission. File permissions can be edited using the chmod command, with the syntax: chmod [class][operator][mode] file class: (u)ser, (g)roup, (o)ther operator: + add - subtract = make exact mode: (r)ead, (w)rite, e(x)ecute file: the file to be modified The umask command can be used to determine how permissions are set for newly created files. >File attributes [explain] setuid/SUID (set user ID) setgid/SGID (set group ID) sticky bit >>Background >"Unix philosophy" The UNIX philosophy is documented by Doug McIlroy in the Bell System Technical Journal from 1978: 1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features". 2. Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input. 3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them. 4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them. It was later summarized by Peter H. Salus in A Quarter-Century of Unix (1994): Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface. In their award-winning Unix paper of 1974, Ritchie and Thompson quote the following design considerations: Make it easy to write, test, and run programs. Interactive use instead of batch processing. Economy and elegance of design due to size constraints ("salvation through suffering"). Self-supporting system: all Unix software is maintained under Unix. https://en.wikipedia.org/wiki/Unix_philosophy#Origin >"Everything is a file" Everything is a file describes one of the defining features of Unix, and its derivatives—that a wide range of input/output resources such as documents, directories, hard-drives, modems, keyboards, printers and even some inter-process and network communications are simple streams of bytes exposed through the filesystem name space. https://en.wikipedia.org/wiki/Everything_is_a_file >>Names (acronyms) >Unix The origins of Unix date back to the mid-1960s when the Massachusetts Institute of Technology, Bell Labs, and General Electric were developing Multics, a time-sharing operating system for the GE-645 mainframe computer. Multics featured several innovations, but also presented severe problems. Frustrated by the size and complexity of Multics, but not by its goals, individual researchers at Bell Labs started withdrawing from the project. The last to leave were Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna, who decided to reimplement their experiences in a new project of smaller scale. This new operating system was initially without organizational backing, and also without a name. The new operating system was a single-tasking system. In 1970, the group coined the name Unics for Uniplexed Information and Computing Service (pronounced "eunuchs"), as a pun on Multics, which stood for Multiplexed Information and Computer Services. Brian Kernighan takes credit for the idea, but adds that "no one can remember" the origin of the final spelling Unix. Dennis Ritchie, Doug McIlroy, and Peter G. Neumann also credit Kernighan. https://en.wikipedia.org/wiki/Unix#History >POSIX: Portable Operating System Interface >MINIX: mini-Unix >Linux: Linus [Torvalds] + MINIX >Bash The shell's name is an acronym for Bourne-again shell, a pun on the name of the Bourne shell that it replaces and on the common term "born again". https://en.wikipedia.org/wiki/Bash_(Unix_shell) >curses: pun on "cursor optimization" https://en.wikipedia.org/wiki/Curses_(programming_library) >Command meanings/definitions ar archiver awk authors Alfred Aho, Peter Weinberger, Brian Kernighan bg background Run jobs in background cat concatenate Write files to standard output cc C compiler cd change directory chmod change mode (= file permissions) chroot change root directory for a process cp copy dd data definition Convert and copy files (https://en.wikipedia.org/wiki/Dd_(Unix)#History) df disk free Display available disk space diff Display differences between two files du disk usage Estimate file system usage ed [text] editor emacs Edit MACroS fg foreground Run jobs in foreground fsck File System Consistency checK grep ed command g/re/p (Globally search REgular expression and Print matching lines) ln link Create links between files ls list List files in a directory man manual mv move Move or rename files ps process status pwd Print Working Directory rm remove Delete files roff RunOFF sed Stream EDitor sh shell su substitute sser sudo superuser do tar tape archiver top table of processes vi visual