Câu trả lời:
Màn hình GNU - cần thiết khi bạn đang quản lý số lượng lớn hệ thống và không muốn mở hàng tá cửa sổ đầu cuối.
Một số tôi biết rằng tôi không thể sống mà không có ...
tee - cho phép ghi đồng thời vào STDOUT (đầu ra tiêu chuẩn) và một tệp. Tuyệt vời để xem thông tin và đăng nhập nó sau này.
top - trình quản lý tác vụ của UNIX, cung cấp một cái nhìn tổng quan tuyệt vời về hệ thống.
tail -f - cho phép bạn xem dữ liệu được nối thêm khi tệp phát triển, tuyệt vời để theo dõi tệp nhật ký trên máy chủ.
grep - In biểu thức chính quy toàn cầu, tuyệt vời để tìm kiếm hệ thống cho dữ liệu trong tệp.
df - báo cáo việc sử dụng đĩa của các hệ thống tập tin hiện tại.
du - báo cáo việc sử dụng đĩa của một tập tin / thư mục nhất định.
ít hơn - cần thiết để xem các trang người đàn ông! cũng hữu ích để xem đầu ra của các lệnh theo cách dễ dàng tìm kiếm.
vim / Emacs / nano / pico / ed - bất kể trình soạn thảo văn bản của bạn có thể là gì, hãy tự giải thích lý do tại sao nó cần thiết.
more
hoặc less
, bạn luôn có thể thử most
.
htop
là một phiên bản "tốt hơn" của top
.
lsof để xác định quá trình nào đang sử dụng tệp hoặc thư mục (hữu ích khi cố gắng tìm hiểu điều gì ngăn thiết bị không hoạt động)
netstat để xác định quá trình nào đang sử dụng kết nối mạng (đặc biệt hữu ích khi cố gắng tìm ra daemon nào bị ràng buộc với một cổng nhất định)
Tìm hiểu tất cả các công cụ cơ bản, nhưng học Perl.
Perl là lý tưởng để thao tác văn bản và vì các toán tử un * x sống trên các tệp văn bản, đường ống, đầu vào và đầu ra, Perl rất phù hợp.
Phần thưởng thêm vào là Perl là nền tảng chéo và nếu bạn phải thực hiện một số công việc trên hộp windows, bạn có thể dễ dàng cài đặt (chỉ cần thả thư mục Perl trên máy chủ) mà bạn đã biết.
Và trên chuyến tàu tư tưởng đó, hãy nhận Cygwin. Nếu bạn là quản trị viên un * x và phải làm việc trên hộp windows (thậm chí cả máy tính để bàn của bạn) có ls, rm, grep, sed, tail, vv giúp bạn tiết kiệm rất nhiều thời gian khi chuyển đổi hệ điều hành.
Các ông nội bị lãng quên của các hệ thống kịch bản hiện đại. Tôi biết Perl nhận được hầu hết tình yêu (cùng với kịch bản Bash, Python, Ruby và [chèn ngôn ngữ kịch bản yêu thích của bạn vào đây]) và đừng hiểu lầm tôi, tôi yêu Perl. Tôi sử dụng nó gần như hàng ngày.
Nhưng sed và awk không nên bị lãng quên, bỏ qua hoặc bỏ qua. Đối với rất nhiều trường hợp, sed và awk là những công cụ tốt nhất cho công việc. Ví dụ nhanh là lọc dòng lệnh với sed và xử lý nhật ký nhanh và bẩn với awk. Cả hai có thể được thực hiện trong Perl, nhưng sẽ đòi hỏi nhiều thời gian làm việc và phát triển hơn.
Mèo mạng.
Các con dao quân đội Thụy Sĩ, như họ nói.
Đối với các kịch bản nhanh, tự động hóa, vv:
Để kết nối với máy chủ * NIX của bạn:
Tôi sử dụng hầu hết các công cụ đã được liệt kê, nhưng đây là một công cụ chưa có ai chạm vào:
Con rối - hệ thống tự động hóa các nhiệm vụ quản trị hệ thống
Một vài công cụ tiện dụng mà tôi chưa thấy đề cập đến:
expect
ClusterSSH kiểm soát một số cửa sổ xterm thông qua một cửa sổ bảng điều khiển đồ họa duy nhất để cho phép các lệnh được chạy tương tác trên nhiều máy chủ qua kết nối ssh.
pv: Hiển thị tiến trình của các hoạt động dài có thể được chuyển hướng. http://www.ivarch.com/programs/pv.shtml
Hữu ích sau đó bạn muốn theo dõi thứ gì đó sẽ mất nhiều thời gian, như sao chép / nén một thiết bị khối thô qua mạng (đó là cách tôi sao lưu các bản sao lưu hoang tưởng của netbook 8Gb của mình trước khi sửa đổi mọi thứ chính như điều chỉnh cài đặt hệ thống tệp).
Ngoài ra: Tôi sẽ bỏ phiếu thứ hai cho ssh, rsync, màn hình, htop và netcat như được đề cập bởi những người ở trên - tất cả đều quan trọng hơn pv nhưng pv chưa được đề cập. Trong thực tế, pv thường là một bổ sung hữu ích khi các công cụ đường ống đến hoặc từ netcat.
pv
có thể là một công cụ tiện dụng, nhưng hãy cẩn thận với việc lạm dụng nó. Truyền dữ liệu qua nó hoàn toàn có tác động hiệu suất (tất cả dữ liệu phải chuyển qua chương trình khác ). Ở công việc cuối cùng của tôi, chúng tôi đã xử lý nhật ký rất nhiều. Một trong những người quyết định bắt đầu đưa pv vào tất cả các tập lệnh xử lý nhật ký, cho đến khi chúng tôi phát hiện ra rằng nó đã thêm khoảng 15% vào thời gian xử lý cho họ. Bây giờ, nó chỉ được sử dụng cho các công việc mất ít hơn vài phút hoặc có giới hạn tài nguyên hiện có (chẳng hạn như vượt qua kết nối mạng chậm).
pv
là ràng buộc I / O của đĩa hoặc mạng thay vì bị ràng buộc CPU / bộ nhớ). Lập luận tương tự là chìa khóa chống lại việc sử dụng cat
quá mức (đôi khi tôi sử dụng mèo khi không thực sự cần thiết chỉ để làm cho mọi thứ đọc độc đáo từ trái sang phải, nhưng sao chép dữ liệu trong bộ nhớ bổ sung qua đường ống và chuyển đổi ngữ cảnh có thể có tác động hiệu suất có thể đo lường).
cat
sử dụng quá mức của tôi đến từ bắt đầu cat foo
, tiếp theo là nhấn mũi tên "lên" và sau đó thêm | [command]
vào dòng trước đó của tôi. Tôi biết rằng tôi đang thực hiện một hiệu suất (nhỏ) bằng cách giữ con mèo ở đó, nhưng để nó đòi hỏi ít nỗ lực hơn là viết lại / gõ lại lệnh [command] < foo
. Không phải là mối quan tâm đối với (hầu hết) dòng lệnh ad hoc hoạt động, nhưng không lý tưởng cho các tập lệnh (giống như cách tôi cảm nhận đối với pv
, tôi đoán vậy).
chuyển đầu ra của tar sang một tiện ích khác, để tar chạy trên cùng một hộp hoặc để tar chạy trên SSH là bước di chuyển Unix trường học cũ yêu thích của tôi để di chuyển các tệp từ nơi này sang nơi khác.
Điều này cũng cung cấp cho bạn tùy chọn kiểu Windows để sao chép một thư mục sang thư mục khác và kết thúc với tất cả các tệp trong thư mục nguồn và đích.
zsh như một cái vỏ
Nó đặc biệt hiệu quả với các tiện ích mở rộng / thiết lập của grml.org .
iotop, là một chương trình giống như hàng đầu để theo dõi truy cập I / O vào đĩa của bạn.
Hầu hết các công cụ này được tạo ra mạnh mẽ hơn nhiều bằng cách sử dụng "hoàn thành có thể lập trình" của Bash - vì vậy bạn có thể hoàn thành các tab như tùy chọn dòng lệnh hoặc nói tên của gói với "apt-get install". Nó cũng sẽ giới hạn những gì bạn hoàn thành tab cho các tệp có liên quan - ví dụ: "giải nén" sẽ chỉ hoàn thành các tệp lưu trữ được hỗ trợ.
Nó thực sự là đột biến - nếu bạn chưa bao giờ thử nó, có lẽ bạn chỉ cần đánh lừa .bashrc của bạn:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Chắc chắn điều này là đúng trên Ubuntu và Debian. Bạn có thể cần lấy gói trên một số bản phân phối Linux.
Một số câu trả lời bổ sung có thể được tìm thấy trong câu hỏi tương tự này
Một vài điều bỏ qua tôi muốn đề cập.
Ồ, và tôi đã quên đề cập đến, khi viết kịch bản, tôi tin rằng bạn nên luôn luôn sử dụng Korn. Tôi ghét Korn (Không phải ban nhạc. Tôi yêu ban nhạc :-P) nhưng nó thực sự ở khắp mọi nơi. Bạn có thể lấy một tập lệnh và di chuyển nó giữa Solaris, AIX và Linux và không phải lo lắng về việc liệu quản trị viên có quyết định cài đặt Bash hay không.
Một công cụ đôi khi rất tiện dụng là nohup. Tôi sử dụng nó để chạy các tập lệnh tồn tại trong một thời gian dài bằng cách sử dụng các máy khách SSH từ xa.