FILE AND DIRECTORY BASICS |
This cateogry also includes utilities
that change file/directory properties and permissions |
ls |
List files/directories in a directory, comparable to dir in
windows/dos. |
ls -la |
Shows all files (including ones that start with a period),
directories, and details attributes for each file. |
cd |
Change directory (e.g cd /usr/local/bin) |
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 |
Print the contents of filename.txt to your screen |
tail |
Similar to 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 |
head |
Similar to tail, but only reads the top of the file |
head /var/log/messages |
See the first 20 (by default) lines of /var/log/messages |
head -200 /var/log/messages |
Print the first 200 lines of the file to the screen |
more |
Llike 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 |
less |
Page through files |
od |
View binary files and data |
xxd |
Also view binary files and data |
gv |
View Postscript/PDF files |
xdvi |
View TeX DVI files |
nl |
Number lines |
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
|
cp |
Copy a file |
cp filename filename.bak |
Copies filename to filename.bak |
cp -a /etc/* /root/etc/ |
Copies all files, retaining permissions form one directory
to another. |
cp -av * ../newdirectory |
Copies all files and directories recurrsively in the current
directory INTO newdirectory |
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. |
chmod |
changes file access permissions. The set of 3 go in this order from left
to right:
USER - GROUP - EVERONE
0 = --- No permission
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 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 |
stat |
Display file attributes |
grep |
Llooks 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. |
wc |
Word count |
wc -l filename.txt |
Tells how many lines are in filename.txt |
find |
Utility to find files and directories on your server. |
find / -name "filename" |
Find the file called "filename" on your filesystem
starting the search from the root directory "/". |
locate filename |
Find the file name and path of which contains the string "filename".
Run 'updatedb' to build index. |
EDITORS |
Most popular editors available on UNIX
platforms. |
pico |
Friendly, easy to use file editor |
pico /home/burst/public_html/index.html |
Edit the index page for the user's website. |
vi |
Popular editor, tons of features, harder to use at first than
pico |
vi filename.txt |
Edit filename.txt. All commands in vi are preceded by pressing the escape
key. Each time a different command is to be entered, the escape key needs
to be used. Except where indicated, vi is case sensitive. Fore more commands
go to: http://www.intellink.net/vi-qref.htm
H --- Upper left corner (home)
M --- Middle line
L --- Lower left corner
h --- Back a character
j --- Down a line
k --- Up a line
^ --- Beginning of line
$ --- End of line
l --- Forward a character
w --- Forward one word
b --- Back one word
fc --- Find c
; --- Repeat find (find next c)
: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
|
emacs |
Another popular editor. For more commands go to http://www.hsrl.rutgers.edu/ug/emacs_qref.html
C-\ t --- Tutorial suggested for new emacs users.
C-x C-c exit emacs
|
emacs filename.txt |
Edit filename.txt. While you're in emacs, use the following quickies
to get around:
C-x C-f --- read a file into emacs
C-x C-s --- save a file back to disk
C-x i --- insert contents of another file into this buffer
C-x C-v --- replace this file with the contents of file you want
C-x C-w --- write buffer to specified file
C-f --- move forward one character
C-b --- move backward one character
C-n --- move to next line
C-p --- move to previous line
C-a --- move to beginning of line
C-e --- move to end of line
M-f --- move forward one word
M-b --- move backword one word
C-v --- move forward one screen
M-v --- move backward one screen
M-< --- go to beginning of file
M-> --- go to end of file
|
NETWORK |
Some of the basic networking utilities. |
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. |
netstat -an |grep :80 |wc -l |
Show how many active connections there are to apache (httpd
runs on port 80) |
top |
Shows live system processes in a formatted table, memory information,
uptime and other useful info.
While in top, Shift + M to sort by memory usage or Shift + P to sort
by CPU usage
|
top -u root |
Show processes running by user root only. |
route -n |
Shows routing table for all ips bound to the server. |
nslookup yahoo.com |
Query your default domain name server (DNS) for an Internet
name (or IP number) host_to_find. |
traceroute yahoo.com |
Have a look how you messages travel to yahoo.com |
ifconfig |
Display info on the network interfaces. |
ifconfig -a |
Display into on all network interfaces on server, active or
inactive.. |
ping |
Sends test packets to a specified server to check if it is
responding properly |
tcpdump |
Print all the network traffic going through the network. |
arp |
Command mostly used for checking existing Ethernet connectivity
and IP address |
SYSTEM TOOLS |
Many of the basic system utilities used
to get things done. |
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! |
kill |
terminate a system process |
kill -9 PID |
Immediately kill process ID |
killall program_name |
Kill program(s) by name. For example to kill instances of
httpd, do 'killall httpd' |
du |
Shows disk usage. |
du -sh |
Shows a summary of total disk space used in the
current directory, including subdirectories. |
du / -bh | more |
Print detailed disk usage for each subdirectory starting at
the "/". |
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
|
pwd |
Print working directory, i.e., display the name of my current
directory on the screen. |
hostname |
Print the name of the local host. Use netconf (as root) to
change the name of the machine. |
whoami |
Print my login name. |
date |
Print or change the operating system date and time |
time |
Determine the amount of time that it takes for a process to
complete + other info. |
uptime |
Show the number days server has been up including system load
averages. |
uname -a |
Displays info on about your server such as kernel version. |
free |
Memory info (in kilobytes). |
lsmod |
Show the kernel modules currently loaded. Run as root. |
dmesg | less |
Print kernel messages. |
man topic |
Display the contents of the system manual pages (help) on
the topic. Do 'man netstat' to find all details of netstat command including
options and examples. |
reboot / halt |
Halt or reboot the machine. |
mount |
Mount local drive or remote file system. |
mount -t auto /dev/fd0 /mnt/floppy |
Mount the floppy. The directory /mnt/floppy must exist. |
mount -t auto /dev/cdrom /mnt/cdrom |
Mount the CD. The directory /mnt/cdrom must exist. |
sudo |
The super-user do command that allows you to run specific
commands that require root access. |
fsck |
Check a disk for errors |
COMPRESSION UTILITIES |
There are many other compression utilities
but these are the default and most widely utilized. |
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 |
gzip -d filename.gz |
zip |
Compress files into.zip |
unzip file.zip |
Extracting .zip files shell command |
compress |
Compress files. compress filename |
uncompress |
Uncompress compressed files. uncompress filename.Z |
bzip2 |
Compress files in bzip2 format |
THE (DOT) FILES |
The good old dot files. Let's clear
up some confusion here by defining each. |
.bash_login |
Treated by bash like .bash_profileif that doesn't exist. |
.bash_logout |
Sourced by bash login shells at exit. |
.bash_profile |
Sourced by bash login shells after /etc/profile |
.bash_history |
The list of commands executed previously. |
.profile |
Treated by bash like ~/.bash_profile if that and
.bash_login don't exist. |
.vimrc |
Default "Vim" configuration file. |
.emacs |
Read by emacs at startup |
CONFIGURATION FILES |
Listing everything is beyond the scope
of this article. |
/etc |
This directory contains most of the basic Linux system-configuration
Files. |
/etc/init.d |
Contains the permanent copies of System Vstyle run-level
scripts. These scripts are often linked to files in the /etc/rc?.d directories
to have each service associated with a script started or stopped for the
particular run level. The ? is replaced by the run-level number (0 through
6). (Slackware puts its run-level scripts in the /etc/rc.d directory.) |
/etc/cron* |
Directories in this set contain files that define how the
crond utility runs applications on a daily (cron.daily), hourly (cron.hourly),
monthly (cron.monthly), or weekly (cron.weekly) schedule. |
/etc/cups |
Contains files used to configure the CUPS printing service. |
/etc/default |
Contains files that set default values for various utilities.
For example, the file for the useradd command defines the default group
number, home directory, password expiration date, shell, and skeleton directory |
/etc/skel |
Any files contained in this directory are automatically copied
to a users home directory when that user is added to the system. |
/etc/mail |
Contains files used to configure your sendmail mail service. |
/etc/security |
Contains files that set a variety of default security conditions
for your computer. |
/etc/sysconfig |
Contains important system configuration files that are created
and maintained by various services (including iptables, samba, and most
networking services). |
/etc/passwd |
Holds some user account info including passwords (when not
"shadowed"). |
/etc/shadow |
Contains the encrypted password information for users' accounts
and optionally the password aging information. |
/etc/xinetd.d |
Contains a set of files, each of which defines a network service
that the xinetd daemon listens for on a particular port. |
/etc/syslogd.conf |
The configuration file for the syslogd daemon. syslogd is
the daemon that takes care of logging (writing to disk) messages coming
from other programs to the system. |
/var |
Contains variable data like system logging files, mail and
printer spool directories, and transient and temporary files. |
/var/log |
Log files from the system and various programs/services, especially
login (/var/log/wtmp, which logs all logins and logouts into the system)
and syslog (/var/log/messages, where all kernel and system program message
are usually stored). |
/var/log/messages |
System logs. The first place you should look at if your system
is in trouble. |
/var/log/utmp |
Active user sessions. This is a data file and as such it can
not be viewed normally. |
/var/log/wtmp |
Log of all users who have logged into and out of the system.
The last command can be used to access a human readable form of this file. |
Apache Shell Commands |
Some of the basic and helpful apache
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 |
Some of the basic and helpful MySQL
commands. |
mysqladmin processlist |
Shows active mysql connections and queries |
mysqladmin processlist |wc -l |
Show how many current open connections there are to mysql |
mysqladmin drop database |
Drops/deletes the selected database |
mysqladmin create database |
Creates a mysql database |
mysql -u username -p password databasename < data.sql |
Restores a MySQL database from data.sql |
mysqldump -u username -p password database > data.sql |
Backup MySQL database to data.sql |
echo "show databases" | mysql -u root -p password|grep
-v Database |
Show all databases in MySQL server. |
mysqldump -u root -p password database > /tmp/database.exp |
Dump database including all data and structure into /tmp/database.exp |