Điểm:1

Tạo các tập lệnh bash riêng lẻ từ Lịch sử Linux

lá cờ cn

Tôi muốn có thể xuất lịch sử bash Linux của mình thành một tệp. Sau đó, từng dòng tạo một tập lệnh Shell mới với nội dung của từng dòng. Tôi đã thử điều này cho đến nay từ dòng lệnh ..

Ví dụ

Đầu ra của tệp lịch sử

73 nmap -T4 -A -v 127.0.0.1
74 nmap -T4 -A -v 192.168.0.1/24

Vấn đề đầu tiên của tôi là số dòng... Để xóa chúng, tôi đã áp dụng lệnh này.

lịch sử | cắt -c 8-> one.txt

Điều này đã cho tôi một đầu ra như thế này ..

nmap -T4 -A -v 127.0.0.1
nmap -T4 -A -v 192.168.0.1/24

Có một vấn đề ở đây là văn bản chứa khoảng trắng

con mèo một.txt | tr -cd '[:alnum:]\n\r~!@#$%^&*()-_=+{}\|;:<>,./?"`' | sed '/^$/ d' > bar.txt

Tôi đã sử dụng lệnh trên để xóa các ký tự không hợp lệ mà Linux không muốn đưa vào tên tệp.

Đây là nơi tôi đã va vào tường ...

Nó lộn xộn và lộn xộn...

Phải có một cách đơn giản hơn mà đẹp hơn ...

Bruni avatar
lá cờ cn
Mặc dù câu trả lời của @vanadium không trả lời được câu hỏi, bằng cách sử dụng tệp `~/.bash_history` chứ không phải lệnh history, bạn sẽ tránh được tất cả các sự cố mà bạn đã mô tả.
james  avatar
lá cờ cn
Nó giải quyết một trong những vấn đề.Được cấp nhưng như bạn đã nói, đó không phải là câu trả lời mà tôi đang tìm kiếm. Cảm ơn bạn ..
Điểm:1
lá cờ cn

Đừng bận tâm tìm hiểu cách viết lịch sử của bạn ra một tập tin. Hệ thống Ubuntu của bạn đã thực hiện theo mặc định đối với tệp ~/.bash_history. Vì vậy, nó cần một cách đơn giản

con mèo ~/.bash_history

để lấy nội dung của tập tin.

james  avatar
lá cờ cn
Tôi nhận thức được điều đó và có lẽ tôi đã không giải thích rõ về bản thân mình .. Điều tôi muốn làm là biến nhật ký lịch sử - từng dòng thành các tập lệnh Shell riêng lẻ ... Đối với mỗi lệnh trong nhật ký lịch sử ..
vanadium avatar
lá cờ cn
Không thực sự bạn đã không. Có rất nhiều lời giải thích, đầu tiên là loại bỏ số. Vì vậy, cuối cùng, bạn chỉ muốn chia một tệp văn bản thành các dòng riêng lẻ.
Điểm:0
lá cờ cn

Để chia tệp lịch sử thành các tệp theo dòng

tách --verbose -l1 ~/.bash_history

(làm điều này trên một bản sao trong một thư mục riêng)

Để thêm shebang:

cho tệp trong *; làm 
    sed -i '1i #!/bin/sh' $file
xong
james  avatar
lá cờ cn
Thật tuyệt vời cảm ơn bạn rất nhiều ..

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.