Chapter 1
Chapter 1
Objectives/Goals:
The field of system administration fits well within Computer Science curricula,
drawing heavily from subjects like Operating Systems, Networking, Database
Challenges:
or software tools.
Common Practices:
1
Prepared by: Gebremedhn M.
hardware interfaces.
Unix-like Systems:
2
Prepared by: Gebremedhn M.
Security: UNIX-based systems are inherently more secure than Windows due to their
modular approach, allowing independent management of components and reducing
vulnerabilities.
Advantages: Unix-like systems like Linux offer stability, flexibility, and security,
making them popular for various devices and IT systems.
Windows Systems:
User Interface: Windows systems are known for their Graphical User Interface (GUI),
designed to be user-friendly and accessible to non-IT users for tasks like file
management and software access.
File System: Windows uses different file systems like NTFS and FAT, treating
physical drives individually, whereas UNIX employs UFS (Unix File System) with a
hierarchical tree structure under the same root.
Main Differences:
Licensing: UNIX is open-source under the General Public License, while Windows is
proprietary software owned by Microsoft with closed-source code.
3
Prepared by: Gebremedhn M.
User Interface: Unix-like systems can be more challenging for newcomers due to their
CLI emphasis, while Windows focuses on a simple GUI for ease of use by non-IT
individuals.
Processing Model: UNIX supports multiprocessing with separate address spaces for
processes, while Windows utilizes multithreading with shared address space among
threads within a process.
Linux follows a single-rooted hierarchical file system structure where all directories
stem from the root directory (/), providing a seamless and extensible organization for
files and folders.
4
Prepared by: Gebremedhn M.
Linux allows for the mounting of additional file systems to the existing directory
structure, enabling users to access and interact with external storage devices or
network resources seamlessly.
The Linux File System Hierarchy Standard (FHS) defines the organization and
guidelines for file and directory placement in UNIX-like operating systems,
promoting interoperability, system administration, and documentation uniformity.
Unix-based systems like Linux utilize file and directory permissions to control access
and security. Permissions are set for users, groups, and others, defining who can read,
write, or execute files and directories.
- mv: Used to move or rename files and directories. For example, mv filepath1
filepath2 moves or renames the file at the first path to the second.
- cp: Copies files and directories.
The command ‘cp sourcePath destinationPath’ copies files to a new location.
- rm: Deletes files and directories. For instance, rm path1 path2 deletes one or more
files, while rm -r directory removes directories along with their contents.
- mkdir: Creates directories. Using mkdir directory, you can create a new directory
with the specified name.
- touch: Creates empty files. By using touch filename, you can create an empty file
with the specified name.
5
Prepared by: Gebremedhn M.
- cd: Navigates through directories. For example, cd directory moves to the specified
directory.
- ls: Lists files and directories in the current working directory. Simply
typing ls displays the contents of the current directory.
- pwd: Prints the current working directory on the terminal, showing the user's
location within the file system.
- tree: Visualizes the structure of directories and files, providing a hierarchical view
of the file system for better organization.
- uniq: The ‘uniq’ command, often used with sort, is powerful for log file analysis. It
sorts and displays entries by removing duplicates, making it useful for various
data processing tasks.
- Init: Init commands are crucial for managing system initialization processes in
Linux. They control the boot process and system services, ensuring proper system
startup and management.
- Processes: Commands related to processes allow users to manage running
programs efficiently. These commands include tools for monitoring, controlling,
and interacting with processes on a Linux system.
- Threads: Thread-related commands are essential for handling multithreading in
Linux applications. They enable efficient utilization of system resources by
managing concurrent execution within a program.
6
Prepared by: Gebremedhn M.
- Shell Scripting: Shells like Bourne, C, and Zsh offer powerful scripting
capabilities, enabling users to automate tasks, create complex programs, and
leverage unique features like word substitution and parameter expansion.
- Interactive Features: Shells like Friendly Interactive Shell (fish) provide
advanced interactive features such as advanced suggestions, tab completion,
syntax highlighting, descriptive error messages, web-based configuration, and
command history with search options, enhancing user experience and
productivity.
- AI-Powered Shell: Innovative AI-powered shells can generate commands based on
plain English input, converting them into Linux commands for execution. While
offering convenience, caution is advised due to the potential risks of unintended
actions like sending emails to the wrong recipients or deleting files
unintentionally.
- Customization and Configuration: Shells like Zsh offer extensive customization
options through frameworks like Oh My Zsh, allowing users to tailor their shell
environment to suit their preferences and workflow.