Unix File System
The Unix File System is a hierarchical file system.
/
is root of the system /var
is a directory in root /var/www
is the full path of the sub-directory in "var" /var/www/htdocs
is the full path of the sub-sub-directory in "/var/www" and so on...Some examples
1. To know in which directory you are currently in:
pwd
# It shows the path of the present working directory.
2. Navigate:
cd
# If you want to get into a certain directory, for example:
cd /var/www/htdocs/db
3. To list the content of a directory:
ls
# To get long directory listing:
ls -l
4. Getting the source code:
lynx -source
# Example
lynx -source http://aps.unmc.edu/AP/database/query_output.php?ID=00286
# lynx is a text-based browser. -source tells lynx NOT to display the HTML code, but to return the raw HTML code.
5. Unix command history
# Just press the ''Arrow up'' key to see your previous command
# Whatever you do, double check
6. Get the internet page to your folder
:Example: to put the internet page to the dir where you are at now, key in
lynx -source internet_address.html > your_pagename.html
7. Change mode
: ''chmod'' takes several arguments
: -x is to make executable
: ''chmod -x programfile'' will make program executable rather than just a plain text file.
Questions
1. Why put /var/www/htdocs/db/myprogram in front of myprogram?
: This is because whenever you execute a program, Unix shell needs to find the path of that program.
: In this case, we spell out the full directory path so that Unix shell knows where that program is.
2. Why then can we use the ''lynx'' command and don't have to put the full path?
: This is because lynx command is already in the Shell's list of known paths.
: Later on, we will show you what is the current known paths, e.g. echo $PATH
Command Line Arguments
1. Command Line command without arguments
: For example ''pwd'' doesn't need to take arguments
2. Command line command with one argument
: For example ''ls -l'' takes one argument, the flag ''-l'' to give a ''l''ong listing.
3. Command line command with two arguments
: For example ''lynx -source http://www.google.com''
: lynx the command
: -source the first argument
: http://www.google.com as the second argument
Loop Control
How do we make the numbers autoincrement without us to put in the numbers ourselves?
1. Make 6 into a program to create multiple files
:(1)pseudo code for ''my_program''
for (i=0;i<100;i++)> your_pagename[i].html}
:(2)Change the file to executable file
:(3)Key in [path]/my_program
:(4)chmod +x my_program (This is to make the file executable.)
Learning Unix Commands
'''Environment Control'''
# refers to comments
1) cd d # Change to directory d
2) mkdir d #Create new directory d
3) rmdir d #Remove directory d
4) rm -r existingdirectories # Will delete the existing directory named 'existingdirectories' and all directories and files below it.
5) rm -rf existingdirectories # Will delete the existing directory named 'existingdirectories' and all directories and files below it. Even if it runs into an exception that it would usually prompt for user interaction.
the r is recursive and the f is force.
Be careful with the "rm -r" command. Don't run it as root. And stay away from the root directory if you plan on running it.
6) mv f1 [f2...] d #Move file f to directory d
7) mv d1 d2 #Rename directory d1 as d2
8) passwd #Change password
9) alias name1 name2 #Create command alias (csh/tcsh)
10) alias name1="name2" #Create command alias (ksh/bash)
11) unalias name1[na2...] #Remove command alias na
12) ssh nd #Login securely to remote node
13) exit #End terminal session
14) setenv name v #Set env var to value v (csh/tcsh)
export name="v" #set environment variable to value v (ksh/bash)
Miscellaneous commands
1)
ls# is to list the directory
2)
cp# copy
3)
wc# word count
4)
ls -al | grep root |awk '{print "file: $9, S8" }'# to extract the 8th and the 9th column; details of all the files/directories called root is ls
5)
wc -l# count number of lines
6)
># is to funnel to a new file
7)
ls -al | grep root |awk '{print "file: $9, S8" }' > x.file# transfer the output to a file name, in this case called x.file
8)
pico x.file# a text editor that helps you read the x file; to get out from pico, type ctrl x; pico is very sophisticated
9)
vi x.file# a text editor that helps you read the x file
10)
:q# helps exit vi, which is very obscure.
11)
:q!# helps exit vi, which is very obscure.
12)
pwd# print the current working directory
13)
cd# is to change the directory
14)
tab#use it to automatically fill in the blanks; auto completion
15)
key up and down# help you look at commands typed earlier
16)
echo "ls -al /root/Desktop/ |awk '{print $5 "b", S9 }' " >tinwee# creates an executable file
17)
./tinwee# executing tinwee, but will not work because you have no permission
18)
chmod 755 tinwee# give full access to run tinwee
19)
pico tinwee# to make the program more generic by modifying the code
20)
ls -al $1 |awk '{print $5 "bytes", $9 }#change the code to more generic instead of hardwiring it
21)
tinwee /# takes / as $1, which in this case is root; note that this $1 is different from the #awk $1
22)
ln tinwee t# creating a shortname or short cut (soft link) for tinwee (alias); make sure it is unique alias
23)
echo $PATH | sed 's/:/\n/g'# this is to show the path of all the directories and files line by #line
24)
echo $PATH | sed 's/:/\n/g' |more# show little by little
25)
echo $PATH | sed 's/:/\n/g' |less# show less
26)
echo $PATH | sed 's/:/\n/g' |cat# to show all
27)
echo $PATH | sed 's/:/\n/g' |tac# to show in reverse order
28)
echo $PATH | sed 's/:/\n/g' |less |rev# show less but in reverse order
29)
q# to quit while looking at the results of these
30)
ctrl + C#to quit while looking at these
31) Create a translation tool, simple one
echo "ATGCTTA"
" |rev |tac |tr "atcg" "tagc"
# rev reverses the sequence, tac show it in reverse order and tr does the translation
32)
alias#does not link a file but substitutes for the name
33)
>>#will append to the bottom of a file that already exists
34)
>#append to a new file
35) Creata database of your own
lynx http://aps.unmc.edu/AP/database/query_output.php?ID=00286 > AP00286.html#saves the web page to AP00286.html but it is not saving the source code
lynx -source http://aps.unmc.edu/AP/database/query_output.php?ID=00286 > AP00286.html
#saves the web page to AP00286.html and this time it is saving the source code
echo "lynx -source http://aps.unmc.edu/AP/database/query_output.php?ID=00286 > AP00286.html" >getapd
pico getapd# read the getapd file
change
lynx -source http://aps.unmc.edu/AP/database/query_output.php?ID=00286 > AP00286.htmlto
lynx -source http://aps.unmc.edu/AP/database/query_output.php?ID=0$1 > AP0$1.html
# this is making the code generic
getapd AP00287# type on the command prompt to download the record 00287 without typing the whole command
pico getapd# open the getapd file to make the command more generic
for i in 'Seq -w 1137`
do
lynx -source http://aps.unmc.edu/AP/database/query_output.php?ID=0$i > AP0$i.html
sleep 3
done
./getapd#run getapd for automatic download
36.
" "# double quotes are used whe you want to evaluate the variable. For example "$PATH" will evaluate the dollar sign and give you relevant matches
37.
' '# are used when one wants to print the special characters without evaluating them. For example, '$PATH' will return $PATH
No comments:
Post a Comment