Làm cách nào để thay đổi thư mục trong thiết bị đầu cuối và biết tôi đang ở thư mục nào?


15

Tôi đang làm theo hướng dẫn @ Cộng đồng Ubuntu Trợ giúp ; Tuy nhiên, tôi vẫn còn bối rối về một vài điều. Tôi đã nghiên cứu nó và tìm thấy bài đăng này: sử dụng thiết bị đầu cuối để thay đổi thư mục , nhưng nó ở trên tôi & tôi vẫn không chắc chắn làm thế nào để đi về nó. Tôi là người mới và cần thêm một chút hướng để gắn bó với tôi! ;-) Sau đây là tập lệnh từ thiết bị đầu cuối của tôi:

christy@ubuntu:~$ ls
Desktop    examples.desktop     install-tl-unx.tar.gz  Pictures  Templates
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
christy@ubuntu:~$ cd/
bash: cd/: No such file or directory

Làm thế nào để tôi biết những gì trong thư mục nào và làm thế nào để tôi điều hướng thư mục. Tôi biết tôi phải bỏ đi một cái gì đó đơn giản.


4
Bạn luôn cần một khoảng trắng sau lệnh như "cd". Lệnh của bạn sẽ hoạt động nếu bạn nhập "cd /" và sẽ chuyển đến thư mục gốc.
Marty Fried

Tuyệt vời, Marty! giúp đỡ của bạn được đánh giá rất cao. ;-)
user74713

Câu trả lời:


19

Trong phiên của bạn lshiển thị nội dung của thư mục hiện tại (nhưng không ẩn các tệp bắt đầu bằng dấu chấm trong tên tệp). Bạn điều hướng vào một thư mục khác bằng cách gõ cd dirname. Ở đây bạn phải thay thế "dirname" bằng tên của thư mục mà bạn muốn đổi thành. Thông thường bạn bắt đầu với thư mục chính của bạn như thư mục làm việc hiện tại. Trong trường hợp của bạn đó là rất có thể /home/christy. Nếu lshiển thị cho bạn một thư mục có tên "Mẫu", bạn có thể thay đổi thành "Mẫu" (= biến nó thành thư mục làm việc hiện tại của bạn) bằng cách nhập (chú ý khoảng trắng) lệnh:

cd Templates

bạn sẽ thay đổi thư mục làm việc hiện tại của bạn thành "Mẫu" hoặc in "Không có tệp hoặc thư mục đó", nếu một thư mục của tên đó không tồn tại trong thư mục hiện tại của bạn. Gõ pwdsẽ luôn cung cấp cho bạn bản vá đầy đủ vào thư mục làm việc hiện tại của bạn bao gồm cả cha mẹ.

Bạn có thể cung cấp các đối số tùy chọn cho mỗi lệnh. Đối với cdchuỗi "Mẫu" là một đối số tùy chọn. Nếu bạn gõ ls -achẳng hạn, lslệnh cũng sẽ in ra các tệp ẩn. Hoặc với ls Templatesnó sẽ in nội dung của thư mục Tempaltes thay vì nội dung của thư mục làm việc hiện tại của bạn. Các đối số phải được phân tách bằng ít nhất một khoảng trắng từ tên lệnh và từ nhau. Việc thiếu một khoảng trống giữa hai người là lý do lệnh của bạn không hoạt động.

Vì ký tự không gian có một ý nghĩa đặc biệt, bạn sẽ cần trích dẫn hoặc thoát khỏi nó, nếu đó là một phần của một đối số. Vì vậy, nếu bạn muốn thay đổi thư mục làm việc hiện tại của mình thành "Tệp nguồn", bạn cần nhập một trong các lệnh sau:

cd Source\ Files
cd "Source Files"

Dòng trên được "thoát" trong khi dòng dưới được "trích dẫn".

Nếu bạn muốn tìm hiểu thêm, hướng dẫn tốt hơn cho bạn có thể là: Giới thiệu về Linux ( pdf ) ( html )


Chỉnh sửa :

Được rồi, xin lỗi tôi không thấy liên kết của bạn ở đó. Bài viết của bạn có một chút sai lệch, bây giờ tôi nghĩ rằng tôi đã có bạn:

Vì vậy, bạn muốn cài đặt tex-live từ kho lưu trữ nguồn được liên kết trong hướng dẫn "Bắt đầu" mà bạn đã đăng. Để làm điều đó, trước tiên bạn phải xóa mọi cài đặt sẵn có của tex-live. Bạn làm điều đó bằng cách mở một thiết bị đầu cuối làm điều này:

christy@ubuntu:~$ pwd 
/home/christy # <---- This is the directory you are working in
christy@ubuntu:~$ sudo apt-get remove texlive-*
[sudo] password for christy: 

Tại thời điểm này, bạn phải nhập mật khẩu của bạn và sẽ được thưởng một vài tin nhắn nhàm chán, mà tôi sẽ bỏ qua ở đây. Sau đó, bạn sẽ phải tải xuống kho lưu trữ có tên install-tl-unx.tar.gz(bạn đã làm điều đó và không phải tải xuống lại, nhưng tôi chỉ cho bạn cách làm điều đó không kém chỉ trong trường hợp):

christy@ubuntu:~$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

--2012-07-09 15:08:23--  http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Resolving mirror.ctan.org... 80.237.159.15
Connecting to mirror.ctan.org|80.237.159.15|:80... connected.
HTTP request sent, awaiting response... 302 Found
# ... some more stuff like this ...
Saving to: `install-tl-unx.tar.gz'

100%[=====================================>] 2,530,831   --.-K/s   in 0.1s    

2012-07-09 15:08:23 (17.3 MB/s) - `install-tl-unx.tar.gz' saved [2530831/2530831]

Bây giờ bạn đã tải xuống kho lưu trữ, bạn có thể giải nén nó

christy@ubuntu:~$ tar xvf install-tl-unx.tar.gz
install-tl-20120701/
install-tl-20120701/readme-txt.dir/
install-tl-20120701/readme-txt.dir/README.RU-cp1251
# ... bla bla skipping over some more messages like this ...
install-tl-20120701/readme-html.dir/readme.sr.html
install-tl-20120701/readme-html.dir/readme.ru.html
install-tl-20120701/readme-html.dir/readme.de.html

Bây giờ bạn đã giải nén tệp lưu trữ, bạn có thể thay đổi vào thư mục đã được giải nén.

christy@ubunut:~$ ls | grep install-tl-  # <---- with this line you find out the number
install-tl-20120701                      # <---- in this case "20120701"
install-tl-unx.tar.gz                    # <---- if just this is present with no number you did something wrong
christy@ubuntu:~$ cd install-tl-20120701 # <---- enter this number here
christy@ubuntu:~$ pwd
/home/christy/install-tl-20120701/       # <--- this is your new working directory

Số "20120701" là dấu thời gian cho biết phiên bản tex-live nào bạn có. Con số này có thể khác với bạn nhưng lệnh ls | grep install-t1-sẽ cho bạn biết nên sử dụng cái gì thay thế. Nếu tất cả điều này hoạt động, bạn có thể chạy tập lệnh cài đặt từ đây:

christy@ubuntu:~$ sudo ./install-tl
[sudo] password for jan: 
Loading http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet/tlpkg/texlive.tlpdb
Installing TeX Live 2012 from: http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet
Platform: x86_64-linux => 'x86_64 with GNU/Linux'
# ... bla bla and so on bla ...
Actions:
  <I> start installation to hard disk
  <H> help
  <Q> quit

Enter command: I
# ... and so on ...

Từ đây trở đi, chỉ cần trả lời các câu hỏi mà bạn đã hỏi bởi tập lệnh cài đặt và bạn sẽ ổn thôi.


@ con-f-use: Thông tin tuyệt vời! Bây giờ, hãy tham khảo tập lệnh đầu cuối trong bài viết gốc của tôi: thư mục nào là install-tl-unx.tar.gz trong và làm cách nào để tôi chạy nó? Tôi quen thuộc với các lệnh cài đặt, nhưng tôi đoán tôi cần cài đặt các gói? Các lệnh để giải nén tarball là @ ubfox-manual.org/getinvolve/editors . Nếu bạn có thể chỉ cho tôi đi đúng hướng ... Cảm ơn bạn rất nhiều; bạn đã rất nhiều thông tin.
dùng74713

Không vấn đề gì. Tôi không chắc chắn, chính xác mục tiêu của bạn là gì, vì vậy thật khó để giúp bạn mà không có thêm thông tin. Rõ ràng bạn đang cố gắng cài đặt TeX-Live từ kho lưu trữ 'install-tl-unx.tar.gz'. Để làm điều đó, trước tiên bạn phải giải nén tệp lưu trữ, hơn là chạy tập lệnh cài đặt. Tôi sẽ chỉnh sửa bài viết của tôi ở trên với một số hướng dẫn để làm điều đó sớm.
con-f-use

10

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 :$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/cd..sẽ không hoạt động, nhưng cd /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.)

: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 \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 /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ủ

pushdpopd: 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$

pushdpopdđượ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 pushdhelp popdđể biết chi tiết.

Tìm hiểu thêm và truy cập tài liệu

cdpwdcó sử dụng cao cấp hơn quá. Để tìm hiểu về họ, chạy help cdman 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.


5

Ví dụ:

cd Desktop/ Đi đến thư mục Desktop nếu bạn đang ở trong thư mục nhà của bạn.

cd - Quay trở lại thư mục trước.

cd / Đưa bạn đến thư mục gốc.

cd ~/Desktop Sẽ đưa bạn đến Thư mục máy tính để bàn của bạn bất kể bạn đang ở đâu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.