Tyler Fitch's Spring2014 Opus
All sorts of fun below!
Hello everyone! I'm Tyler and I literally have no experience with UNIX/Linux, hence why I'm here now! I've been interested in computers ever since I was a young child, and have grown up with my life revolving around them and other forms of technology. My hobbies that take up my free-time are gaming, movies and books. All in all, I'm a pretty average guy. Looking forward to this semester!
EOCE Assignment: I have to say this really reared its head at me. For some reason it was quite the struggle. Not sure if it was the mixture of having to recollect some of the knowledge, busy work life, or what. None the less I gave it a go.. I wasn't going to just fall down!
0x0:
Time to fight this beast, and hopefully come out somewhat alive! Completely nervous about this. To start off, copy a file to the home directory. Okay not a problem. Now to uncompress that .jar file. It wasn't actually a .jar, after performing the file command on it I found out its a 7zip compressed file. I uncompressed using “7za” and got two files out of it. One is “ls-l”, the other “result” I changed the permissions on “result” using “chmod” and tried to execute it. After doing this, the file disappeared? This was supposed to happen? The first file “ls -l” I can't get anything to run on it because of that pesky space between ls and -l.
0x1: To start this section sprite.c needed to be compiled. It didn't compile normally using gcc, so I opened it up with nano. Afterwards, I was able to see in the comments what I needed to use to actually compile it. After reading through the code (not my strong suite at all) I was able to change the image size that I needed to 150×300. Not a problem! Also, finding my GUID wasn't an issue either. Just used “id tfitch1”. I definitely ran into some trouble opening up the .dat files, and overlapping my images. As for opening them I tried our typical commands, as well as bvi and hexedit. I'll have to see what I can do about this.
0x2:
Scripting… for sure the hardest part of the course for me every time that it came up. I'm saving this section for later before I submit, since it will take a huge portion of my time. I'm absolutely terrible at it, and struggle even getting myself into the scripting mindset.
0x3:
To start, copied the file from the public directory.I used the dd command to make sure I got an identical copy. To find the file size of the file,I used the ls -l command. I now know the file is 8186 bytes large. After running the file command on data.file, it's a plain data file. Oddly, when running nano or cat on the file I can make out one string “The magic number is: 42”? Could come into play later on. Also have a “Hello World!”
0x4:
To start this one off, like the others, copy the file to the home directory. The filename makes it look like an .iso file, but it really was a tar compressed file. After using tar -xvf on the file, I received setup.exe. I then performed ./setup.exe and received a message from you. One that said the end is near! Yes! I've struggled immensely thus far, this was nothing like the normal labs and projects for me. It felt like it required a different form of thinking. Carrying on, I tried to convert the setup.exe to a setup.sh, since I ran the file command on it. “Not ready yet”. Okay more to do. I opened the file up with nano and noticed the comment for using cat on datafile, and pipe to less. I did this, yet get jargon. Not only is it jargon, but it's all the same symbol, so I cannot find any patterns. Once again, this last project is getting me.
0x6:
Now it's time for the reflection on this course. To be honest, I came in not knowing a darn thing about the command line unix environment. I knew nothing on how to execute a command, or even navigate around. Something that was meaningful to me was simply how much more comfortable I am sitting down in a command line environment now. This is something that I was extremely timid about beforehand. I felt the course was a great source of knowledge. I loved the lab46 aspect of it. However, I wish I could've been able to make it to the labs, because I know how much it would've helped and been a great experience. The course was extremely interesting, and provided me with ample UNIX knowledge. I'm not saying I'm nearly as good as some of my other peers in this class, but I get the general concepts, and can perform day-to-day tasks. That's a long shot from where I started. My least favorite task was the EoCE assignment itself. I felt that I did great with reading the book, and performing the assignments and projects. I understood what I was doing, and what was happening. Then I got to this and struggled some. I'm not quite sure what it was, but it was a little demoralizing. I'm trying to not let it discourage me. I plan to self-teach myself more of the UNIX environment even when this class is over.
0x7:
As for my personal assessment, I feel that I should pass the class at least. I would say I was a c+ to a B's student. I completed the assignments, and kept up on my opus. I did all of this within a timely manner of the due dates. Knowing what I know now about UNIX compared to where I started (a timid, cold, naive baby) I feel great.
In this weeks lab I used dd to create a “data-dump” copy of the uptime file and placing it into howlong. I was surprised at how easy all of this was to do, and easy the manual page was to understand. After comparing the two files they were exactly identical. I did this my using chmod to make howlong executable. After executing them, they were the same. Using diff and md5sum, I discovered the both files were binary files, and identical. Pretty interesting stuff in this lab.
Whew I don't know about everyone else, but nearing the end of the semester now things are starting to get crazy. I finished the dataproc project today, and struggled a little bit with getting it up and running. Through the struggles however, I learned quite a bit with tossing the data around to and from. I'm sure it will make me comfortable in the future doing this. I hope to finish the next assignment in the coming days, and get a crack on the next project. The end of the semester is coming sooner than expected!
I completed the lab for week 10 today, and I have to say it was quite interesting. I always seem to like messing around with different arguments for commands, and seeing what is possible. We definitely got our fair share of that today. Filters are extremely powerful, and I'm going to have to remind myself from time to time that I can use them to accomplish tasks at hand. Later in the lab, using field separators helped when narrowing down what specifically we wanted from the filters. Personally I had some issues with getting my command syntax right, but after I achieved that, I was good to go. Time to work more on the project due next week!
Whew! Finally finished the ircbot project. I have to say that was definitely the hardest thing I've done inside of UNIX yet. It took me quite some time to fully understand the concepts behind cron and at, and what they were used for. As well as the syntax for editing them. I thought this project was a great way to really see how timing happens under the hood for the UNIX OS. It was a challenge, but I'm looking for more things like this.
How about the strange weather as of late? Can it just make up it's mind? Anyways, I worked and completed on lab 0x8. Have to say it was pretty interesting to follow the process from start to finish of a program/file being compiled. Boy am I glad for compilers, it would be such a pain to have to do it by hand every time. My favorite part about this lab was being able to dig deep under the hood, and learn about assembly languages, binary, and source code. This brought and understanding of what really happens when a file is compiled, or just generic development happens on a program. Stay safe!
Tonight I finally finished the webpages project. I have to say, at first it seemed daunting, but it was a lot of fun by the end of it. Crafting my own story was a little strange, I'm not much of the storyteller. Feel free to check it out everyone, you might shake your head in shame at the story. As for writing in HTML, I've done it before so it wasn't terrible. It was however a great refresher of using some of the basic tags.
I logged onto lab46 today with the intention of completing lab 0x7 about processes and job control, which I did. I have to say it was pretty neat to be able to essentially pop the hood of the OS and be able to see what was happening below. It's awesome that we have so much control, to be able to see the individual processes so easily, and kill them off, suspend, etc to them. Great stuff. I also broadened my horizons with the command line some, learning how to separate commands using one line. I plan to play around with more of the signals that the kill command can accept, to see what else its capable of. Looking forward to more!
This past week I worked on lab 0x6 from time to time, and eventually getting to the end of it today. It was a large lab, but full of information. Scripts were similar in a lot of ways to batch files on Windows, at least in the philosophy of what they are. Learning how to create them inside of UNIX was interesting though. It was fun to play around with them, and see what possible for automation.
Last night I finished up the urev program. To be honest, this was a great review for me personally. I'm not sure why, but in the past I struggled on figuring out the numerical octal values….even though I knew octal. Strange I know. After doing about 4 of these, I had it down pat. Good knowledge to know! Moving on to tonight, I completed lab 0x5. Messing around with wildcards proved more useful that I originally expected. I figured I would never be using them when using UNIX, however I couldn't have been more wrong. They're great, and extremely powerful. Definitely a great time saver. I also appreciated the use case of using quotes on the command line. From some research online I knew a little bit about I/O redirection, but actually sitting down and getting some hands-on time with it is just what I needed. Some pretty cool things can be achieved with these tools.
Yep, its valentines day. It's just me and the command line, that's a pretty lonely picture. I'll be alright though, I'm sure plans will happen soon. Back on track, I've completed lab 0x4 today. It was a ton of reading, but all of it great information. I thought it was great to learn some neat tricks to mess around with inside of the UNIX shell. Uncovering how UNIX works with hidden files is something that I've been curious about for awhile, and learning about aliases is awesome. I'm sure that in the coming weeks I'll have a ton of aliases created that I'll be using consistently. Finally, wrapping up the lab, we received some hands-on-time with the tab completion. I've seen this used in other command-line environments, and wondered if UNIX had it's own. It does! This will surely save time with commands that we frequently use and have to type out.
After getting home from work tonight, I decided to start cracking away at the Puzzlebox project. I'd like to start out by saying that this was one of the most thought-provoking things I've done in about a week. It was insanely fun to consistently think about what my next step should be. Learning how to use the “file” command was great, without that I wouldn't have been able to complete this project. During the first questions, file was working as it should.. and I thought I must've been missing something. I was wrong. After spending some time stuck with a specific filetype and hunting down the needed commands, I was back up and rolling and shortly had the file opened and readable. This was amazing. Requesting more projects/labs like this!!
Lab 0x3 was interesting to say the least, I walked in thinking that I would struggle to get my head to grasp the information once I saw it was largely about vi and vim. To my surprise it wasn't bad at all, and incredibly interesting. Luckily, I have a small pocket-sized book that will come in handy for looking up quick information on the program. However there's always the web! Especially the tutorial that Matt linked at the end of the lab. I had no idea that there was a difference when it came to moded and unmoded editors, I thought it was one and done. To wrap up, playing around with the cat command was great. I was able to understand the practical use of the command, and I'm sure I'll be using it often.
Tonight I worked on and finished the archive project. First of all, I have to say WOW! That project was incredible for me, personally my mind was engaged and flowing 100mph. I loved it, so much fun. I explored using commands I originally wasn't comfortable with, but now I definitely am. I feel that a benefit for separating the archive and compressing commands, is sometimes you want to “place and store” those files… and don't really need to have the file size be smaller. This is equivalent of placing files into a folder essentially in a GUI environment, for organization benefits. When smaller sizes are needed/helpful, compression is there to use.
Lab 0x2 yielded a lot of useful information. Compared to the other labs, it went very in-depth, especially with providing an understanding of the UNIX/Linux file system and hierarchy. I've been anticipating to learn about file locations, as well as relative and absolute paths. This was basically like it is inside of Windows or Mac OS, yet still interesting and a nice refresher. Learning about the different types of files that we've been messing with was cool as well. In a way, I think its a lot simpler than other OS's. I've always loved the way that UNIX/Linux handles file permissions. I personally just think that its easier to understand, and in many ways more efficient. I think that the octal representation of access control with files is infinitely easier to use and wrap your head around. Looking forward to more!
Tonight I finished up the rest of the resume project. I already had a resume that I've used for previous employment, but I was new to formatting with Dokuwiki. All in all, I'm extremely impressed with Dokuwiki. Its pretty cool knowing that the pages of lab46 are made with it. It's surprisingly simple to use, and also quite powerful with the array of formatting choices at hand.
Today I worked on the reading from the books, and completed lab 0x1. Tons of good information in this one. When it comes to commands being shortened to (usually) just two letters, I think its completely normal. They're legible, and I understand it when it comes to a space-saving standpoint. Everything in the UNIX OS is a file, pretty interesting sentiment when you compare it to Windows or another OS. Playing with arguments inside of commands, can yield some cool results. I'm looking forward to messing around with them more in the future. Since this is my first time with UNIX, it was new to me how UNIX deals with permission, file owner, and other information. The long listing command is powerful for showing this.
Copying and moving files has a lot of similarities with DOS. Wonder if there was a point behind this, or if it was just the best way to do it? I personally don't think UNIX needs its own rename utility. Moving the file to the same location, but changing the name does the same task. When I arrived at the links section, I couldn't think of any useful use cases.. but after using it, it hands down is extremely useful. Having access to the manual pages right inside the terminal is amazing. I'll be using this for the entirety of the course, its easier to find what you need here than scouring the internet!
Today was great, because it shed some light on the world of UNIX/Linux. I finished lab 0x0 and completed the “Intro” project. I'm so surprised that there is so much depth and history to both. Its great to know that UNIX was created simply to play a video game, instead of having the purpose to make money. Upon first logging into lab46, I changed my password using the newly learned command. After completing the “Intro” project, and the first lab I discovered the structure of the command line used, how to navigate around the file system, creating directories, and figuring out who else is on the system. All cool stuff! I played around with Alpine, to check and compose mail. This was a great way to knock off the course, I can't wait for more!