unix
cheat sheet
[command] --help - gives syntax for using
that command
man [command] - brings up the manual page
for the command, if it exists man [command]
> file.txt - dumps the manual page(s)
for the command into 'file.txt' whatis
[command] - gives a short description of
the command. help - gives a list
of commands (GNU Bash). help [command]
- gives extra information on the commands listed
above. |
| |
| Viewing/editing/creating
a text file |
|
|
vi [filename] - opens VI
text editor, if the file doesn't exist, it'll
be created on saving. (when inside
vi) - using 'i' inserts
- pressing 'escape' and then ':'
goes back to command mode. -
'/searchstring' searchs for 'searchstring' using
regular expressions. - ':' followed
by 'w' writes - ':' followed
by 'qw' writes then quits -
':' followed by 'q' quits. -
':' followed by 'q!' quits regardless of whether
changes are made. - ':' followed
by 'z' undos. pico [filename] - launches
the PICO editor for the filename. more
[filename] - shows one screen's worth of
the file at a time. less [filename]
- similar to more head [filename]
- Shows the first 10 lines of file, or use -n
tail [filename]
- Shows the last 10 lines of file, or use -n
cat [filename] | more - works like more, cat concats
2 strings |
| |
| |
su [user] - changes the
login to 'user', or to the root if no 'user'
is given. date - shows the system
date whoami - tells you who you're
logged in as uptime - how long the
computer has been running, plus other details
w - shows who's logged on, what they're
doing. df - how much disk space is
left. du - disk usage by your login,
it can also total up directories. uname
-mrs - userful info about the system
uname -a - all details about the system |
| |
| Desktop / X server +
client |
|
|
| Switchdesk {manager - gnome,
Enlightenment, etc} - Switches your desktop |
| |
| |
| ps - what's running.
ps ax - shows all processes
top - sort of interactive version of
ps.
kill [pid] - terminates the named process,
which can be name or number or other options.
killall -HUP [command name] - kill
a process, running the command specified,
by name.
killall -9 [command] - similar to the
above
xkill - kills a frozen application
in X (gnome,kde etc. desktops), you just click
on the frozen app. |
| |
| |
| ls -la - list all files/directories
dir - simple form of ls
cd [dir] - change directory
cd ~ - go back to the home directory
cdup - similar to using "cd ..", go
up one directory.
pwd - print which directory you're
in.
./[filename] - run the file if it's
executable and in the current directory
rm [filename] - delete a file
rm -R [directory] - delete a directory
mv [oldfilename] [newfilename] - renames
the file (or directory)
cp [filename-source] [filename-destination]
- copy the file from one place to another
cp -R [dir-source] [dir-destination]
- copy a directory an all its subdirectories
mkdir [name] - makes a directory.
cat [sourcefile] >> [destinationfile]
- appends sourcefile to the end of destinationfile
df - how much disk space is available,
more options available.
- zipping/taring
tar -cvzf mytar.tar.gz sourcefilesordir
- creates a new tar file, verbose options
on, runs it through gnuzip,f is the filename
tar -xvf mytar.tar.gz destination -
extracts a tar file (this example is compressed
with gzip), verbosely, f is the filename
gzip fileordir - compresses a file
with gzip.
gunzip file.gz - decompresses a file
with gzip.
NB gzip only compresses files, it doesn't
collect them into a single file like a tarball
does. |
| |
| |
locate [filename] - searches
the system using an indexed database of files.
use updatedb to update the file database
locate [filename] | sort - sorts the
files alphabetically whereis [filename]
- locates an application, such as 'whereis
bash'
find [filename] - searches the filesystem
as with locate, but without a database so its
slower. find /directory -atime +30 -print
- searches for files not used in the past
30 days. |
| |
| |
ln -s target linkname -
creates a symbolic link, like a shortcut to
the target directory or filename. ln
target linkname - creates the default hard
link. Deleting this will delete the targetted
file or directory. |
| |
| |
dig domainname - retrieves information
about a domain, such as name servers, mx records
whois domainname - whois info on a domain
finger user - gives info about a user,
their group status, but can also be used over
a network netstat -ape - lots of
info about whos connected to your machine, what
processes are doing what with sockets |
| |
| |
Piping to another command is straight forward
enough:
locate filename | grep /usr/local > searchresults.txt
- searches for filename, runs the results through
grep to filter everything without /usr/local
in it, and then outputs the results to searchresults.txt
| runs one application via another,
and can be used multiple times e.g. cat /usr/group
| more | grep root | sort > creates
a new file if once doesn't already exist, overwrites
the contents of the file if it does exist
>> appends to the end of the file,
and creates the file if one doesn't exist.
< sends everything after this to the
application, e.g. ./mysql -u bob -p databasename
< mysqldump.sql |
| |
| Permissions and directory
listing format |
|
|
| groups [username] - shows what
groups the user belongs to
id [username] - shows extended information
about a user.
finger [user] - give details about a user.
passwd [user] - changes the password
for a user, or without the user argument,
changes your password.
chsh [user] - changes the shell for
a user.
userdel [user] - removes a user from
the system, use -r to remove their home directory
too.
newgrp [group id] - log into a new
group.
useradd -d /home/groupname -g groupname
- add a new user with the d being the homedirectory,
g the default group they belong to.
groupadd [groupname] - adds a group
Take a look at the users/groups on the system
with:
cat /etc/passwd | sort
cat /etc/group | sort
The stuff below is in the man pages also.
The format of passwd is:
username
password denoted by x (use cat /etc/shadow
| sort to list the shadow password file)
uid - user identifier number
gid - group identifier number
misc information such as real name
users home directory
shell for the user
The format of group is:
name of group
password denoted by x (use cat /etc/gshadow
| sort to list the shadow group file)
gid - group identifier number
list of additional users assigned to the group
Break down of permissions in a directory
listing:
-rw-r--r--
1 mainuser devel 9054 Dec 28 12:42 index.html
The first character indicates whether it is
a directory or file (d for directory).
After that, the next 3 (rw-) are owner permissions.
The following 3 (r--) are group permissions
The following 3(r--) are permissions for other
users.
After that reads the number of files inside
the directory if it's a directory (which it
isn't so it's 1) this can also be links to
the file, the owner of the file, the group
the file belongs to, size in bytes, date and
time and then the filename.
Chmod and Chown
Owner,group and other permissions can be r,w,x.
Translated into their decimal equivalents
(actually octal but...)
owner - read=400,write=200,execute=100
group - read=40,write=20,execute=10
other - read=4,write=2,execute=1
So add them up and you've got your user permissions
for chmoding: chmod [mode] fileordirectory
- changes the permissions on a file or directory.
use -r to recursively change a whole directory
and its sub directories.
e.g chmod 755 myfile.txt - changes the permissions
on the file to 755 which is : owner read,write,execute;
group read,execute; other read,execute.
chown [user:group] fileordirectory
- changes the user and group ownership of a
file or directory. Use -R to recursively change
a whole directory and its sub directories.
chgrp [group] fileordirectory - changes
the groupownership of a file or directory. Use
-R to recursively change a whole directory and
its sub directories. |
| |
| |
mysqldump - Dumps a table,database
or all databases to a SQL file. Use the --opt
argument for best results e.g.
mysqldump -u username -p --opt database >
file.sql mysql - The mySQL query
manager. To import/export a database to or from
a SQL try:
mysql -u username -p database < file_to_go_in.sql
mysql -u username -p database > file_to_go_to.sql
|
| |
| |
|