Bahan, terjemahan yang kami terbitkan hari ini, bertujuan untuk mereka yang ingin menguasai baris arahan Linux. Keupayaan untuk menggunakan alat ini dengan berkesan dapat menjimatkan banyak masa. Khususnya, kita akan bercakap tentang shell Bash dan 21 arahan berguna di sini. Kami juga akan bercakap tentang cara menggunakan bendera arahan dan alias Bash untuk mempercepatkan menaip arahan yang panjang.
β
Terma
Semasa anda belajar untuk bekerja dengan baris arahan Linux, anda akan menghadapi banyak konsep yang berguna untuk mengemudi. Sesetengah daripada mereka, seperti "Linux" dan "Unix", atau "shell" dan "terminal", kadangkala keliru. Mari kita bercakap tentang ini dan istilah penting lain.
Memandangkan kita telah membincangkan istilah penting, saya ingin menyatakan bahawa saya akan menggunakan istilah "Bash", "shell" dan "baris arahan" secara bergantian di sini, serta istilah "direktori" dan "folder".
Standard stdin
), keluaran piawai (keluaran piawai, stdout
) dan output ralat piawai (ralat piawai, stderr
).
Jika dalam contoh arahan yang akan diberikan di bawah, anda akan menemui sesuatu seperti my_whatever
- ini bermakna bahawa serpihan ini perlu digantikan dengan sesuatu milik anda. Sebagai contoh, nama fail.
Sekarang, sebelum meneruskan analisis arahan yang didedikasikan oleh bahan ini, mari kita lihat senarai mereka dan penerangan ringkas mereka.
21 arahan Bash
βMendapatkan maklumat
man
: Memaparkan panduan pengguna (bantuan) untuk arahan.pwd
: memaparkan maklumat tentang direktori kerja.ls
: memaparkan kandungan direktori.ps
: Membolehkan anda melihat maklumat tentang proses yang sedang berjalan.
β Manipulasi sistem fail
cd
: tukar direktori kerja.touch
: buat fail.mkdir
: buat direktori.cp
: Salin fail.mv
: Alihkan atau padam fail.ln
: buat pautan.
βUbah hala I/O dan saluran paip
<
: ubah halastdin
.>
: ubah halastdout
.|
: memaipkan output satu arahan ke input arahan lain.
βMembaca fail
head
: baca permulaan fail.tail
: baca hujung fail.cat
: Baca fail dan cetak kandungannya ke skrin, atau gabungkan fail.
βMemadam fail, menghentikan proses
rm
: Padamkan fail.kill
: hentikan proses.
βCari
grep
: mencari maklumat.ag
: perintah lanjutan untuk mencari.
βMengarkib
tar
: mencipta arkib dan bekerja dengannya.
Mari kita bincangkan tentang arahan ini dengan lebih terperinci.
Butiran Pasukan
Sebagai permulaan, mari kita berurusan dengan arahan, yang hasilnya dikeluarkan dalam bentuk stdout
. Biasanya keputusan ini muncul dalam tetingkap terminal.
βMendapatkan maklumat
man command_name
: memaparkan panduan arahan, iaitu maklumat bantuan.
pwd
: memaparkan laluan ke direktori kerja semasa. Semasa bekerja dengan baris arahan, pengguna sering perlu mengetahui dengan tepat di mana dalam sistem dia berada.
ls
: memaparkan kandungan direktori. Perintah ini juga digunakan agak kerap.
ls -a
: tunjukkan fail tersembunyi. bendera digunakan di sini -a
pasukan ls
. Penggunaan bendera membantu menyesuaikan tingkah laku arahan.
ls -l
: Paparkan maklumat terperinci tentang fail.
Ambil perhatian bahawa bendera boleh digabungkan. Sebagai contoh - seperti ini: ls -al
.
ps
: Lihat proses yang sedang berjalan.
ps -e
: Paparkan maklumat tentang semua proses yang sedang berjalan, bukan hanya yang dikaitkan dengan shell pengguna semasa. Perintah ini sering digunakan dalam bentuk ini.
β Manipulasi sistem fail
cd my_directory
: tukar direktori kerja kepada my_directory
. Untuk naik satu tahap dalam pepohon direktori, gunakan my_directory
laluan relatif ../
.
arahan cd
touch my_file
: penciptaan fail my_file
sepanjang laluan yang diberikan.
mkdir my_directory
: buat folder my_directory
sepanjang laluan yang diberikan.
mv my_file target_directory
: alih fail my_file
ke folder target_directory
. Apabila menentukan direktori sasaran, anda perlu menggunakan laluan mutlak kepadanya (dan bukan pembinaan seperti ../
).
pasukan mv
juga boleh digunakan untuk menamakan semula fail atau folder. Sebagai contoh, ia mungkin kelihatan seperti ini:
mv my_old_file_name.jpg my_new_file_name.jpg
: buat salinan fail
cp my_source_file target_directorymy_source_file
dan masukkan ke dalam folder target_directory
.
ln -s my_source_file my_target_file
: buat pautan simbolik my_target_file
setiap fail my_source_file
. Jika anda menukar pautan, fail asal juga akan berubah.
Jika fail my_source_file
akan dipadamkan, kemudian my_target_file
akan kekal. Bendera -s
pasukan ln
membolehkan anda membuat pautan untuk direktori.
Sekarang mari kita bincangkan tentang pengalihan I/O dan saluran paip.
βUbah hala I/O dan saluran paip
my_command < my_file
: menggantikan deskriptor fail input standard (stdin
) setiap fail my_file
. Ini boleh berguna jika arahan sedang menunggu beberapa input daripada papan kekunci, dan data ini telah disimpan dalam fail.
my_command > my_file
: mengubah hala hasil arahan, iaitu perkara yang biasanya masuk ke dalam stdout
dan output ke skrin, ke fail my_file
. Jika fail my_file
tidak wujud - ia dicipta. Jika fail itu wujud, ia akan ditimpa.
Sebagai contoh, selepas melaksanakan arahan ls > my_folder_contents.txt
fail teks akan dibuat yang mengandungi senarai perkara yang ada dalam direktori kerja semasa.
Jika bukan simbol >
menggunakan pembinaan >>
, maka, dengan syarat bahawa fail yang output arahan diubah hala wujud, fail ini tidak akan ditulis ganti. Data akan ditambahkan pada penghujung fail ini.
Sekarang mari kita lihat pemprosesan saluran paip data.
Output satu arahan dimasukkan ke dalam input arahan lain. Ia seperti menyambung satu paip ke paip yang lain
first_command | second_command
: simbol penghantar, |
, digunakan untuk menghantar output satu arahan kepada arahan lain. Apa yang dihantar oleh arahan di sebelah kiri struktur yang diterangkan stdout
, Jatuh ke stdin
arahan di sebelah kanan simbol saluran paip.
Di Linux, data boleh disalurkan menggunakan hampir mana-mana arahan yang dibentuk dengan baik. Selalunya dikatakan bahawa segala-galanya dalam Linux adalah saluran paip.
Anda boleh merantai berbilang arahan menggunakan simbol saluran paip. Ia kelihatan seperti ini:
first_command | second_command | third_command
Saluran paip beberapa arahan boleh dibandingkan dengan saluran paip
Perhatikan bahawa apabila arahan di sebelah kiri simbol |
, mengeluarkan sesuatu kepada stdout
, apa yang dia keluarkan tersedia serta-merta sebagai stdin
pasukan kedua. Iaitu, ternyata, menggunakan saluran paip, kita berurusan dengan pelaksanaan perintah selari. Kadang-kadang ini boleh membawa kepada hasil yang tidak dijangka. Butiran tentang ini boleh dibaca
Sekarang mari kita bercakap tentang membaca data daripada fail dan memaparkannya pada skrin.
βMembaca fail
head my_file
: membaca baris dari permulaan fail dan mencetaknya ke skrin. Anda boleh membaca bukan sahaja kandungan fail, tetapi juga apa yang dikeluarkan oleh arahan stdin
menggunakan arahan ini sebagai sebahagian daripada saluran paip.
tail my_file
: membaca baris dari hujung fail. Perintah ini juga boleh digunakan dalam saluran paip.
Kepala (kepala) di hadapan, dan ekor (ekor) di belakang
Jika anda bekerja dengan data menggunakan perpustakaan panda, maka arahan head
ΠΈ tail
sepatutnya biasa kepada anda. Jika ini tidak berlaku, lihat angka di atas, dan anda akan mengingatinya dengan mudah.
Pertimbangkan cara lain untuk membaca fail, mari kita bercakap tentang arahan cat
.
Pasukan cat
sama ada mencetak kandungan fail ke skrin, atau menggabungkan berbilang fail. Ia bergantung pada berapa banyak fail yang dihantar ke arahan ini apabila dipanggil.
perintah kucing
cat my_one_file.txt
: apabila satu fail dihantar ke arahan ini, ia mengeluarkannya ke stdout
.
Jika anda memberikannya dua fail atau lebih fail, maka ia berkelakuan berbeza.
cat my_file1.txt my_file2.txt
: setelah menerima beberapa fail sebagai input, arahan ini menggabungkan kandungannya dan memaparkan apa yang berlaku di dalamnya stdout
.
Jika hasil penggabungan fail perlu disimpan sebagai fail baharu, anda boleh menggunakan operator >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Sekarang mari kita bincangkan tentang cara memadam fail dan menghentikan proses.
βMemadam fail, menghentikan proses
rm my_file
: padam fail my_file
.
rm -r my_folder
: memadam folder my_folder
dan semua fail dan folder yang terkandung di dalamnya. Bendera -r
menunjukkan bahawa arahan akan dijalankan dalam mod rekursif.
Untuk menghalang sistem daripada meminta pengesahan setiap kali fail atau folder dipadamkan, gunakan bendera -f
.
kill 012345
: Menghentikan proses berjalan yang ditentukan, memberi masa untuk menutup dengan anggun.
kill -9 012345
: Menamatkan proses berjalan yang ditentukan secara paksa. Lihat bendera -s SIGKILL
maksudnya sama dengan bendera -9
.
βCari
Anda boleh menggunakan arahan yang berbeza untuk mencari data. khususnya - grep
, ag
ΠΈ ack
. Mari kita mulakan perkenalan kita dengan arahan ini dengan grep
. Ini adalah arahan yang diuji masa dan boleh dipercayai, yang, bagaimanapun, adalah lebih perlahan daripada yang lain dan tidak semudah digunakan seperti sedia ada.
arahan grep
grep my_regex my_file
: carian my_regex
Π² my_file
. Jika perlawanan ditemui, keseluruhan rentetan dikembalikan, untuk setiap perlawanan. Lalai my_regex
dianggap sebagai ungkapan biasa.
grep -i my_regex my_file
: Carian dilakukan dalam cara yang tidak peka huruf besar-besaran.
grep -v my_regex my_file
: mengembalikan semua baris yang tidak mengandungi my_regex
. Bendera -v
bermaksud penyongsangan, ia menyerupai operator NOT
, terdapat dalam banyak bahasa pengaturcaraan.
grep -c my_regex my_file
: Mengembalikan maklumat tentang bilangan padanan yang ditemui dalam fail untuk corak carian.
grep -R my_regex my_folder
: melakukan carian rekursif dalam semua fail yang terletak dalam folder yang ditentukan dan dalam folder yang bersarang di dalamnya.
Sekarang mari kita bercakap tentang pasukan ag
. Dia datang kemudian grep
, ia lebih pantas, lebih mudah untuk bekerja dengannya.
perintah ag
ag my_regex my_file
: mengembalikan maklumat tentang nombor baris, dan garisan itu sendiri, di mana padanan ditemui my_regex
.
ag -i my_regex my_file
: Carian dilakukan dalam cara yang tidak peka huruf besar-besaran.
Pasukan ag
memproses fail secara automatik .gitignore
dan tidak termasuk daripada output apa yang terdapat dalam folder atau fail yang disenaraikan dalam fail itu. Ia sangat selesa.
ag my_regex my_file -- skip-vcs-ignores
: kandungan fail kawalan versi automatik (seperti .gitignore
) tidak diambil kira dalam carian.
Di samping itu, untuk memberitahu pasukan ag
pada laluan fail yang anda ingin kecualikan daripada carian, anda boleh membuat fail .agignore
.
Pada permulaan bahagian ini, kami menyebut arahan ack
. Pasukan ack
ΠΈ ag
sangat serupa, kita boleh mengatakan bahawa mereka 99% boleh ditukar ganti. Walau bagaimanapun, pasukan ag
berfungsi lebih cepat, itulah sebabnya saya menerangkannya.
Sekarang mari kita bercakap tentang bekerja dengan arkib.
βMengarkib
tar my_source_directory
: menggabungkan fail daripada folder my_source_directory
ke dalam satu fail tarball. Fail sedemikian berguna untuk memindahkan set fail yang besar kepada seseorang.
arahan tar
Fail tarball yang dijana oleh arahan ini ialah fail dengan sambungan .tar
(Arkib Pita). Hakikat bahawa perkataan "pita" (pita) tersembunyi dalam nama arahan dan dalam lanjutan nama fail yang diciptanya menunjukkan berapa lama arahan ini telah wujud.
tar -cf my_file.tar my_source_directory
: mencipta fail tarball bernama my_file.tar
dengan kandungan folder my_source_directory
. Bendera -c
bermaksud "cipta" (penciptaan), dan bendera -f
sebagai "fail" (fail).
Untuk mengekstrak fail daripada .tar
-fail, gunakan arahan tar
dengan bendera -x
("ekstrak", perahan) dan -f
("fail", fail).
tar -xf my_file.tar
: mengekstrak fail daripada my_file.tar
ke direktori kerja semasa.
Sekarang mari kita bercakap tentang cara memampatkan dan nyahmampat .tar
-fail.
tar -cfz my_file.tar.gz my_source_directory
: di sini menggunakan bendera -z
("zip", algoritma pemampatan) menunjukkan bahawa algoritma harus digunakan untuk memampatkan fail gzip
(GNUzip). Pemampatan fail menjimatkan ruang cakera apabila menyimpan fail tersebut. Jika fail dirancang, sebagai contoh, untuk dipindahkan kepada pengguna lain, ini menyumbang kepada muat turun fail tersebut dengan lebih pantas.
Nyahzip fail .tar.gz
anda boleh menambah bendera -z
kepada perintah kandungan ekstrak .tar
-files, yang kami bincangkan di atas. Ia kelihatan seperti ini:
tar -xfz my_file.tar.gz
Perlu diingatkan bahawa pasukan tar
Terdapat banyak lagi bendera yang berguna.
alias Bash
Alias ββBash (juga dipanggil alias atau singkatan) direka bentuk untuk mencipta nama singkatan bagi perintah atau urutannya, yang penggunaannya bukannya arahan biasa mempercepatkan kerja. Jika anda mempunyai alias bu
, yang menyembunyikan arahan python setup.py sdist bdist_wheel
, kemudian untuk memanggil arahan ini, sudah cukup untuk menggunakan alias ini.
Untuk mencipta alias sedemikian, cuma tambahkan arahan berikut pada fail ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Jika sistem anda tidak mempunyai fail ~/.bash_profile
, maka anda boleh menciptanya sendiri menggunakan arahan touch
. Selepas mencipta alias, mulakan semula terminal, selepas itu anda boleh menggunakan alias ini. Dalam kes ini, input dua aksara menggantikan input lebih daripada tiga dozen aksara arahan, yang bertujuan untuk
Π ~/.bash_profile
anda boleh menambah alias untuk sebarang arahan yang kerap digunakan.
βHasil
Dalam siaran ini, kami telah merangkumi 21 arahan Bash yang popular dan bercakap tentang mencipta alias arahan. Jika anda berminat dengan topik ini -
Pembaca yang dihormati! Apakah arahan yang berguna untuk pemula yang akan anda tambahkan pada arahan yang dibincangkan dalam artikel ini?
β
Sumber: www.habr.com