Table of Contents

UNIX/Linux Fundamentals Journal

January 25th, 2014

After reading the first two chapters of “Unix for the Beginning Mage ”, I learned a lot of things concerning navigation through the terminal. What I like about this book is that it does a really good job of not only keeping the readers attention, but it also goes through step by step with examples of a terminal so that practice using the terminal can be initiated. Before reading this it was really hard for me to just open up my terminal and start trying things, but because of the examples that were shown, I am more confident to do so in the future. One thing that I am still having a hard time understanding is Unix itself. I looked up some sites on google to try to find a meaning that makes sense to me, but I can't get a solid understanding of it. That being said, I figure that as the course continues I will grasp a better understanding. Back to the navigation of the terminal. I found this to be very significant because it is the first important step to really digging into Unix. After today's reading, I am really excited to learn how to begin creating things within my terminal that are interesting and significant.

February 4th, 2014

The last week of Unix, the key thing that I learned dealt with using spells and creating files and directories.In the reading I created a directory called closet and created a file called shelves in this directory. From there I was taught how to edit the file called shelves and start making a file with every spell that I learn in it. What I found interesting is that all the spells that i can use are already listed in a file on the system. It occurred to me that it would be almost pointless to create a library of spells that i easily already have access to. I then decided that I could make modifications to my file called shelves that not only include the spells, but what each spell does.Another area that was explored this week includes security. I was able to look at different ways that I can change how secure my directories are to any of the three groups. The next question that i want answered is: how can i get to other people's directories and how can they get to mine?

February 11th, 2014

For this week, I read chapter 6 of Unix for the Beginning Mage. In this Chapter we went over a lot of different topics. First I would like to talk about the topic concerning the echo command, because it was a command that we have used once before In class. While practicing it, it seems to be really good at over writing text inside of a file. My question is, is there a way to specify exactly what in the file you want changed. As far as I see, the whole file just gets overwritten. the other topics talked about in chapter 6 included: casting new spells, grepping, redirecting, reading instructions, and wild cards. Grepping is kind of like grabbing the exact content that you want out of the file. In the reading it compared it to the word grabbing. When talking about redirecting, it is like displaying something, but instead of displaying it, you send it some place. Generally you would send it to a file in your directory. The example that was used in the reading stored the calender of the current month into a text file. After the text file was saved in my directory, I could then use the cat function to display the calender of this current month. Reading instructions is pretty self-explanatory. the reading taught us a new spell on how to look up all types of spells and read the instructions on how to use them. The two wild cards that we learned in the reading today included keyboard characters “?” “*”. Wild Cards are also referred to as regular expressions. All the spells that I learned in the chapter 6 reading include: man, cal, grep, apropos and echo. Yes this week laid a whole lot of new things to try on me and I think some of my projects might be a little more easy now.

February 13th, 2014

The Puzzlebox project deals with file extensions on files. When locating the the file called file.txt, I copied it over to my home directory so that I could work with it from there. Once I used file(1) on file.txt my terminal just displayed the words “ASCII Text”. When I cat file.txt, My terminal reads “ This is a simple text file. It contains ASCII text.” So file(1) and cat do similar things in this case. When using gzip(1) on file.txt my terminal just takes me back to my prompt, but if I then use file(1) again on file.txt I get an error message. It won't allow me to open the file. essentially the file has been compressed and to read it again I need to un-compress it again.

March 2cd, 2014

Lately there has been a lot of talk concerning shell scripting. From doing some research, shell scripting is simply the a literal script for the computer to follow. Essentially it is used to avoid doing any tedious work. In Unix being lazy is the idea. Getting the computer to do the things that we don't want to have to do over and over again is what it's all about. The basic command of ls has a script so that anytime a user wants to view the contents of their directory, they can simply type ls and see every file within that directory. Since shell scripting is still fairly new to me, my goal is to come up with three ideas that I can put in a script that will make traveling through my terminal quicker and easier. Another thing that I want to explore more is how to keep the changes that I make to my terminal saved so that every time I log out, the terminal doesn't reset. The key is finding more time to just explore different ideas concerning lab46 and my terminal.

March 15th, 2014

These past few weeks in Unix and Linux I have been creating a game in which the player is dramatically launched into the future. In this game I had to use everything that I have learned in this class so far. I also had to apply many new things and learned a lot from this project. For one I learned how to format a document using HTML format. I was aware of the concept of HTML format, but I never before had to use it. Secondly, I learned how to save pictures to my public_HTML directly via the internet. It just confirmed that it all is really connected. Using HTML also allowed for me to learn how to display a picture and create links to other directories in my terminal. This project has also showed how fun and creative Unix and Linux could be. This project has expanded my knowledge concerning the usage of Unix and Linux and I'm excited for the next project that will expand my knowledge even more.

March 18th, 2014

This past weeks activities involved using wild cards for text processing. It is using the most efficient ways to search through a text document looking for key words or letters or symbols in general. when trying to search for what you want in a stream of text, the components that make up what you want are usually between the brackets([]). To search for things that don't have certain components, you just have to put a carrot(^) in front of the components that you are not looking for. For example, [^abc]. If you put that then you are looking for words that don't start with the letters abc; which is probably every word in the document that you are looking at. There aren't many things that start with a b and c. The tool that is used to go out and get these qualified files, words, content ect. is called grep. When trying this on my terminal, I don't believe that I used it to the full intent because of the fact that I didn't know what to really look for, but while using it, I could tell that it is definitely a quicker way to browse the system of a file or a directory than going through and reading everything one word at a time. It is truly something that is more efficient and fun to do in front of people who do not know how to do Unix.

April 22cd, 2014

In this journal entry I want to talk about what I have learned concerning scripting. Work began to pile up and it took me awhile to complete the IRC bot project, but when I finally dug into the project, it allowed me to learn a bit more about writing scripts. Prior to this project I understood to a point what a script was and since it is just a mini program and in this case the command line prompt to doing a certain task, I finally got to put it into action. The question that I always had about scripting is how to run a script either automatically or on command. For the IRCbot project I got to do both for checking my bots status every ten minutes and killing it on command. I got to write scripts for both so that was pretty cool. The interesting part was the process. Before I made my script I had to go through how I could accomplish what I wanted on my command line first. That was something extremely significant that I took from this project.

April 22cd, 2014

The IRCbot project was a project that did many different things. Every project introduces a few new ideas as well as causing you to use the Unix and Linux that you have learned up to that point. For this project we were introduced to an IRCbot named phenny. New things that I was introduced to for this project included bot channels, plug-in, scripts (like mentioned in the previous journal), and bash syntax. For scripting I had time to view bash syntax for scripting and to be honest I don't entirely like it. I feel like it is more raw and incomplete in comparison to C, C++, or python. That being said, I simply had a basic experience with the bash language; which isn't enough for me to make a concrete opinion about it. One thing that was confirmed though is that the ideas of programming carry over from language to language. Even though the syntax for bash may take some time to get use to, since I know the fundamentals behind programming and the logic and everything, No language is impossible to use at this point. I also had a chance to discuss different bot channels and IRCbots with my instructor Matt and it was interesting because as I move forward in programming I feel like I will become one of the people that Matt and I were talking about. I think that is pretty cool. In general a great project, at time I over complicated it based off of what I heard from other people, but a good project.

April 28th

For this week I was able to complete the Dataproc project and it Simply made me more efficient when it comes to using my tools on the command line. Things like running a c program from my terminal, creating and compressing archives, organizing my data into a specific directory, creating files and directories, using egrep and grep, cat, piping, and cut. Mainly I am trying some new tools from the command line that I haven't learned in class already. I am becoming more outgoing and going to the internet to look for new tools. Once I find a tool I look up the tool in the manual in my terminal to find out how it works. I believe that I am beginning to become more familiar with the different options that these tools have. I'm still playing with grep because I wouldn't say that I mastered it yet. In this project I also got to look at the ascii table to try to decipher the name of the file that I needed to run. It was a project that caused you to focus and recognize what the program was doing. A really fun project in my opinion.

0x6 REFLECTION

For this semester, I think that I probably enjoyed the puzzlebox project the most. This stands out for me the most because I had such a hard time trying to figure out how to roam in the terminal and how to unravel data. Once I went in and got helped and finished the project, I realized that I had a good time trying to unravel the archives and compressed data. I guess what I didn't like about the class is how there wasn't any set meeting time to actually work on the projects, but honestly that was more my fault than anything. I spent my free time focused on other classes and didn't begin to balance my time well until the last couple of weeks. The project that I liked the least was the IRCbot because I found it hard to start and I also let other people convince me that the project was too difficult for me to handle. In the end I learned a lot and it wasn't as difficult as I thought, but it still is the project that I was least interested in this semester. If I had any suggestions, it would be concerning writing scripts or at least knowing more about bash syntax so that scripts become easier to write.

0x7 PERSONAL ASSESSMENT

Considering my attendance, I haven't missed a single class this semester. In that are I think I did fairly well. Considering timeliness, I completely failed. I was generally a week late getting in 4 of the projects and the IRCbot took me an extra 3 weeks to get it in!!:( That all goes back to how I was managing my schedule. If I had managed my schedule better from the beginning I absolutely would have been way more timely. Concerning the projects, I completed all of them in the end so I still learned a lot. There is more I still really want to learn, but I feel like I will learn them in my next step in learning. Considering what I learned , Timeliness and attendance I think I deserve a B- in the course. Again I completely failed the time aspect; which is the thing that I would manage better if I had the this course to do all over again. This course was very structured and encouraged self thinking and I liked it a lot. It was very difficult at first because you're learning how to actually think about how you think, but it's a lot of fun.