9 tháng 3, 2010

Install Netbeans with jdk

Thông thường cài jdk xong rồi cài Netbeans thì nó sẽ tự dò ra jdk. Tuy nhiên trong một số trường hợp nó không dò ra được jdk (có thể là do bạn cài jdk vào 1 thư mục nào đó, nếu cài vào /opt thì nó nhận được luôn) thì phải làm thế nào? Cách giải quyết khá đơn giản, chỉ cần gõ lệnh sau:

sh tên_file_cài_netbeans.sh --javahome đường_dẫn_đến_thư_mục_cài_jdk

Vậy là xong rồi đó :D

=-=-=-=-=
Powered by Blogilo

5 tháng 3, 2010

Install flash 10.1 beta in 64bit

1. Download flash player 10.1 beta từ Adobe Lab (có dạng *.tar.bz)

2. Giải nén file này được libflashplayer*.so

3. Copy libflashplayer*.so vào /usr/lib64/browser-plugins/

4. Install flash:

# nspluginwrapper -v -i /usr/lib64/browser-plugins/libflash*.so

5. Update lại các plugins:

# nspluginwrapper -v -a -u

=-=-=-=-=
Powered by Blogilo

Find command

Trong môi trường Linux, lệnh find được xếp vào hàng 1 trong những lệnh hữu dụng nhất. Lệnh find được dùng để xác định vị trí file cần tìm. Thoạt nhìn có thể thấy lệnh find cũng chẳng hơn gì lệnh locate, nhưng xét một cách chi tiết thì lệnh find ưu điểm hơn ở chỗ user thường cũng sử dụng được và nó cung cấp 1 số tùy chọn điều khiển. Cách sử dụng find được nhắc đến nhiều ở man page, nhưng thú thực thì tôi cũng không khoái đọc ở đó lắm, nó hơi cấu trúc và khó hiểu. Lang thang trên mạng lại gặp được trang http://devdaily.com/unix/edu/examples/find.shtml, ở đó cung cấp những ví dụ trực quan hay sử dụng nhất với lệnh find. Tôi xin mạn phép dịch lại một số phần.

1. Tìm các file với lệnh find

Ví dụ đầu tiên này sẽ tìm các file có tên "Chapter1" nằm trong root /. Nếu tìm thấy in ra màn hình vị trí của file đó.

find / -name Chapter1 -type f

Câu lệnh find dưới đây sẽ tìm file "Chapter1" trong directory /usr /home:

find /usr /home -name Chapter1 -type f

Nếu muốn tìm trong thư mục hiện tại có thể làm như sau:

find . -name Chapter1 -type f

Lưu ý là các lệnh trên sẽ tìm trong thư mục được nêu đến (/, /usr, /home) và tất cả các thư mục con của chúng. Các câu lệnh này sẽ chỉ tìm được file nào có tên đúng là Chapter1, còn nếu muốn tìm các file có cụm từ Chapter1 trong nó thì ta cần sử dụng đến ký tự mở rộng (đặc biệt cần lưu ý dấu nháy):

find . -name "*Chapter1*" -type f

2. Tìm thư mục với lệnh find

Tất cả các tùy chọn dùng với tìm file đều dùng được với tìm thư mục, chỉ việc thay -f bằng -d

3. Kết hợp findgrep

Giả sử bạn muốn tìm trong thư mục hiện tại các file có đuôi .java và trong nội dung file có cụm từ StringBuffer chẳng hạn. Có nhiều cách để giải quyết vấn đề này, bạn có thể sử dụng pipeline qua lệnh findgrep, tuy nhiên find có cung cấp tùy chọn exec cho phép ta thực thi ngay mà không cần qua pipeline.

find . -name "*.java" -type f -exec grep -l StringBuffer {} \;

Trong đó tùy chọn -l sẽ chỉ in kết quả tên file mà không in nội dung phần có chứa từ StringBuffer. Nếu không quan tâm đến chữ hoa hay chữ thường ở từ StringBuffer thì thêm tùy chọn -i trong lệnh grep.

4. Sử dụng exec

Tùy chọn -exec là một tùy chọn rất hữu ích và khó hiểu của find. Trước đây khi muốn xử lý các file tìm được sau lệnh find người ta thường phải sử dụng pipeline. Nhược điểm của pipeline đó là hiện tượng tràn đối số với các lệnh như rm, mv... Để khắc phục điều này người ta đưa thêm xargs trước lệnh thực thi, cơ chế của việc này là chia các đối số thành các block đối số và truyền vào lệnh thực thi, cứ như vậy cho đến khi hết đối số. Khi tùy chọn -exec được đưa ra thì nó đã giải quyết được triệt để vấn đề này, cơ chế của nó là truyền các đối số vào lệnh thực thi từng đối số một.

Lệnh dưới đây sẽ xóa đi các file có đuôi .mp3 chẳng hạn:

find . -name "*.mp3" -type f -exec rm {} \;

Cặp ngoặc nhọn {} chính là đối số truyền vào từ kết quả của find, cuối của tùy chọn -exec cần phải có dấu ; để kết thúc lệnh, và để hiên thị dấu ; thì sử dụng cú pháp \;.

Ví dụ sau sẽ move các file đuôi .java vào thư mục Java:

find . -name "*.java" -type f -exec mv {} Java \;

=-=-=-=-=
Powered by Blogilo

4 tháng 3, 2010

Khác nhau giữa .bashrc và .profile

Trong hệ thống file của user openSUSE có 2 file ẩn là .bashrc.profile, 2 file này nói chung chứa các lệnh và các lệnh này sẽ được gọi đến vào lúc khởi động. Thế nhưng vẫn có những điểm khác biệt giữa nhiệm vụ và chức năng của 2 file này.

  1. .bashrc: Các lệnh trong .bashrc sẽ được gọi khi khởi tạo 1 shell (nên nhớ khi đăng nhập vào hệ thống đó cũng là 1 shell rồi)
  2. .profile: Các lệnh trong .profile chỉ được gọi khi user login vào hệ thống

Như vậy khi bạn tạo 1 shell bằng cách gọi konsole ảo (terminal) thì nó sẽ triệu gọi .bashrc và bỏ qua .profile. Chính sự khác biệt đó dẫn đến 1 trường hợp sau: giả sử bạn muốn thay đổi biến môi trường PATH=new_path:$PATH thì nếu thêm vào .profile thì bạn sẽ phải logout rồi login trở lại mới có hiệu quả; còn nếu thêm vào .bashrc thì sẽ có hiệu quả ngay tức thì khi bạn mở konsole khác.

Đến đây lại có 1 vấn đề khác là khi 1 user đăng nhập vào hệ thống thì .bashrc hay .profile được gọi trước? Sau khi thử nghiệm (sử dụng mkdirrm trong 2 file đó) kết quả cho ra rằng: khi 1 user login vào hệ thống thì nó sẽ triệu gọi .bashrc trước rồi mới đến .profile, sau đó mới triệu gọi đến các đoạn script khai báo trong .kde4/Autostart.

Tóm lại ta có sơ đồ triệu gọi như sau:

.bashrc --> .profile --> .kde4/Autostart

=-=-=-=-=
Powered by Blogilo

3 tháng 3, 2010

Reinstall GRUB

Trường hợp này thường xảy ra khi cài lại windows hoặc có vấn đề gì đó với hệ thống làm hỏng GRUB dẫn đến việc không thể vào được hệ điều hành. Trên mạng có rất nhiều hướng dẫn cài đặt lại GRUB sử dụng liveCD. Nhưng liệu có phải lúc nào cũng có liveCD, như tôi chẳng hạn, tôi chỉ có đĩa cài đặt DVD. Vậy với đĩa cài đặt DVD làm thế nào để có thể vào được chế độ dòng lệnh mà sửa GRUB??
Khi đó chúng ta làm như sau: boot bằng đĩa DVD và trong menu đầu tiên đưa ra, chọn Rescue System. Hệ thống sẽ đưa bạn đăng nhập ở chế độ dòng lệnh. Điền username là root và Enter, bạn đã đăng nhập với quyền root. Đến đây thì công việc cài đặt lại GRUB y hệt như với liveCD. Nó gồm có 2 bước căn bản:
  1. Tìm partition có chứa bootloader của openSUSE
  2. Cài đặt lại GRUB trỏ đến partition đó
Cụ thể như sau:
You enter this ----- grub
Computer returns like this ---- grub>
You enter this ----- find /boot/grub/menu.lst
Computer returns like this ---- (hd0,5)
You enter this ----- root(hd0,5)
Computer returns like this ---- File system type is ... blah
You enter this ----- setup(hd0)
You see several lines like this -- Checking...Done
You enter this ----- quit
You enter this ----- reboot
Trong đó (hd0,5) là vị trí partition chứa bootloader openSUSE, ở mỗi máy mỗi khác. Tùy vào giá trị trả về sau lệnh find mà sửa lại lệnh root và setup tương ứng.
(nguồn: opensuse.org)
=-=-=-=-=
Powered by Blogilo