---
# System prepended metadata

title: Week 1 Assignment

---

# Week 1 Assignment

## Level-1

**Linux CLI Basics:**
Task-1 
```
- Create a directory named "ACM_Projects" in your home directory. 
- Navigate into the "ACM_Projects" directory. 
- Create a new file named "sample.txt" and add some text. 
- Copy "sample.txt" to "sample_copy.txt". 
- Rename "sample_copy.txt" to "renamed_sample.txt". 
- Move "renamed_sample.txt" to a new directory named "backup". 
- Delete "sample.txt". 
```
Task-2
```
- Initialize a Git repository inside the "ACM_Projects" directory. 
- Create a new file named "README.md" and add some text to it. 
- Add the "README.md" file to the staging area. 
- Commit the changes with a meaningful commit message.
```
## Level 2 
**Linux File Operations:**
Task-1
```
- Create a new directory named "task1" inside "ACM_Projects". 
- Move the "README.md" file into the "task1" directory. 
- Navigate into the "task1" directory. 
- Create a subdirectory named "images" within "task1". 
- Use wget command to download an image from a URL into the "images" directory. 
- List all files and directories recursively in "task1" to verify the structure. 
```
**Git Branching and Merging:**
Task-2
```
- Create a new branch named "feature" from the main branch. 
- Modify the "README.md" file by adding a section describing a feature. 
- Add and commit changes in the "feature" branch. 
- Merge the "feature" branch into the main branch. 
- List all files in the current directory and pipe the output to grep to find files with ".txt" extension. 
```

Task-3
```
- Create a new folder
- Put the following files in the folder
    - Code.txt
    - Log.txt
    - Output.txt
- Stage the Code.txt and Output.txt files
- Commit them
- And Finally push them to GitHub
```
> P.S: you have to do this via command line and you have to take screenshots of the code snippets for each step, put them in a folder and put it in the github repo.
## Level 3 
**Linux Permissions and Ownership:**
Task-1
```
- Create a new file named "script.sh" in the "task1" directory. 
- Set permissions to make "script.sh" executable. 
- Execute "script.sh" to display a message. 
```
**Git Collaboration:**
Task-2
```
- Fork a sample repository from the ACM organization's GitHub repository. 
- Clone the forked repository to your local machine. 
- Create a new branch named "fix" to resolve an issue or add a feature. 
- Push the changes to your forked repository. 
- Create a pull request to merge changes into the original repository. 
```
## Level 4 
**Working with Processes:**
Task-1
```
- Use ps command to list all processes running on your system.
- Use kill command to terminate a specific process. 
```
**Shell Scripting:**
Task-2
```
- Write a shell script that accepts a filename as an argument and displays whether it is a file or a directory. 
- Write a shell script to automate a backup process by compressing a specified directory and moving it to a backup location. 
```
**System Administration:**
Task-3
```
- Use useradd to create a new user account. 
- Use chmod to change permissions of a file to be executable by everyone. 
- Use cron to schedule a task to run periodically.
```
*Be honest to yourself, this assignment is for your learning!!*

## Additional Problem

>     - Put master.txt on master branch, stage and commit
>     - Create 3 branches: public1, public2 and private
>     - Put public1.txt on public 1 branch, stage and commit
>     - Merge public 1 on master branch
>     - Merge public 2 on master branch
>     - Edit master.txt on private branch, stage and commit
>     - Now update branch public 1 and public 2 with new master code in private
>     - Also update new master code on master
>     - Finally update all the code on the private branch
>     - Put master.txt on master branch, stage and commit