Your Ad Here '
Ubuntu articles »

Ubuntu linux cheatsheet

Apache

htdocs folder
/var/www
apache configuration files
/etc/apache2/
vhosts definitions
/etc/apache2/sites-available
Create a link to each definition in /etc/apache2/sites-enabled: ln -s /etc/apache2/sites-enabled/mysite.lnk /etc/apache2/sites-available/mysite
Or with newer versions of Ubuntu: a2ensite mysite for enabling and a2dissite mysite for disabling
start/stop/restart apache
sudo /etc/init.d/apache2 start/restart/stop
Logs
/var/log/apache2

PHP

php ini
/etc/php5/apache2/php.ini
Sessions temp dir
/var/lib/php5
Pear and all of that stuff
/usr/share/php5

mysql

config file (my.cnf)
/etc/mysql/my.cnf
Delete tables with a certain pattern (drop tables like)
mysql –user=theuser –password=thepassword -N -e “show tables like ‘whatever%’” db_name | perl -e ‘while(<>){chomp; push @tables, $_;}print “drop table ” . join (“,” ,@tables) . “\n”;’ | mysql –user=theuser –password=thepassword db_name
Restore a dump
mysql -u username -p databasename < dump.sql
It will ask you for that username password

Files

Find files which have been modified today
find . -mtime -1 -print
Find all backup files in a directory
find . -name *~ -print
Find all backup files and delete them!
find . -name “*~” -exec rm {} \;
Change permissions for all folders only
find . -type d -exec chmod g+x {} \;
Set the group id bit (so files created later in the folder belong ot the folder’s group)
chmod g+s directory
Uncompress lots of zips with just one line of terminal commands
find *.zip -exec unzip {} \;
Find only files
find . -type f
Find only files … and delete them!
find . -type f -delete
Recursively find files which contain a given text
grep -lir “a given text” *
Available space in disk
df -h (in fact this return available space in each mount in the system)
Show differences between two files without taking into account whitespace (very useful when line returns and spaces/tabs are messing up normal diffs)
diff -w file1 file2
Get the md5 hash of a file
md5sum filename

Sharing folders

Right click over the folder to share, select ‘Sharing options’, click ‘Share this folder’ and ‘Allow other people to write in this folder’. For setting the samba user and password, open a terminal and run sudo smbpasswd -a username, where username is the username you’ll use when asked by Samba. The password you’ll set is the one you want to use for accessing that folder remotely. It does not need to be your system password. This way when you do changes in the folder, the changes are done by username, not by nobody.

Backups

archive and compress a whole directory
tar cvfz archive.tar.gz dname
backup a database
mysqldump db_name –user=username –password=password > database_dump.sql
backup all databases
mysqldump -u username -p –all-databases >/tmp/databases.dump
All-in-one: get a remote database dump, compress it, download and uncompress in your local machine
ssh your_host “cd dumps_dir; mysqldump –user your_user –password=your_pass –host=db_host database_name | gzip > database_name.gz”
scp your_login@your_host:dumps_dir/database_name.gz ./sql/
gunzip ./sql/database_name.gz
Compress a file with zip
zip outputfile.zip file1 file2 file3… fileN
Download a remote directory to current directory
scp -rv yourlogin@yourhost:~/web/public_html .

Mounting internal drives

Let’s say I want to create a mount point for a secondary backup disk, so that it is always mounted without having to do it manually each time I want to use it.

Find out name of disk/partition
sudo fdisk -l
For example, /dev/sdb1 is the partition I want to mount. It can be different for you
Create mounting point
sudo mkdir /backup
Find UUID of the partition to mount
sudo vol_id /dev/sdb1
It returns both the filesystem type (ext3 in this case) and the UUID:

ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=4ae128f5-b8a5-46ca-a27b-ddc03af18171
Edit /etc/fstab file to include the new partition in the list of mounts
Add a line like UUID={UUID} /{mount_point} {fs_type} defaults 0 0. In my case:

UUID=4ae128f5-b8a5-46ca-a27b-ddc03af18171 /backup ext3 defaults 0 2

Note that the last ‘2′ is for telling fsck that it should check this disk after it checked the first one (which is the root one and should have an ‘1′ instead of ‘2′). If you enter a ‘0′ this partition will never be checked when starting the system; that’s probably not a good idea.

Did we do it right? Try to refresh the mounts with this:
sudo mount -a
If there are no errors, you should be able to access the new mount point with the File Browser. If you get something like mount: special device 4ae128f5-b8a5-46ca-a27b-ddc03af18171 does not exist you probably forgot to add UUID= before the actual UUID, like I did :D
Give proper permissions – normal users can’t write in the new mount because it belongs to root.
In my case:
sudo chown -R sole:sole /backup
sudo chmod -R 755 /backup

These can take a long time — specially if there are lots of files in the disk and it is large :)

Note: mostly taken from this fab tutorial

Updates

Remove unused packages
sudo apt-get autoremove
Manually update greyed out entries in the update manager
Go to Synaptic Package Manager, order by the status column (i.e. the first one), select all the packages with a star (*) over a green background, and select “Mark for upload”.
Distribution update
sudo apt-get dist-upgrade
sudo gksu “update-manager -c”
Crisis!! X server doesn’t work after updating the distribution – boot in safe mode and run
sudo apt-get install –reinstall xserver-xorg
sudo dpkg -reconfigure xserver-xorg

System

Turn off
sudo shutdown
Reboot
sudo reboot
List mounted devices and disks and other info
sudo fdisk -l
Static file system information
/etc/fstab
Fcsk – boot from live CD (it won’t allow you to fsck a mounted drive)
open a console with ctrl+alt+f1
then sudo fsck /dev/sdb, etc
Another option: sudo e2fsck -p -f -v /dev/sda
Force fsck on boot
sudo touch /forcefsck and reboot!
Change screen resolution using command line
xrandr -s new_widthxnew_height
example: xrandr -s 1920×1200

Xorg

Restart xorg
press ctrl+alt+backspace

Net stuff

Download a file with curl
curl -o outputfile source_url
Mirror a website with wget
wget -m http://example.com
Or wget -H -r –level=2 -k -p http://examples.com to download files up to 2 levels recursively
Simulate different bandwidth speeds for testing your site (aka Bandwidth Throttling)
trickle -u 10 -d 20 firefox
Thanks to mr.doob for this one!

Subversion

List info for a remote repository
svn info svn://repository_url (or http://repository_url, etc)
svn info also works with local resources: svn info . lists info for current directory
List files in a repository path
svn list svn://repository/path
Relocate a server location
svn switch –relocate svn://svnserver svn://svnserver/yellow_dog (taken from here)
Fire up svn server daemon
svnserve -d -r /home/svn/path_to_repositories_root

VirtualBox

Recompiling kernel module after upgrading the kernel:
sudo aptitude install linux-headers-$(uname -r)
sudo /etc/init.d/vboxdrv setup
Some people suggest using “sudo aptitude install virtualbox-ose-modules-generic” which is “a metapackage”. I haven’t tested it.

PulseAudio

Stop and restart
pkill pulseaudio; pulseaudio &

PGP & co

Clearsign a file with a non-default key
gpg –default-key [KEYID] –clearsign [FILENAME]

More tricks elsewhere

10 essential tricks for admins

8 Responses to “Ubuntu linux cheatsheet”

  1. Zarate says:

    Hi Sole!

    Love your cheatsheet, i’ve used it 1000 times, thanks for that!

    Anyway, it seems that in Ubuntu Hardy you need a different command to stop/start/restart Apache:

    sudo /usr/sbin/apache2 -k stop/start/restart

    If you try the commands you posted (that used to work, i know) you get something like this:

    “apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName”

    Cheers!

  2. sole says:

    funny, I just updated the sheet a few days ago – and it was actually that section that I updated ;)

    With your lines, I get the “apache2: bad user name ${APACHE_RUN_USER}” error.

    What works is:

    sudo /etc/init.d/apache2 start|stop|restart

  3. crosvera says:

    you can use wget to download a file from inet.

    $ wget -c http://file.from/inter.net

    -c = resume, if you cancel the download, you can resume it with the same command.

    saludos!

  4. [...] Ubuntu linux cheatsheet – soledad penadés (tags: ubuntu cheatsheet linux) [...]

  5. lobet says:

    Sir,
    i thank you for explanations about the ‘find’ and ‘apt-get’ command

    have a good day.

  6. sole says:

    Not Sir but maybe Miss in any case ;-)

    It’s great to see the sheet is helpful for someone else apart from me. This confirms I did well putting it here.

Leave a Reply