Alat yang administrator Unix tidak dapat hidup tanpa [ditutup]


33

Setelah mengelola server seperti Unix atau Unix, alat apa (baris perintah lebih disukai) yang menurut Anda tidak bisa hidup tanpanya?

Jawaban:



34

Beberapa saya tahu bahwa saya tidak dapat hidup tanpa ...

  • tee - memungkinkan penulisan simultan ke STDOUT (output standar) dan file. Sangat bagus untuk melihat informasi dan mencatatnya nanti.

  • top - task manager UNIX, memberikan gambaran besar tentang sistem.

  • tail -f - memungkinkan Anda untuk melihat data yang ditambahkan saat file bertambah, bagus untuk memonitor file log di server.

  • grep - Global Regular Expression Print, bagus untuk mencari sistem untuk data dalam file.

  • df - melaporkan penggunaan disk sistem file saat ini.

  • du - melaporkan penggunaan disk dari file / direktori tertentu.

  • kurang - diperlukan untuk melihat halaman manual! juga berguna untuk melihat output dari perintah dengan cara yang mudah dicari.

  • vim / Emacs / nano / pico / ed - apa pun editor teks pilihan Anda, jelas mengapa itu diperlukan.


Bagi mereka yang tidak tahu, 'kurang' adalah versi terbaru dari 'lebih'. lebih banyak membatasi karena Anda hanya bisa bergerak maju ke atas file sedangkan lebih sedikit dapat menggulir mundur juga. Ah humornya ... :-)
Iain Holder

8
Fitur lain yang bermanfaat tetapi kurang banyak diketahui adalah Anda selalu dapat menggunakan perintah 'v' untuk mulai mengedit file yang sedang Anda lihat. Mnemonic adalah 'v' untuk 'vi'.
dr-jan

Dan jika Anda tidak suka moreatau less, Anda selalu dapat mencoba most.
drybjed

PAGER pilihan saya sekarang sebenarnya adalah w3m. Ini memiliki semua fitur yang kurang, dan dapat berfungsi ganda sebagai browser web mode teks :-) Saya juga telah menggunakan fungsi bash untuk menggunakan vim dalam mode read only (dengan cara ini saya mendapatkan perbedaan warna yang bagus misalnya). Fungsi bash digunakan hanya untuk memutuskan apakah akan menyediakan '-' (untuk membaca stdin) atau tidak (kalau-kalau kita sedang paging file). Pekerjaan seperti pesona, kecuali untuk halaman man mana nroff tidak overstrike ...
njsf

1
htopadalah versi "lebih baik" dari top.
Alexander Bird

26

lsof untuk menentukan proses yang menggunakan file atau direktori (berguna ketika mencoba untuk mencari tahu apa yang mencegah perangkat dari yang umount'd)

netstat untuk menentukan proses mana yang menggunakan koneksi jaringan (terutama berguna ketika mencoba mencari tahu daemon mana yang terikat ke port tertentu)


1
Jika Anda memiliki lsof, Anda tidak perlu netstat. Cukup gunakan lsof -i
vartec

lsof -n adalah doa favorit saya. Saya menyalurkannya ke grep untuk mengupasnya
Matt Simmons

19

Pelajari semua alat dasar, tetapi pelajari Perl.

Perl sangat ideal untuk memanipulasi teks, dan karena operator un * x hidup pada file teks, pipa, input dan output, Perl sangat cocok.

Bonus tambahan adalah Perl adalah lintas platform dan jika Anda harus melakukan beberapa pekerjaan pada kotak windows Anda memiliki bahasa yang mudah diinstal (cukup jatuhkan direktori Perl di server) yang sudah Anda ketahui.

Dan di jalur pemikiran itu, dapatkan Cygwin juga. Jika Anda adalah admin un * x dan harus bekerja pada kotak windows (bahkan desktop Anda) yang memiliki ls, rm, grep, sed, tail dll menghemat banyak waktu Anda ketika berpindah OS.


18
  • sed
  • awk

Kakek yang terlupakan dari skrip sistem modern. Saya tahu Perl mendapatkan sebagian besar cinta (bersama dengan skrip Bash, Python, Ruby, dan [masukkan bahasa skrip favorit Anda di sini]), dan jangan salah sangka, saya suka Perl. Saya memanfaatkannya hampir setiap hari.

Tapi sed dan awk tidak boleh dilupakan, diabaikan, atau diabaikan. Untuk banyak kasus, sed dan awk adalah alat terbaik untuk pekerjaan itu. Contoh cepat adalah pemfilteran baris perintah dengan sed, dan pemrosesan log yang cepat dan kotor dengan awk. Keduanya dapat dilakukan di Perl, tetapi akan membutuhkan lebih banyak pekerjaan dan waktu pengembangan.


13

rsync, terutama dalam konser dengan ssh. Ini memungkinkan penyalinan file yang efisien dan sederhana dari host ke host. Bagaimana kita bisa mengatasi tanpa ssh dan rsync? :-)


12

Netcat.

  • Uji apakah layanan TCP mendengarkan.
  • Lakukan transaksi terhadap protokol plaintext seperti SMTP.
  • Transfer data yang cepat dan tidak aman antar mesin.
  • Emulasi klien Telnet.

Jaringan swiss army knife, seperti yang mereka katakan.


Saya baru-baru ini mulai menggunakan socat sebagai pengganti netcat dan saya kagum dengan sejumlah opsi yang diberikannya kepada Anda. Pasti layak untuk dicoba, meskipun ada sejumlah sakelar yang menakutkan dan sintaks yang aneh.
Marcin

12

Hadapi itu - cepat atau lambat Anda akan berurusan dengan jaringan juga. mtr , tcpdump dan tshark sangat berguna untuk melihat apa yang terjadi.


9

Untuk skrip cepat, otomatisasi, dll:

  • pesta
  • perl

Untuk terhubung ke server * NIX Anda:

  • Buka SSH (klien Linux)
  • Putty (klien Windows)

+1 untuk ... yah semuanya benar-benar kecuali Perl khususnya. * nix, Windows atau Mac, saya tidak bisa membayangkan apa yang akan saya lakukan tanpanya.
John Gardeniers

9

Saya menggunakan sebagian besar alat yang sudah terdaftar, tapi ini belum ada yang menyentuh:

Wayang - sistem untuk mengotomatisasi tugas-tugas administrasi sistem



6

Sebagian besar yang standar disertakan dalam jawaban lain, jadi saya akan memilih yang tidak standar:

  • htop - bagus untuk manajemen proses;
  • pinfo - lynx like browser untuk info dan halaman manual.

6

Beberapa alat praktis yang belum saya lihat disebutkan:

  • dstat --nocolor (ikhtisar cpu-, disk-, penggunaan net)
  • iftop (ikhtisar dinamis bagus dari lalu lintas jaringan)
  • ccze ( logfil warna dengan baik)
  • terowongan ssh (dapat berguna sesekali; lihat manual; -R)
  • harapkan (mengotomatiskan antarmuka dialogi interaktif dan menyenangkan, bagus jika Anda dalam keadaan darurat)

+1 "tail -f <file> | ccze" = cara menakjubkan membaca file log.
Lin

+1 untukexpect
Alexander Bird

+1 untuk dstat. Penggantian terbaik untuk vmstat, iostat, dll. Di luar sana.
Christopher Cashell

5

ClusterSSH

ClusterSSH mengontrol sejumlah jendela xterm melalui jendela konsol grafis tunggal untuk memungkinkan perintah dijalankan secara interaktif di beberapa server melalui koneksi ssh.


... dan karena ClusterSSH ditulis dalam Perl, mungkin Anda harus belajar Perl.
Brad Gilbert

Apa perbedaan antara layar ClusterSSH dan GNU? atau mereka implementasi yang berbeda dari konsep yang sama?
Alexander Bird


4

pv: Menampilkan progres operasi panjang yang dapat dialihkan. http://www.ivarch.com/programs/pv.shtml

Berguna maka Anda ingin memonitor sesuatu yang akan memakan waktu lama, seperti menyalin / mengompresi perangkat blok mentah melalui jaringan (yang adalah bagaimana saya mengambil cadangan paranoia dari netbook 8Gb saya sebelum bermain-main dengan hal-hal besar seperti mengutak-atik pengaturan sistem file).

Juga: Saya akan memilih kedua untuk ssh, rsync, layar, htop dan netcat seperti yang disebutkan oleh orang-orang di atas - yang semuanya lebih penting daripada pv tetapi pv belum disebutkan. Sebenarnya pv sering merupakan tambahan yang berguna saat memiprang barang ke atau dari ke netcat.


pvbisa menjadi alat yang berguna, tetapi jangan terlalu sering menggunakannya. Melewati data melalui itu benar-benar memiliki dampak kinerja (semua data harus melewati program lain ). Di pekerjaan terakhir saya, kami melakukan banyak pemrosesan log. Salah satu dari mereka memutuskan untuk mulai meletakkan pv di semua skrip pemrosesan log, sampai kami menemukan bahwa itu menambahkan sekitar 15% ke waktu pemrosesan untuk mereka. Sekarang ini hanya digunakan untuk pekerjaan yang membutuhkan waktu kurang dari beberapa menit, atau yang memiliki keterbatasan sumber daya yang ada (seperti menyeberang koneksi jaringan yang lambat).
Christopher Cashell

Good point Christopher, meskipun saya belum pernah melihatnya menyebabkan perubahan kinerja sebanyak 15% (sekali lagi, sebagian besar yang saya gunakan pvadalah disk atau jaringan I / O terikat daripada CPU / memori terikat). Argumen yang sama adalah yang utama terhadap penggunaan yang berlebihan catjuga (saya kadang-kadang menggunakan cat ketika tidak benar-benar diperlukan hanya untuk membuat hal-hal dibaca dengan baik dari kiri ke kanan, tetapi penyalinan data dalam memori tambahan melalui pipa dan pengalihan konteks dapat memiliki dampak kinerja yang terukur).
David Spillett

Ya, saya melakukan hal yang sama. Sebagian besar catpenggunaan berlebihan saya berasal dari mulai dengan cat foo, diikuti dengan menekan panah "atas" dan kemudian menambahkan | [command]ke baris saya sebelumnya. Saya tahu saya mengambil kinerja (kecil) hit dengan menjaga kucing di sana, tetapi meninggalkannya membutuhkan upaya lebih sedikit daripada menulis ulang / mengetik ulang perintah yang akan dibuat [command] < foo. Bukan masalah bagi (sebagian besar) perintah baris ad hoc bekerja, tetapi tidak ideal untuk skrip (sama seperti perasaan saya terhadap pv, saya kira).
Christopher Cashell

4

ssh, Vim, htop, su, Python, ls, cd, layar, du, tar :)



3

Beberapa yang belum disebutkan sebelumnya:

  • kepala / ekor
  • beda
  • pstree
  • ter
  • gzip / bzip
  • menonton

Pstree +1 cukup manis.
Lin

3

pipa tar!

memipiskan output tar ke utilitas lain, tar berjalan di kotak yang sama, atau tar menjalankan SSH adalah langkah lama Unix sekolah favorit saya untuk memindahkan file dari satu tempat ke tempat lain.

Ini juga memberi Anda pilihan gaya Windows untuk menyalin satu folder ke folder lain dan berakhir dengan semua file di direktori sumber dan tujuan.



3

iotop, adalah program seperti teratas untuk memantau akses I / O ke disk Anda.


Hanya tersedia di kernel yang lebih baru, tetapi sangat bagus.
Sean Reifschneider

3

Sebagian besar alat ini dibuat jauh lebih kuat menggunakan Bash "penyelesaian yang dapat diprogram" - sehingga Anda dapat melakukan tab-melengkapi hal-hal seperti opsi baris perintah, atau mengucapkan nama paket dengan "apt-get install". Ini juga akan membatasi apa yang Anda tab-lengkap untuk file yang relevan - misalnya, "unzip" hanya akan menyelesaikan file arsip yang didukung.

Ini benar-benar mutts - jika Anda belum pernah mencobanya Anda mungkin hanya perlu mengutak-atik .bashrc Anda:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

Tentunya ini benar di Ubuntu dan Debian. Anda mungkin perlu mendapatkan paket pada beberapa distribusi Linux.



2

Beberapa hal terlewatkan yang ingin saya sebutkan.

  • vim -d split screen console diff yang membuatnya sangat mudah untuk melihat perbedaan dalam suatu file
  • pdsh memungkinkan Anda untuk dengan mudah menjalankan perintah pada sistem sebanyak yang Anda inginkan baik serial atau paralel (saya adalah admin cluster. Saya tidak dapat berfungsi tanpanya.)
  • nmon seperti top on crack. Ini memberi Anda ide bagus tentang apa yang terjadi pada suatu sistem pada satu layar. Anda dapat melihat disk I / O, penggunaan CPU I / O jaringan, dan penggunaan memori secara real time. Paling tidak hal yang menyenangkan untuk dimainkan ketika membuat profil suatu sistem.

Oh, dan saya lupa menyebutkan, saat menulis, saya yakin Anda harus selalu menggunakan Korn. Saya benci Korn (Bukan band. Saya suka band :-P) tetapi secara harfiah ada di mana-mana. Anda dapat mengambil skrip dan memindahkannya antara Solaris, AIX dan Linux dan tidak perlu khawatir tentang apakah admin memiliki kesopanan untuk menginstal Bash.


2

Salah satu alat yang terkadang sangat berguna adalah nohup. Saya menggunakannya untuk menjalankan skrip yang bertahan lama menggunakan klien SSH jarak jauh.


2

man - untuk membaca halaman manual.

elinks - untuk memeriksa google, karena aku yakin tidak ingat semuanya.

Dan memperhatikan detail & keuletan, karena tanpa mereka saya hanya membuang waktu.


+1 untuk perhatian pada detail & keuletan
cop1152

2

layar adalah suatu keharusan, terutama dengan file .screenrc yang baik. Saya sudah mengonfigurasinya untuk menampilkan secara visual di jendela mana saya berada dan dapat bergerak di antara mereka dengan Ctrl + Arrow. Untuk sesi ssh tunggal dan beberapa shell, ini adalah penyelamat.



2

Saya suka AWK serta "untuk" di baris perintah.

Terutama untuk membangun daftar perintah yang ingin saya jalankan dan kemudian jalankan semuanya sekaligus.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.