Linux basic information unified from personal notes and bookmarks
- Filesystem Hierarchy Standard
- System Inspection Commands
- Process Management
- systemd Service Manager
- Working with files and folders
- Permissions
- Networking
- Packages
Directory | Description |
---|---|
/ | root directory of the entire file system |
/bin | essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp |
/boot | boot loader files, e.g., kernels, initrd |
/etc | host-specific system-wide configuration files |
/home | users' home directories, containing saved files, personal settings, etc. |
/lib | libraries essential for the binaries in /bin and /sbin |
/media | mount points for removable media such as CD-ROMs |
/mnt | temporarily mounted filesystems |
/opt | optional application software packages |
/proc | cirtual filesystem providing process and kernel information as files |
/root | home directory for the root user |
/run | run-time variable data: Information about the running system since last boot |
/sbin | essential system binaries, e.g., fsck, init, route |
/srv | server data such as data and scripts for web servers, data offered by FTP servers |
/sys | information about devices, drivers, and some kernel features |
/tmp | temporary files (see also /var/tmp). Often not preserved between system reboots |
/usr | secondary hierarchy for read-only user data; contains the majority of (multi-)user applications |
/usr/bin | non-essential command binaries (not needed in single user mode); for all users. |
/usr/include | standard include files |
/usr/lib | libraries for the binaries in /usr/bin and /usr/sbin |
/usr/local | tertiary hierarchy for local data, specific to this host |
/usr/sbin | non-essential system binaries |
/usr/share | architecture-independent (shared) data |
/usr/src | source code, e.g., the kernel source code with its header files |
/var | variable files |
/var/cache | application cache data |
/var/lib | persistent data modified by programs as they run |
/var/lock | lock files |
/var/log | log files |
/var/mail | mailbox files |
/var/opt | variable data from add-on packages that are stored in /opt |
/var/run | Run-time variable data |
/var/spool | spool for tasks waiting to be processed |
/var/tmp | temporary files to be preserved between reboots |
Command | Description |
---|---|
uname -a | current system summary |
lshw | system hardware |
lscpu | cpu and processing units |
lspci -v | pci buses and details about the devices connected to them |
lsblk - a | all block devices |
lsmod | loaded kernel modules |
lsusb -v | usb devices |
df -H | partitions, their mount points and the used and available space on each |
fdisk -l | partition information |
mount | column -t | mounted file systems |
free -m | check the amount of used, free and total amount of RAM |
dmidecode | SMBOIS data structures |
ifconfig -a | network interfaces |
cat /proc/cpuinfo | |
cat /proc/meminfo | |
cat /proc/version | |
cat /proc/scsi/scsi | |
cat /proc/partitions | |
cat /etc/*-release | linux distro |
dmesg | less | boot information (/var/log/dmesg) |
history | tac | less | bash execution history (~/.bash_history) |
uptime | show current uptime |
vmstat 5 10 | virtual memory statistics 10 times at 5 second intervals |
less /etc/passwd | list users |
find . -name "device" | find all files containing word device |
A process refers to a program in execution; it’s a running instance of a program. Daemons are special types of background processes that start at system startup and keep running forever as a service (typically in the /etc/init.d directory)
Command | Description |
---|---|
ps -ef | display every processes on the system |
top | system monitoring tool |
pstree | display a tree diagram of processes |
w | list of all the users currently logged |
who | same as above |
whoami | who you are logged in as |
kill pid | kill process id pid |
killall proc | kill all processes named proc * |
bg | stopped or background jobs |
fg | brings the most recent job to foreground |
fg n | brings job n to the foreground |
Parameters | Description |
---|---|
start application.service | start a systemd service |
stop application.service | stop a currently running service |
restart application.service | |
reload application.service | reload configuration files without restarting |
reload-or-restart application.service | |
enable application.service | |
disable application.service | |
status application.service | |
is-active application.service | active or inactive |
is-enabled application.service | enabled or disabled |
is-failed application.service | |
list-units --all | list loaded or attempted to load |
list-unit-files | |
cat atd.service | display unit file |
list-dependencies sshd.service | display dependencies |
show sshd.service | show low-level properties of a unit |
mask nginx.service | prevent the service from being started, automatically or manually |
edit nginx.service | |
rescue | put the system into rescue (single-user) mode = isolate rescue.target |
halt | halt the system |
poweroff | initiate a full shutdown |
reboot | system restart |
Targets are special unit files that describe a system state or synchronization point. Targets do not do much themselves, but are instead used to group other units together.
Parameters | Description |
---|---|
get-default | get default target |
set-default graphical.target | |
list-unit-files --type=target | |
list-units --type=target | |
isolate multi-user.target |
Parameters | Description |
---|---|
--utc | display the timestamps in UTC |
-b | logs from the current boot |
--list-boots | see the boots that journald knows about |
-b -1 | logs for the boot n relative to the current |
--since yesterday | |
--since "2015-01-10" --until "2015-01-11 03:00" | |
--since 09:00 --until "1 hour ago" | |
-u nginx.service | for a specific unit |
_PID=8088 | by process id |
-k or --dmesg | kernel messages |
-p err | priority: emerg, alert, crit, err, warning, notice, info, debug |
-n 20 | most recent 20 logs |
-o json-pretty | output as: cat, export, json, json-pretty, json-sse, short, short-iso, short-monotonic, short-precise, verbose |
--no-pager | |
-f | actively follow the logs as they are being written |
--disk-usage | find out the amount of space of the journal |
--vacuum-size=1G | shrink journal by the indicated size |
--vacuum-time=1years | remove entries beyond specified time |
cat /etc/systemd/journald.conf | journal config |
Command | Description |
---|---|
pwd | show current directory |
cd | change to home |
cd dir | change directory to dir |
ls | directory listing |
ls -la | formatted listing with hidden files |
mkdir dir | create a directory dir |
rm file | delete file |
rm -r dir | delete directory dir |
rm -f file | force remove file |
rm -rf dir | force remove directory dir |
cp file1 file2 | copy file1 to file2 |
cp -r dir1 dir2 | copy dir1 to dir2; create dir2 if it doesn't exist |
mv file1 file2 | rename or move file1 to file2 |
ln -s file link | create symbolic link link to file |
touch file | create or update file |
more file | output the contents of file |
head file | output the first 10 lines of file |
tail file | output the last 10 lines of file |
tail -f file | output the contents of file as it grows |
cat > file | standard input into file |
Editors
Editor | Command | Description |
---|---|---|
Vi | vi file | opens file in Vi file editor |
i | text mode | |
ESC | command mode | |
: | ex mode | |
:q | quit | |
:q! | force quit | |
:w | save | |
:wq or :x | save and quit | |
:w | save |
- chmod octal file – change the permissions of file to octal, which can be found separately for user, group, and world by adding:
- 4 – read (r)
- 2 – write (w)
- 1 – execute (x)
- chmod 777 – read, write, execute for all
- chmod 755 – rwx for owner, rx for group and world
- ssh user@host – connect to host as user
- ssh -p port user@host – connect to host on port port as user
- ssh-copy-id user@host – add your key to host for user to enable a keyed or passwordless login
- grep pattern files – search for pattern in files
- grep -r pattern dir – search recursively for pattern in dir
- command | grep pattern – search for pattern in the output of command
- locate file – find all instances of file
- date – show the current date and time
- cal – show this month's calendar
- uptime – show current uptime
- w – display who is online
- whoami – who you are logged in as
- finger user – display information about user
- uname -a – show kernel information
- cat /proc/cpuinfo – cpu information
- cat /proc/meminfo – memory information
- man command – show the manual for command
- df – show disk usage
- du – show directory space usage
- free – show memory and swap usage
- whereis app – show possible locations of app
- which app – show which app will be run by default
- tar cf file.tar files – create a tar named file.tar containing files
- tar xf file.tar – extract the files from file.tar
- tar czf file.tar.gz files – create a tar with Gzip compression
- tar xzf file.tar.gz – extract a tar using Gzip
- tar cjf file.tar.bz2 – create a tar with Bzip2 compression
- tar xjf file.tar.bz2 – extract a tar using Bzip2
- gzip file – compresses file and renames it to file.gz
- gzip -d file.gz – decompresses file.gz back to file
- ping host – ping host and output results
- whois domain – get whois information for domain
- dig domain – get DNS information for domain
- dig -x host – reverse lookup host
- wget file – download file
- wget -c file – continue a stopped download
- dpkg -i pkg.deb – install a package (Debian)
- rpm -Uvh pkg.rpm – install a package (RPM)
- ./configure
- make
- make install
- Ctrl+C – halts the current command
- Ctrl+Z – stops the current command, resume with
- fg in the foreground or bg in the background
- Ctrl+D – log out of current session, similar to exit
- Ctrl+W – erases one word in the current line
- Ctrl+U – erases the whole line
- Ctrl+R – type to bring up a recent command
- !! - repeats the last command
- exit – log out of current session