Search This Blog
Shell Script: remove file extension
- Use sed:
echo "file.txt" | sed 's/\(.*\)\..*/\1/'
- Use bash string operations:
f="filename.txt"; echo "${f%.*}"
ghex: a hex editor for Ubuntu Linux (Gnome)
- To install ghex:
sudo apt-get install ghex
- To start ghex:
ghex2
or "Applications" -> "Programming" -> "Hex Editor"
ibus icon disappeared in the system tray
Running Ubuntu lucid 10.04 LTS. Installed and enabled ibus as input method engine.
ibus icon disappeared in the system tray since last system restart. And when Ctrl + Space to input Chinese, no input method window is shown though you can input Chinese.
The solution is run the following command in the terminal window:
ibus icon disappeared in the system tray since last system restart. And when Ctrl + Space to input Chinese, no input method window is shown though you can input Chinese.
The solution is run the following command in the terminal window:
ibus-daemon -x -r -d
Eclipse: Access restriction: The method createJPEGEncoder(OutputStream) from the type JPEGCodec is not accessible due to restriction on required library
Imported some source code in a Eclipse java project, and got error:
The fix it:
Access restriction: The method createJPEGEncoder(OutputStream) from the type JPEGCodec is not accessible due to restriction on required library /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/rt.jar
The fix it:
- Right-click the project, and click "Properties"
- open "Java Compiler",
- select "Errors/Warnings",
- "Enable project specific settings",
- open "Deprecated and restricted API"
- change to "Warning" for "Forbidden reference(access rules)"
Shell Script: split string using cut
# the string is dot separated. a=1a.2b.3c.4d.5e.6f # split it and prints 6th column echo $a | cut -d'.' -f6 # prints 6f
See Also: [Shell Script: Split String Using tr and awk]
Shell Script: count the occurences of a specific character
#!/bin/bash # dot-separated string str=1.2.3.4.5.6 # prints the number of occurences of dot echo $str | tr "\." "\n" | wc -l # prints 5
Shell Script: split string tr and awk
# the string is dot separated. a=1a.2b.3c.4d.5e.6f # split it and prints 6th column echo $a | tr "\." "\ " | awk '{print $6}' # prints 6f
See Also: Shell Script: split string using cut
Shell Script: How to parsing server address string
#!/bin/bash # $1 is wilson@site90.net:8000 i=`expr index $1 @` user=${a:0:$((i-1))} echo $user j=`expr index $1 :` host=${1:$i:$((j-i-1))} echo $host port=${1:$j:((${#1}-j))} echo $port
See this post for detail.
Shell Script: Get the last argument passed to the shell script
- Method 1:
last=$(eval "echo \$$#")
- Method 2:
last=${@:${#@}}
- Method 3: Requires BASH 3.0+
last=${!#}
- Method 4: Requires BASH 3.0+
last=$BASH_ARGV
- Method 5: Portable solution. It uses the fact that for implicitly loops over the arguments if you don’t tell it what to loop over, and the fact that for loop variables aren’t scoped: they keep the last value they were set to.
for last; do true; done
Backup your web site using wget (ftp)
wget --output-file=wget.log --tries=2 --mirror --ftp-user=YourUserName --ftp-password=YourPassword ftp://168.site90.net
Here is a wrapper script:
#!/bin/bash usage() { echo "" echo "`basename $0` -u <ftp_user> -p <ftp_password> <ftp_address>" echo "" } for FTP_SITE; do true; done until [[ -z $1 ]] do case "$1" in "--user" | "-u" ) FTP_USER=$2 shift shift ;; "--password" | "-p" ) FTP_PASSWORD=$2 shift shift ;; * ) shift ;; esac done if [[ -z $FTP_SITE ]]; then echo "ERROR: invalid arguments. No ftp address specified." usage exit 1 fi if [[ -z $FTP_USER ]]; then echo "ERROR: invalid arguments. No ftp user specified." usage exit 1 fi if [[ -z $FTP_PASSWORD ]]; then echo "ERROR: invalid arguments. No ftp password specified." usage exit 1 fi if [[ -z "`which wget`" ]]; then echo "ERROR: wget not found." usage exit 1 fi wget --output-file=wget.log --tries=2 --mirror --ftp-user=$FTP_USER --ftp-password=$FTP_PASSWORD $FTP_SITE
HTML: Word wrap in <pre>
To enable word wrap inside <pre> you need the following CSS style:
Example:
before applying white-space:pre-wrap:
after applying white-space:pre-wrap:
pre { white-space: pre-wrap; /* CSS2.1 compliant */ white-space: -moz-pre-wrap; /* Mozilla-based browsers */ white-space: -o-pre-wrap; /* Opera 7+ */ }
Example:
before applying white-space:pre-wrap:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Shell Script: upper case to lower case or vice versa
- Uppercase to lowercase:
echo $VAR | tr '[:upper:]' '[:lower:]'
or
echo $VAR | tr '[A-Z]' '[a-z]'
- Lowercase to uppercase:
echo $VAR | tr '[:lower:]' '[:upper:]'
or
echo $VAR | tr '[a-z]' '[A-Z]'
Shell Script: substring
#!/bin/bash str=abcdef substr=${str:0:3} echo $substr # abc substr=${str:3:3} echo $substr # def substr=${str:1:5} echo $substr # bcdef
Shell Script: read from keyboard input
See the example script below:
-s option can hide the input string, it is used to input passwords.
#!/bin/bash read -p "Username: " username read -s -p "Password: " password echo "$username" echo "$password"
-s option can hide the input string, it is used to input passwords.
Bash script to check Java version
- to check the java version:
java -version 2>&1 | grep "java version" | awk '{print $3}' | tr -d \"
or
java -version 2>&1 | grep "java version" | awk '{print $3}' | sed -e "s/\"//g"
- to check if the java version is greater than 1.5 (jdk 5), use the script below:
#!/bin/bash VER=`java -version 2>&1 | grep "java version" | awk '{print $3}' | tr -d \" | awk '{split($0, array, ".")} END{print array[2]}'` if [[ $VER ge 5 ]]; then echo "Java version is greater than 1.5." else echo "Java version is lower than 1.5." fi
Create an ISO image from CD or DVD
- Using cat
- cat /dev/scd0 > /home/wilson/myfile.iso
- cat /dev/cdrom > /home/wilson/myfile.iso
- cat /dev/dvd > /home/wilson/myfile.iso
- Using dd
- dd if=/dev/scd0 of=/home/wilson/myfile.iso
- dd if=/dev/cdrom of=/home/wilson/myfile.iso
- dd if=/dev/dvd of=/home/wilson/myfile.iso
- Using Brasero Disc Burner
- Open Brasero Disc Burner: Applications -> Sound & Video -> Brasero Disc Burner
- In the main window, select/click "Disc Copy"
- In the new window, set "Image File" below "Select a disc to write to"
- Click "Create Image" button
- It creates a .toc&.bin files can be converted to .iso file by following this guide.
Remove the line number from SyntaxHighlighter
I am using SyntaxHighlighter to display source code and scripts. In some cases, I want to hide/remove the line numbers.
To do that, the gutter attribute need to be set to false:
<pre class="brush: java; gutter: false;"></pre>
To do that, the gutter attribute need to be set to false:
<pre class="brush: java; gutter: false;"></pre>
- example 1: show line numbers: <pre class="brush: bash">cat /etc/issue</pre>
cat /etc/issue
- example 2: hide line numbers: <pre class="brush: bash; gutter: false;">cat /etc/issue</pre>
cat /etc/issue
Convert Brasero .toc/bin Images into ISO format using cdrdao and bchunk
- Install cdrdao and bchunk:
sudo apt-get install cdrdao bchunk
- Assume your .toc/.bin files are yourfile.toc and yourfile.bin, run the following commands:
toc2cue yourfile.toc yourfile.cue
bchunk yourfile.bin yourfile.cue yourfile.iso
Change Host Key in VirtualBox
1. Open VirtualBox, Select File -> Preferences
2. Select Input, click the Host Key area, the press the key you wish to be the new Host Key. (e.g. Left Ctrl), click OK button.
2. Select Input, click the Host Key area, the press the key you wish to be the new Host Key. (e.g. Left Ctrl), click OK button.
Unicode: UTF-8, UTF-16, UTF-32 & BOM
Name | UTF-8 | UTF-16 | UTF-16BE | UTF-16LE | UTF-32 | UTF-32BE | UTF-32LE |
---|---|---|---|---|---|---|---|
Smallest code point | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 |
Largest code point | 10FFFF | 10FFFF | 10FFFF | 10FFFF | 10FFFF | 10FFFF | 10FFFF |
Code unit size | 8 bits | 16 bits | 16 bits | 16 bits | 32 bits | 32 bits | 32 bits |
Byte order | N/A | big-endian | little-endian | big-endian | little-endian | ||
Fewest bytes per character | 1 | 2 | 2 | 2 | 4 | 4 | 4 |
Most bytes per character | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
See Also: UTF-8, UTF-16, UTF-32 & BOM FAQ
Install Chinese Pinyin Input Method on Ubuntu Linux 10.04 (Lucid)
Ubuntu 10.04 (Lucid) LTS 安装中文输入法
1. System -> Administration -> Language Support2. click "Install/Remove Languages..." button
3. select "Chinese(simplified)" and tick "Input methods", then click "Apply Changes" button. It will then start installing the fonts and input methods.
4. System -> Preferences -> IBus Preferences
5. enable "Input Method" tab, select "Pinyin" input method and click "Add" button. Once it is added, you can adjust its order by clicking "Up" or "Down" button.
Edit ISO Image in Ubuntu Linux
- Install ISOMaster:
sudo apt-get install isomaster
- Applications -> Sound & Video -> ISO Master
Install FreeNX server on Ubuntu 10.04 (Lucid), 10.10 (Maverick) or 11.04 (Natty)
UPDATE: The instructions below works on Ubuntu 10.04, 10.10 and 11.04. However it does not work on Ubuntu 11.10. To install freeNX server on Ubuntu 11.10, see my another blog post: Install FreeNX server on Ubuntu 11.10 oneiric
See also: how to secure your FreeNX server
- Enable the repository: sudo add-apt-repository ppa:freenx-team
- If you're using 10.10 Maverick, run
sudo sed -i 's/maverick/lucid/g' /etc/apt/sources.list.d/freenx-team-ppa-maverick.list - If you're using 11.04 Natty, run
sudo sed -i 's/natty/lucid/g' /etc/apt/sources.list.d/freenx-team-ppa-natty.list - Update the repository: sudo apt-get update
- Install FreeNX: sudo apt-get install freenx
- Download the setup script: cd /tmp;
wget https://bugs.launchpad.net/freenx-server/+bug/576359/+attachment/1378450/+files/nxsetup.tar.gz;
tar zxvf nxsetup.tar.gz - Install the setup script:sudo cp nxsetup /usr/lib/nx/nxsetup
- Run the setup script:sudo /usr/lib/nx/nxsetup --install
See also: how to secure your FreeNX server
Subscribe to:
Posts (Atom)