# 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