This document predominantly references the ubuntu distribution. All examples should work on recent releases of ubuntu (12.04, 14.04 or 16.04).
GRUB Boot Loader
The acronym GRUB is short for Grand Unified Boot Loader
GRUB is for x86-based systems, Das U-BOOT is for embedded systems.
The GRUB2 Configuration file /boot/grub/grub.cfg is generated using the update-grub command based on configuration files in /etc/grub.d/ and the file /etc/default/grub.
To change from a graphical GRUB screen to text-only one, add the following line to your grub configuration. This is sometimes required for compatability when running linux on older ESXi hosts.
# Comment out this line to stop the ubuntu purple splash screen
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# Uncomment this line to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=consoleStartup/Shutdown/Services
SystemV, Upstart, systemd, systemctl
init /sbin/init is the first user-level process at system startup. init coordinates the boot process and has it’s origins in older SysVinit distributions.
Modern linux distributions have since replaced SysVinit with one of two new schemes.
- Upstart was developed by Ubuntu and first appeared in Ubuntu 6.10. It was soon adopted by all the major linux distributions.
- systemd began life in the Fedora project (2011) and is now standard in RHEL 7, Ubuntu 16.04 and most mainstream distributions use it.
end of GRUB Bootloader section
SysVinit System Runlevels
| S,s | Same as 1 |
| 0 | Shutdown system and turn power off |
| 1 | Single User Mode |
| 2 | Multiple user, no NFS, only text login |
| 3 | Multiple user, with NFS and network, only text login |
| 4 | Not Used |
| 5 | Multiple user, with NFS and network, graphical login with X |
| 6 | Reboot |
chkconfig command examples
# Get info about a given service
sudo chkconfig SERVICENAME
# List what services start a each runlevel
sudo chkconfig --list
# Enable service on startup
sudo chkconfig SERVICENAME on
# Disable service from starting
sudo chkconfig SERVICENAME off
# Add a new service to be controlled by chkconfig
sudo chkconfig --add SERVICENAMEchkconfig is part of SysInitV and not used on Ubuntu 16.04, update-rc.d is the equivelent .
update-rc.d command examples
# Enable a service to start on boot
sudo update-rc.d <service> defaults
# Enable service to start on runlevels 3,4,5 priority 20
sudo update-rc.d <service> start 20 3 4 5
# Enable service to stop on runlevels 0,1,6 priority 80
sudo update-rc.d <service> stop 80 0 1 6
# Disable service from starting
sudo update-rc.d <service> remove service command examples
# Status of all /etc/ini.d/ services
sudo service --status-all
# Start a service
sudo service SERVICENAME stop
# Stop a service
sudo service SERVICENAME stop
# Restart a service
sudo service SERVICENAME restart
# Running status of a service
sudo service SERVICENAME statussystemd
Instead of bash scripts, systemd uses .service files located in /etc/systemd/system/ and cgroups have replaced runlevels. systemctl is used to configure and control services under systemd.
systemctl command examples
Show the status of all services that systemd controls
systemctl
# or
systemctl list-units -t service --allStarting, stopping, and controlling services with systemctl
# start a service
sudo systemctl start NAME.service
# stop a service
sudo systemctl stop NAME.service
# stop & start a service
sudo systemctl restart NAME.service
#signal service process to reread config
sudo systemctl reload NAME.serviceRestart a service but only if it is currently running
sudo systemctl condrestart NAME.serviceCheck the status of a service to see if it is running or stopped
systemctl status NAME.serviceSet a service to start on boot
sudo systemctl enable NAME.serviceDisable a service from starting on boot
sudo systemctl disable NAME.serviceGet information about any given service
systemctl show NAME.serviceCompletely disable a service from startup and being able to run
# disable a service from running and startup
sudo systemctl mask NAME.service
# reenable a disabled service
sudo systemctl unmask NAME.serviceend of Statup/Shutdown/Services section
Ubuntu Package Management
w/ aptitude, apt-get, apt-cache, dpkg
Upgrade all packages
sudo apt-get update
sudo apt-get upgradeUpgrade all packages one-liner
- refresh package list
- install package updates w/ no prompt
- cleanup afterwards
sudo apt-get update; sudo apt-get -y upgrade; sudo apt-get cleanUpgrade linux kernel (linux-generic, linux-headers-generic, linux-image-generic)
sudo apt-get update; sudo apt-get dist-upgradeTurn on automatic security updates
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgradesGet information about a package
apt-cache show python3Search available packages by keyword
$ apt-cache search python3Search available packages matching package name only
apt-cache pkgnames python3Show package dependencies
apt-cache depends python3How to find what apt package provides a particular file or binary. This functionality is similar to yum provides on rpm-based distros and requires you install the apt-file package.
# Install apt-file
sudo apt-get install apt-file
sudo apt-file update
# see what package(s) include /usb/bin/python3
sudo apt-file search /usr/bin/python3
# exact string match
sudo apt-file -F search /usr/bin/python3end of Ubuntu Package Management section
Vim Editor
Install the full version of vim or vim-enhanced
sudo apt-get install vim-noxend of Vim Editor section