Memilih penterjemah baris arahan Linux. Penghuraian baris arahan, kegemaran bash. Beberapa konvensyen panduan ini

Helaian cheat ini merangkumi topik berikut: pengenalan shell, navigasi, arahan asas, pembolehubah persekitaran, penyambung, paip, pengalihan I/O, kebenaran dan pintasan papan kekunci.

Pengenalan Bash Shell

Shell, atau shell, ialah program, dalam kes kami dipanggil "bash", yang merupakan singkatan untuk Bourne Again Shell. Shell mengambil arahan anda dan menghantarnya ke sistem pengendalian. Terminal seperti gnome-terminal , eterm , nxterm , dsb. digunakan untuk berinteraksi dengan sistem.

Navigasi

DALAM fail linux dan direktori mempunyai organisasi hierarki, iaitu, terdapat beberapa direktori awal, dipanggil akar. Ia mengandungi fail dan subdirektori, yang seterusnya mengandungi fail dan subdirektorinya.

pwd

perintah pwd, singkatan dari cetak direktori kerja, paparan lokasi sekarang dalam struktur direktori.

cd

Perintah cd membolehkan anda pergi ke katalog baru.

mkdir

Perintah mkdir mencipta direktori baharu dalam direktori semasa.

Perintah asas

lelaki

Arahan lelaki memaparkan manual arahan. Sebagai contoh, arahan berikut akan memberi anda semua maklumat tentang arahan kucing:

$ lelaki kucing

kucing

Perintah kucing membaca fail yang diberikan sebagai hujah dan mengeluarkan kandungannya kepada saluran standard pengeluaran. Meluluskan berbilang fail sebagai hujah akan mengeluarkan kandungan gabungan semua fail.

bergema

Perintah gema mencetak hujahnya pada output standard.

$ echo Hello World Hello World

Jika anda memanggil gema tanpa hujah, ia akan dicetak baris kosong.

kepala

Perintah kepala membaca 10 baris pertama mana-mana teks yang diberikan dan mengeluarkannya pada paip standard. Bilangan baris keluaran boleh diubah:

$ kepala -50 test.txt

ekor

Perintah ekor berfungsi seperti arahan kepala, tetapi membaca baris dari hujung:

$ ekor -50 test.txt

Anda juga boleh melihat baris yang ditambahkan pada fail dalam masa nyata menggunakan bendera -f:

$ tail -f test.txt

kurang

Perintah yang kurang membolehkan anda menavigasi fail atau sekeping teks yang dipindahkan, dan dalam kedua-dua arah.

$ less test.txt $ ps aux | kurang

Lebih lanjut mengenai tujuan simbol | akan dibincangkan di bawah dalam bahagian arahan sejarah.

Pintasan papan kekunci biasaPenerangan
GBergerak ke hujung fail
gBergerak ke permulaan fail
:50 Bergerak ke baris 50 fail
qKeluar kurang
/ istilah carianRentetan carian yang sepadan dengan 'istilah carian' di bawah talian semasa
/
?istilah carianCari baris yang sepadan dengan 'istilah carian' di atas baris semasa
? Beralih ke hasil carian sepadan seterusnya
naikBergerak satu barisan ke atas
turunMenggerakkan satu baris ke bawah
muka suratBergerak ke atas satu halaman
halaman bawahMengalihkan satu halaman ke bawah

benar

Perintah benar sentiasa mengembalikan sifar sebagai status keluar untuk menunjukkan kejayaan.

salah

Perintah palsu sentiasa mengembalikan bukan sifar sebagai status keluar untuk menunjukkan kegagalan.

$?

$? ialah pembolehubah yang mengandungi status keluar perintah terakhir dijalankan. Status biasanya difahami sebagai kod kembali program. 0 bermakna pelaksanaan program yang berjaya, sebarang nilai yang lebih besar daripada 0 mencerminkan fakta bahawa beberapa ralat berlaku semasa pelaksanaan. By the way, inilah sebabnya dalam bash true (true) dianggap 0, dan semua yang bukan 0 adalah palsu (false):

$ benar $ echo $? 0 $palsu $echo $? 1

grep

Perintah grep mencari rentetan yang diberikan dalam fail yang ditentukan:

$ cat users.txt pengguna:kata laluan pelajar:123 pengguna:kata laluan guru:321 $ grep "fail pelajar`1.txt pengguna:kata laluan pelajar:123

grep juga boleh menerima berbilang fail dan ungkapan biasa untuk menjelaskan format teks.

sejarah

Perintah sejarah memaparkan sejarah baris arahan. Ia biasanya digunakan bersama dengan arahan grep untuk mencari arahan tertentu. Sebagai contoh, kod berikut akan mencari semua arahan yang mengandungi rentetan g++ :

$ sejarah | grep g++ 155 g++ fail1.txt 159 g++ fail2.txt

Simbol | juga digunakan di sini. - ini adalah penghantar (paip) yang dipanggil. Terima kasih kepadanya, anda boleh mengalihkan output satu arahan ke input yang lain - oleh itu, dalam contoh di atas, keseluruhan cerita, yang dalam mod biasa output oleh arahan sejarah terus ke output terminal akan diubah hala ke grep sebagai input. Kami tidak akan melihat output arahan sejarah, tetapi kami akan melihat output arahan grep.

Ini boleh menjadi agak sukar untuk difahami tanpa latihan, jadi uji sendiri, contohnya dengan perintah ls , history , ps (diterangkan di bawah), mengubah hala outputnya ke grep , sed atau less , sebagai contoh.

eksport

Perintah eksport menetapkan pembolehubah persekitaran untuk dihantar kepada proses anak. Sebagai contoh, ini adalah cara anda boleh menghantar nama pembolehubah dengan pelajar nilai:

$ nama eksport=pelajar

ps

Perintah ps memaparkan maklumat tentang menjalankan proses.

$ ps PID TTY TIME CMD 35346 pts/2 00:00:00 bash

Empat item dipaparkan:

  • ID Proses (PID),
  • jenis terminal (TTY),
  • masa proses (MASA),
  • nama arahan yang memulakan proses (CMD).

awk

Perintah awk mencari dan menggantikan teks dalam fail dengan corak yang diberikan: awk "corak (tindakan)" test.txt

wget

Perintah wget memuat turun fail dari web dan meletakkannya dalam direktori semasa.

$ wget https://github.com/mikeizbicki/ucr-cs100

nc

ping

Perintah ping menguji sambungan rangkaian.

$ ping google.com PING google.com (74.125.224.34) 56(84) bait data. 64 bait daripada lax17s01-in-f2.1e100.net (74.125.224.34): icmp_req=1 ttl=57 time=7.82 ms --- perangkaan ping google.com --- 1 paket dihantar, 1 diterima, kehilangan paket 0% , masa 8ms rtt min/avg/maks/mdev = 7.794/8.422/10.792/0.699 ms

Statistik pada penghujung menunjukkan bilangan sambungan yang dibuat sebelum arahan selesai dan masa yang diambil untuk menyelesaikannya.

git

Pembolehubah persekitaran

Pembolehubah persekitaran dinamakan pembolehubah yang mengandungi nilai yang digunakan oleh satu atau lebih aplikasi.

Pembolehubah PATH mengandungi senarai direktori tempat sistem mencari fail boleh laku.

Pembolehubah HOME mengandungi laluan ke direktori rumah pengguna semasa.

Penyambung

Penyambung membolehkan anda menjalankan berbilang arahan pada masa yang sama.

$ true && echo Hello Hello $ false || echo Hello Hello $ echo Hello ; ls Hello test.txt file1.txt file2.txt

Penghantar

Talian paip, atau paip, membolehkan anda menyambung saluran input dan output bagi arahan yang berbeza. Dalam contoh berikut, output arahan ls akan disalurkan ke head , menyebabkan hanya 10 item pertama dicetak.

$ ls -l | kepala

Pengalihan I/O

Ubah hala Keluaran

Ubah hala keluaran standard menggunakan simbol > dan >> .

Sebagai contoh, kod ini akan memaipkan output ls ke fail dan bukannya ke skrin:

$ ls > files.txt $ cat files.txt file1.cpp sample.txt

Jika fail itu tidak wujud, ia dicipta, dan jika ada, ia akan ditulis ganti. Untuk mengelakkan penulisan ganti, anda harus menggunakan perintah >> - ia menambahkan data ke penghujung fail.

Ubah hala input

Ubah hala keluaran standard menggunakan simbol< . В следующем примере sort берет входные данные из файла, а не с клавиатуры:

$ cat files.txt c b $sort< files.txt b c

Perintah isihan mencetak kandungan fail ke skrin kerana kami belum mengubah hala output. Ini boleh dilakukan seperti ini:

$sort< files.txt >files_sorted.txt

Ubah hala lanjutan

Menambah & kepada > menghasilkan ubah hala seperti aliran standard keluaran dan aliran ralat. Sebagai contoh, fail test.cpp akan mengeluarkan rentetan stdout kepada cout dan rentetan stderr kepada cerr .

$ g++ test.cpp $ ./a.out >& test.txt $ cat test.txt stdout stderr

Jika anda ingin mengeluarkan yang khusus deskriptor fail, anda boleh menetapkan nombornya kepada > .

NamaDeskriptorPenerangan
stdin0 Input standard
stdout1 keluaran standard
stderr2 Output Ralat Standard

Sebagai contoh, untuk mengubah hala stderr ke test.txt, lakukan perkara berikut:

$ g++ test.cpp $ ./a.out 2> test.txt stdout $ cat test.txt stderr

Hak akses

Perintah ls -l mencetak banyak maklumat tentang kebenaran setiap fail:

chmod

Perintah chmod menukar kebenaran fail. Berikut ialah gabungan bendera biasa untuk menukar hak pengguna tertentu:

Anda boleh memanggil chmod dengan penerangan tentang perkara yang perlu dilakukan dengan fail tertentu. Simbol - menandakan penyingkiran hak, simbol + - penambahan. Contoh berikut akan menjadikan fail boleh dibaca dan boleh ditulis oleh pemilik dan kumpulan:

$ chmod ug+rw test.txt $ ls -l test.txt -rw-rw---- 1 kumpulan pengguna 1097374 26 Januari 2:48 test.txt

Juga, chmod boleh digunakan dengan nombor perlapanan, di mana 1 adalah kebenaran dan 0 bukan:

Rwx=111=7 rw-=110=6 r-x=101=5 r--=100=4

Perintah seterusnya akan berfungsi seperti yang sebelumnya.

Selepas membaca artikel ini, anda akan tahu apa itu bash(shell linux standard), pelajari cara mengendalikan arahan standard: ls, cp, mv…memahami tujuan inod, pautan keras dan simbolik, dan banyak lagi.

Tutorial ini bertujuan untuk mereka yang baru menggunakan Linux dan yang ingin menyemak atau meningkatkan pemahaman mereka tentang konsep asas Linux seperti menyalin dan memindahkan fail, mencipta pautan, menggunakan arahan Linux standard bersama-sama dengan ubah hala dan paip. Dalam artikel ini anda akan menemui banyak contoh yang menerangkan bahan yang dibentangkan. Bagi pemula, kebanyakan maklumat adalah baharu, tetapi bagi pengguna yang lebih maju, bahan ini boleh menjadi alat yang sangat baik untuk meringkaskan pengetahuan dan kemahiran sedia ada.

Pengenalan kepada bash

Shell

Jika anda menggunakan Linux, maka anda tahu bahawa selepas log masuk, anda akan disambut oleh gesaan jurubahasa arahan. Contohnya ini:

\$

Jika cangkerang grafik dimuatkan selepas log masuk, maka untuk sampai ke penterjemah arahan anda perlu melancarkan emulator terminal (terminal gnome, terminal xfce4, konsole, xterm, rxvt ...) atau tukar ke salah satu terminal maya dengan menekan ctrlaltF1 atau ctrlaltF2 dan lain-lain.

Gesaan shell pada komputer anda mungkin berbeza daripada yang ditunjukkan dalam contoh. Ia mungkin mengandungi nama pengguna, nama komputer dan nama direktori kerja semasa. Tetapi di sebalik semua perbezaan ini, program yang mencetak gesaan ini dipanggil " cangkerang” (shell), dan kemungkinan besar shell anda ialah program yang dipanggil bash.

Adakah anda menjalankan bash?

Anda boleh menyemak sama ada bash sedang berjalan dengan arahan berikut:

\$ gema \$SHELL/bin/bash

Jika anda mendapat ralat akibat menjalankan arahan ini atau outputnya berbeza daripada yang dalam contoh, maka ada kemungkinan bash tidak digunakan sebagai shell arahan pada sistem anda. Walaupun begitu, kebanyakan bahan akan relevan, tetapi kami masih mengesyorkan agar anda beralih kepada bash. Ini boleh dilakukan (jika bash dipasang pada sistem) dengan arahan:

\$ bash

Apa itu bash

Bash (akronim untuk " B kami- a keuntungan SH ell") ialah penterjemah arahan standard pada kebanyakan sistem Linux. Tanggungjawabnya termasuk memproses dan melaksanakan arahan yang mana pengguna mengawal komputer. Selepas anda menyelesaikan kerja anda, anda boleh menamatkan proses shell. Selepas menekan kekunci ctrlD, perintah keluar atau log keluar proses shell akan ditamatkan dan skrin sekali lagi akan meminta anda untuk nama pengguna dan kata laluan.

Menggunakan "cd"

Mari kita mula menggunakan bash untuk menavigasi sistem fail. Untuk bermula, taip arahan berikut:

$ cd /

Dengan arahan ini, kami memberitahu bash bahawa kami ingin berpindah ke direktori akar - / . Semua direktori dalam sistem disusun dalam struktur pokok dan / ini adalah permulaannya (atau akarnya). Pasukan cd digunakan untuk menukar direktori kerja semasa.

cara

Untuk mengetahui di mana sistem fail anda sedang berada dalam (direktori kerja semasa) jenis:

\$ pwd /

Dalam contoh di atas / - hujah perintah cd- dipanggil laluan. Ini ialah lokasi sistem fail di mana kita ingin bergerak. Dalam kes ini / - jalan mutlak, yang bermaksud bahawa laluan adalah relatif kepada direktori akar.

Laluan mutlak

Berikut adalah beberapa contoh laluan mutlak

/dev /usr /usr/bin /usr/local/bin

Seperti yang mungkin anda perhatikan, semua laluan ini disatukan oleh fakta bahawa ia bermula dengan / . Menentukan laluan /usr/local/bin sebagai hujah kepada arahan cd kami memberitahunya untuk pergi ke direktori akar / , kemudian ke direktori usr, kemudian ke local dan bin. Laluan mutlak sentiasa bermula dengan /

Laluan relatif

Jenis laluan kedua dipanggil relatif. bash, pasukan cd dan arahan lain mengira laluan ini berbanding dengan direktori semasa. Laluan relatif tidak pernah bermula dengan / . Sebagai contoh, jika kita berada di /usr

\$ cd /usr

Kami kemudiannya boleh menavigasi ke /usr/local/bin menggunakan laluan relatif

\$ cd tempatan/bin \$ pwd/usr/local/bin

Penggunaan ".."

Laluan relatif boleh mengandungi satu atau lebih direktori «..» . ".." menunjukkan direktori induk direktori kerja kami. Contoh:

\$ pwd/usr/local/bin\$ cd.. \$ pwd/usr/local

Seperti yang anda boleh lihat arahan cd..'membawa kita ke tahap yang lebih tinggi'.

Boleh tambah .. kepada laluan relatif. Ini akan berpindah ke direktori yang berada pada tahap yang sama dengan direktori yang kita ada. Contoh:

\$ pwd/usr/local\$ cd ../kongsi \$ pwd/usr/share

Contoh menggunakan laluan relatif

Laluan relatif boleh menjadi agak rumit. Berikut adalah beberapa contoh. Hasil daripada melaksanakan arahan tidak ditunjukkan, cuba tentukan dalam direktori mana anda akan mendapati diri anda menggunakan bash.

\$ cd / tong \$ cd ../usr/share/zoneinfo \$ cd /usr/X11R6/bin \$ cd ../lib/X11 \$ cd /usr/bin \$ cd ../bin/../bin

Direktori kerja "."

Sebelum selesai bercakap tentang pasukan cd, beberapa perkara lagi perlu disebutkan. Pertama, terdapat satu lagi direktori khas «.» , yang menunjuk ke direktori semasa. Direktori ini digunakan untuk menjalankan fail boleh laku yang terletak dalam direktori semasa.

\$ ./myprog

Dalam contoh terakhir, myprog ialah boleh laku dalam direktori semasa yang akan dilaksanakan.

cd dan direktori rumah pengguna

Untuk pergi ke direktori rumah, anda perlu mendail

\$ cd

Tanpa hujah, cd akan memindahkan anda ke direktori rumah anda. Untuk superuser, direktori rumah biasanya /root, dan untuk pengguna biasa- /home/nama pengguna/. Tetapi bagaimana jika kita ingin menentukan fail tertentu yang terletak dalam direktori rumah. Sebagai contoh, sebagai hujah kepada program 'myprog'? Anda boleh menulis:

\$ ./myprog /home/user/myfile.txt

Walau bagaimanapun, menggunakan laluan fail mutlak tidak selalunya mudah. Operasi yang sama boleh dilakukan dengan ~ –tildes:

\$ ./myprog ~/myfile.txt

~ ialah nama khas yang menunjuk ke direktori rumah pengguna dalam bash.

Direktori rumah pengguna lain

Tetapi bagaimana jika kita perlu menunjuk ke fail dalam direktori rumah pengguna lain? Untuk melakukan ini, selepas tilde, anda perlu menentukan nama pengguna ini. Contohnya, untuk menunjuk ke fail fredsfile.txt yang terletak dalam direktori rumah pengguna fred:

\$ ./myprog ~fred/fredsfile.txt

arahan Linux

Pengenalan kepada ls

Anda mungkin sudah mengenali pasukan itu ls, yang, dipanggil tanpa argumen, memaparkan senarai fail yang disimpan dalam direktori kerja:

\$ cd /usr \$ ls X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 sertakan libexec portage share tmp distfiles i686-linux info local portage.old src

Jika anda menentukan pilihan -a, anda akan dapat melihat semua fail, termasuk yang tersembunyi (yang namanya bermula dengan titik).

\$ ls-a. bin gentoo-x86 sertakan libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

Senarai terperinci direktori

Selepas arahan ls satu atau lebih fail atau direktori boleh ditentukan sebagai hujahnya. Jika anda menentukan nama fail, maka arahan ls akan memaparkan maklumat tentang fail tersebut sahaja. Dan jika anda menentukan nama direktori, ls akan menunjukkan semua kandungannya. Pilihan '-l' arahan ls boleh menjadi sangat berguna jika anda ingin mengetahui lebih daripada nama fail maklumat terperinci tentang mereka (kebenaran pada fail, nama pemilik, masa fail terakhir diubah suai dan saiznya).

Contoh berikut menunjukkan penggunaan pilihan '-l' untuk memaparkan maklumat tentang fail yang disimpan dalam direktori /usr

\$ ls -l /usr drwxr-xr-x 7 akar akar 168 Nov 24 14:02 X11R6 drwxr-xr-x 2 akar akar 14576 Dis 27 08:56 bin drwxr-xr-x 2 akar akar 8856 Dis 26 12:47 distfiles lrw9xrw root 22 Dis 20:57 doc -> kongsi/doc drwxr-xr-x 62 root root 1856 Dis 27 15:54 gentoo-x86 drwxr-xr-x 4 root root 152 Dis 12 23:10 i686-linux drwxr-xr-x 4 root root 96 Nov 24 13:17 i686-pc-linux-gnu drwxr-xr-x 54 root root 5992 Dis 24 22:30 sertakan lrwxrwxrwx 1 root root 10 Dis 22 20:57 info -> share/info drwxr-x -x 28 root root 13552 Dis 26 00:31 lib drwxr-xr-x 3 root root 72 Nov 25 00:34 libexec drwxr-xr-x 8 root root 240 Dis 22 20:57 local lrwxrwxrwx 2 root 29 Dis :57 man -> share/man lrwxrwxrwx 1 root root 11 Dis 8 07:59 portage -> gentoo-x86/ drwxr-xr-x 60 root root 1864 Dis 8 07:55 portage.old drwxr-xr-x 3 root root 3096 Dis 22 20:57 sbin drwxr-xr-x 46 akar punca 1144 Dis 24 15:32 kongsi drwxr-xr-x 8 punca akar 25 ssl lrwxrwxrwx 1 punca 10 Dis 22 20.57 tmp/ -> tmp

Lajur pertama menunjukkan maklumat tentang kebenaran untuk setiap fail dalam senarai. (Saya akan menerangkan huruf mana yang bermaksud apa sedikit kemudian.) Lajur seterusnya menunjukkan bilangan pautan kepada setiap elemen senarai. Lajur ketiga dan keempat ialah pemilik dan kumpulan fail, masing-masing. Lajur kelima ialah saiz. Keenam ialah masa terakhir fail diubah suai ('masa terakhir diubah suai' atau mtime). Lajur terakhir ialah nama fail atau direktori (Jika ini adalah pautan, maka selepas ' –> ‘ ialah nama objek yang dirujuknya).

Bagaimana untuk melihat direktori sahaja

Kadangkala terdapat keperluan untuk melihat maklumat hanya tentang direktori, dan bukan tentang semua kandungannya. Pilihan akan membantu dengan tugas ini. '-d', yang memberitahu arahan untuk memaparkan maklumat tentang direktori sahaja. Contoh:

\$ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 4 punca akar 96 Dis 18 18:17 ../kongsi drwxr-xr-x 17 punca akar 576 Dis 24 09:03 /usr /X11R6/bin drwxr-xr-x 2 punca akar 14576 Dis 27 08 :56 /usr/bin

Senarai rekursif dan maklumat inod

Tindakan pilihan '-R' tindakan bertentangan '-d'. Ia membolehkan anda memaparkan maklumat mengenai fail dalam direktori secara rekursif. Kandungan direktori ditunjukkan terlebih dahulu. tingkat atas, kemudian seterusnya kandungan semua subdirektori dan seterusnya. Output arahan ini boleh menjadi agak besar, jadi kami tidak memberikan contoh mengenainya, tetapi anda boleh mencubanya sendiri dengan menaip ‘ ls -R' atau ' ls-RL‘.

Dan akhirnya pilihan '-saya' digunakan untuk mengeluarkan inod bagi setiap objek sistem fail.

\$ ls -i /usr 1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 local 13408 share 8316 distfiles 1517 include 776 man 23779 src 43 doc 1386 info 93892 portage 36737 ssl 70744 gentoo-x86 1585 lib 5132 portage.old 784 tmp

Apakah inod?

Setiap objek sistem fail (fail, direktori ...) mempunyai nombor uniknya sendiri, dipanggil inode(nombor inod). Maklumat ini mungkin kelihatan tidak penting, tetapi memahami fungsi inod akan membantu anda memahami banyak operasi sistem fail. Sebagai contoh, mari kita lihat «.» Dan «..» seperti pautan yang terdapat dalam setiap direktori. Untuk memahami apa itu direktori «..» , ketahui inod bagi direktori /use/local

\$ ls -id /usr/local 5120 /usr/local

Seperti yang kita dapat lihat, inode bagi direktori /usr/local ialah 5120. Sekarang mari kita lihat inode yang ada pada direktori /usr/local/bin/..:

\$ ls -id /usr/local/bin/.. 5120 /usr/local/bin/..

Ternyata inod direktori /usr/local dan /usr/local/bin/.. adalah sama! Ini bermakna dua nama merujuk kepada inode 5120: /usr/local dan /usr/local/bin/.. Iaitu, ini adalah dua nama berbeza untuk direktori yang sama. Setiap inod menunjuk ke lokasi tertentu pada cakera.

Setiap inod boleh mempunyai berbilang nama objek sistem fail yang dikaitkan dengannya. Bilangan fail 'sinonim' (objek sistem fail merujuk kepada satu inod) menunjukkan nombor dalam lajur kedua output arahan ' ls-l‘.

\$ ls -dl /usr/local drwxr-xr-x 8 punca akar 240 Dis 22 20:57 /usr/local

Dalam contoh ini, anda boleh melihat (lajur kedua) bahawa direktori /usr/local dirujuk oleh 8 objek sistem fail yang berbeza. Berikut adalah nama mereka:

/usr/local /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/.. /usr/local/share/.. /usr/local/ src/..

mkdir

Mari kita lihat arahannya mkdir. Ia digunakan untuk membuat direktori baharu. Contoh berikut menunjukkan penciptaan tiga direktori baharu (tic, tac, toe) dalam direktori /tmp

\$ cd /tmp $ mkdir tic tac toe

Perintah lalai mkdir tidak boleh membuat struktur direktori bersarang. Oleh itu, jika anda perlu membuat beberapa direktori bersarang ( menang/der/ful), maka anda perlu memanggil arahan ini tiga kali berturut-turut:

\$ mkdir menang/der/ful mkdir: tidak boleh mencipta direktori "won/der/ful": Tiada fail atau direktori sedemikian \$ mkdir menang \$ mkdir menang/der \$ mkdir menang/der/ful

Anda boleh memudahkan operasi ini dengan menambah pilihan '-p' kepada arahan mkdir. Pilihan ini membolehkan anda membuat struktur direktori bersarang:

\$ mkdir -p mudah/sebagai/pai

Untuk mengetahui lebih lanjut tentang keupayaan utiliti ini, baca bantuan yang dipanggil oleh arahan lelaki mkdir. Bantuan tersedia untuk hampir semua arahan dalam manual ini (contohnya, lelaki ls), kecuali cd, kerana ia dibina ke dalam bash (untuk arahan sedemikian, bantuan dipanggil seperti ini: bantuan cd)

sentuh

Mari kita beralih kepada arahan belajar cp Dan mv, digunakan untuk menyalin, menamakan semula dan memindahkan fail dan direktori. Tetapi sebelum itu, mari buat fail kosong dalam direktori /tmp menggunakan arahan sentuh:

\$ cd /tmp \$ sentuh copyme

Pasukan sentuh mengemas kini masa akses terakhir ke fail (lajur keenam output arahan ls-l) jika ia sudah wujud, atau mencipta fail kosong baharu jika ia belum wujud. Selepas operasi ini, kita sepatutnya mempunyai fail kosong /tmp/copyme.

bergema

Sekarang kita mempunyai fail kosong, mari tulis kepadanya rentetan teks menggunakan arahan bergema, yang mengeluarkan hujah yang dihantar kepadanya peranti standard output (terminal teks dalam kes kami).

\$ gema "fail pertama" fail pertama

Untuk menulis rentetan pada fail kami, kami mengubah hala output arahan kepadanya bergema:

\$ echo "firstfile" > copyme

Tanda > (lebih besar) memberitahu shell untuk mengalihkan output arahan di sebelah kiri ke nama fail di sebelah kanan. Jika fail dengan nama yang sama tidak wujud, ia akan dibuat secara automatik. Dan jika fail sedemikian sudah wujud, maka ia akan ditimpa (semua kandungannya akan dipadamkan sebelum menulis baris kami). Pasukan 'ls -l' akan menunjukkan bahawa saiz fail kami kini 10 bait - sembilan bait diduduki oleh perkataan 'firstfile' dan satu bait ialah aksara suapan baris.

\$ ls -l copyme-rw-r--r-- 1 akar punca 10 Dis 28 14:13 copyme

kucing dan cp

Untuk memaparkan kandungan fail pada terminal, gunakan arahan kucing:

\$ copyme kucing fail pertama

Sekarang kita boleh mula menghuraikan fungsi asas arahan cp. Perintah ini mengambil dua hujah. Yang pertama ialah nama fail yang sedia ada ('copyme'), yang kedua ialah nama salinan baharu yang ingin kita buat ('copyme').

\$ cp copyme copyedme

Kita boleh pastikan itu salinan baru fail mempunyai nombor inod yang berbeza (ini bermakna kami mendapat fail berasingan yang benar-benar baru, dan bukan hanya pautan ke yang lama)

\$ ls -i copyme copyedme 648284 copyme

mv

Sekarang mari kita gunakan arahan itu mv untuk menamakan semula fail ("copyedme" -> "movedme"). Nombor inod selepas operasi ini tidak berubah, tetapi hanya nama fail yang berubah.

\$ mv salin-saya-tergerak-saya \$ ls -saya menggerakkan saya 648284 terharu saya

Nombor inod tidak berubah hanya dengan syarat fail yang dinamakan semula kekal dalam sistem fail di mana ia berada fail asal. Kami akan melihat dengan lebih dekat bagaimana sistem fail disusun dalam bahagian kemudian dalam tutorial ini.

Pasukan mv membolehkan anda bukan sahaja menamakan semula fail, tetapi juga mengalihkannya. Contohnya, untuk memindahkan fail /var/tmp/myfile.txt ke direktori /home/pengguna anda perlu memberikan arahan:

\$ mv /var/tmp/myfile.txt /home/user

Fail akan dialihkan ke direktori rumah pengguna pengguna walaupun ia berada dalam sistem fail yang berbeza (dalam kes ini fail akan disalin ke lokasi baharu dan yang asal akan dipadamkan). Seperti yang mungkin anda duga sekarang, mengalihkan fail ke sistem fail lain mengubah inodnya. Ini kerana setiap sistem fail mempunyai set inod sendiri.

Perlu diingatkan bahawa terdapat kemungkinan bahawa nombor inod baru yang diberikan mungkin sama dengan yang lama, tetapi ia adalah sangat kecil.

Untuk memindahkan beberapa fail pada masa yang sama ke dalam satu direktori, anda perlu menulis:

\$ mv /var/tmp/myfile1.txt /var/tmp/myfile2.txt /home/user \$ mv -t /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt

Jika anda menambah pilihan '-v', laporan mengenai operasi yang dilakukan akan dipaparkan pada skrin:

\$ mv -vt /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt"/var/tmp/myfile1.txt" -> "/home/user/myfile1.txt" "/var/tmp/myfile2.txt" -> "/home/user/myfile2.txt"

Pada kebanyakan sistem pengendalian Linux, bash ialah penterjemah baris arahan lalai. Untuk menentukan penterjemah semasa, masukkan arahan berikut:

$ echo $SHELL
/bin/bash

Contoh ini menggunakanjurubahasa baris arahan bash. Terdapat banyak jurubahasa arahan lain. Untuk mengaktifkan penterjemah lain, anda boleh memasukkan namanya pada baris arahan (ksh, tcsh, csh, sh, bash, dll.).

Kebanyakan sistem pengendalian Linux berciri penuh menyediakan semua penterjemah arahan yang diterangkan di sini. Tetapi pada sistem pengendalian yang lebih kecil, satu atau dua jurubahasa mungkin disediakan.

Menyemak ketersediaan orang yang berminatjurubahasabaris arahan

Cara paling mudah untuk menyemak ketersediaan shell yang diminati adalah dengan memasukkan namanya pada baris arahan. Jika jurubahasa telah bermula, ia tersedia.

Terdapat beberapa sebab untuk memilih cangkerang alternatif.

  • Tabiat bekerja pada sistem Sistem V UNIX (kebanyakannya menggunakan penterjemah ksh secara lalai) atau pada Sun Microsystems dan sistem berasaskan UNIX Berkeley yang lain (yang sering menggunakan csh). Dalam kes ini, penggunaan penterjemah inibaris arahanakan lebih selesa.
  • Keperluan untuk menjalankan skrip yang dicipta untuk shell tertentu.
  • Ciri shell alternatif mungkin lebih disukai. Sebagai contoh, seorang ahli kumpulan pengguna Linux lebih suka menggunakan ksh kerana dia tidak suka cara alias dicipta dalam bash.

Walaupun kebanyakan pengguna lebih suka bekerja dalam satu cangkang, kemahiran yang diperoleh membantu mereka belajar cara bekerja pada orang lain.jurubahasa baris arahan sesekali melihat ke dalam panduan rujukan(contohnya, menggunakan arahan manbash). Kebanyakan menggunakan bash kerana tiada sebab untuk beralih kepada penterjemah lain.

Menggunakan bash dan ch

Nama bash ialah akronim untuk Bourne Again SHell. Singkatan ini menunjukkan bahawa bash mewarisi penterjemah Bourneshell (arahan sh) yang dicipta oleh Steve Bourne dari AT&TBell Labs. Brian Fox dari Free Yayasan Perisian mencipta bash sebagai sebahagian daripada projek GNU. Perkembangan selanjutnya diserahkan kepada Chet Ramey di Case Western Reserve University.

Jurubahasa bash mengandungi ciri yang dibangunkan untuk jurubahasa sh dan ksh pada masa itu versi awal UNIX, serta beberapa ciri penterjemah csh.

Ia boleh dijangka bahawa pada kebanyakan sistem Linux, kecuali untuk yang khusus (contohnya, terbenam atau but daripada pemacu luaran), penterjemah bash digunakan secara lalai. Sistem khusus mungkin memerlukan cangkerang yang lebih kecil, yang membayangkan batasan.

Kebanyakan contoh dalam iniartikeldireka untuk bash.

Jurubahasa bash boleh dijalankan dalam pelbagai mod keserasian, meniru gelagat cengkerang lain. Ia boleh meniru tingkah laku Bourne shell (sh) atau POSK-compliant shell (bash -posix).

Akibatnya, jurubahasa bash lebih berkemungkinan berjaya membaca fail konfigurasi dan menjalankan skrip yang ditulis khusus untuk cangkerang lain.

Semua sistem pengendalian Linux yang disediakan menggunakan penterjemah bash secara lalai, kecuali untuk sistem pengendalian yang dimuatkan dari media boleh tanggal, yang menggunakan penterjemah abu secara lalai.

Menggunakan tcsh (dan penterjemah csh sebelumnya)

Jurubahasa arahan tcsh ialah pelaksanaan sumber terbuka bagi jurubahasa Cshell (csh). Jurubahasa csh telah dicipta oleh Bill Joy dan digunakan secara lalai pada hampir semua sistem UNIX Berkeley (sistem sedemikian diedarkan oleh Sun Microsystems).

Banyak ciri csh, seperti penyuntingan baris arahan dan kaedah pengurusan sejarah perintah, telah dilaksanakan dalam cangkerang tcsh dan cangkerang lain. Sama seperti arahan sh memulakan jurubahasa bash dalam mod keserasian sh, arahan csh memulakan jurubahasa tcsh dalam mod keserasian csh.

Menggunakan penterjemah abu

Jurubahasa ash ialah versi ringan penterjemah Berkeley UNIX sh. Ia tidak mengandungi banyak ciri asas dan tidak menyediakan ciri seperti sejarah arahan.

Jurubahasa ash sangat sesuai untuk digunakan dalam sistem terbenam dengan sumber sistem yang terhad. Pada FedoraCore 4, penterjemah ash ialah susunan magnitud yang lebih kecil daripada penterjemah bash.

Menggunakan zsh

Jurubahasa zsh ialah satu lagi klon jurubahasa sh. Ia mematuhi piawai POSIX (seperti bash), tetapi mempunyai ciri lain, termasuk semakan ejaan dan pendekatan yang berbeza untuk penyuntingan baris arahan. Jurubahasa zsh ialah jurubahasa lalai dalam sistem pengendalian awal. sistem macOS X tetapi masuk sistem moden penterjemah bash digunakan secara lalai.

Proses pengguna yang paling penting ialah shell arahan (ia juga merupakan penterjemah arahan, atau hanya shell). Dialah yang menyediakan interaksi pengguna dengan sistem dalam mod teks, membolehkan anda memasukkan arahan. Ia adalah yang berjalan apabila anda log masuk ke konsol teks dan memberikan anda antara muka baris arahan.

Tidak perlu, terbawa-bawa dengan kemudahan GUI, memandang rendah baris arahan. Pertama, banyak tugas pentadbiran hanya boleh dilakukan dari sana; kedua, baris arahan adalah cara yang paling mudah untuk mengautomasikan prosedur rutin. Perintah dalam Linux ialah segala-galanya yang boleh dilaksanakan: fail boleh laku, arahan shell terbina dalam, alias arahan, fungsi yang ditentukan pengguna, fail skrip (skrip) - urutan perintah yang telah disediakan dalam bentuk teks.

Oleh itu, jurubahasa arahan ialah program yang mempunyai arahan terbina dalam sendiri, persekitaran boleh ubah sendiri (persekitaran), dan juga membolehkan anda melaksanakan arahan luaran yang terdapat dalam sistem.

Shell menerima arahan yang dibekalkan pengguna, memproses hujah mereka jika perlu, menyerahkan arahan untuk pelaksanaan, menerima nilai pulangannya dan melakukan tindakan tertentu berdasarkan nilai tersebut. Di samping itu, shell mempunyai bahasa pengaturcaraan terbina dalam (bahasa arahan) yang membolehkan anda menulis skrip arahan bercabang yang kompleks. Ia adalah bahasa arahan yang membezakan cangkerang yang berbeza antara satu sama lain, dan dari situlah pengguna bermula apabila memilih cangkerang.

Linux ialah OS seperti Unix. Linux pada asalnya dibangunkan oleh Linus Torvalds di Universiti Helsinki (Finland) berdasarkan Minix, sistem UNIX kecil yang dicipta oleh Andry Tanenbaum. Perkembangan awal Linux terutamanya prihatin dengan masalah penukaran tugas mod terlindung 80386. Dan Linus "mula serius mempertimbangkan idea gila tentang cara menjadikan Minix lebih baik daripada dirinya sendiri."

Cangkang arahan pada sistem UNIX sudah wujud, ia adalah "Cangkang Bourne" (Cangkang Bourne atau ringkasnya cangkang). Tidak lama kemudian, sistem UNIX membangunkan cangkang C, yang menggunakan sintaks yang berbeza, agak mengingatkan sintaks bahasa pengaturcaraan C.

Banyak cangkerang telah dibangunkan untuk Linux. Yang utama yang digunakan secara lalai ialah "Bash" dibangunkan pada berasaskan cangkerang dan dipanggil "Cangkang Baru Bourne" (Bourne Again Shell). Oleh itu, Bash ialah evolusi shell lama, menambah banyak ciri berguna yang terdapat sebahagiannya dalam shell C. Oleh kerana Bash boleh dianggap sebagai superset sintaks shell lama, mana-mana program yang ditulis dalam shell Bourne lama yang baik harus berfungsi dalam Bash.

Walau bagaimanapun, perlu diingatkan bahawa Linux bukanlah sistem UNIX, kerana kodnya telah ditulis semula sepenuhnya, pada mulanya oleh Linus, kemudian dengan bantuan ramai pengaturcara dan peminat UNIX dari Internet, mereka yang mempunyai kemahiran dan kebolehan yang mencukupi untuk membangunkan sistem .

Kernel Linux tidak menggunakan kod UNIX atau mana-mana sumber proprietari lain, dan kebanyakannya program Linux dibangunkan di bawah Projek GNU Yayasan Perisian Percuma di Cambridge, Massachusetts. Tetapi pengaturcara dari seluruh dunia turut menyumbang kepadanya.

Berikut ialah cengkerang arahan Linux yang paling biasa:

  • Bourne shell - Bourne shell, standard pada banyak sistem seperti UNIX;
  • bash - Bourne Again shell, "cengkerang Bourne baru" (digunakan secara lalai pada Linux);
  • csh - C shell, C shell: sintaks bahasa arahannya adalah serupa dengan bahasa C;
  • tcsh - cangkang C kecil, cangkang C minimum;
  • pdksh - domain awam Korn shell, awam Korn shell;
  • sash - cangkerang yang berdiri sendiri, boleh digunakan apabila perpustakaan perisian tidak tersedia.

Senarai semua program shell yang dipasang pada sistem terdapat dalam fail /etc/shells.

Cangkang awal untuk setiap pengguna, yang dilancarkan untuknya apabila dia log masuk ke sistem, dinyatakan dalam fail /etc/passwd. Ia mungkin tidak semestinya bash. Pentadbir boleh pengguna tertentu melarang log masuk dengan menyatakan /sbin/nologin sebagai "shell" yang dimuatkan selepas pendaftaran. Atau tentukan skrip yang direka khas yang membolehkan anda melihat log toga (log), sebagai contoh.

Untuk mengedit fail /etc/passwd di Linux, ada pasukan khas vipw , yang menyemak sama ada pengeditan adalah betul (arahan hanya tersedia untuk pentadbir).

Pada masa hadapan, apabila bekerja dalam cangkerang lalai, anda boleh menukar cangkerang semasa kepada mana-mana cangkerang yang dipasang (lebih tepat, masukkan subkulit). Untuk keluar darinya dan kembali ke shell induk, taip arahan keluar. Dalam shell awal, arahan ini menamatkan sesi.

Dalam mana-mana shell, anda boleh menjalankan skrip arahan yang terdiri daripada arahan daripada shell lain: baris pertama setiap skrip menentukan shell mana ia harus dijalankan, dan shell semasa memulakan yang ditentukan sebagai proses anak untuknya.

Seperti yang saya katakan, secara lalai pengguna baru diberikan shell bash. Ia adalah cangkerang hebat yang merangkumi banyak peningkatan dan ciri terbaik daripada cangkerang lain, dan saya tidak mengesyorkan menukarnya. Pada masa hadapan, apabila saya menyebut "shell", saya akan maksudkan bash.

2. Penghuraian baris perintah, kegemaran bash

Jurubahasa, setelah menerima baris arahan, melakukan beberapa transformasi padanya, menggunakan fungsi yang berkuasa untuk ini, iaitu:

  1. Mengembangkan alias untuk jalan pintas arahan yang paling biasa digunakan.
  2. Mengembangkan kad bebas atau kad bebas (*, ?, [, ], ~, (, )) untuk mencari fail mengikut corak nama.
  3. Menggantikan pembolehubah yang boleh digunakan oleh shell.
  4. Mengubah hala keluaran satu arahan sebagai input kepada arahan lain menggunakan paip.
  5. Melakukan penggabungan perintah.
  6. Melaksanakan arahan jika ia adalah arahan terbina dalam jurubahasa, atau memulakan proses jika arahan itu luaran.
  7. Ubah hala input standard/kesimpulan.

Tiga fungsi terakhir memerlukan penggunaan operator khas. Mari kita lihat semua ciri ini.

2.1. Alias

Alias ​​perintah direka bentuk untuk menyediakan penaipan perintah shell yang lebih cekap. Dengan menggunakan alias, perintah hampir semua kerumitan boleh digantikan dengan rentetan sewenang-wenangnya. Untuk melihat senarai alias dan, jika perlu, tambahkan alias baharu padanya, gunakan arahan alias.

Sebagai contoh:

$ export HELLO="Hello from environment!" # ruang mesti dilepaskan dengan petikan

Pembolehubah persekitaran

Persekitaran ialah satu set pembolehubah yang nilainya boleh mengubah tingkah laku shell.

Apabila shell bermula, ia menyediakan beberapa pembolehubah persekitaran. Nama mereka standard. Program dan skrip boleh menanyakan nilai mereka dan bukannya cuba memikirkan maklumat yang mereka perlukan sendiri.

Oleh itu, shell menentukan pembolehubah persekitaran yang digunakan dalam sesi semasa. Setiap arahan baharu yang dimasukkan sebenarnya dilancarkan sebagai proses anak proses induk, yang dalam kes ini ialah shell bash. Pembolehubah persekitaran adalah berbeza topik berubah-ubah bahawa ia tersedia untuk kedua-dua proses ibu bapa dan anak. Pengesanan automatik pembolehubah persekitaran berlaku selepas pengesahan pengguna dalam sistem. Program log masuk, sekiranya proses pengesahan berjaya diselesaikan, berdasarkan fail /etc/passwd menentukan penterjemah arahan yang akan digunakan dalam sesi pengguna ini. Setelah shell ditakrifkan, sesi dikonfigurasikan mengikut fail konfigurasi yang ditunjukkan di bawah.

Fail konfigurasiPenerangan
/etc/profile

Mentakrifkan pembolehubah persekitaran untuk semua pengguna sistem. Fail ini dilaksanakan pada log masuk pertama dan mengandungi pembolehubah persekitaran utama, seperti pembolehubah carian lokasi arahan PATH, pembolehubah nama hos HOSTNAME dan pembolehubah saiz sejarah arahan HISTSIZE. Selain itu, fail ini menjana pembolehubah persekitaran tambahan daripada fail konfigurasi yang terdapat dalam direktori /etc/profile.d.

/etc/bashrc

Dilaksanakan untuk semua pengguna, setiap kali bash shell dimulakan. Fail ini mentakrifkan nilai pembolehubah PS1, serta alias perintah tambahan (alias). Alias ​​ialah nama yang diberikan secara sewenang-wenangnya bagi perintah atau urutan perintah yang membolehkan anda melaksanakan urutan perintah yang kompleks tanpa menaipnya dari papan kekunci, tetapi memanggilnya melalui panggilan ke alias yang sepadan. Pembolehubah yang ditakrifkan dalam fail ini boleh ditindih oleh fail pengguna yang serupa -/.bashrc yang mempunyai keutamaan yang lebih tinggi.

-/.bashprofile

Digunakan sebagai fail yang mengandungi tetapan pengguna individu. Berjalan hanya sekali apabila pengguna log masuk. Selain itu, fail ini melancarkan fail -/.bashrc

~/.bashrc

Fail ini mengandungi pembolehubah persekitaran dan alias dipasang pengguna. Ia dilaksanakan setiap kali pengguna log masuk atau membuka sesi bash baharu. Fail ini paling sesuai untuk menentukan pembolehubah tersuai dan alias.

~/.bash_logout

Fail ini dilaksanakan setiap kali anda log keluar atau keluar dari sesi bash terakhir. Secara lalai, fail ini mengandungi arahan untuk mengosongkan skrin terminal.

/etc/inputrc

Fail ini mengandungi perihalan tafsiran pelbagai kombinasi kekunci, dan juga mengandungi gabungan kekunci khas, menekan yang menyebabkan pelaksanaan perintah yang ditentukan.

Pembolehubah persekitaran ialah cara yang agak mudah untuk menyimpan maklumat yang sering digunakan dalam sesi semasa dengan sistem. Jika perlu, pengguna boleh mencipta hampir mana-mana pembolehubah persekitaran (cuba untuk tidak menukar nilai pembolehubah persekitaran yang sudah digunakan) dan membaca nilainya sepanjang tempoh shell. Untuk mencipta pembolehubah persekitaran sementara, masukkan namanya dan tetapkan nilai yang sesuai. Sebagai contoh,

eksport AB=/usr/anjing/berjangkit/pembawa cincin/mengisar

DALAM contoh ini pembolehubah persekitaran sementara AB ditetapkan kepada laluan ke direktori yang terletak cukup "dalam" dalam hierarki direktori sistem fail. Perintah eksport menentukan bahawa nilai pembolehubah AB harus dieksport ke shell untuk menjadikannya tersedia kepada shell lain yang mungkin dibuka dalam sesi sistem semasa. Direktori di atas kini boleh diakses dengan melaksanakan cd $AB

Satu-satunya kelemahan pembolehubah persekitaran sementara ialah ia dimusnahkan secara automatik apabila sesi semasa dengan sistem tamat. Untuk mencipta pembolehubah persekitaran kekal (berbanding dengan sementara), ia mesti ditambahkan pada fail konfigurasi shell .bashrc.

Anda mesti menjadi akar untuk mengubah suai fail konfigurasi /etc/profile dan /etc/bashrc.

Pengguna biasa boleh mengubah suai fail konfigurasi ~/.bash_profile, ~/.bashrc dan ~/.bash_Iogout yang terdapat dalam direktori rumah mereka. Fail konfigurasi ini boleh termasuk menetapkan pembolehubahnya dalam persekitaran menggunakan arahan eksport dan menggunakannya dalam sebarang sesi.

Salah satu pembolehubah persekitaran yang paling kerap diubah ialah pembolehubah PATH. Anda juga boleh mengatasi atau menambah pembolehubah persekitaran PATH dalam fail konfigurasi~/.bashrc.

dalam contoh ini, pembolehubah PATH akan mengandungi nilai semasanya serta direktori rumah sebagai laluan carian untuk fail boleh laku.

Untuk membolehkan perubahan ini digunakan dalam persekitaran shell semasa, anda mesti menjalankan arahan sumber .bashrc

Pembolehubah persekitaran shell yang paling biasa ialah:

  • BASH - Mengandungi laluan penuh Kepada arahan bash(biasanya nilai pembolehubah ini ialah /bin/bash).
  • BASH_VERSION - nombor versi bash.
  • DIRSTACK - Tatasusunan yang mengandungi nilai timbunan direktori semasa.
  • EDITOR ialah editor teks lalai.
  • EUID - ID berkesan berangka pengguna semasa.
  • FUNCNAME - nama fungsi semasa dalam skrip.
  • GROUPS - Tatasusunan yang mengandungi senarai kumpulan yang dimiliki oleh pengguna semasa.
  • HISTFILE - Lokasi fail sejarah arahan. Biasanya, sejarah arahan disimpan dalam fail ~/.bash_history.
  • HISTFILESIZE - Bilangan baris arahan yang boleh disimpan dalam fail sejarah. Selepas nombor ini dicapai, baris arahan baharu dimasukkan ke dalam sejarah dengan memadamkan baris arahan terawal. Senarai lalai bagi arahan yang digunakan baru-baru ini ialah 1000 baris.
  • HOME - Direktori rumah pengguna.
  • HOSTNAME - Nama komputer ini(nod).
  • HOSTTYPE - Jenis komputer.
  • LANG - Bahasa lalai semasa.
  • LC_CTYPE ialah pembolehubah dalaman yang menentukan pengekodan aksara.
  • MAIL - Lokasi Fail Peti Mel E-mel pengguna. Biasanya, ini ialah fail yang terletak dalam direktori /var/spool/mail, yang namanya sama dengan nama log masuk pengguna.
  • MAILCHECK - Selang beberapa minit antara semakan mel.
  • OLDPWD - Direktori yang terkini sebelum direktori terakhir ditukar.
  • OSTYPE - Sistem pengendalian semasa.
  • PATH - Senarai direktori yang dipisahkan bertindih untuk mencari fail boleh laku. Urutan nama direktori diperiksa adalah kritikal. Apabila melaksanakan arahan, direktori yang disenaraikan dalam pembolehubah ini disemak secara berurutan dari kiri ke kanan. Oleh itu, melaksanakan arahan foo yang terletak dalam direktori /bin dan /usr/bin akan melaksanakan arahan yang terdapat dalam direktori /bin. Untuk melaksanakan perintah foo yang terletak dalam direktori /usr/bin dalam situasi yang sama, anda mesti sama ada menentukan laluan penuh kepada arahan ini, atau menukar susunan nama direktori dalam pembolehubah persekitaran PATH. Direktori carian semasa mesti dinyatakan secara eksplisit ("."), shell tidak mencari direktori semasa secara lalai. Mencari program boleh laku dalam direktori semasa berpotensi berbahaya kerana kemungkinan pelaksanaan tidak disengajakan program berbahaya, jadi pembolehubah PATH biasanya dimulakan tanpa "." Untuk menambah laluan kepada arahan atau skrip shell anda sendiri pada pembolehubah PATH anda, letakkannya dalam subdirektori /bin direktori rumah anda, yang akan ditambahkan secara automatik pada pembolehubah PATH. Tidak semua arahan boleh laku terletak dalam direktori yang disenaraikan dalam pembolehubah persekitaran PATH. Sesetengah arahan dibina terus ke dalam shell. Perintah lain boleh ditakrifkan semula dengan alias, membolehkan anda menggantikan arahan dengan parameter hampir semua kerumitan (dari segi sintaks) dengan satu nama mudah. Di samping itu, adalah mungkin untuk mencipta fungsi yang menyimpan keseluruhan urutan arahan.
  • PPID- Nombor pengenalan proses yang sepadan dengan arahan yang melancarkan shell semasa (contohnya, proses yang melahirkan shell).
  • PS1, PS2, PS3, PS4 - Pembolehubah yang menentukan penampilan gesaan shell.

    Pembolehubah PS1 dan PS2 menetapkan gesaan shell primer dan sekunder.

    Gesaan kedua (PS2) muncul jika anda mengklik Masukkan kunci, tanpa melengkapkan input arahan secara sintaksis.

    Pembolehubah ini mengandungi gesaan kecil yang berlaku apabila pengeditan teks berbilang baris atau entri arahan tidak lengkap. Secara lalai, ia dilambangkan sebagai >.

    PS3. Pembolehubah ini mengandungi kehadiran segera dalam pilih pernyataan, digunakan untuk mengatur menu konsol interaktif. Secara lalai, gesaan PS3 dalam pernyataan pilih ialah #?.

    PS4. Pembolehubah ini digunakan terutamanya apabila menyahpepijat skrip shell dan secara lalai mengandungi nilai rentetan "++".

    Sebagai contoh, menjalankan perintah get maklumat DNS:

    #nslookup>

  • PWD - Direktori kerja semasa pengguna. Nilai ini berubah setiap kali anda menukar direktori menggunakan arahan cd.
  • SECONDS - masa berjalan skrip (dalam saat).
  • SHELL - Jurubahasa arahan semasa.
  • SHELLOPTS - Senarai pilihan penterjemah yang disertakan.
  • SHLVL - Bilangan pelancaran salinan baharu penterjemah arahan.
  • UID - ID berangka pengguna semasa.
  • PENGGUNA - Nama pengguna semasa.
  • $# - Jumlah bilangan parameter yang dihantar ke skrip.
  • $* - Semua hujah kini dihantar ke skrip (dipaparkan pada rentetan).
  • [e-mel dilindungi]- Sama seperti yang sebelumnya, tetapi parameter dipaparkan dalam lajur.
  • $! - PID proses terakhir berjalan di latar belakang.
  • $$ - PID skrip itu sendiri.

Untuk melihat nilai semua pembolehubah dalam sesi semasa, kedua-dua yang anda tentukan dan pembolehubah persekitaran, keluarkan arahan set tanpa pilihan atau env printenv .

Anda boleh mengalih keluar pembolehubah dengan arahan yang tidak ditetapkan.

2.4. Penggantian dan organisasi interaksi antara arahan

Penggantian Pembolehubah Persekitaran sesi semasa dengan sistem boleh dilakukan dengan menggunakan metacharacter tanda dolar ($). Akibatnya, shell secara automatik menggantikan nama pembolehubah dengan nilainya. Sebagai contoh,

Menggantikan hasil pengiraan ungkapan aritmetik

Terdapat dua bentuk sintaksis untuk menggantikan hasil penilaian ungkapan aritmetik: $[ungkapan] dan $((ungkapan)). Sebagai contoh,

echo "Saya berumur $tahun."

Penggantian arahan

Penggantian arahan membolehkan anda menggunakan output satu arahan pada baris arahan yang mengandungi arahan lain. Dua format penggantian alternatif boleh digunakan: $(command) atau `command` (single backquotes). Sebagai contoh,

Memperluas watak tilde

Aksara tilde (~) membolehkan anda memasukkan nama direktori dengan cepat.

~ Nama direktori rumah pengguna ~/subdirektori Nama salah satu subdirektori dalam direktori rumah nama pengguna ~+ Nama direktori semasa ~- Nama direktori sebelumnya

Membuka baju kurung kerinting

Menggunakan pendakap kerinting, anda boleh memasukkan satu arahan dan bukannya beberapa arahan daripada jenis yang sama. Tanda kurung mesti mengandungi senarai, unsur-unsurnya mesti dipisahkan dengan koma. Jurubahasa membaca elemen satu demi satu dan membentuk arahan berasingan dengan setiap elemen, yang kemudiannya dilaksanakan. Sebagai contoh, arahan

perbelanjaan mkdir/(Jan,Feb,Mac) bersamaan dengan perbelanjaan mkdir/perbelanjaan mkdir Jan/perbelanjaan mkdir Feb/Mac

Saluran

Metacharacter paip (|) menunjukkan keperluan untuk mengatur interaksi antara arahan dengan menggunakan hasil pelaksanaan (output) arahan lain sebagai input (input) kepada arahan. Dengan kata lain, dengan bantuan saluran (saluran paip), hasil arahan pertama boleh dihantar sebagai input kepada arahan kedua. Sebagai contoh,

cat /etc/passwd | menyusun | kepala-3

Urutan dan kumpulan arahan

Menggunakan urutan dan kumpulan arahan membolehkan anda memasukkan berbilang arahan pada satu baris.

command1;command2 Jalankan arahan 1 dahulu, kemudian perintah 2 (command1;command2) Jalankan salinan berasingan penterjemah untuk melaksanakan perintah 1 dan 2 secara berurutan ( command1; command2 ) Laksanakan perintah 1 dan 2 secara berurutan dalam interpreter command1 && command2 Jalankan arahan 2 hanya jika perintah 1 command1 || perintah2 Jalankan arahan 2 hanya jika arahan 1 gagal

Hasil daripada pelaksanaan mana-mana arahan (iaitu, hasil penamatan proses yang sepadan) ialah kod keluar. Penyiapan yang berjaya mempunyai kod 0, yang tidak berjaya mempunyai kod 1. Adakah nilai kod penyiapan diberikan kepada pembolehubah yang dipratentukan? (tanda soal). Contohnya echo $?

Melaksanakan semula arahan

Cangkang mempunyai kemudahan untuk memanggil arahan sebelumnya dan mengeditnya. Perintah shell sejarah (sejarah) ialah senarai arahan yang digunakan sebelum ini. Senarai ini boleh dilihat menggunakan arahan sejarah.

Selepas anda memasukkan baris arahan, shell meletakkannya dalam sejarah arahan. Senarai arahan yang digunakan sebelum ini disimpan dalam fail, yang membolehkan anda memanggil mana-mana baris arahan yang dikehendaki daripadanya pada bila-bila masa untuk pelaksanaan semula. Selepas memanggil baris arahan sekali lagi, ia boleh diedit. Sejarah arahan disimpan dalam fail .bash_history, yang terletak dalam direktori rumah pengguna. Secara lalai, shell dapat "mengingat" sehingga 1000 baris arahan.

Untuk melihat senarai arahan yang digunakan sebelum ini, jalankan arahan sejarah. Ia boleh digunakan sama ada tanpa parameter atau dengan parameter untuk menentukan bilangan arahan untuk dipaparkan. Setiap baris arahan mempunyai nombor sendiri dalam sejarah arahan.

Sintaks pengembangan sejarah: !n Jalankan arahan dengan nombor yang diberikan!! Jalankan arahan sebelumnya!rentetan Jalankan arahan terkini bermula dengan rentetan!?rentetan yang diberikan? Jalankan arahan terkini yang mengandungi rentetan yang diberikan

Daripada melaksanakan secara langsung baris arahan yang terkandung dalam sejarah arahan, ia boleh dipanggil untuk pengeditan kemudian. Gunakan kekunci kursor anak panah atas dan anak panah ke bawah untuk melangkah melalui sejarah arahan dan pilih baris arahan yang dikehendaki.

3. Arahan bash terbina dalam

Senarai arahan terbina dalam kerang bash boleh didapati daripada arahan bantuan atau ditemui pada halaman manual di bawah bahagian SHELL BUILTIN COMMANDS.

Berikut ialah beberapa arahan terbina dalam yang berguna:

  • echo [arguments] - Output argumen ke skrin.
  • enable - Menyebabkan shell melaksanakan executable dengan nama yang sama dan bukannya arahan terbina. Berguna jika anda mempunyai skrip anda sendiri bernama seperti echo.
  • eval [argumen] - Membina arahan dengan cepat, daripada hujah yang ditentukan, dan menghantarnya untuk pelaksanaan.
  • biarkan - Penilaian ungkapan.
  • - Baca dan laksanakan arahan yang terkandung dalam fail. Digunakan untuk menentukan pembolehubah pengguna. dan fungsi.
  • nama asas - Menyerlahkan nama tempatan.
  • expr - Penilaian ekspresi.
  • baca - Masukkan nilai pembolehubah.
  • shift - Anjakan senarai parameter.
  • ujian - Memeriksa keadaan.
Perintah terbina dalam lain berfungsi sebagai arahan untuk bahasa arahan bash.

Institut Teknologi Elektronik Negeri Moscow

(Universiti Teknikal)

Jabatan Elektronik Bersepadu dan Sistem Mikro

BENGKEL MAKMAL

DENGAN KURSUS:

SISTEM OPERASILinux

Disusun oleh: penolong jabatan. IEMS Kozlov A.V.

Moscow, 2007

Makmal ini bertujuan terutamanya untuk pelajar Sarjana Kejuruteraan dan Teknologi program pengajian Synopsys tahun pertama ke arah 210100.68, untuk menguasai sistem pengendalian Red Hat Enterprise Linux (RHEL) 4.0. Ia juga bertujuan untuk pelajar FreeScale dan semua pengguna dengan latar belakang Linux yang baru atau tiada yang ingin mempelajari persekitaran arahan Linux dan aplikasi terasnya yang pengguna perlukan untuk bekerja dengan sistem reka bentuk bantuan komputer.

Bengkel ini terdiri daripada lapan kerja makmal yang membolehkan pengguna menguasai arahan penterjemah arahan dengan berkesan, serta secara beransur-ansur mempelajari cara menulis fail - skrip Shell, Gawk, Perl dan Tcl. Setiap kerja makmal merangkumi bahagian berikut: tajuk, tugas dan tujuan kerja; maklumat teori dengan soalan kawalan; contoh kerja makmal; prosedur untuk melaksanakan kerja makmal; tugasan makmal dan borang laporan kerja. Sintaks untuk menulis arahan dalam shell, bersama-sama dengan pilihan, parameter, tindakan, ungkapan dan laluan ke objek, direka bentuk untuk persekitaran arahan BASH. Senarai rujukan disediakan di penghujung bengkel makmal.

INSTITUT KEJURUTERAAN ELEKTRONIK NEGERI MOSCOW (UNIVERSITI TEKNIKAL)

MAKMAL #1

DALAM KURSUS "LINUX OPERATING SYSTEM"

Mempelajari arahan bash shell pada linux

PENERANGAN DIBUAT OLEH:

A. V. KOZLOV

MOSCOW 2007

Makmal #1 Mempelajari arahan shell bash dalam OS Linux

Matlamat kerja : berdasarkan penterjemah arahan BASH untuk menguasai kemahiran bekerja dengan arahan dalam sistem pengendalian Red Hat Enterprise Linux 4.0.

Waktu bekerja - 4 jam

Maklumat teori

sistem operasi linux pada asalnya dibangunkan sebagai platform percuma, fleksibel, pelbagai fungsi, berbilang pengguna, berprestasi tinggi yang direka untuk melayani dan menyelesaikan masalah saintis di seluruh dunia. Oleh kerana "orientasi saintifik", platform sedemikian pada mulanya tidak mempunyai antara muka grafik yang diperluas, yang digunakan secara meluas dalam menyelesaikan tugas rumah tangga - permainan komputer, Internet, program interaktif untuk komunikasi pengguna, serta dalam menyelesaikan masalah pejabat - bekerja dengan sistem pangkalan data, merancang graf dan histogram. Selalunya, kerja saintis dengan sistem pengendalian Linux dikurangkan hanya kepada interaksi biasa pengguna (seseorang yang bekerja pada komputer) dengan konsol (tetingkap terminal pada skrin monitor dengan maklumat teks). Untuk memahami arahan yang dimasukkan oleh pengguna dalam Linux, jurubahasa arahan telah dibangunkan, yang merupakan penterjemah perintah yang boleh difahami oleh manusia kepada isyarat kawalan yang boleh difahami oleh kernel sistem pengendalian. Tugas utama sistem pengendalian adalah untuk mengantara penghantaran arahan daripada seseorang ke komputer. Dan, walaupun pada hakikatnya hari ini sistem pengendalian Linux digunakan di mana-mana bukan sahaja di institut, pusat reka bentuk, pusat komputer, tetapi juga untuk tujuan rumah dan pejabat, konsol (tingkap terminal) masih digunakan secara meluas, dan nampaknya lebih banyak lagi. lebih mudah daripada menggunakan tetikus dan ikon (ikon dalam Linux) dalam persekitaran grafik.

jurubahasa arahan ialah antara muka interaktif rentetan dengan gesaan baris arahan antara pengguna dan sistem pengendalian. Pengguna memasukkan arahan pada baris arahan, jurubahasa arahan "menerima" mereka dan menghantarnya sebagai arahan kepada sistem operasi untuk pelaksanaan. Jurubahasa arahan membolehkan anda bukan sahaja untuk memasukkan arahan, tetapi juga untuk mengubah hala input dan output data baris arahan, serta melaksanakan operasi dalam latar belakang, membolehkan pengguna melakukan tugas lain pada masa yang sama.

Banyak shell telah dibangunkan untuk Linux: shell Bourne Again (BASH), shell Domain Awam (PDKSH), penterjemah TCSH dan Z-shell. Walaupun BASH ialah penterjemah lalai, mana-mana persekitaran lain boleh digunakan. Untuk kemudahan bekerja dalam mod harian, hanya satu jurubahasa arahan sudah memadai. Red Hal Linux merangkumi semua cengkerang utama, tetapi cangkerang BASH dipasang dan digunakan secara lalai. Ini bermakna sistem pengendalian ini menggunakan BASH untuk operasi baris arahan, melainkan dinyatakan sebaliknya.

Barisan arahan. Antara muka perintah rentetan linux terdiri daripada satu baris di mana arahan dengan pilihan dan parameter dimasukkan. Dalam shell BASH, permulaan baris arahan biasanya ditandakan jemputan sebagai tanda dolar ($); cangkerang lain pada sistem Linux mungkin menggunakan bentuk gesaan yang berbeza. Selepas gesaan, pengguna boleh memasukkan sama ada satu arahan atau arahan dengan pilihan dan parameter. Jika pengguna tidak mempunyai saiz arahan arahan yang mencukupi, maka adalah mungkin untuk mengehadkannya dengan aksara "/". Perintah ditaip dari papan kekunci, dan input dilakukan menggunakan kekunci. Sebagai contoh, untuk output tarikh sistem dan masa sistem, pengguna boleh menggunakan arahan Tarikh .

$ tarikh

Jum 8 Jun 15:42:35 MSD 2007

Atau, sebagai contoh, untuk memaparkan kalendar dengan bulan semasa, gunakan arahan cal.

$cal

Jun 2007

Su Mo Tu We Th Fr Sa

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

Antara muka shell utama ialah antara muka baris arahan yang mentafsir perintah yang dimasukkan dan menghantarnya ke sistem. Perintah yang dimasukkan pada baris arahan mesti mengikut peraturan sintaks tertentu. Peraturan am untuk memasukkan arahan ialah perkataan pertama yang ditaip pada baris arahan mestilah nama arahan; perkataan berikut adalah pilihan dan parameter arahan. Setiap perkataan pada baris arahan dipisahkan daripada perkataan lain oleh satu atau lebih ruang atau tab.

Pilihan - ialah kod tunggal atau berbilang huruf yang didahului sempang yang mengubah suai jenis tindakan yang dilakukan oleh arahan. Sebagai contoh arahan dengan pilihan, berikut ialah arahannya ls . Apabila digunakan tanpa pilihan, arahan ini menyenaraikan semua fail dan direktori yang terkandung dalam direktori semasa. Selain daripada nama fail dengan dan tanpa sambungan, tiada apa-apa lagi dalam senarai ini. Sebagai contoh, apabila memasukkan arahan ls dengan pilihan - l pasukan ls menghasilkan output maklumat baris demi baris untuk setiap fail, iaitu saiz, tarikh dan masa pengubahsuaian terakhir. Dalam contoh berikut, pengguna memasukkan arahan ls dengan pilihan - l. Tanda sempang sebelum pilihan diperlukan. Beginilah cara sistem Linux membezakan pilihan daripada parameter.

$ ls -l

jumlah 28

Pilihan -a membolehkan anda memaparkan semua fail dalam direktori semasa, termasuk yang dipanggil fail tersembunyi. Fail konfigurasi sering disembunyikan. Nama fail tersembunyi sentiasa bermula dengan titik, jadi ia sering dipanggil dipahatfail. Dalam kebanyakan kes, pilihan digabungkan. Dalam kes ini, satu sempang biasa diletakkan sebelum kumpulan pilihan. Sebagai contoh, pilihan -al memberikan maklumat tentang semua fail yang terkandung dalam direktori semasa, termasuk fail tersembunyi. Fail ttt baharu dipaparkan.

$ ls -al

jumlah 40

Parameter ialah perkataan yang dimasukkan pada baris arahan selepas pilihan. Perintah fail biasanya menggunakan nama fail sebagai parameter. Contohnya, jika anda hanya mahukan maklumat tentang satu fail gauss.plx, nyatakan namanya selepas pilihan -l:

$ ls -l gauss.plx

Kerja pengguna bermula dalam persekitaran shell BASH, yang dimuatkan secara lalai. Ia mengandungi ciri penyuntingan baris arahan khas yang boleh menjadi sangat berguna apabila mempelajari OS Linux. Sebelum melaksanakan arahan, ia boleh diperbetulkan dengan menggerakkan kursor pada baris arahan dan memasukkan atau memadam aksara. Ini amat berguna apabila bekerja dengan arahan yang sangat kompleks. Operasi penyuntingan akan membantu membetulkan kesilapan semasa menaip arahan. Menggunakan kekunci |up| anda boleh mengeluarkan arahan yang baru sahaja dilaksanakan. Anda kemudian boleh menjalankan perintah itu semula atau mengeditnya untuk menjalankan perintah yang diubah suai. Ciri ini sangat mudah apabila mengulangi beberapa operasi berkali-kali, contohnya, semasa mengedit satu dan fail yang sama.

Tujuan penterjemah arahan adalah untuk bekerja dengan fail: mencipta, menyalin, menamakan semula, memindahkan, memadam dan mengubah suai data. Walaupun pengguna tidak bekerja secara langsung dengan konsol, tetapi menggunakan aplikasi grafik, operasi fail ini berlaku secara bebas daripadanya.

Buat fail dan direktori. Di Linux, fail dan direktori ialah dua jenis data, jadi ia dicipta menggunakan pasukan yang berbeza. Untuk membuat direktori (direktori, folder), arahan mkdir dikhaskan dalam Linux ("buat direktori" - buat direktori) digunakan. Dalam contoh berikut, kami akan mencipta direktori baharu dalam direktori semasa. Untuk melakukan ini, gunakan arahan mkdir dan, dipisahkan oleh ruang, nama direktori baharu.

$ mkdir baru

Direktori telah dibuat. Walau bagaimanapun, kadangkala ia diperlukan untuk mencipta keseluruhan struktur bersarang, apabila perlu ada satu lagi di dalam folder yang telah dibuat, dan satu lagi di dalamnya, dan seterusnya. Untuk tujuan ini, arahan mkdir menggunakan pilihan bersarang -p. Contoh berikut mencipta subfolder dengan satu arahan: folder pertama 1, dalam folder 2, dan dalam folder 3.

$ mkdir -p 1/2/3

Anda boleh mencipta fail menggunakan arahan, serta menggunakan editor teks Linux terbina dalam dan luaran, seperti kedit, nedit, gedit dan sebagainya. Walau bagaimanapun, editor yang disenaraikan memerlukan kerja cangkerang grafik, dan oleh itu kerja sistem grafik. Dalam ketiadaannya, anda boleh, sebagai contoh, menggunakan editor teks VIM atau analog yang tidak memerlukan pengendalian sistem grafik. Anda juga boleh mencipta fail menggunakan pengurus fail berasaskan teks seperti Midnight Commander (mc command). Pengguna (pereka bentuk) selalunya perlu fail teks simpan maklumat teks yang mengiringi proses pengiraan litar bersepadu atau, sebagai contoh, parameter elektrofizik peranti semikonduktor simulasi. Dan juga diperlukan untuk memproses (memadam, menambah, mengisih, membahagi) data yang diterima. Tindakan sedemikian juga dijalankan menggunakan arahan Linux. Salah satu arahan paling mudah untuk mencipta fail teks ialah arahan kucing.

Arahan kucing tidak mempunyai antara muka sendiri, jadi selepas memasukkan arahan kucing dengan simbol ubah hala (lihat di bawah) dan nama fail baharu, anda boleh segera menulis maklumat teks dengan bergerak dari baris ke baris menggunakan kekunci Enter. Keluar dari editor kucing (penapis) dengan menekan Ctrl-D. Berikut ialah contoh mencipta fail menggunakan arahan cat.

$ kucing > baru _ fail

Melihat fail yang diterima dijalankan menggunakan arahan kucing dan nama fail yang dipisahkan oleh ruang.

$ kucing baru _ fail

Atau, sebagai contoh, menyimpan maklumat teks daripada konsol semasa menjalankan arahan ls dengan pilihan -a untuk memfailkan r, anda boleh menggunakan fungsi pengalihan data (lihat di bawah) dan arahan tee dengan pilihan -a.

$ ls -l | tee -a r

Menyalin fail dan direktori. Menyalin fail dan direktori dijalankan menggunakan perintah cp, selepas itu objek penyalinan ditunjukkan dengan laluan relatif atau mutlak, dipisahkan oleh ruang, dan destinasi baharu salinan objek ini juga dipisahkan oleh ruang. Contoh berikut menyalin fail gauss.plx daripada direktori semasa ke subdirektori 1, yang terdapat dalam direktori semasa.

$ cp Gauss . plx 1

Jika anda mempunyai hak akses kepada objek Linux (kerja makmal #2), anda juga boleh menyalin fail ini kepada pengguna Alex, yang direktori kerjanya mempunyai laluan mutlak berikut /home/alex , menggunakan arahan berikut.

$ cp Gauss . plx / rumah / Alex

Jika fail dengan nama yang sama sudah wujud di destinasi apabila fail disalin, ia akan ditimpa. Ini boleh mengakibatkan kehilangan data yang diperlukan. Untuk mengelakkan ini, gunakan arahan cp dengan pilihan -i, dalam kes ini Linux akan bertanya kepada pengguna setiap kali jika dia benar-benar mahu menulis ganti fail. Pandangan baharu bagi arahan terakhir kelihatan seperti ini.

$ cp -i gauss.plx /home/alex

Direktori disalin dengan cara yang sama seperti fail. Walau bagaimanapun, apabila menyalin direktori dengan fail dan subdirektori, pilihan -R digunakan sebagai sebahagian daripada arahan cp. Berada dalam direktori /home/antonk/111, mari salin direktori laba2 ke tahap yang lebih tinggi, i.e. ke direktori /home/antonk. Dua titik menunjukkan tahap hierarki satu langkah lebih tinggi.

$ cp - R laba 2 ..

Namakan semula dan alihkan fail dan direktori. Menamakan semula fail dan direktori dijalankan menggunakan perintah mv, selepas itu objek penamaan semula ditunjukkan dipisahkan oleh ruang dan nama baharu objek yang dipisahkan oleh ruang lain. Menamakan semula direktori adalah sama seperti menamakan semula fail. Mari namakan semula fail gauss.plx kepada fail baharu bernama gauss2.plx . Jika fail dengan nama yang sama dengan nama baharu fail yang dinamakan semula sudah wujud dalam direktori ini, ia akan ditimpa oleh kandungan fail yang dinamakan semula. Untuk mengelakkan ini, gunakan juga pilihan -i. Dengan cara ini, dalam Linux, penggunaan sambungan tidak diperlukan. Ia hanya digunakan untuk mengaitkan fail dan program boleh laku.

$ mv -i gauss.plx gauss2.plx

Memadam fail dan direktori. Memadam fail dan direktori dalam Linux dilakukan menggunakan arahan rm, di mana nama fail yang dipisahkan dengan ruang untuk dipadam ditentukan. !!! Berhati-hati apabila bekerja dengan arahan ini, anda boleh memadamkan data yang diperlukan. Sama seperti arahan cp, gunakan pilihan -i dengan arahan rm. Perintah dengan pilihan ini akan meminta pengesahan untuk memadam setiap fail dan direktori. Dalam contoh berikut, kami akan memadam fail Gauss 2. plx , meminta pengesahan untuk memadam .

rm –saya gauss2.plx

simbol kumpulan. Kadangkala apabila bekerja dengan shell, anda perlu mencari atau memadankan fail mengikut corak. Sebagai contoh, anda hanya tahu huruf pertama nama fail dan ingin mencari semua fail dalam direktori kerja yang bermula dengan huruf itu. Atau anda tahu urutan beberapa huruf dalam nama fail atau sambungan dan anda perlu mencarinya di antara beberapa ratus fail lain. Dalam kes ini, anda perlu menggunakan aksara khas Linux. Jurubahasa arahan menggunakan siri watak istimewa, dipanggil kad bebas, yang boleh digunakan untuk mencari, memadankan dan menyenaraikan nama fail. Aksara ini ialah asterisk, tanda soal dan kurungan segi empat sama (*, ?, ). Memandangkan nama fail separa, shell menggunakan aksara tersebut sebagai corak untuk mencari dan membina senarai nama fail yang ditemui. Parameter dengan nama fail yang tidak layak digantikan dengan senarai nama fail yang sepadan. Senarai nama ini boleh digunakan sebagai parameter dalam arahan yang beroperasi pada berbilang fail (contohnya, ls). Kad bebas shell disenaraikan dalam Jadual 1. 1.

Jadual 1. Watak khas cangkerang

Simbol umum

Tujuan

Memisahkan arahan pada baris arahan yang sama

"pasukan"

Pelaksanaan perintah

Perbandingan dengan kelas kemungkinan aksara dalam nama fail

Tetapkan watak seterusnya sebagai istimewa. Digunakan untuk menunjukkan aksara kawalan

Paip stdout satu arahan sebagai input kepada arahan lain

Menjalankan arahan di latar belakang

Perintah untuk bekerja dengan senarai arahan yang dimasukkan sebelum ini

Kad bebas

Keputusan permohonan

Memadankan mana-mana set aksara dalam nama fail

Padan dengan mana-mana watak yang berasingan dalam nama fail

Ubah hala simbol

Keputusan permohonan

Ubah hala keluaran standard ke fail atau peranti. Dalam kes ini, jika fail tidak wujud, ia dicipta, jika fail wujud, ia ditimpa.

Tanda seru menyebabkan fail ditimpa jika wujud. Watak ini mengatasi pilihan yang melumpuhkan penulisan ganti fail sedia ada

Mengubah hala input standard daripada fail atau peranti kepada program

Mengubah hala output standard ke fail atau peranti, menambahkan output ke penghujung fail

Ubah hala simbol

Hasil penggunaan output ralat standard

Mengubah hala dan menambah output ralat standard pada fail atau peranti

Mengubah hala output mesej ralat standard kepada input standard

Ubah hala output ralat standard ke fail atau peranti

Paipkan output standard mesej ralat ke input arahan lain

Sebagai contoh, aksara asterisk (*) boleh digunakan untuk merujuk kepada fail yang namanya bermula atau berakhir dengan gabungan aksara tertentu. Contoh menunjukkan cara menggunakan aksara asterisk (*) dalam sebarang gabungan aksara.

$ls

docl doc2 document docs mydoc isnin selasa

Memaparkan senarai lengkap fail dalam direktori kerja.

$ ls doc*

docl doc2 dokumen docs

Dalam contoh ini, telah ditunjukkan cara kami "menapis keluar" nama fail dengan aksara asterisk yang tidak bermula dengan gabungan huruf "doc". Hanya nama fail yang mengandungi gabungan "doc" dipaparkan. Dalam kes ini, fail yang tinggal tidak dipadamkan, ia hanya tidak dipaparkan kepada pengguna.

$ ls *hari

Isnin t uesday

Di sini kami telah memaparkan nama fail yang berakhir dengan gabungan "hari".

$ ls [ mt ] * d *

Isnin hari selasa

Dan di sini kami telah memaparkan nama fail, di mana aksara pertama adalah huruf "m" atau "t", aksara berikutnya adalah sewenang-wenangnya, kemudian huruf "d" dan sekali lagi aksara sewenang-wenangnya.

Berhati-hati apabila menggunakan asterisk bersama dengan arahan rm, kerana ini boleh mengakibatkan kehilangan data anda. Perintah berikut memadam semua kandungan folder semasa.

rm *

$ ls *hari

doc doc2 docs

Tanda soal (?) menandakan hanya satu aksara yang tidak ditentukan dalam nama fail.