On this day i had experienced more of what one might call a simple text editor. But this text editor was not your ordinary text editor you see. This text editor was greater then your common text editors such as Microsoft Word. I can see but what i have said that you are in pure disbelief. But what i say is true. Behold, VI! The vi text editor is one of the greatest tools in the known and Linux/Unix universe. There are many commands to this text editor, but if you practice these commands you will be able to harness the skills of VI. I look forward to learning this. VI will be just so much more helpful and quicker than Microsoft Word. I WON'T HAVE TO USE THE MOUSE!!! But like i said before i have to practice the commands before i can become a master like the Great Haas.
Today in Unix/Linux we learned about process id's (PID). They are basically a small id for any process that happens to be running. So anything you are doing at that moment has a PID. With that you can go in and maniupulate it in some way. Thats when we learned the kill commands. We take the PID of the process we want to kill and we just kill it with a any kill command that we want. There are numerous kill command options but 'kill -9' is the deadliest of them all. It's basically the equivalent of dropping a NUCLEAR WARHEAD on the command you do not want existing anymore. We also learned that there is such thing as zombies in the UNIX/Linux universe (not to say that there aren't zombies in the human plane of existence.) Expected zombies we can take care of but an unexpected zombie is something we do not want period. So we learned how to make expected zombies, find processes with any specifics and a little more on the VI editor.
In linux today we learned shell scripting. You basically run the system from the outside instead of the inside. We wrote some simple scripts, for example one will ask for our name and say a message. Then another one asks for a password. Either the password was in the script or it called another file with the password we wanted. We learned what we needed to do, what means what like # stands for a comment. #! this is a shhh bang! And we made them executable with a new way of changing permissions. He gave us one more program which took any files in a directory and got rid of any extensions and made them all just regular files, no extensions.
Today we worked on our first project called FILESYSTEM SAFARI. Haas pretty much put this in our projects so that we could get started on them because everybody is lazy in the class (guilty). Any-who, the project is still underway, it isn't too hard but it is cumbersome. It's taking a bit of time to finish it.
Localhost is the standard hostname given to the address of the loopback network interface. The name is also a reserved top-level domain name set aside to avoid confusion with the narrower definition as a hostname.
A Home directory is a file system directory on a multi-user operating system containing files for a given user of the system.
A Regular File is the simplest of files being a read only file.
The Directory is the most common special file. The layout of a directory file is defined by the filesystem used. As several filesystems, both native and non-native, are available under Unix, there is not one directory file layout. Within a directory you can store many files or other directories.
A Special File cannot be regularly accessed through basic means. It has to be opened with a certain command. Some special files include Socket Files and Device Files.
File Listing can be carried out by the ls command. If there you want to find out more about the ls command you can look up its arguments in its manual pages.
lab46:~$ ls Desktop age.sh burninator.c hello.c public_html Documents archive1.tar closet hello.s shell Downloads archive2.zip data lab1.text src Maildir archives extravagentpiranha list-basedloop.sh tmp Music ascii file.txt motd trog3 Pictures badname filecreat.sh numericloop.sh trog3.c Public badname.tar guess1.sh password unix.text Templates bin hellisharmadillo prog2 Videos burninator hello prog2.c
Copying Files is carried out by the cp command. However, in order to fully copy a file to a new area you have to type the file you want and then type the area you want it to reside in.
lab46:~$ cp burninator bin lab46:~$
Creating a file requires the touch command. When you touch a file that you have just named it creates it in the current directory you are in.
lab46:~$ touch file1 lab46:~$
Removing a file requires the rm command. When you type rm make sure you type the file you want removed and that you are in the directory in which it is located. After that you will be prompted with a question for removing the file because Unix cares.
lab46:~$ rm file1 rm: remove regular empty file `file1'? y lab46:~$
There are 3 different Permissions for files:
Of course these permissions can be turned on/off for each class by the user who created the file in the first place. These permissions are indicated by 'r' for Read, 'w' for Write, and 'x' for Execute.
-rwxr--r-- 1 qclark lab46 202 Sep 27 14:33 extravagentpiranha -rw-r--r-- 1 qclark lab46 52 Mar 25 2011 file.txt -rwx------ 1 qclark lab46 201 Apr 29 16:50 filecreat.sh -rwx------ 1 qclark lab46 1019 Apr 25 17:53 guess1.sh -rwxr--r-- 1 qclark lab46 365 Sep 27 16:41 hellisharmadillo -rwxr-xr-x 1 qclark lab46 6625 Oct 12 2010 hello
Tab Completion is a handy little trick if you feel lazy and don't feel like writing out you entire file. Just type the first few letters of the file and hit TAB, your file should appear automatically.
Moving a file requires the mv command. Type this command, then the file that you want moved, and then the location of where you want it move to.
lab46:~$ mv extravagentpiranha bin lab46:~$ lab46:~$ cd bin lab46:~/bin$ ls bin burninator corpseshark extravagentpiranha lethalbadger whitetiger
Familiarity with the structure of UNIX systems; what this objective entails is to have an understanding of things that correlate with the UNIX/Linux system.
One can demonstrate a basic knowledge and understanding of the UNIX system.
A measurement can consist of the topics and experiments that i have performed above.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
#!/bin/bash cd ~/tmp for file in `/bin/ls -1A ~/tmp`;do fname="`echo $file | cut -d'.' -f1`" mv -v $file $fname done exit 0
Is it possible to replace the -f1 with a -f2 and get that field instead?
My brain, curiosity, Matt Haas
I believe that if i change the f1 to an f2 then it will show me the field that occurs after the '.'
To test my hypothesis I shall replace f1 with f2.
#!/bin/bash cd ~/tmp for file in `/bin/ls -1A ~/tmp`;do fname="`echo $file | cut -d'.' -f2`" mv -v $file $fname done exit 0
lab46:~/bin$ ./corpseshark mv: `chimera' and `chimera' are the same file `derp.ent' -> `ent' mv: `dragon' and `dragon' are the same file mv: `filealpha' and `filealpha' are the same file mv: `filebeta' and `filebeta' are the same file mv: `griffin' and `griffin' are the same file `herp.txt' -> `txt' mv: `kraken' and `kraken' are the same file mv: `scorpion' and `scorpion' are the same file mv: `spider' and `spider' are the same file
Based on the data collected:
My hypothesis was correct!
In conclusion, with how many delimiters you have in the file you can choose and whatever comes before it or after are the fields. You can change the field you want by choosing the number that corresponds to where the field is.
Is it possible to do the same experiment above but instead taking more then one field out?
My brain, curiosity and Matt Haas
I believe that replacing the single number with a number-number, for instance 5-7, will take out those fields.
I am going to replace the current field with 5-7 and perform this action in the lab46 terminal.
#!/bin/bash cd ~/tmp for file in `/bin/ls -1A ~/tmp`;do fname="`echo $file | cut -d'.' -f5-7`" mv -v $file $fname done exit 0
lab46:~/bin$ ./corpseshark `file.herp.derp.nyan.cat.fyi.uti.txt.blops.fable.gears' -> `cat.fyi.uti'
Based on the data collected:
It works!
This conclusion is basically the same premise as the previous experiment. The only difference here is that you can take out multiple sections of fields.
Is it possible to only take out the exact fields you want out, even if they may be a few fields apart?
My brain and curiosity
I believe that i can take out only the fields i want by using 'commas'.
I'm going to type in the necessary actions in order to carry out my hypothesis.
#!/bin/bash cd ~/tmp for file in `/bin/ls -1A ~/tmp`;do fname="`echo $file | cut -d'.' -f1,3,6,8,9`" mv -v $file $fname done exit 0
lab46:~/bin$ ./corpseshark `file.herp.derp.nyan.cat.fyi.uti.txt.blops.fable.gears' -> `file.derp.fyi.txt.blops'
Based on the data collected:
It worked!
In conclusion we can take out any field we want as long as we know the actions to take them out. Otherwise it will yell at you