Posts tagged empty
Basic vi Commands
What is vi?
- The default editor that comes with the UNIX operating system is called vi (visual editor). [Alternate editors for UNIX environments include pico and emacs, a product of GNU.]
- The UNIX vi editor is a full screen editor and has two modes of operation:
- Command mode commands which cause action to be taken on the file, and
- Insert mode in which entered text is inserted into the file.
In the command mode, every character typed is a command that does something to the text file being edited; a character typed in the command mode may even cause the vi editor to enter the insert mode. In the insert mode, every character typed is added to the text in the file; pressing the <Esc> (Escape) key turns off the Insert mode.
- While there are a number of vi commands, just a handful of these is usually sufficient for beginning vi users. To assist such users, this Web page contains a sampling of basic vi commands. The most basic and useful commands are marked with an asterisk (* or star) in the tables below. With practice, these commands should become automatic.
- NOTE: Both UNIX and vi are case-sensitive. Be sure not to use a capital letter in place of a lowercase letter; the results will not be what you expect.
To Get Into and Out Of vi
To Start vi
- To use vi on a file, type in vi filename. If the file named filename exists, then the first page (or screen) of the file will be displayed; if the file does not exist, then an empty file and screen are created into which you may enter text.
|*||vi filename||edit filename starting at line 1|
|vi -r filename||recover filename that was being edited when system crashed|
To Exit vi
- Usually the new or modified file is saved when you leave vi. However, it is also possible to quit vi without saving the file.
- Note: The cursor moves to bottom of screen whenever a colon (:) is typed. This type of command is completed by hitting the <Return> (or <Enter>) key.
|*||: x<Return>||quit vi, writing out modified file to file named in original invocation|
|:wq<Return>||quit vi, writing out modified file to file named in original invocation|
|:q<Return>||quit (or exit) vi|
|*||:q!<Return>||quit vi even though latest changes have not been saved for this vi call|
Moving the Cursor
- Unlike many of the PC and MacIntosh editors, the mouse does not move the cursor within the vi editor screen (or window). You must use the the key commands listed below. On some UNIX platforms, the arrow keys may be used as well; however, since vi was designed with the Qwerty keyboard (containing no arrow keys) in mind, the arrow keys sometimes produce strange effects in vi and should be avoided.
- If you go back and forth between a PC environment and a UNIX environment, you may find that this dissimilarity in methods for cursor movement is the most frustrating difference between the two.
- In the table below, the symbol ^ before a letter means that the <Ctrl> key should be held down while the letter key is pressed.
|*||j or <Return>
|move cursor down one line|
|*||k [or up-arrow]||move cursor up one line|
|*||h or <Backspace>
|move cursor left one character|
|*||l or <Space>
|move cursor right one character|
|*||0 (zero)||move cursor to start of current line (the one with the cursor)|
|*||$||move cursor to end of current line|
|w||move cursor to beginning of next word|
|b||move cursor back to beginning of preceding word|
|:0<Return> or 1G||move cursor to first line in file|
|:n<Return> or nG||move cursor to line n|
|:$<Return> or G||move cursor to last line in file|
- The following commands allow the vi editor screen (or window) to move up or down several lines and to be refreshed.
|^f||move forward one screen|
|^b||move backward one screen|
|^d||move down (forward) one half screen|
|^u||move up (back) one half screen|
|^l||redraws the screen|
|^r||redraws the screen, removing deleted lines|
Adding, Changing, and Deleting Text
- Unlike PC editors, you cannot replace or delete text by highlighting it with the mouse. Instead use the commands in the following tables.
- Perhaps the most important command is the one that allows you to back up and undo your last action. Unfortunately, this command acts like a toggle, undoing and redoing your most recent action. You cannot go back more than one step.
|*||u||UNDO WHATEVER YOU JUST DID; a simple toggle|
- The main purpose of an editor is to create, add, or modify text for a file.
Inserting or Adding Text
- The following commands allow you to insert and add text. Each of these commands puts the vi editor into insert mode; thus, the <Esc> key must be pressed to terminate the entry of text and to put the vi editor back into command mode.
|*||i||insert text before cursor, until <Esc> hit|
|I||insert text at beginning of current line, until <Esc> hit|
|*||a||append text after cursor, until <Esc> hit|
|A||append text to end of current line, until <Esc> hit|
|*||o||open and put text in a new line below current line, until <Esc> hit|
|*||O||open and put text in a new line above current line, until <Esc> hit|
- The following commands allow you to modify text.
|*||r||replace single character under cursor (no <Esc> needed)|
|R||replace characters, starting with current cursor position, until <Esc> hit|
|cw||change the current word with new text,
starting with the character under cursor, until <Esc> hit
|cNw||change N words beginning with character under cursor, until <Esc> hit;
e.g., c5w changes 5 words
|C||change (replace) the characters in the current line, until <Esc> hit|
|cc||change (replace) the entire current line, stopping when <Esc> is hit|
|Ncc or cNc||change (replace) the next N lines, starting with the current line,
stopping when <Esc> is hit
- The following commands allow you to delete text.
|*||x||delete single character under cursor|
|Nx||delete N characters, starting with character under cursor|
|dw||delete the single word beginning with character under cursor|
|dNw||delete N words beginning with character under cursor;
e.g., d5w deletes 5 words
|D||delete the remainder of the line, starting with current cursor position|
|*||dd||delete entire current line|
|Ndd or dNd||delete N lines, beginning with the current line;
e.g., 5dd deletes 5 lines
Cutting and Pasting Text
- The following commands allow you to copy and paste text.
|yy||copy (yank, cut) the current line into the buffer|
|Nyy or yNy||copy (yank, cut) the next N lines, including the current line, into the buffer|
|p||put (paste) the line(s) in the buffer into the text after the current line|
- A common occurrence in text editing is to replace one word or phase by another. To locate instances of particular sets of characters (or strings), use the following commands.
|/string||search forward for occurrence of string in text|
|?string||search backward for occurrence of string in text|
|n||move to next occurrence of search string|
|N||move to next occurrence of search string in opposite direction|
Determining Line Numbers
- Being able to determine the line number of the current line or the total number of lines in the file being edited is sometimes useful.
|:.=||returns line number of current line at bottom of screen|
|:=||returns the total number of lines at bottom of screen|
|^g||provides the current line number, along with the total number of lines,
in the file at the bottom of the screen
Saving and Reading Files
These commands permit you to input and output files other than the named file with which you are currently working.
|:r filename<Return>||read file named filename and insert after current line
(the line with cursor)
|:w<Return>||write current contents to file named in original vi call|
|:w newfile<Return>||write current contents to a new file named newfile|
|:12,35w smallfile<Return>||write the contents of the lines numbered 12 through 35 to a new file named smallfile|
|:w! prevfile<Return>||write current contents over a pre-existing file named prevfile|
General Information [ ^ ]
.htaccess Definition1 [ ^ ]
Apache server software provides distributed (i.e., directory-level) configuration via Hypertext Access files. These
htaccess files enable the localized fine-tuning of Apache’s universal system-configuration directives, which are defined in Apache’s main configuration file. The localized
htaccess directives must operate from within a file named
htaccess. The user must have appropriate file permissions to access and/or edit the
htaccess file. Further,
htaccess file permissions should never allow world write access — a secure permissions setting is “644”, which allows universal read access and user-only write access. Finally,
htaccess rules apply to the parent directory and all subdirectories. Thus to apply configuration rules to an entire website, place the
htaccess file in the root directory of the site.
Commenting .htaccess Code [ ^ ]
Comments are essential to maintaining control over any involved portion of code. Comments in
htaccess code are fashioned on a per-line basis, with each line of comments beginning with a pound sign
#. Thus, comments spanning multiple lines in the
htaccess file require multiple pound signs. Further, due to the extremely volatile nature of htaccess voodoo, it is wise to include only alphanumeric characters (and perhaps a few dashes and underscores) in any
Good thing to have ssh access set up for both webhosts.
An easy way of migrating the databases especially when it is a big database and it size is over what you have in PhpMyAdmin setup:
Login to the new server with ssh and type:
mysqldump -h oldhost -u oldusername -poldpassword olddbname | mysql -h newhost -u newusername -pnewpassword newdbname
Note: if this did not work check your passwords or check if your new server is white listed (remote mysql access) on the old server.
Below is a list of common SSH commands that can be very useful I will be updating this as I suffer through my hosting (Article provided by WebHostGear.com):
Common SSH Commands or Linux Shell Commands,
ls : list files/directories in a directory, comparable to dir in windows/dos.
ls -al : shows all files (including ones that start with a period), directories, and details attributes for each file.
ls -alF: shows all files and its owners
cd : change directory · · cd /usr/local/apache : go to /usr/local/apache/ directory
cd ~ : go to your home directory
cd – : go to the last directory you were in
cd .. : go up a directory cat : print file contents to the screen
cat filename.txt : cat the contents of filename.txt to your screen
chmod: changes file access permissions
The set of 3 go in this order from left to right:
USER – GROUP – EVERONE
1 = –X Execute only
2 = -W- Write only
3 = -WX Write and execute
4 = R– Read only
5 = R-X Read and execute
6 = RW- Read and write
7 = RWX Read, write and execute
chmod numberpermissions filename
chmod 000 : No one can access
chmod 644: Usually for HTML pages
chmod 755: Usually for CGI scripts
chown: changes file ownership permissions
The set of 2 go in this order from left to right:
USER – GROUP
chown root myfile.txt : Changes the owner of the file to root
chown root.root myfile.txt : Changes the owner and group of the file to root
chown -Rf Username Foldername : Changes the owner of a directory and all files in it
tail : like cat, but only reads the end of the file
tail /var/log/messages : see the last 20 (by default) lines of /var/log/messages
tail -f /var/log/messages : watch the file continuously, while it’s being updated
tail -200 /var/log/messages : print the last 200 lines of the file to the screen
more : like cat, but opens the file one screen at a time rather than all at once
more /etc/userdomains : browse through the userdomains file. hit Spaceto go to the next page, q to quit
pico : friendly, easy to use file editor
pico /home/burst/public_html/index.html : edit the index page for the user’s website.
File Editing with VI ssh commands
vi : another editor, tons of features, harder to use at first than pico
vi /home/burst/public_html/index.html : edit the index page for the user’s website.
When in the vi program you can use the following useful commands, you will need to hit SHIFT + : to go into command mode
:q! : This force quits the file without saving and exits vi
:w : This writes the file to disk, saves it
:wq : This saves the file to disk and exists vi
:LINENUMBER : EG :25 : Takes you to line 25 within the file
:$ : Takes you to the last line of the file
:0 : Takes you to the first line of the file
grep : looks for patterns in files
grep root /etc/passwd : shows all matches of root in /etc/passwd
grep -v root /etc/passwd : shows all lines that do not match root
ln : create’s “links” between files and directories
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf : Now you can edit /etc/httpd.conf rather than the original. changes will affect the orginal, however you can delete the link and it will not delete the original.
last : shows who logged in and when
last -20 : shows only the last 20 logins
last -20 -a : shows last 20 logins, with the hostname in the last field
w : shows who is currently logged in and where they are logged in from.
who : This also shows who is on the server in an shell.
netstat : shows all current network connections.
netstat -an : shows all connections to the server, the source and destination ips and ports.
netstat -rn : shows routing table for all ips bound to the server.
top : shows live system processes in a nice table, memory information, uptime and other useful info. This is excellent for managing your system processes, resources and ensure everything is working fine and your server isn’t bogged down.
top then type Shift + M to sort by memory usage or Shift + P to sort by CPU usage
ps: ps is short for process status, which is similar to the top command. It’s used to show currently running processes and their PID.
A process ID is a unique number that identifies a process, with that you can kill or terminate a running program on your server (see kill command).
ps U username : shows processes for a certain user
ps aux : shows all system processes
ps aux –forest : shows all system processes like the above but organizes in a hierarchy that’s very useful!
touch : create an empty file
touch /home/burst/public_html/404.html : create an empty file called 404.html in the directory /home/burst/public_html/
file : attempts to guess what type of file a file is by looking at it’s content.
file * : prints out a list of all files/directories in a directory
du : shows disk usage.
du -sh : shows a summary, in human-readble form, of total disk space used in the current directory, including subdirectories.
du -sh * : same thing, but for each file and directory. helpful when finding large files taking up space.
wc : word count
wc -l filename.txt : tells how many lines are in filename.txt
cp : copy a file
cp filename filename.backup : copies filename to filename.backup
cp -a /home/burst/new_design/* /home/burst/public_html/ : copies all files, retaining permissions form one directory to another.
cp -av * ../newdir : Copies all files and directories recurrsively in the current directory INTO newdir
mv : Move a file command
mv oldfilename newfilename : Move a file or directory from oldfilename to newfilename
rm : delete a file
rm filename.txt : deletes filename.txt, will more than likely ask if you really want to delete it
rm -f filename.txt : deletes filename.txt, will not ask for confirmation before deleting.
rm -rf tmp/ : recursively deletes the directory tmp, and all files in it, including subdirectories. BE VERY CAREFULL WITH THIS COMMAND!!!
TAR: Creating and Extracting .tar.gz and .tar files
tar -zxvf file.tar.gz : Extracts the file
tar -xvf file.tar : Extracts the file
tar -cf archive.tar contents/ : Takes everything from contents/ and puts it into archive.tar
gzip -d filename.gz : Decompress the file, extract it
ZIP Files: Extracting .zip files shell command
Firewall – iptables commands
iptables -I INPUT -s IPADDRESSHERE -j DROP : This command stops any connections from the IP address
iptables -L : List all rules in iptables
iptables -F : Flushes all iptables rules (clears the firewall)
iptables –save : Saves the currenty ruleset in memory to disk
service iptables restart : Restarts iptables
Apache Shell Commands
httpd -v : Outputs the build date and version of the Apache server.
httpd -l : Lists compiled in Apache modules
httpd status : Only works if mod_status is enabled and shows a page of active connections
service httpd restart : Restarted Apache web server
MySQL Shell Commands
mysqladmin processlist : Shows active mysql connections and queries
mysqladmin drop databasenamehere : Drops/deletes the selected database
mysqladmin create databasenamehere : Creates a mysql database
Restore MySQL Database Shell Command
mysql -u username -ppassword -h webhost databasename < databasefile.sql : Restores a MySQL database from databasefile.sql
Backup MySQL Database Shell Command
mysqldump -u username -ppassword -h webhost databasename > databasefile.sql : Backup MySQL database to databasefile.sql
kill: terminate a system process
kill -9 PID EG: kill -9 431
kill PID EG: kill 10550
Use top or ps ux to get system PIDs (Process IDs)
Each line represents one process, with a process being loosely defined as a running instance of a program. The column headed PID (process ID) shows the assigned process numbers of the processes. The heading COMMAND shows the location of the executed process.
Putting commands together
Often you will find you need to use different commands on the same line. Here are some examples. Note that the | character is called a pipe, it takes date from one program and pipes it to another.
> means create a new file, overwriting any content already there.
>> means tp append data to a file, creating a newone if it doesn not already exist.
< send input from a file back into a command.
grep User /usr/local/apache/conf/httpd.conf |more
This will dump all lines that match User from the httpd.conf, then print the results to your screen one page at a time.
last -a > /root/lastlogins.tmp
This will print all the current login history to a file called lastlogins.tmp in /root/
tail -10000 /var/log/exim_mainlog |grep domain.com |more
This will grab the last 10,000 lines from /var/log/exim_mainlog, find all occurances of domain.com (the period represents ‘anything’,
— comment it out with a so it will be interpretted literally), then send it to your screen page by page.
netstat -an |grep :80 |wc -l
Show how many active connections there are to apache (httpd runs on port 80)
mysqladmin processlist |wc -l
Show how many current open connections there are to mysql
It seems hostmonster is cleaning their servers again.
I have been hosting with them for 18 months with few issues. I also referred more then 10 clients to them. The last referral was just yesterday and today January 10th 2009… all I noticed that my web page was taken down without a single warning…
Contact them and asked for a reason. They said: you are using too much server resources. I told them I had this site up and running for the last 6 months without any change in script/visitors/database so what happened?
The referred me to the error log to check. One of the support suggested that I should delete empty databases. I told her you allow us to use 100 db in your plan why would my 33 databases be an issue even if it is empty??
The reinstated my site and I started working on the error log and scripts only 5 minutes later they just took down the whole site and killed my cpanel access. I had to beg to get back my data…
Moving on .. AVOID hostmonster if you are thinking of a website with more than 100 visitors a day. Once you go up bit with visitors they will take your site down.