Trong phần tổng hợp những nỗi kinh hoàng của sysadmin , một trong những tác giả viết, như một quy tắc của ngón tay cái:
Luôn luôn làm một
cd .
trước khi làm bất cứ điều gì.
Tại sao bạn muốn làm điều đó?
Trong phần tổng hợp những nỗi kinh hoàng của sysadmin , một trong những tác giả viết, như một quy tắc của ngón tay cái:
Luôn luôn làm một
cd .
trước khi làm bất cứ điều gì.
Tại sao bạn muốn làm điều đó?
Câu trả lời:
Bạn không.
Ít nhất là không chỉ như vậy. Dòng trước trong tài liệu được trích dẫn có tầm quan trọng:
- Thiết lập lời nhắc của bạn để làm
pwd
mọi lúc bạn cd.- Luôn luôn làm một
cd .
trước khi làm bất cứ điều gì.
Bằng cách này, bạn với tư cách là nhà điều hành xác minh thư mục làm việc hiện tại của bạn trước khi thực hiện bất kỳ điều gì quan trọng, vì nó được in ra với mỗi thay đổi. cd .
không có ý nghĩa gì khác.
"Xác minh" này là một điều tốt, và bạn nên điều chỉnh một hình thức của nó. Một biến thể phổ biến hơn (IMHO) của chủ đề này là luôn in ra thư mục làm việc tại dấu nhắc.
pwd
trước khi làm bất cứ điều gì?
cd .
sẽ thay đổi cơ sở thực tế thư mục mà bạn đang ở.
cd .
nhưng trước khi làm bất cứ điều gì khác. Nó chỉ làm giảm khả năng nằm trong thư mục sai, nhưng không giải quyết được vấn đề chung. Trừ khi bạn chuyển sang thư mục thực bằng cách sử dụng cái gì đó giống như cd $(readlink -f .)
bạn đã thực sự muốn ở đó.
Nếu thư mục làm việc hiện tại của shell của bạn bị xóa, có thể mất dữ liệu.
Ví dụ,
$ pwd
/home/user/test
$ rmdir /home/user/test
$ pwd
/home/user/test
$ some_command | tee command.log
tee: command.log: No such file or directory
<long output>
Đầu ra của some_command
không được ghi vào đĩa.
Gõ cd .
trước khi chạy một lệnh sẽ tiết lộ vấn đề.
$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.
Nếu thư mục thư mục làm việc hiện tại đã bị xóa và được tạo lại, việc gõ cd .
sẽ "làm mới" tham chiếu đến thư mục đó.
$ ls
foo bar ljz
$ pwd
/home/user/test
$ rmdir /home/user/test
$ mkdir /home/user/test
$ pwd
/home/user/test
$ ls
$ cd .
$ ls
foo bar ljz
Tôi nghĩ nó quan trọng hơn để hiển thị thư mục hiện tại của bạn.
Trên mọi máy chủ linux, tôi sửa đổi lời nhắc /etc/bashrc
bằng cách thay đổi "W" thành "w".
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
đến
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
Tác dụng của việc này là:
[root@xt include]#
đấu với
[root@xt /usr/src/spl-0.6.1/include]#
PS1
bash là cụ thể?
~/.profile
hoặc của bạn ~/.bash_profile
cũng như cập nhật/etc/skel/.profile