Ubuntu version
========================================================
uname -a
uname -r
Ubuntu rpm / VMware / root / java / vi / putty / jboss
========================================================
putty
-------------------
1. install ssh server in Linux;
$sudo apt-get install ssh
2. use NAT network connection;
rpm
--------------------
rpm -ivh package.ix86.rpm
rpm -ql packagename
rpm -e packagename
rpm -Uvh package.ix86.rpm
install VMware-tools
--------------------
cp -a /media/cdrom/VMwareTools* /tmp/
cd /tmp/
tar -vxzf VMwareTools*.gz
cd vmware-tools-distrib/
sudo ./vmware-install.pl
mount a ext disk
--------------------
1. shutdown the running Linux;
2. right-click on the Linux OS -> Virtual Machine Settings;
3. In "Hardware" tab, click "Add" -> Add a hard disk -> Create a new virtual disk -> SCSI(recommended) -> set the size -> OK;
4. as a result, a new disk named - Hard Disk 2 will display in Linux OS settings.
login as root:
# fdisk -l ## list all partitions information
# fdisk /dev/sdb ## begin to make partition of new disk
m ## usage
p ## print the current disk partition table
n ## create a new partition
p ## select primary partition
1 ## the partition No.
p ## print the up to date partition information table
w ## write the new partition to disk
# mkfs.ext3 /dev/sdb1 ## format the new partition using ext3
# fdisk -l ## list information
# mkdir /data1 ## make new directory for mount - /data1
# mount /dev/sdb1 /data1 ## mount sdb1 on /data1
# df -h ## reboot system to check the disk information
Move data:
du -hs /usr ##check the folder size
1. move all data in /usr to /data1 (we can use $sudo mv /usr/* /data1/)
2. clear /usr directory:
# rm -r /usr
3. create /usr directory again:
# mkdir /usr
4. umount /dev/sdb1 from /data1, and mount it on /usr:
# umount /dev/sdb1 /data1
# mount /dev/sdb1 /usr
4、# vi /etc/fstab ## modify /etc/fstab, let system mount the new disk on boost automatically.
add below line in the end(separate by Tab):
/dev/sdb1 /usr ext3 defaults 1 2
4. OK, reboot system, check the disk information. you will find the extension disk has been mounted to system.
# df -h
File System Volumn Used Avaliable Used% Mount point
/dev/sda2 3.6G 1.3G 2.4G 35% /
udev 125M 124K 125M 1% /dev
/dev/sdb1 4.0G 2.3G 1.6G 60% /usr
Create root user in Ubuntu:
--------------------
$ sudo sh
Asran's Password: ******
#
(now you are in root session)
#whoami
root
If you want to be able to login as root, you need to define a password for root:
$ sudo passwd
Asran's Password:
Enter new UNIX password: *****
Retype new UNIX password: *****
change current user pwd:
#passwd
$sudo password username ## root can change any use's password without regex restrictions.
vi
-------------------
upgrade to vim
$ sudo apt-get install vim
java
-------------------
$sh jdk-6u16-linux-i586.bin
vim .profile
set JAVA_HOME and CLASSPATH in personnal environment
JAVA_HOME="/home/asran/java/jdk1.6.0_16"
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"
export PATH
CLASSPATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
export CLASSPATH
jboss
-------------------
./run.sh -b 192.168.175.128 -&
./shutdown -S
wget http://192.168.175.128:8080
Install .deb .bin
========================================================
*.deb: $sudo dpkg -i *.deb
*.bin: $sh *.bin
Install Mysql / SVN
========================================================
svn
----------------------------
1. Install svn client:
$sudo apt-get install subversion
2. checkout:
[workspace]$svn checkout http://opensvn.csie.org/asran --username asran.deng
prompt for password:******
3. update:
[workspace]$svn update
4. add new file:
[workdirectory]$svn add hello.c
5. remove:
[workdirectory]$svn delete hello.cgi
5. commit(if there are new files, then need add them first):
[workdirectory]$svn commit
6. create a new project:
$svn mkdir --parents -m "" http://opensvn.csie.org/asran/c++
then checkout that project.
mysql
---------------------------
1. $sudo apt-get install mysql-server
2. $sudo aptitude install libmysqlclient15-dev ## install develop libraries for developer
compile: cc -o mysql.cgi mysql.c -lmysqlclient
chmod [-cfvR] [--help] [--version] mode file
========================================================
mode : permission configuration,format : [ugoa...][[+-=][rwxX]...][,...]
u - the file owner
g - the same group of file owner
o - others
a - all of three
+ grant - revoke = only set (privileges)
r readable, w writable, x executable, X unknow yet?
-c : if the file privilege really be changed, then display the modification action
-f : if the file privilege can't be changed, then also display nothing
-v : show verbose
-R : subdirectory recursively
--help : help information
--version : display version
e.g.
$chmod ugo+r file1.txt (everyone can read it)
equivalent with: $chmod a+r file1.txt
$chmod ug+w,o-w file1.txt file2.txt (owner and owner group can write file1.txt and file2.txt, others can't write)
$chmod u+x ex1.py (owner can execute ex1.py)
$chmod -R a+r * (everyone can read the files in current directory and its subdirectories)
$chmod 777 file
syntax: chmod abc file
a - user
b - group
c - other
r=4 w=2 x=1
rwx: 4+2+1=7
rw-: 4+2=6
r-x: 4+1=7
e.g.
chmod a=rwx file = chmod 777 file
chmod ug=rwx,o=x file = chmod 771 file
chmod 4755 filename ## as root privilege
sudo chmod 600 ***
sudo chmod 644 ***
sudo chmod 700 ***
sudo chmod 666 ***
sudo chmod 777 ***
search
========================================================
locate is great for searching the entire file system
$locate xorg.conf
$locate -r '/xorg.conf$' (regular expression)
$locate -i 'monthly report' (insensitive)
$locate -b Desktop (hide sub-directories & files)
$sudo updatedb (update index)
which finds where a command lives
$which mysql
$which svn
find the source, man page, and other associated directories
$whereis firefox
$find everything
$find / -name game
$find /home -user joe
$find /usr -name *stat
$find /var/spool -mtime +60
$find . -type f -perm -u=x, -o=r -exec rm -i {} \;
$find / -name foo 2>/dev/null ## redirect the error message.
$find -print0 ## separate file pathname with NUL.
$find . -name foo\*bar ## This will search from the current directory down for foo*bar (that is, any filename that begins with foo and ends with bar).
$find / -type f -mtime -7 | xargs tar -rf weekly_incremental.tar
$gzip weekly_incremental.tar
## will find any regular files (i.e., not directories or other special files) with the criteria "-type f", and only those modified seven or fewer days ago ("-mtime -7")
## Using the tar option "-c" is dangerous here; xargs may invoke tar several times if there are many files found and each "-c" will cause tar to over-write the previous invocation. The "-r" option appends files to an archive. Other options such as those that would permit filenames containing spaces would be useful in a "production quality" backup script.
$find / -name core | xargs /bin/rm -f
$find / -name core -exec /bin/rm -f '{}' \; # same thing
$find / -name core -delete # same if using Gnu find
$find / -mmin -10 ## locate files modified less than 10 minutes ago.
$ls -l | wc -l ## count the files
$find / -name core | wc -l
$grep '_IO_FILE' /usr/include/*.h ## full-text search
Compression / Extraction
========================================================
zip
# zip -r archive_name.zip directory_to_compress
# unzip archive_name.zip
gz
gzip filename.ext
gunzip filename.gz
tar
# tar -cvf archive_name.tar directory_to_compress
# tar -xvf archive_name.tar
# tar -xvf archive_name.tar -C /tmp/extract_here/
tar.gz
# tar -zcvf archive_name.tar.gz directory_to_compress
# tar -zxvf archive_name.tar.gz
# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
# tar -xzvf foo.tgz
tar.bz2
# tar -jcvf archive_name.tar.bz2 directory_to_compress
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
$*** -tf zipfilename ## list content of compress file
vim
========================================================
:set showmode
hjkl -------move cursor
x ---------- remove character
dd ---------- delete whole line
Y/yy ---------- copy one line
nY ------------ copy n line
yG ------------ copy to the end of file
yw ------------ copy to the end of word(inline)
y$ ------------ copy to the end of line (inline)
P ------------- paste above/before
p ------------- paste below/after
J ---------- join two lines
u ---------- undo
Ctrl-R ---------- redo
U ------------undo whole line
a -------------append
o -------------insert new line under current row
O -------------insert new line above current row
3x ------------cut 3 characters from cursor
ZZ -------------write and exit
:q! ------------exit without saving
:e! ------------reload file content
:help
:set number
:set nonumber
:set ts=2 --------- display tab as 2 size(or add [:set ts=2] in ~/.vimrc, if not existing, just create one)
:syntax on/off ------ highlight key words
gg ------------- go header
G -------------- go bottom
nG ------------- go n-th line below
9k ------------ go 9 lines above
H -------------- header
M --------------- middle
L --------------Last
Ctrl-G ----------tell where am i
Ctrl-U ---------- move up
Ctrl-D ---------- move down
Ctrl-E
Ctrl-Y
Ctrl-F
Ctrl-B
zz -------------- bring the current row to the middle of screen
zt -------------- to top
zb -------------- to bottom
/search
?search
n ------------next
N ------------opposite direction search
Apache Web Server (cgi / perl / php)
========================================================
apache2
--------------------
$sudo aptitude install apache2 ### install Apache HTTP Server
$sudo vim /etc/apache2/apache2.conf
Add:
ServerName localhost / ServerName yourserverip /
$sudo apache2ctl restart
cgi:
$mkdir /home/asran/www/cgi-bin
$sudo vim /etc/apache2/sites-avaliable/default
comment out the original cgi settings
add_
ScriptAlias /cgi-bin/ /home/asran/www/cgi-bin/
<Directory "/home/asran/www/cgi-bin">
Options ExecCGI
AddHandler cgi-script cgi pl
</Directory>
$cc -o test.cgi test.c
$cp test.cgi /home/asran/www/cgi-bin/
open browser: http://serverip/cgi-bin/test.cgi
php:
$mkdir /home/asran/www
$sudo vim /etc/apache2/conf.d
change /var/www -> /home/asran/www/
$sudo apache2ctl restart
if prompt to download php file, then
$sudo apt-get install libapache2-mod-php5
$sudo apache2ctl restart
package management (dpkg / apt-get / aptitude)
========================================================
package management
---------------------------
dpkg:
$sudo dpkg -l |grep apache2 ## list all installed package
$sudo dpkg -L packagename ## list the files which installed by specified package
$sudo dpkg -i *.deb ## install a local package
$sudo dpkg -r packagename ## uninstall the specified package(not recommand)
$sudo dpkg -S filename ## find the current file belongs to which package
apt-get:
$sudo apt-get install packagename1 packagename2 packagename3
$sudo apt-get remove --purge packagename1 packagename2 packagename3
$sudo apt-get update ## update the local repository index
$sudo apt-get upgrade packagename ## upgrade package
$sudo apt-get dist-upgrade ## upgrade Ubuntu Server Edition system
$sudo do-release-upgrade ## upgrade OS
$sudo do-release-upgrade -d ## upgrade OS to a development version
Runlevel
========================================================
$sudo runlevel
$telinit n
change Ubuntu to run in text-mode by default:
create new file:
$sudo vim /etc/inittab
id:3:initdefault:
remove the gdm service from /etc/tc3.d/ directory:
$ls /etc/rc3.d/
lrwxrwxrwx 1 root root 13 2009-09-06 14:50 S30gdm -> ../init.d/gdm
## $sudo ln -s ../init.d/gdm S30gdm
$sudo reboot
FTP
========================================================
$ftp
ftp>open asran99.zymichost.com
ftp>ls
ftp>cd
ftp>get file.txt
ftp>put file2.txt
ftp>delete file3.txt
ftp>bye
User/Group
========================================================
$w
$who
$whoami
$passwd [username]
Install goole pinyin
========================================================
$sudo aptitude install git-core
$git clone git://github.com/tchaikov/scim-googlepinyin.git
$cd scim-googlepinyin.git
$aptitude install autotools-dev libgtk2.0-dev libscim-dev libtool automake
$./autogen.sh
$make
$sudo make install
launch scim:
scim -f socket -c socket -d
IBus has been started! If you can not use IBus, please add below lines in $HOME/.bashrc, and relogin your desktop.
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
Install LDAP in Ubuntu9.10
========================================================
tar zxvf db-5.1.19.tar.tar
cd build_unix/
../dist/configure
sudo make
sudo make install
vim /home/asran/.profile
sudo apt-get install libdb-dev
gunzip -c openldap-2.4.23.tgz | tar xvfB -
sudo ./configure
sudo make depend
sudo make
sudo make test
sudo make install
sudo vim /usr/local/etc/openldap/slapd.conf
sudo /usr/local/libexec/slapd