Bash: System Commands

3 minute read


These commands have to do with system resources, user accounts, permissions, ect.

User commands

To change owners for files

   # -R in this case is recursive
   chown -R apache:apache /var/www/html/*

To add a group:

   groupadd newGroup

To change group membership for files

   chgrp (groupname) files

   # Change the owning group of /office/files, and all subdirectories, to the group staff.
   chgrp -hR staff /office/files

To change access permissions

  • chmod (mode) files # see here for more examples
   chmod -R 777 root /var/www/html

   # Commonly used to run scripts you create
   chmod +x /path/to/your/filename.extension

   # Commonly used to secure a file or directory
   chmod 644

To see your user id

   # id (username) - view uid, guid, and groups
   id gerry

To add a new user:

   useradd newUser

To delete a user:

   # Remove root privileges if needed.
   userdel newUsersudo visudo

To add your user to a group:

   usermod -a -G (groupname) username

To see permissions for a file


To list all groups

   lid -g (groupname)

To list all users

   cut -d: -f1 /etc/passwd
   awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

To list actively logged on users

  • Add user to sudo:

     # If the user doesn't have rights you either need to add to /etc/sudoers file 
     # Or add to wheel group: 
     adduser testUser
     usermod -aG wheel testUser
     usermod -aG sudo testUser

    System commands (to be ran as root)

To run a command as root

   # Most common command you will probably use
   sudo (command)

   # Just type this command by itself to run all other command past it as root. 
   # Then type "exit" to get back to your user prompt.

To install an application (depending on the package manager and distro):

   # Installs a Linux application, in this case – xchat or IRC.
   sudo apt-get install xchat

   # For CentOS
   sudo yum install xchat

   # For Fedora
   sudo dnf install xchat

To Add A New Path To Path Variable:

  • This order from all users to most specific
  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile
   PATH="$PATH:/opt/puppetlabs/bin";export PATH
  • New way (preferred)
   echo 'pathmunge /opt/puppetlabs/puppet/bin' > /etc/profile.d/
   chmod +x /etc/profile.d/
   . /etc/profile

To remove software:

   sudo yum remove (packageName)

   # Removes a couple programs at once
   sudo yum remove orca gedit evince empathy 

   # Remove all packages that don't have dependencies:
   # Shows them
   sudo package-cleanup --leaves 
   # Removes them
   sudo yum remove `package-cleanup --leaves`

To change a password for a user

   # If left blank, changes current users password
   passwd (username)
   passwd root

To change the date

   date (options)

   # Change the year but keep the same time
   date -s "2014-12-25 $(date +%H:%M:%S)"

To Shutdown

   shutdown -h now

   # Shuts down at 12:30
   shutdown -h 12:30

To logout


To Reboot

   shutdown -r

To start a service

   sudo systemctl start httpd

To see a service status

   sudo systemctl status httpd

To set a service to run on startup

   sudo systemctl enable httpd

   # This enables the ssh service to start on runtime
   update-rc.d ssh enable

To restart a service

   sudo systemctl restart httpd

To have a GUI for services:

   # Use spacebar to enable whichever you want. You can also run “sysv-rc-conf”. These are called TGUI programs.

   # For Debian based: 
   sudo rcconf

   # For SysV Services (RPM based): 
   sudo ntsysv

   # For SystemD Services (default): 
   systemctl list-unit-files | less | grep enabled

   # For almost any Linux distro: 
   chkconfig --list

To open a port on your firewall

   # Check which zones are active
   firewall-cmd get-active-zones

   # Add the port
   firewall-cmd permanent zone=public add-port=3389/tcp

   # Reload the firewall
   firewall-cmd reload

To close a port on your firewall

   # Check which zones are active
   firewall-cmd get-active-zones

   # Remove the port
   firewall-cmd permanent zone=public remove-port=3389/tcp

   # Reload the firewall
   firewall-cmd reload

To View Credentials to Shares/ Passwords if you are using Nautilus.



To see a history of your commands


To clear the screen


To see a calendar of a previous year

   cal 2010