Mẹo và thủ thuật điều hướng dòng lệnh Linux - Phần 1

theanh

Administrator
Nhân viên
Nếu bạn mới bắt đầu sử dụng dòng lệnh trong Linux, thì bạn nên biết rằng đây là một trong những tính năng mạnh mẽ và hữu ích nhất của hệ điều hành này. Đường cong học tập có thể dốc hoặc không tùy thuộc vào mức độ bạn muốn tìm hiểu sâu về chủ đề này. Tuy nhiên, có một số mẹo/thủ thuật dòng lệnh Linux luôn hữu ích bất kể trình độ chuyên môn của bạn.

Trong loạt bài viết này, chúng tôi sẽ thảo luận về một số mẹo/thủ thuật như vậy, hy vọng rằng chúng sẽ giúp trải nghiệm sử dụng dòng lệnh của bạn trở nên thú vị hơn.

Mẹo/thủ thuật dòng lệnh Linux​

Xin lưu ý rằng chúng tôi cho rằng bạn đã biết những điều cơ bản về dòng lệnh trong Linux, chẳng hạn như thư mục gốc và thư mục home là gì, biến môi trường là gì, cách điều hướng thư mục, v.v. Ngoài ra, hãy nhớ rằng các mẹo/thủ thuật sẽ đi kèm với cách thức và lý do của khái niệm liên quan (nếu có).

Dễ dàng chuyển đổi giữa hai thư mục - mẹo nhanh​

Giả sử bạn đang thực hiện một số công việc trên dòng lệnh yêu cầu bạn phải chuyển đổi giữa hai thư mục nhiều lần. Và hai thư mục này nằm ở các nhánh không hoàn toàn khác nhau, chẳng hạn như dưới /home/ và dưới /usr/. Bạn sẽ làm gì?

Một tùy chọn đơn giản nhất là chuyển đổi bằng cách nhập đường dẫn đầy đủ đến các thư mục này. Mặc dù không có vấn đề gì với cách tiếp cận này, nhưng nó rất tốn thời gian. Một lựa chọn khác có thể là mở hai thiết bị đầu cuối riêng biệt và tiếp tục công việc của bạn. Nhưng một lần nữa, cách tiếp cận này không tiện lợi và cũng không có vẻ thanh lịch.

Bạn sẽ vui mừng khi biết rằng có một giải pháp dễ dàng cho vấn đề này. Tất cả những gì bạn phải làm là trước tiên chuyển đổi giữa hai thư mục theo cách thủ công (bằng cách truyền đường dẫn tương ứng của chúng tới lệnh cd), sau đó có thể thực hiện các lần chuyển đổi tiếp theo bằng lệnh cd -.

Ví dụ:

Tôi đang ở trong thư mục sau:
Mã:
$ pwd
/home/himanshu/Downloads
Sau đó, tôi chuyển sang một thư mục khác trong /usr/ nhánh:
Mã:
cd /usr/lib/
Bây giờ, tôi có thể dễ dàng chuyển đổi qua lại bằng lệnh sau:
Mã:
cd -
Đây là ảnh chụp màn hình hiển thị lệnh cd - đang hoạt động.



Một điểm quan trọng đáng đề cập ở đây là nếu bạn chuyển sang thư mục thứ ba ở giữa tất cả những điều này, thì lệnh cd sẽ hoạt động cho thư mục mới và thư mục mà lệnh chuyển đổi được thực hiện.

Dễ dàng chuyển đổi giữa hai thư mục - chi tiết liên quan​

Đối với những người tò mò muốn biết lệnh cd - hoạt động như thế nào, đây là lời giải thích: Như chúng ta đã biết, lệnh cd yêu cầu một đường dẫn làm đối số của nó. Bây giờ, khi một dấu gạch nối (-) được truyền làm đối số cho lệnh, nó sẽ được thay thế bằng giá trị mà biến môi trường OLDPWD chứa tại thời điểm đó.



Như đã rõ ràng, biến môi trường OLDPWD lưu trữ đường dẫn của thư mục làm việc trước đó. Giải thích này nằm ở trang hướng dẫn của lệnh cd, nhưng thật đáng buồn, có khả năng là bạn sẽ không tìm thấy trang hướng dẫn được cài đặt sẵn trên hệ thống của mình (ít nhất là trên Ubuntu).

Tuy nhiên, việc cài đặt nó không phải là vấn đề lớn, tất cả những gì bạn phải làm là chạy lệnh sau:

sudo apt-get install manpages-posix

Sau đó thực hiện:

man cd

Khi trang hướng dẫn mở ra, bạn sẽ thấy rõ ràng rằng nói rằng:
Mã:
- When a hyphen is used as the operand, this shall be equivalent
 to the command:

 cd "$OLDPWD" && pwd
Không cần phải nói, lệnh cd chính là lệnh đặt biến OLDPWD. Vì vậy, mỗi khi bạn thay đổi thư mục, thư mục làm việc trước đó sẽ được lưu trữ trong biến này. Điều này đưa chúng ta đến một điểm quan trọng khác ở đây: bất cứ khi nào một phiên bản shell mới được khởi chạy (cả thủ công hoặc thông qua một tập lệnh), thì nókhông có 'thư mục làm việc trước đó'.



Điều đó hợp lý vì lệnh cd chính là lệnh đặt biến này. Vì vậy, cho đến khi bạn chạy lệnh cd ít nhất một lần, biến môi trường OLDPWD sẽ không chứa bất kỳ giá trị nào.

Tiếp tục, mặc dù có vẻ trái ngược với trực giác, nhưng các lệnh cd -cd $OLDWPD không tạo ra cùng một kết quả trong mọi tình huống. Ví dụ, khi một shell mới vừa được khởi chạy.



Như ảnh chụp màn hình ở trên cho thấy, trong khi lệnh cd - phàn nàn về biến OLDPWD không được đặt, lệnh cd $OLDPWD không tạo ra bất kỳ lỗi nào; trên thực tế, lệnh đã thay đổi thư mục làm việc hiện tại thành thư mục home của người dùng.


Đó là vì biến OLDPWD hiện chưa được đặt, nên $OLDPWD chỉ là một chuỗi rỗng. Vì vậy, lệnh cd $OLDPWD cũng tốt như chỉ chạy cd, theo mặc định, sẽ đưa bạn đến thư mục home của bạn.

Cuối cùng, tôi cũng đã trải qua những tình huống mà trong đó mong muốn là phải ẩn đầu ra mà lệnh cd - tạo ra. Ý tôi là, có thể có những trường hợp (ví dụ, khi viết một tập lệnh shell), trong đó bạn sẽ muốn lệnh cd - không tạo ra đường dẫn thư mục thông thường trong đầu ra. Đối với những tình huống đó, bạn có thể sử dụng lệnh theo cách sau:

cd - &>/dev/null

Lệnh trên sẽ chuyển hướng cả file descriptor 2 (STDERR) và descriptor 1 (STDOUT) đến /dev/null. Điều này có nghĩa là bất kỳ lỗi nào mà lệnh tạo ra cũng sẽ bị loại bỏ. Tuy nhiên, bạn vẫn có thể kiểm tra thành công hay thất bại của lệnh bằng cách sử dụng $? kỹ thuật- lệnh echo $? sẽ tạo ra '1' nếu có lỗi và '0' nếu không.

Ngoài ra, nếu bạn đồng ý với lệnh cd - tạo ra đầu ra trong trường hợp lỗi, thì bạn có thể sử dụng lệnh sau:

cd - > /dev/null

Lệnh này sẽ chỉ chuyển hướng file descriptor 1 (STDOUT) đến /dev/null.

Kết luận​

Thật đáng buồn, chúng tôi chỉ có thể đề cập đến một mẹo liên quan đến dòng lệnh ở đây, nhưng điều tốt là chúng tôi đã thảo luận được nhiều nội dung chuyên sâu về lệnh cd -. Bạn nên đọc kỹ hướng dẫn và kiểm tra mọi thứ - mà chúng tôi đã thảo luận ở đây - trên thiết bị đầu cuối dòng lệnh của hộp Linux. Ngoài ra, hãy xem qua trang hướng dẫn của lệnh và thử tất cả các tính năng được ghi chép ở đó.

Trong trường hợp bạn gặp bất kỳ vấn đề nào hoặc có thắc mắc nào, hãy chia sẻ với chúng tôi trong phần bình luận bên dưới. Trong khi đó, hãy đợi phần thứ hai, trong đó chúng ta sẽ thảo luận về một số mẹo/thủ thuật hữu ích liên quan đến dòng lệnh theo cùng cách đã thực hiện ở đây.
 
Back
Bên trên