Mẹo điều hướng dòng lệnh Linux: Những điều cơ bản về lệnh pushd và popd

theanh

Administrator
Nhân viên
Trong phần đầu tiên của loạt bài này, chúng tôi tập trung vào khía cạnh điều hướng dòng lệnh trong Linux bằng cách thảo luận về cách sử dụng lệnh cd -. Một số điểm/khái niệm liên quan khác cũng đã được thảo luận. Tiếp tục thảo luận, trong bài viết này, chúng tôi sẽ thảo luận về cách bạn có thể có trải nghiệm điều hướng nhanh hơn trên dòng lệnh Linux bằng cách sử dụng lệnh pushd và popd.

Những điều cơ bản về lệnh pushd và popd​

Để hiểu rõ hơn về chức năng chính xác của lệnh pushd và popd, trước tiên chúng ta hãy thảo luận về khái niệm ngăn xếp. Hãy tưởng tượng một khu vực trống trên bệ bếp của bạn và bây giờ hãy tưởng tượng một bộ đĩa mà bạn muốn giữ ở đó. Bạn sẽ làm gì? Đơn giản, hãy xếp chúng chồng lên nhau.

Vì vậy, khi kết thúc toàn bộ quá trình, tấm đầu tiên mà bạn giữ trên tấm sẽ trở thành tấm cuối cùng trong đống, và tấm cuối cùng mà bạn cầm trên tay sẽ trở thành tấm đầu tiên trong đống. Bây giờ, khi bạn cần một tấm, bạn chọn tấm ở trên cùng của đống, sử dụng nó, rồi chọn tấm tiếp theo khi cần.

Tương tự như khái niệm về lệnh pushd và popd. Có một ngăn xếp thư mục trên hệ thống Linux của bạn, nơi bạn có thể xếp chồng các đường dẫn thư mục để sử dụng trong tương lai. Bạn có thể nhanh chóng xem nội dung của ngăn xếp tại bất kỳ thời điểm nào bằng lệnh dirs hoặc lệnh cd.

Sau đây là một ví dụ cho thấy đầu ra của lệnh dirs trên hệ thống của tôi ngay sau khi thiết bị đầu cuối dòng lệnh được khởi chạy:
Mã:
$ dirs
~
Dấu ngã (~) trong đầu ra có nghĩa là ngăn xếp thư mục hiện chỉ chứa thư mục gốc của người dùng.

Tiếp theo, thao tác lưu trữ đường dẫn thư mục và xóa đường dẫn đó được thực hiện bằng lệnh pushd và popd. Sử dụng pushd rất dễ - chỉ cần truyền đường dẫn mà bạn muốn lưu trữ trong ngăn xếp thư mục làm đối số cho lệnh này. Đây là một ví dụ:
Mã:
pushd /home/himanshu/Downloads/
Lệnh trên thực hiện thay đổi thư mục làm việc hiện tại của bạn thành thư mục mà bạn đã truyền làm đối số và cũng thêm đường dẫn đến ngăn xếp thư mục. Để thuận tiện cho người dùng, lệnh pushd tạo ra nội dung của ngăn xếp thư mục trong đầu ra của nó. Vì vậy, khi lệnh trên được chạy, đầu ra sau được tạo ra:
Mã:
~/Downloads ~
Đầu ra cho thấy hiện có hai đường dẫn thư mục trong ngăn xếp: một là thư mục gốc của người dùng và đường dẫn còn lại là thư mục Tải xuống của người dùng. Thứ tự lưu giữ chúng là: thư mục home nằm ở dưới cùng và thư mục Downloads mới được thêm vào nằm ở trên.

Để xác minh rằng những gì pushd nói trong đầu ra của nó là đúng, bạn cũng có thể sử dụng lệnh dirs:
Mã:
$ dirs
~/Downloads ~
Vì vậy, bạn có thể thấy rằng lệnh dirs cũng tạo ra cùng một đầu ra.

Chúng ta hãy phát hành thêm một vài lệnh pushd lệnh:
Mã:
$ pushd /usr/lib/; pushd /home/himanshu/Desktop/
/usr/lib ~/Downloads ~
~/Desktop /usr/lib ~/Downloads ~
Vì vậy, ngăn xếp thư mục hiện chứa tổng cộng bốn đường dẫn thư mục, trong đó thư mục gốc (~) nằm ở dưới cùng và thư mục Desktop của người dùng nằm ở trên cùng.

Luôn ghi nhớ rằng đầu của ngăn xếp là thư mục mà bạn hiện đang ở.Điều này có nghĩa là bây giờ thư mục làm việc hiện tại của chúng ta là ~/Desktop.

Bây giờ, giả sử bạn muốn quay lại thư mục /usr/lib, thì tất cả những gì bạn phải làm là thực thi lệnh popd:
Mã:
$ popd
/usr/lib ~/Downloads ~
Lệnh popd không chỉ chuyển thư mục hiện tại của bạn sang /usr/lib mà còn xóa ~/Desktop khỏi ngăn xếp thư mục - như được chứng minh bằng kết quả đầu ra mà lệnh tạo ra. Theo cách này, lệnh popd sẽ cho phép bạn điều hướng các thư mục này theo thứ tự ngược lại.

Một số điểm nâng cao​

Bây giờ chúng ta đã thảo luận về những điều cơ bản của lệnh pushd và popd, hãy chuyển sang một số chi tiết khác liên quan đến các lệnh này. Để bắt đầu, các lệnh này cũng cho phép bạn thao tác ngăn xếp thư mục. Ví dụ, giả sử ngăn xếp thư mục của bạn trông như thế này:
Mã:
$ dirs
~/Desktop /usr/lib ~ ~/Downloads
Bây giờ, giả sử yêu cầu là thay đổi thứ tự các đường dẫn thư mục trong ngăn xếp theo cách mà phần tử trên cùng (~/Desktop) nằm ở dưới cùng và phần còn lại đều di chuyển lên một vị trí. Bạn có thể thực hiện việc này bằng lệnh sau:
Mã:
pushd +1
Và đây là những gì lệnh trên thực hiện với ngăn xếp thư mục:
Mã:
$ dirs
/usr/lib ~ ~/Downloads ~/Desktop
Vì vậy, chúng ta thấy rằng thứ tự các phần tử trong ngăn xếp thư mục đã được thay đổi và bây giờ giống như chúng ta mong muốn. Tất nhiên, bạn có thể làm cho các phần tử ngăn xếp thư mục di chuyển bất kỳ số lần nào. Ví dụ, lệnh sau sẽ di chuyển chúng lên hai lần:
Mã:
$ pushd +2
~/Downloads ~/Desktop /usr/lib ~
Bạn cũng có thể sử dụng chỉ mục âm:
Mã:
$ pushd -1
/usr/lib ~ ~/Downloads ~/Desktop
Tương tự, bạn có thể sử dụng kỹ thuật này với lệnh popd để xóa bất kỳ mục nào khỏi ngăn xếp thư mục mà không cần rời khỏi thư mục làm việc hiện tại của bạn. Ví dụ, nếu bạn muốn xóa mục thứ ba khỏi đầu (hiện tại là ~/Downloads) bằng popd, bạn có thể chạy lệnh sau:
Mã:
popd +2
Hãy nhớ rằngchỉ mục ngăn xếp bắt đầu bằng 0, vì vậy chúng ta đã sử dụng 2 để truy cập mục thứ ba.

Vì vậy, ngăn xếp thư mục bây giờ chứa:
Mã:
$ dirs
/usr/lib ~ ~/Desktop
Xác nhận rằng mục đã bị xóa.

Nếu vì lý do nào đó, bạn thấy khó nhớ thứ tự các phần tử được định vị trong ngăn xếp thư mục cũng như các chỉ mục mà chúng mang theo, bạn có thể sử dụng tùy chọn dòng lệnh -v với lệnh dirs. Đây là một ví dụ:
Mã:
$ dirs -v
0 /usr/lib
1 ~
2 ~/Desktop
Như bạn có thể đoán, các số bên trái là các chỉ mục và những gì theo sau chúng là đường dẫn thư mục được định vị tại chỉ mục đó.

Lưu ý: Sử dụng tùy chọn dòng lệnh -c với lệnh dirs để xóa ngăn xếp thư mục.

Bây giờ chúng ta hãy thảo luận ngắn gọn về cách sử dụng thực tế của các lệnh popd và pushd. Mặc dù thoạt nhìn có vẻ hơi phức tạp khi sử dụng, nhưng các lệnh này rất hữu ích khi viết các tập lệnh shell - bạn không cần phải nhớ mình đến từ đâu; chỉ cần thực hiện lệnh popd và bạn sẽ quay lại thư mục nơi bạn đến.

Những người viết kịch bản có kinh nghiệm thường sử dụng các lệnh này theo cách sau:
Mã:
popd >/dev/null 2>&1
Lệnh đã đề cập ở trên đảm bảo rằng popd sẽ im lặng (không tạo ra bất kỳ đầu ra nào). Tương tự như vậy, bạn cũng có thể im lặng pushd.

Lệnh pushd và popd cũng được sử dụng bởi các quản trị viên máy chủ Linux, những người thường xuyên di chuyển giữa một số ít các thư mục giống nhau. Một số trường hợp sử dụng thực sự hữu ích khác được giải thích tại đây.

Kết luận​

Đồng ý, khái niệm pushd và popd không hề đơn giản. Nhưng tất cả những gì cần là một chút luyện tập - đúng vậy, bạn cần phải xắn tay vào làm. Hãy dành thời gian cho các lệnh này và bạn sẽ bắt đầu thích chúng, đặc biệt là nếu có trường hợp sử dụng mà chúng giúp cuộc sống của bạn dễ dàng hơn. Bạn có thể tìm thấy phần thứ ba của loạt bài này tại đây.
 
Back
Bên trên