Làm cách nào để tôi thực thi lệnh Linux trong khi sử dụng lệnh ít hơn hoặc trong các trang man?


9

Tôi thường đặt lệnh lsvới lessvà muốn thực thi một lệnh trong khi nó đang phân trang, ví dụ như tôi gặp một tệp mà tôi muốn xóa vì vậy tôi muốn thực thi lệnh rm {filename}trong khi vẫn phân trang. Tôi cũng muốn hy vọng tôi có thể sử dụng phương pháp tương tự trong khi lướt qua các trang man. Nếu không thì nó khác thế nào?

Câu trả lời:


8

Bạn có thể truy cập dòng lệnh bằng cách sử dụng bang ( !) trong phạm vi ít hơn.

Vì vậy, ví dụ, nếu bạn gõ:

touch temp.txt
ls | less
!rm temp.txt

Và temp.txt sẽ biến mất.

Chỉnh sửa: Theo mặc định, có vẻ như bây giờ người đàn ông sử dụng ít trang hơn (vì một số lý do tôi nghĩ rằng nó đã sử dụng more, có thể trong quá khứ nó đã làm). Bạn có thể sử dụng cùng một mẹo, nhưng nó yêu cầu đường dẫn đầy đủ (ví dụ: / home / user / ...) để làm cho nó hoạt động.

Điều này là do người đàn ông gọi thay đổi thư mục làm việc hiện tại. Trên máy của tôi (xubfox, đang sử dụng xfce-terminal), nó sẽ chuyển sang /usr/share/man. Nếu bảng điều khiển của bạn hiển thị CWD, bạn có thể thấy nó thay đổi hoặc bạn có thể thấy nó từ bên trong manbằng cách nhập:

!pwd

Con người thực sự thay đổi CWD, vì vậy bạn sẽ cần sử dụng đường dẫn đầy đủ.
Cướp

@Rob - Ý bạn là man actually changes CWDgì?
PeanutsMonkey

Tôi đã cài đặt tmux để hiển thị CWD của mình trong thanh trạng thái. Làm man man(hoặc bất cứ điều gì) sẽ thay đổi CWD của tôi trong khi con người mở. Máy linux của tôi hiện không có sẵn và tôi không chắc chắn có cách nào khác để kiểm tra CWD không, nhưng với tôi có vẻ như đó là những gì nó đang làm.
Cướp

@Rob - Vì vậy, bạn muốn nói rằng chỉ vì bạn đang sử dụng tmux, nó thay đổi thư mục làm việc hiện tại khi bạn chạy lệnh man {command}từ nói /home/{user}đến một vị trí của lệnh man?
PeanutsMonkey

Điều đó sẽ giải thích hành vi tôi thấy. Bây giờ, tại sao nó lại thay đổi CWD, đó là một câu hỏi khác ...
Ash

4

Cách chung để làm điều này là bằng cách đình chỉ công việc hiện tại, thực thi lệnh và tiếp tục công việc cũ.

ls | less (đọc văn bản, chú ý tên tệp)
Control-zđể tạm dừng lệnh hoạt động hiện tại

Bạn sẽ nhận được một dòng tương tự như sau: [1]+ Stopped ls | less
([1] là số công việc.)

rm testfile

fghoặc fg %1 (1 là số công việc)

Bạn có thể tạm dừng nhiều quá trình cùng một lúc. Ví dụ
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1để tiếp tục công việc 1 (để trang man mở trong nền) hoặc
fg %2tiếp tục công việc 2 (man rm)

Nếu bạn có nhiều quy trình bị đình chỉ, bạn có thể liệt kê chúng với jobs.

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.