Saturday, 31 March 2012

[CCGU] cd,pwd - di chuyển loanh quanh

vì một thế giới không bao giờ đứng yên ;)
Title phụ 2: cd, pwd - biết mình ở đứng đâu trong cuộc đời này ^^

Bắt đầu 1 quá trình tìm hiểu câu lệnh, con chuột bạch đầu tiên là lệnh cd

1. cd - Change Directory
famihug@hvn:~$ whatis cd
cd: nothing appropriate.
famihug@hvn:~$ man cd
No manual entry for cd
famihug@hvn:~$ which cd
famihug@hvn:~$ whereis cd
cd:
đúng như các cụ chém, vạn sự khởi đầu nan :D sử dụng "các câu lệnh tìm hiểu câu lệnh" mà kết quả toàn trả về không thấy không có. Tạm dừng nói về cd, hãy trả lời câu hỏi : tại sao các câu lệnh trả về kết quả như thế?


Vì có 2 loại câu lệnh : built-in và chương trình.
hãy dùng lệnh type để kiểm tra trực quan hơn:
famihug@hvn:~$ type cd
cd is a shell builtin
famihug@hvn:~$ type mv
mv is /bin/mv
famihug@hvn:~$ type type
type is a shell builtin
 cd là lệnh có sẵn (trong shell), còn lệnh mv thực chất là gọi 1 chương trình độc lập có đường dẫn là /bin/mv. Với các lệnh builtin, thường rất đơn giản nên có lẽ không cần hướng dẫn làm gì ???!

Kiểm tra lại lần nữa với type
famihug@hvn:~$ whatis type
type: nothing appropriate.
famihug@hvn:~$ man type
No manual entry for type
famihug@hvn:~$ which type
lang thang hơi nhiều rồi, giờ ta trở lại với cd.
Cú pháp: cd thu_muc_dich 
VD:

famihug@hvn:~$ cd /etc/
famihug@hvn:/etc$ cd /usr/bin

famihug@hvn:/usr/bin$ cd /
famihug@hvn:/$ cd ~
famihug@hvn:~$ echo ~
/home/famihug
famihug@hvn:~$ cd ..
famihug@hvn:/home$
2 ví dụ đầu rất dễ hiểu, bạn sẽ di chuyển đến các thư mục /etc/ và /usr/bin/ sau câu lệnh.
3 câu lệnh sau có vẻ kỳ lạ nhưng bạn sẽ dùng rất thường xuyên
/    là thư mục gốc, cha của mọi thư mục.
~   là thư mục home của user hiện tại. Thường sẽ chuyển bạn đến /home/ten_user_cua_ban/
..   thư mục cha của thư mục hiện thời
2. pwd - Print name of current/Working Directory
in ra tên của thư mục hiện thời

famihug@hvn:/home$ whatis pwd
pwd (1)              - print name of current/working directory
famihug@hvn:/home$ cd ~
famihug@hvn:~$ pwd
/home/famihug

-------------------------
Mẹo sử dụng - Use it your smart way

Việc di chuyển đến mọi nơi thực hiện bằng lệnh cd. Nghe có vẻ đơn giản bởi chỉ việc gõ

cd thu_muc_dich
là sẽ đến được ngay, nhưng việc nhỏ bé này sẽ nhiều lúc gây khó chịu đến nỗi khiến ta bật trình duyệt file (VD nautilus) lên và browse bằng chuột :D.




Tip1: trở về thư mục mà bạn vừa rời khỏi
dùng lệnh cd -


hvnsweeting@hvnbox:/media/data/HVNSweeting$ cd ~
hvnsweeting@hvnbox:~$ cd -
/media/data/HVNSweeting
hvnsweeting@hvnbox:/media/data/HVNSweeting$

Tip2: trở về một thư mục nào đó sau khi đi khắp nơi.
Ví dụ bạn đang ở ~/a/b/c/d/e/f , chạy đi khắp nơi và giờ muốn trở về nơi này. Việc gõ cd ~/a/b/c/d/e/f là cực kì nhàm chán. Hãy sử dụng biến(variable) của bash:
gán biến cur=$(pwd) #kết quả trả về của lệnh pwd = thư mục hiện tại.
hvnsweeting@hvnbox:/media/data/HVNSweeting$ cur=$(pwd)
hvnsweeting@hvnbox:/media/data/HVNSweeting$ cd /home/hvnsweeting/Dropbox/DIC/
hvnsweeting@hvnbox:~/Dropbox/DIC$ cd /home/hvnsweeting/.config/awesome/
hvnsweeting@hvnbox:~/.config/awesome$ cd $cur
hvnsweeting@hvnbox:/media/data/HVNSweeting$

Tip3: đặt tên cho những thu mục thường xuyên ghé thăm.
đặt các biến gắn với các địa chỉ bạn thường sử dụng trong file ~/.bashrc để dễ dàng di chuyển đến đó:

jlab=~/Dropbox/DIC/Java
clab=~/Dropbox/DIC/C

khi cần, bạn chỉ việc cd $jlab hay cd $clab là teleport đến luôn :D

~~~~~~~~~~~~~~~
Những bài viết sau sẽ tăng tốc nhanh hơn, sẽ có vài chỗ bạn không hiểu ngay lúc đầu nhưng hãy làm theo ví dụ và rồi nó cùng ngấm :D 
Bài tiếp theo:
cat - Chữ C đầu tiên của CCGU