Tóm tắt hoạt động (TL; DR)
- Sử dụng
pwdđể biết bạn đang ở đâu (hoặc nhìn giữa :và $trong dấu nhắc của bạn).
- Sử dụng
cdđể thay đổi thư mục ở nơi khác. Không giống như trong Windows, cdphải luôn được theo sau bởi khoảng trắng; các lệnh như cd/và cd..sẽ không hoạt động, nhưng cd /và cd ..sẽ.
Biết bạn đang ở đâu
Cách 1: Chạy pwd.
Thư mục nào bạn hiện đang sử dụng là dành riêng cho shell (và nói chung hơn là dành riêng cho ứng dụng). Bạn có thể đang chạy một shell nơi bạn đang ở trong một thư mục và một shell khác nơi bạn đang ở trong một thư mục khác.
Để biết thư mục nào bạn đang ở, hãy chạy:
pwd
Ví dụ: (từ trình bao tôi tình cờ mở bây giờ, trên máy của tôi):
ek@Kip:~$ pwd
/home/ek
Điều này cho tôi biết rằng tôi đang ở trong thư mục /home/ek. /homelà (hơi khó hiểu) thư mục chứa thư mục nhà của người dùng (bản thân nó không phải là thư mục chính của người dùng). Người dùng usernamecó thư mục nhà ./home/username
Người rootdùng không có một thư mục nhà /home. Thay vào đó, rootthư mục nhà là /root. Điều này không được nhầm lẫn với thư mục gốc , đó là /.
Cách 2: Kiểm tra lời nhắc của bạn.
Cấu hình mặc định cho lời nhắc của bạn là nó cho bạn biết thư mục nào bạn hiện đang ở. Lời nhắc của bạn là văn bản xuất hiện để thông báo cho bạn rằng trình bao sẵn sàng chấp nhận lệnh.
Trong ví dụ bạn chỉ cho chúng tôi trong câu hỏi của bạn, lời nhắc của bạn là:
christy@ubuntu:~$
christylà tên người dùng của bạn. Ký @tự tách nó khỏi ubuntu, tên máy chủ của máy tính của bạn. (Nếu bạn đang chạy CD trực tiếp, tên máy chủ của nó sẽ là ubuntuvà một số người chọn đó là tên máy tính của họ trong quá trình cài đặt.)
Ký :tự tách nó khỏi tên của thư mục bạn hiện đang ở. Trong trường hợp này, nó được đại diện bởi ~. ~là tốc ký cho thư mục nhà của bạn. Khi bạn không ở trong thư mục chính của mình, bạn sẽ thấy một tên thư mục đầy đủ. Ví dụ:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(Để hoàn thành ý nghĩa của từng phần của dấu nhắc: Đối với các lời nhắc tuân theo quy ước này, một $hoặc một #ký tự xuất hiện. $Như trong trường hợp này, có nghĩa đó là vỏ người dùng bình thường. Một #ký tự có nghĩa là rootvỏ.)
Thay đổi bạn đang ở đâu
Tại sao lệnh "cd" của bạn không hoạt động.
Để thay đổi thư mục, sử dụng cdlệnh.
Bạn đã chạy cd/. Điều này không hoạt động vì bạn không thực sự chạy cdlệnh. Trong Ubuntu và các hệ điều hành giống Unix khác (thực ra, trong các shell kiểu Unix như bash, shell bạn đang sử dụng), tên của lệnh được coi là chỉ kết thúc ở một khoảng trắng hoặc cuối dòng.
Vì vậy, không giống như trong Dấu nhắc lệnh trong Windows (nơi cd\được hiểu giống như cd \và cd..được hiểu là giống như cd ..), trong bash(shell bạn đang sử dụng trong Ubuntu), cd/không phải là một lệnh hợp lệ. Bạn phải sử dụng cd /.
cd/có nghĩa là "mục trong thư mục hiện tại có tên cdvà cũng là một thư mục." Có hay không một thư mục con như vậy tồn tại, nó không thể chạy như một lệnh, vì vậy một trong hai cách bạn sẽ nhận được một lỗi (mặc dù những gì lỗi bạn nhận được sẽ khác nhau):
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
Di chuyển đến thư mục nhà của bạn
Để đi đến thư mục chính của bạn, hãy tự chạy cdmà không có bất kỳ đối số nào:
cd
Một số người thích đặt tên rõ ràng thư mục nhà của họ. Bạn có thể sử dụng tên đầy đủ của nó, hoặc
cd ~
Nhưng cdtự nó là đủ.
Di chuyển lên một thư mục
Để thay đổi thư mục thành thư mục mẹ của thư mục hiện tại (nghĩa là thư mục chứa nó), hãy sử dụng:
cd ..
..đại diện cho thư mục mẹ của thư mục hiện tại. Nếu bạn đang ở trong thư mục gốc ( /), có một ngoại lệ: ..chỉ đại diện /. Vì vậy, chạy cd ..di chuyển lên một thư mục khi chạy bất cứ nơi nào nhưng /; Khi chạy vào /, bạn ở lại /.
Mỗi thư mục chứa một ..mục. Tất cả chúng đều chứa một .mục trong đó đề cập đến chính thư mục hiện tại. Nó không phải là rất để chạy cd .mặc dù. Bạn luôn ở nơi bạn đang ở.
Con đường tuyệt đối và tương đối
Nếu bạn cdđến một cái gì đó không bắt đầu bằng a /, thì nó sẽ cố gắng đi đến thư mục đó trong thư mục hiện tại .
Ví dụ: nếu bạn chạy
cd var/log
Sau đó, nó sẽ cố gắng đi vào varthư mục con của nơi bạn hiện đang ở, và vào logthư mục con của điều đó. Trừ khi cả hai tồn tại, và ở những nơi đó, cdlệnh đó sẽ thất bại (và bạn sẽ vẫn ở nơi bạn ban đầu).
Nếu bạn muốn đi đến logthư mục con của varthư mục con của thư mục gốc , hãy chạy cái này thay thế:
cd /var/log
Chỉ khi bạn đang trong /là cd var/logtương đương với cd /var/log.
Một con đường bắt đầu bằng /là tuyệt đối. Cách giải quyết không phụ thuộc vào nơi bạn hiện đang ở.
Đường dẫn ~là tuyệt đối quá, bởi vì nó (về cơ bản) là tốc ký $HOME. HOMElà một biến môi trường và biểu thức $HOMEmở rộng đến đường dẫn đầy đủ, tuyệt đối của thư mục chính của người dùng hiện tại.
~ký hiệu cũng có thể được sử dụng để thể hiện thư mục nhà của người dùng khác . Nếu bạn viết , nó đại diện cho thư mục nhà của.~usernameusername
Quay trở lại nơi bạn đã từng
Thư mục bạn hiện đang được lưu trữ trong PWDbiến môi trường. Thư mục cuối cùng bạn đang ở được lưu trữ trong OLDPWDbiến môi trường. Bạn có thể xem OLDPWDgiống như cách bạn xem bất kỳ biến môi trường nào:
echo $OLDPWD
Bởi vì thông tin này được lưu trữ, cdcó thể có một cách đặc biệt, nhanh chóng và dễ dàng để quay lại nơi bạn đã ở trước đó. Như pst007x nói , để đi đến thư mục cuối cùng bạn đã vào, hãy chạy:
cd -
Nếu không bao giờ có bất kỳ thư mục nào trước đó bạn nằm trong shell đó, thì OLDPWDbiến môi trường sẽ không được đặt và cố gắng chạy cd -sẽ dẫn đến lỗi (và bạn sẽ giữ nguyên vị trí của mình):
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
Thay đổi nơi bạn giống như một ông chủ
pushdvà popd: Thư mục ngăn xếp
Hãy tưởng tượng một chồng tên thư mục. Theo một ngăn xếp , tôi có nghĩa là một cái gì đó khi bạn thêm một cái gì đó lên trên cùng và bạn chỉ có thể loại bỏ một thứ tại một thời điểm và thứ bạn loại bỏ luôn là những gì hiện đang ở trên cùng.
Bạn có thể đẩy bất kỳ thư mục nào dirlên ngăn xếp bằng cách chạy:
pushd dir
Nếu bạn muốn đẩy thư mục hiện tại lên đầu ngăn xếp, bạn có thể sử dụng .(như đã giải thích ở trên, luôn đại diện cho thư mục hiện tại):
pushd .
Sau đó, bạn có thể đi về doanh nghiệp của bạn, thay đổi thư mục nhiều như bạn muốn. Khi bạn muốn quay lại thư mục cuối cùng bạn đã đẩy lên ngăn xếp với pushd, hãy chạy:
popd
Điều này đi đến thư mục đó, và cũng bật nó ra khỏi ngăn xếp. Bây giờ ngăn xếp là một thư mục ngắn hơn. Nếu đó là thư mục duy nhất trên ngăn xếp, thì ngăn xếp đó bây giờ trống rỗng.
Bạn có thể có một ngăn xếp có kích thước lớn hơn 1. Nghĩa là, bạn có thể sử dụng pushdcác lệnh riêng biệt để đẩy nhiều thư mục lên ngăn xếp. Mỗi popdlệnh tiếp theo sẽ đi đến (và bật ra, tức là xóa khỏi ngăn xếp ) thư mục được đẩy gần đây nhất chưa được bật.
Đây là một ví dụ:
ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$
pushdvà popdđược sử dụng ít thường xuyên hơn nhiều cd. Họ cũng có những ứng dụng khác, thậm chí cao cấp hơn. Chạy help pushdvà help popdđể biết chi tiết.
Tìm hiểu thêm và truy cập tài liệu
cdvà pwdcó sử dụng cao cấp hơn quá. Để tìm hiểu về họ, chạy help cdvà man pwd.
helplà dành cho vỏ dựng . mandành cho các lệnh độc lập - các lệnh chạy dưới dạng các tiến trình riêng biệt và tồn tại dưới dạng các tệp thực thi riêng biệt. Các typelệnh cho thấy nếu một lệnh là một BUILTIN vỏ hay không, và nếu không, nơi mà các chương trình nó chạy tọa lạc. Ví dụ, bạn có thể chạy type help, type typehoặc type man.