Thứ Năm, tháng 8 02, 2007

Mấy cái lệnh vim

Lâu nay chỉ xài một số cái, trong khi nó có cả lô cả lốc lệnh, trong đó có cả lệnh di chuyển, giúp tăng tốc độ hiệu chỉnh. Ghi tạm mấy cái thấy cần ra, đỡ quên, khi nào cần nhìn thì nhìn.


  • fx Nhảy đến từ bắt đầu bằng x gần nhất.

  • Fx Như f, nhảy ngược.

  • tx Như f, nhưng nhảy đến ngay trước từ đó.

  • ; Thực hiện lại f

  • w Nhảy 1 từ.

  • b Nhảy ngược 1 từ.

  • ( và ) Nhảy đến đầu và cuối câu.

  • % Nhảy qua lại mấy cái dấu ngoặc đi với nhau.

  • Ctrl-fCtrl-b Xuống và lên trang.

  • Ctrl-dCtrl-u Xuống và lên nửa trang.

  • Ctrl-eCtrl-y Cuộn cả trang lên và xuống, nhưng vẫn giữ nguyên con trỏ.


  • * Nhảy đến từ giống từ đang đứng.

  • # Giống *, nhảy ngược.

  • ma Đánh dấu vị trí với tên a.

  • `a Đến chỗ đánh dấu tên a.

  • :marks Danh sách các thằng đã đánh dấu

  • `. Đến dòng chỉnh sửa cuối cùng.

  • . Thực hiện lại lệnh cuối cùng.


  • D Xoá đến cuối dòng.

  • >< Đẩy dòng vô hoặc ra.

  • K Mở man của từ đang đứng.


  • Bảng nhớ
  • :reg Liệt kê mấy cái thằng trong bàng nhớ

  • "kyy Đăng ký tên k, sao cả dòng

  • "kp Dán cái thằng tên k


  • :runtime! syntax/2html.vim

  • hoặc source $VIM/vim70/syntax/2html.vim Tô màu code, xuất ra html.

Thứ Năm, tháng 7 26, 2007

Merge - Diff3

Hê hê, cuối cùng cũng hiểu được sơ sơ về thằng này. Có vẻ o'reilly nó viết dễ hiểu hơn man page .
Chung quy lại nó dùng để trộn 3 tệp lại. Cách xài:

merge [Tham số] tệp1 tệp2 tệp3

Trong đó tệp 2 là tệp gốc, 2 tệp 1 và 3 là những tệp được sửa đổi từ tệp 2. Lệnh sẽ ghi những thay đổi của tệp 1 và tệp 3 so với tệp 2, vào tệp 1.
Lệnh sẽ báo xung đột (conflict) nếu tệp1 và tệp 3 cùng được sửa chung (common segment) 1 đoạn nào đó. Ngồi thử cái định nghĩa "đoạn" (segment) của nó là thế nào thì thấy, đoạn này giới hạn trong 3 dòng, tức nếu thay đổi của tệp 1 và tệp 3 trên cùng 1 dòng hay 1 dòng trên (hay dưới) thì nó báo xung đột().
Tham số:
-A Xuất "xung đột" : ra dạng như diff3 (coi cái đã).
-p Xuất ra stdout thay vì ghi vào tệp1.
-L Xài để thay mấy cái tên tệp trong out của "xung đột" (sao nói thế này kỳ kỳ cà :-/).
Ví dụ: -L x -L y -L z tệp1 tệp2 tệp3
Mà cái lệnh này hơi quái (mình xài đồ cũ hay do chính nó không hỗ trợ nhỉ?), trong help thì thấy có viết các tham số (options) gần nhau sau cái dấu - như vầy
merge -AeEpqxX3
, nhưng xài thì không có cho, bắt viết riêng rẽ ra, ví dụ
merge -A -p
.
----------
Diff3
Tiện thể đọc luôn về nó, nói chung cấu trúc nó xuất ra cũng không có gì lạ.
Trong man, nó có nói về thứ tự đặc tệp (tương tự merge):
diff3 [OPTION]... MYFILE OLDFILE YOURFILE
Nó sẽ lấy tệp thứ 2 để đối chiếu với 2 tệp còn lại.
Để phân cách các phần, nó xài ====, và nếu thay đổi chỉ có ở tệp 1 hoặc 3 thì nó sẽ ghi số thứ tự của tệp đó tiếp sau dấu bằng.
Địa chỉ xuất vầy: 
[thứ tự tệp]:[toạ độ][ký hiệu]

Toạ độ và ký hiệu tương tự diff.

Diff - Patch

Man của mấy thằng này dài quá, nhìn là thấy ớn, không muốn đọc rồi , đành đi xem người ta xài sao rồi đọc cái tham số đó.
Diff
Ra là thằng này chơi được cả với thư mục luôn, tiện hỉ. Ở đây, người ta xài luôn 1 tràng:


diff -Naur olddir newdir > new-patch
- or -
diff -Naur oldfile newfile >new-patch

Mấy cái tham số:
-N Coi tệp thiếu như một tệp trống, cái này hình như chơi để mần cái tệp mới.
-a Coi thằng mô cũng như tệp văn bản.
-r Chui vô ngõ ngách để mần.
---
Path
Thằng này cũng khá dễ dùng. Nó lấy nguồn từ stdin hoặc dùng tham số -i để chỉ ra tệp để patch. Mặc định nó sẽ xuất ra cái file được chỉ trong tệp patch, hoặc dùng -o để chỉ ra tệp xuất ra sau khi thực hiện.
Một số tham số khác:
-b Xài để dự phòng cái tệp mình sửa.
-d Chỉ ra thư mục để xài.
-R Đảo ngược 2 tệp khai báo trong đầu đề (header) của tệp patch.
Còn một tham số nữa là -p. Nói chung, nó xài để cắt xén cái đường dẫn được chỉ ra trong tệp patch, với là để chỉ số cái gạch bị cắt.
Ví dụ, trong đó chỉ ra cái đường dẫn là /duong/dan/den/mo/day:
-p0 Cho lại nguyên.
-p0 duong/dan/den/mo/day
-p1 dan/den/mo/day
...
Còn lại mấy cái tham số, hoặc thấy không cần, hoặc đọc không hiểu :P.

---
Nguồn:
-How to create and use a patch in Linux
-Commands Reference, Volume 4
-patch (Unix)
---
Còn merge đọc chưa hiểu nó viết quái vì, có lẽ cần gặm nhấm thêm.

Thứ Hai, tháng 7 16, 2007

Diff

Diff là cái quái gì? Là cái chương trình để so sánh các tệp theo dòng. Nó xài thuật toán LCS[1] (hình như khi học pascal có học về nó rồi nhưng quên rồi, pascal còn quên huống hồ nó :P)để so sánh tệp.
Cấu trúc lệnh:
diff [tham số] tệp_gốc tệp_mới

Diff nó 3 định dạng xuất ( và nhiều hơn nữa), gồm dạng thường, ngữ cảnh (context), thống nhất (unified), trong đó 2 kiểu sau có thể dùng để xài với patch. Được cái xuất ra, coi bằng vim thì cái nào cũng đẹp :P.

1/Kiểu thường

Đây là kiểu mặc định mà diff nó xuất ra. Thằng này làm phát là đi thẳng vào vấn đề, không có cái "đầu" (header).
Ký hiệu:
"a" là thêm vô (add)
"c" là sửa (change)
"d" là xoá (delete)
Đứng trước ký hiệu là địa chỉ (dạng: "dòng_đầu, dòng cuối")của tệp gốc, sau là địa chỉ tệp mới.
Cái dấu < là ở tệp gốc, > là tệp mới. Với sửa đổi (c), giữa thằng cũ và thằng mới có dòng ---.

2/Kiểu ngữ cảnh (context)

Thêm vô -c để diff nó xuất ra dạng này. Khác với cái trên, thằng này có thêm cái phần header, thông báo về tệp nó đang so sánh.
Cách biểu diễn của nó cũng khác, thêm vô thì có dấu +, xoá thì dấu - ở đầu dòng. Còn dấu ! để chỉ dòng thay đổi. Ngoài ra, trước và sau thay đổi nó (mặc đinh) thêm vô 3 dòng không có sự thay đổi. Để thay đổi số lượng dòng này thì xài -C num, trong đó num là số dòng.
Giá trị toạ độ cũng tương tự kiểu thường, khác chút là nó màu mè hơn, Toạ độ tệp gốc có *** còn mới có ---.

3/Kiểu thống nhất (unified)

Cũng gần như tương tự kiểu ngữ cảnh, nhưng được rút gọn hơn, có vẻ dễ nhìn hơn. Để diff xuất ra dạng này, thêm -u (hay -U num).
Đầu nó cũng có header. Toạ độ của thằng này có thay đổi chút chút. Thay vì dạng "đầu, cuối" thì đổi thành "đầu, tổng" trong đố tổng là tổng số dòng nó xài. Đầu ký hiệu của tệp gốc là dấu -, tệp mới là +, thích cái kiểu này hơn kiểu ngữ cảnh. Ký hiệu tạo độ (change hunks hay chunks)cũng được rút ngắn lại còn một dòng dạng:

@@ -R +R @@

Các dòng thêm vô, có dấu + ở đầu, xoá thì có -. Dòng thay đổi cũng đưa về dạng như thế.

---------------------------------------
Nguồn: Diff
---------------------------------------
[1]LCS - Longest Common Subsequence

Chủ Nhật, tháng 7 15, 2007

Google services

Hờ, sáng ra coi feed, đọc bài này. Hehe, tưởng tụi nó xài script để xài mấy cái này với Opera, vì trước tụi này không chịu xi nhê với opera. Khi đó tức lộn ruột :)).
Mở thử Google notebook, Docs, hehe, chơi ngoan lành rồi :D. Nhưng coi thằng Google page creator thì vẫn chưa chịu cho vô, sao tụi google nó không làm nốt nhỉ, mất công khi nào cần upload lại phải sang firefox bắt gà b-).

Thứ Ba, tháng 7 03, 2007

Slackware 12 released

 Slackware 12 vừa ra lò nóng hổi (2/7/2007), vừa thổi... chưa xơi :)). Thời gian tính từ lúc phát hành bản 11 đến bản 12 khá nhanh so với thời gian 10 ->11. So với bản 11 có một số thay đổi "hơi" lớn:
- Xài kernel mới, bản 2.6.21.5 thay vì xài 2.4 là mặc định.
- X11 lên 7.
- Gcc xài 4.1.12 tuy nhiên vẫn có gói gcc 3.4.6 để trong pasture cho ai cần.
- Python từ 2.4 lên 2.5
- Công cụ quản lý gói thấy quảng cáo là ngon lành hơn, không biết răng, để khi mô cập nhật xài thử.
Còn lại mấy cái linh tinh, không quan trọng với mình. Nhìn lại mấy cái cập nhật vừa nói trên cũng không ảnh hưởng chi đến mình nhiều, trừ thằng quản lý gói, là đồ hay dùng. Có lẽ thằng này là lý do chính đáng nhất để nâng cấp. Lần này nâng cấp chắc in hướng dẫn ra cả làm cả đọc chắc ăn.

Upgrade
List file
Change log

Thời gian nâng cấp: Dời lại đã, đang nhác :P

Thứ Ba, tháng 6 26, 2007

Mapping - Vim



Đúng cỡ


Note of function:


function ToggleHLSearch()
if &hls
set nohls
else
set hls
endif
endfunction


Read: Vim tips: Using Vim mappings and abbreviations - linux.com

Thứ Bảy, tháng 6 16, 2007

Chụp hình video

Hum, định thử chụp cái ảnh màn hình, bao gồm video, mục đích chính là khoe :D. Nhưng chụp xong, thấy cửa sổ mplayer xanh lè, chưa tìm ra nguyên nhân chính, nhưng tạm thời có cách giải quyết.
Khi chạy mplayer, thêm tham số -vo x11, rứa là chụp ngon.

Thứ Tư, tháng 6 13, 2007

Nghỉ ngơi

Hic, không có xiền mua con LCD mà ngồi, ngồi CRT lâu mỏi mắt :(.
Mò kiếm cái chương trình để thông báo nghỉ ngơi, cài lỗi lèo nhèo nhác sửa, viết đại cái script.


#!/bin/bash
#Nghỉ ngơi script
xs='xscreensaver -nosplash'
xl='xscreensaver-command -lock'
kx='killall xscreensaver'
zenity --info --text="Chương trình nghỉ ngơi."
while (true); do
sleep 30m
zenity --question\
--text="Đến lúc nghỉ 3 phút.\n Nhấn OK để nghỉ, Cancel để huỷ"
if [ "$?" -eq "1" ]; then
zenity --question --text="Thoát chương trình?"
if [ "$?" -eq "0" ]; then break; $xs; fi
else
$xs &
$xl
sleep 3m
$kx > /dev/null
zenity --info --text="Nghỉ xong"
fi
done

30 phút nhìn, nghỉ 3 phút rồi tiếp tục, để kiếm coi có lệnh gì beep phát để báo, thế sẽ tiện hơn.
Edit: đã chỉnh lại theo hướng dẫn của anh Pcloud, có vẻ xịn hơn :D.
To Pcloud: zenity hình như không "hợp" lắm với fluxbox, dùng --notification nó chỉ hiện cái icon ở systray, rà chuột qua mới hiện cái thông báo, nên không gây được chú ý.

Edit 2: Tiếp tục sửa, giờ chia thành 2 bản, ai chơi cái nào thì chơi.

Bản 1: Giống cái trên, chỉ sửa 1 tý:

#!/bin/bash
#Nghỉ ngơi script
xs='xscreensaver -nosplash'
xl='xscreensaver-command -lock'
kx='killall xscreensaver'
zenity --info --text="Chương trình nghỉ ngơi."&
sleep 3s; kill $! 2>/dev/null
while (true); do
sleep 30m
zenity --question\
--text="Đến lúc nghỉ 5 phút.\n Nhấn OK để nghỉ, Cancel để huỷ"
if [ "$?" -eq "1" ]; then
zenity --question --text="Thoát chương trình?"
if [ "$?" -eq "0" ]; then break; $xs; fi
else
$xs &
$xl
sleep 5m
$kx > /dev/null
zenity --info --text="Nghỉ xong"&
sleep 3s; kill $! 2>/dev/null
fi


Bản 2: Sửa nhiều hơn chút. Bản này mạnh tay hơn, không cho chọn gì sất, báo xong lát là tự động khoá, tuy nhiên vẫn có thể trốn bằng cách nhập mật khẩu của ngưòi dùng, hùm :(

#!/bin/bash
#Nghỉ ngơi script
xs='xscreensaver -nosplash'
xl='xscreensaver-command -lock'
kx='killall xscreensaver'
zenity --info --text="Chương trình nghỉ ngơi."&
sleep 2s; kill $! 2>/dev/null
while (true); do
sleep 30m
zenity --info --text="Đến lúc nghỉ 5 phút."&
sleep 5s
kill $! 2>/dev/null
$xs &
$xl
sleep 5m
$kx > /dev/null
zenity --info --text="Nghỉ xong"&
sleep 2s; kill $! 2>/dev/null
done

Thứ Năm, tháng 4 26, 2007

Tái tiếp danh sách

Dùng wget tải list
Sau lần upgrade Slackware này, mới có dịp thử một số chức năng của wget, mà trước giờ do chưa cần dùng gì, nên cũng không đả động đến.
Đầu tiên là vấn đề tải tiếp. Với một file nào đó, wget làm rất tốt việc này, chỉ việc dùng tham số -c. Nhưng với việc tải theo danh sách, wget không hỗ trợ.
Trong trang này, có đề cập đến cách giải quyết. Giải pháp của nó là trong mỗi thư mục có một file .wget-list là danh sách, xoá đi dòng đầu tiên sau khi nó được tải xong. Cách này dùng tạm được, nhưng ý mình là muốn không làm ảnh hưởng đến cái danh sách. Vì thế, dùng một cái log file là ý kiến dùng được.
Dùng tạm cái scipt đơn giản(?) sau, viết để học bash:


#!/bin/bash
FILE="$HOME/.download"
down () {
let "count+=1"
url=`sed -n "$count p" $file`
while [ "$url" != "" ]; do
echo "$file $count $PWD" >>$FILE
echo "downloading $url"
wget $url
sed -i "/$file/d" $FILE
let "count+=1"
url=`sed -n "$count p" $file`
done
echo "finish"
}
if [ "$1" = "-c" ]; then
file=$2
line=`sed -n "/$file/p" $FILE`
echo "$line"
read file count dir << EOF
$line
EOF
cd $dir
url=`sed -n "$count p" $file`
echo "downloading $url"
wget -c $url
sed -i "\$file\d" $FILE
down
else
let "count=0"; file=$1
down
fi

Mọi cái cần thiết sẽ ở file ~/.download, mỗi lần dùng nó sẽ coi trong file này để lấy thông tin. Khi nào cần tải tiếp thì thêm -c vào đầu, không thì gõ mỗi tên file danh sách là được.

Edit: Cái mã chạy bị điên, mới chỉnh lại.

Thứ Hai, tháng 4 23, 2007

vim với thư mục

Hehe, tự nhiện hôm nay gõ nhầm tên tệp tin thành tên thư mục! Vim nó mở được thư mục, coi thấy quái quái :)) Xài lệnh:
#vim a #a is a directory
Trong cửa sổ vim nó ra vầy:
rectory Listing (netrw v98) " /home/luannt/Temp/xoa/a " Sorted by name " Sort sequence: [\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$ " Quick Help: :help -:go up dir D:delete R:rename s:sort-by x:exec " ============================================================================ ../ ./ :q/ a/ b/
Coi help phát hoá ra nó hỗ trợ làm linh tinh với thư mục. Đúng là công cụ soạn thảo kinh điển (chôm câu người ta) :)).

Thứ Ba, tháng 4 10, 2007

Linux lại chạy

Hùm, tìm đủ mọi cách để chữa nhưng không được, đành cài lại, cũng là để thử cách cài từ đĩa cứng, đỡ phải ghi đĩa.
Công việc đầu tiên là backup thằng /etc. Sau đó bung mấy cái file iso ra đĩa, rồi chạy DOS, dùng loadlin để khởi động cài đặt bằng cái lệnh tương tự vầy:


loadlin D:\kernels\sata.i\bzImage initrd=D:\isolinux\initrd.img

Việc tiếp theo là cài.
Cài xong, cài luôn thằng 2.6.17.13 có trên đĩa 2 của Slackware. Cài xong startx không được, thử cài lại driver cho NVIDIA thì gặp lỗi:

ERROR: Unable to load the kernel module 'nvidia.o'. This happens most
168 frequently when this kernel module was built against the wrong or
169 improperly configured kernel sources, with a version of gcc that differs
170 from the one used to build the target kernel, or if a driver such as
171 rivafb/nvidiafb is present and prevents the NVIDIA kernel module from
172 obtaining ownership of the NVIDIA graphics device(s).
173
174 Please see the log entries 'Kernel module load error' and 'Kernel
175 messages' at the end of the file '/var/log/nvidia-installer.log' for
176 more information.

Xài tạm lynx để vô net, tìm phát, may mà vớ được cái này, chạy phát thế này là cài ngon lành:

sh NVIDIA-blahblah -k $(uname -r)

Mọi cái đều đã chạy tốt, cái máy trở lại như cũ, có mỗi Gmail nitifer for Linux còn chưa chạy, lỗi:

Traceback (most recent call last):
File "/bin/notifier", line 6, in ?
import gtk
File "/usr/local/src/Development/pygtk-PACKAGE/layout/usr/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 48, in ?
File "/usr/lib/python2.4/site-packages/cairo/__init__.py", line 1, in ?
from _cairo import *
ImportError: /usr/lib/python2.4/site-packages/cairo/_cairo.so: undefined symbol: cairo_pdf_surface_set_dpi

Lỗi nữa rồi

Hôm qua ngồi cài gparted vô, và thế là bắt đầu.
Trước tiên là parted không thể nào đọc được các ổ, trong khi fdisk thì bình thường. Nó cứ báo lỗi:


Error: Unable to open /dev/hda - unrecognised disk label.

Khi cài gparted nó đòi bản qt mới hơn. Nhắm mắt slapt-get cài bản mới nhất của qt, thế là chuỗi vấn đề bắt đầu.
Nhiều chương trình không chạy, trong đó có opera.
Chạy từ xterm, thấy có thông báo lỗi (phiên bản không nhớ rõ nữa):

/lib/libpthread.so.0: version `GLIBC_2.3.x' not found

Tiếp theo, chưa tìm hiểu kỹ càng, cài lại glibc-solibs và glibc từ đĩa Slackware-11 và tiếp theo là chết.
Gõ lệnh gì vào nó cũng:

Kernel too old

Dùng được mỗi lệnh cd, chả làm ăn được gì. Tạm thời tắt máy, làm bài tập. Khi bật lại từ, đen em rồi, không vào được Slackware nữa :(.
Nó load như bình thường được lát thì hiện đầy mấy cái thông báo dạng này:

Fatal: kernel too old
Init: Id "c1" respawning too fast: disabled for 5 minutes
Init: no more processes left in this runlevel

Kết quả là giờ phải ngồi làm cái bài than vãn này và tìm cách khắc phục trong windows :(.

Openoffice là con lợn

Bực cả mình. Gần đây có 2 bài tự tìm hiểu thông tin của môn địa và sử mới biết openoffice là con lợn :))
Lợn đầu tiên là vấn đề nạp chương trình. Bản 2.1 nạp khá chậm, tuy nhiên sau khi chỉnh mấy cái thông số về bộ nhớ đã đã cải thiện tốt hơn.
Lợn thứ 2 là nạp tập tin. Chỉ tệp tin hơn chục trang với một ít ảnh, nó nạp với thời gian rất lâu (có khi đứng luôn), không biết với tệp tin hơn trăm trang và nhiều ảnh thì nó nạp mất mấy ngày :(
Lợn thứ 3 là trong lúc chỉnh sửa. Chỉ cần trong tài liệu có vài cái ảnh là khi kéo lên kéo xuống nó đứng cho thêm một hồi nữa.
Mẹ ơi, chẳng lẽ phải trở lại xài đồ chùa :(.

Thứ Ba, tháng 3 13, 2007

Kiếm hàng

Hùm, hôm qua mò vô www.slacky.it, không vào được, không biết tại sao, tưởng mất mất chỗ kiếm hàng ngon.
Hôm nay vào lại, thấy nó tự chuyển đến trang www.slacky.eu/. Nó có cái giao diện mới, có vẻ dễ cho việc nhìn và tìm kiếm hàng hơn :)).
Nhanh tay đổi lại cái địa chỉ cho slapt-get kiếm hàng thôi, khửa khửa.

Chủ Nhật, tháng 3 11, 2007

startx

Tự nhiên khi chạy startx nó chậm hẳn do nó tạo cái file .serverauth.???? (chỗ mấy cái dấu ? là số trong HOME.
Search phát, thấy thằng này, chui vô startx sửa phát, từ:

http://www.shallowsky.com/blog/linux/serverauth.html

Thành
xserverauthfile=$XAUTHORITY

Như nó hướng dẫn, thử startx lại, có nhanh hơn, nhưng... vẫn thấy chậm hơn lúc mới upgrade, có vấn đề gì sao nhỉ? Mình đâu đã chỉnh gì nhiều ngoài mấy cái dịch vụ chạy khi khởi động? Phải xem tiếp rồi.

Upgrade Slackware 10.2 to Slackware 11

Upgrade Slackware 10.2 to Slackware 11
Nhìn changelog của thằng Slackware 11 cũng muốn thử nâng cấp xem sao, dùng đồ mới cho nó sướng.
Hehe, tải xong Slackware 11 về, nâng cấp vù vù theo cái hướng dẫn chi tiết của nó. Mọi việc cài đặt đã xong xuôi, tắt máy về ăn cơm, quên chỉnh lại lilo.
Ăn xong, bật máy và, tỏi, không vô được Slackware nữa.
Phù, may mà Slackware nó chu đáo, trên đĩa có luôn hướng dẫn và công cụ để khắc phục. Xong xuôi, đăng nhập ngon lành, có trục trặc nhỏ với driver NVIDIA phải cài lại.
Hehe, có vẻ chạy nhanh hơn so với trước kia, điều này thấy rất rõ qua tốc độ restart lại fluxbox. Mà tự nhiên trên mỗi thanh tiêu đề cửa sổ nó thêm một cái ô hay hay, chả biết cái gì.

Qua lần cài này, biết thêm một số điều và gặp một số vấn đề liên quan đến lỗi và lệnh.

Thứ Bảy, tháng 3 03, 2007

Tiếp tục với xargs

Sau một hồi tìm kiếm thì thấy có liên quan đến ký tự thoát (escape character) nhằm hiển thị trên console.
Đặc biệt, nó có ảnh hưởng của xterm. Dùng với console của Linux thì không bị hiện tượng trên, nó chỉ bị với xterm vì nó thêm mấy cái đó để điều khiển hiện màu mè ra màn hình. Nhưng lạ ở chỗ sao lệnh find lại vẫn làm việc đúng, xuất ra vẫn chuẩn, không thêm các ký tự thoát đó vào.
Haha, cuối cùng thì cũng hiểu tại sao lại bị vấn đề. sử dụng tham số "--color=auto" mặc định cho thằng ls bằng cách dùng alias nên nó mới tô màu mè, dẫn tới tình trạng trên.
Vấn đề bây giờ là tìm cách ls tô màu mà không sử dụng cách trên.

Hí hí, cuối cùng cũng đã giải quyết xong vấn đề.
Trong tham số "--color" thay auto bằng tty là xong. Khè khè, sướng quá :))

Lỗi với xargs

1/Gặp một lỗi với xargs, chả hiểu tại sao.
Tự nhiên nội dung của stdin bị thay đổi. Như từ "file_name" nó trở thành " \033[00m\033[01;31mfile_name\033[00m".
Ví dụ, dùng lệnh:

#ls file_name | xargs -i mv {} test
mv: cannot stat `\033[00m\033[01;31mfile_name\033[00m': No such file or directory
mv: cannot stat `\033[m': No such file or directory

Tìm kiếm nguyên nhân tiếp.

Thứ Ba, tháng 2 27, 2007

Gmail Notifier

Hehe, cuối cùng cũng giải quyết xong vấn đề Gmail Notifier.
Lúc đầu, chạy nó bị lỗi chả hiểu gì:


./notifier.py
Gmail Notifier v1.6.1b (2007/02/18 19:43:56)
----------
xmllangs: XML file succesfully parsed
Configuration read (/home/luannt/Install/Network/Google/gmail-notify/notifier.conf)
Traceback (most recent call last):
File "./notifier.py", line 409, in ?
gmailnotifier = GmailNotify()
File "./notifier.py", line 54, in __init__
self.configWindow = GmailConfig.GmailConfigWindow( )
File "/home/luannt/Install/Network/Google/gmail-notify/GmailConfig.py", line 134, in __init__
table.attach( self.cbo_langs, 1, 2, 8, 9, ypadding=5 )
TypeError: GtkTable.attach() argument 8, item 134993567 impossible

Tìm một vòng, cuối cùng cũng mò ra cách giải quyết nhờ trang này.
Mở tệp tin GmailConfig.py:
Chỉnh dòng 134 từ

table.attach( self.cbo_langs, 1, 2, 8, 9, ypadding=5 )

Thành:

table.attach( self.cbo_langs, 1, 2, 8, 9, ypadding=5, xpadding=0 )

Chỉnh dòng 141 từ:

table.attach( button, 0, 2, 10, 11, ypadding=2 )

Thành:

table.attach( button, 0, 2, 10, 11, ypadding=2, xpadding=0 )

Và cứ thế là chạy :))

Thứ Tư, tháng 2 21, 2007

Copy VCD to hard disk

Gặp lỗi khi copy đĩa VCD. Sau khi mount đĩa VCD, thử copy film thì không được, báo lỗi:


cp: reading `avseq01.dat': Input/output error

Tuy nhiên, mấy thứ linh tinh ở thư mục khác trên đĩa lại copy được, lạ thật.
Xem cái trang này, thấy bị lỗi tương tự, làm theo nhưng chả được :D
Tìm thêm một lúc nữa mới biết Linux không đọc được VCD (như Audio CD). Và giải p
háp vẫn là CDfs. Ngoài ra còn có thêm giải pháp khác là GNU VCDImager.

Download Google videos as avi file

Để download video từ Google Video về dưới dạng avi, xem bài này http://googlesystem.blogspot.com/2006/04/download-google-videos-as-avi-files.html.
Đơn giản hơn? Chỉ cần bật video ra, dán vào thanh address phát là xong:

javascript:window.location.href=document.getElementById('macdownloadlink')

Thứ Sáu, tháng 2 16, 2007

Test

Test code

Test quote

Haha, đi chôm mấy cáu định dạng về cho blog mình :))

Thứ Tư, tháng 2 14, 2007

1/Khà khà, lâu nay thỉnh thoảng mới dùng mc nên không nhác, nhìn cái ký hiệu phím tắt của nó chả hiểu nhưng cũng không thèm đọc doc.
Hôm nay ngứa... người, đọc bài terminfo, stty, xterm, backspace của Pclouds, thấy liên kết đền bài Nhấn Alt trong xterm, chào Emacs!. Sau đó mới mò vào GNU Midnight Commander: Frequently Asked Questions, thấy có chỗ:


2.1 What does documentation mean with the C-?, M-? and F? keys?

GNU Midnight Commander documentation uses emacs style names for
keyboard keys.

C stands for the Ctrl key. For example, C-f means that you should
hold down the Ctrl key and press the f key.

M stands for the Meta key. Your terminal might call it Alt or
Compose instead of Meta. For example, M-f means that you should hold
down the Meta/Alt/Compose key and press the f key. If your terminal
doesn't have Meta, Alt or Compose or they don't work you can use Esc.
For M-f press the Esc key and then press the f key.

Sometimes Ctrl and Alt are used instead of C and M for simplicity.
Keep in mind that Alt can actually be Meta on some keyboards.

F? stands for a function key. If your terminal doesn't have function
keys or they don't work you can use Esc. For example, for F3 press
the Esc key and then press the 3 key.

Rứa mới mò mặt đi bật phím Alt trong xterm, theo cách của Pclouds, và sung sướng dùng phím tắt của mc :)).

Some good programs for Linux

Mục tiêu ¨hơi lớn¨ là thành một ¨chuyên gia¨ về Linux. Chính vì thế, để thực hiện nó, trước hết phải trỏ thành một người dùng, sau đó từ từ để trở trở thành người dùng thông thạo cái đã.
Vấn đề lúc đầu mình nghĩ là chuyển sang Linux sẽ khó kiếm chương trình càng ngày càng thấy sai, mỗi lúc một nhiều chương trình cho mình chọn lựa. Mình sẽ liệt kê danh sách các chương trình hỗ trợ từ nhỏ đến lớn mà mình dùng nhằm:
1/ Cái đầu tiên là nhớ, cho dễ theo dõi, cập nhật.
2/ Sau này có cái mới có danh sách mà so sánh rất rõ ràng.
3/ Ai đọc blog có thể tham khảo, góp ý.

Cái đầu tiên là chương trình knotes.
Trang chủ: http://pim.kde.org/components/knotes.php (thông tin hơi sơ sài).
Tải về: http://sourceforge.net/project/showfiles.php?group_id=128074
Thông tin: là chương trình tạo các ghi chú trên màn hình, khá hay.(có vẻ hơi sơ sài nhỉ?!!!)

Start My new Blog

from Today, i start writing My new blog. It'll help me save infomation.

Next: some programs on Linux

Basket
trang chủ http://basket.kde.org
Thông tin: là chương trình tạo ghi chú, lưu trữ tương tự dạng 1 quyển sách. Phiên bản hiện tại (0.5.0) không thực sự thoả mãn lắm, tuy nhiên nhìn mấy cái shots của bản beta 0.6.0 mà sướng cái mắt, muốn cài lắm nhưng chưa đc, còn lỗi gì đó.

Gtklepin
Trang chủ: http://ordiluc.net/gtklepin/
Chức năng tương tự basket bản hiện thời (0.5.0), đang tạm thời dùng cả 2 thằng song song, đến khi dùng bản 0.6.0 của basket chính thức thì chắc thằng này ra rìa :D

Kchmviewer
Trang chủ:http://www.kchmviewer.net/index.html
Chức năng: Đây là chương trình xem file dạng chm, được đánh giá (người khác đánh giá :P ) hơn so với xchm. Dùng thấy khá sướng, mặc dù khi so sánh với hiển thị trên win có đôi tý khác, nhưng không đáng chú ý.

Stardict
Trang chủ: http://stardict.sourceforge.net/
Dữ liệu tải ở: http://james.dyndns.ws/pub/Dictionary/StarDict-James/ (của james)
Chức năng: là từ điển, có thể tra trực tiếp trên các cửa sổ( nhược điểm của cái này là những gì muốn tra phải bôi đen đc). Dùng nhanh, sướng.



 
^

Powered by Bloggerblogger addicted por UsuárioCompulsivo
original Washed Denim por Darren Delaye
Creative Commons License