Farklı Linux ve Unix kabukları hakkında. UNIX komut kabuğu
=====================================================
LABORATUVAR ÇALIŞMASI No. 1 (tamamlanma süresi - 3 saat)
Konu: ”Girişkabuk”
1. Kabuğa giriş
Kabuk, kullanıcı ile Unix çekirdeği arasında bir arayüz görevi gören bir komut yorumlayıcısıdır (komut işlemcisi). Solaris üç ana kabuk sunar:
Varsayılan Bourne kabuğu /sbin/sh'dir.
C kabuğu -- /bin/csh
Korn komut işlemcisi-- ./bin/ksh
Listelenenlere ek olarak, Solaris ek mermiler sağlar:
J kabuğu -- /sbin/jsh
Kısıtlı Korn l -- / usr/ bin/rsh
T kabuğu -- /usr/bin/tcsh
GNU Bourne Yine -- /usr/bin/bash
Z kabuğu - usr/bin/zsh
Kabuk seçimi kişisel tercih meselesidir.
2. Çalıştırma komutları
Unix'teki herhangi bir komut, başlatılacak programın adı (komut), seçenekler (anahtarlar) ve programa iletilen bağımsız değişkenlerden oluşur. Komut satırı ayırıcıları boşluklar veya sekmelerdir.
Örnek
$ /bin/ping –t 10 192.168.2.13
argüman
kabuk istemi
Programı başlatırken programın yolu belirtilmemişse çalıştırılabilir dosya, ardından işletim sistemi PATH değişkeninde belirtilen dizinleri sırayla tarar. Gözatılan dizinde aynı ada sahip bir program varsa, yürütülmek üzere başlatılır. PATH değişkeninde ayarlanmadıkça, programlar aranırken mevcut çalışma dizini aranmaz.
! Güvenlik nedeniyle, bir yöneticiye kullanıcının geçerli dizinini ve ev (kişisel) dizinlerini PATH değişkenine eklememesi önerilir.
örnekler
Programı tam yol ile başlatma
$ / usr/ yerel/ çöp Kutusu/ Benim_ programı
Bir programı daha yüksek (ana) bir dizinden başlatma
$ ../ yerel/ çöp Kutusu/ Benim_ programı
Programı geçerli dizinden başlatma
$ ./ Benim_ programı
3. Özel semboller kabukta
Kabuktaki bazı karakterlerin özel anlamları vardır.
3.1. Dosya adı oluşturma kalıpları
? (soru işareti) ilk nokta dışında herhangi bir tek karakterle eşleşir;
(köşeli parantez) bir sembol grubu tanımlayın (gruptan bir sembol seçilir);
- (Eksi işareti") geçerli karakter aralığını tanımlar;
! (Ünlem işareti) onu izleyen karakter grubunu reddeder;
* (yıldız sembolü) ilk nokta dışında herhangi bir sayıda karakterle eşleşir.
3.2. G/Ç yönlendirme sembolleri
< - giriş yönlendirme;
>, >> - çıktı yönlendirme;
2>, 2>> - hata mesajlarını yeniden yönlendirme;
| - konveyör.
3.3. Joker semboller
$variable_nameQ - değişken ikamesi;
$(komut) veya "emir" - komut değiştirme;
~ - tilde değiştirme.
4. Arama
İçin hızlı arama dosyalar ve dizinler için whereis komutu kullanılır, daha derin bir komut için find komutu kullanılır (belirtilen gereksinimleri karşılayan dosyaları arayın;).
5. Metin düzeltici vi
vi metin editörü, herhangi bir Unix'te bulunan evrensel bir metin editörüdür. Metin dosyalarını düzenlemeye ek olarak, komut satırını düzenlemek için vi editörü kullanılabilir.
vi editörünün 3 çalışma modu vardır (şekle bakın).
vi editörüne girme
vi'den çıkış
İlk konumdaki ”~” (tilde) işareti, dosyanın boş (var olmayan) satırlarını işaretler.
Ana mod, komutların belirli bir tuş dizisine basılarak girildiği komuttur (ekranda hiçbir şekilde görüntülenmezler).
Komut modunda metinde gezinmek, oklar ve tuşlar kullanılarak gerçekleştirilir.
Bazı vi komutları tabloda listelenmiştir.
Geçerli satırı sil |
|
Geçerli satırı panoya kopyala |
|
İmleç hareketi |
İmleçle işaretlenen karakterleri arabelleğe alma |
Sokmak Yeni hat aşağıdan |
|
En üste yeni bir satır ekle |
|
İmleçten sonra ekle |
|
Geçerli satırdan sonra ekle |
|
İmlecin önüne yapıştır |
|
Geçerli satırdan önce ekle |
|
Bir karakteri klavyeden girilen bir karakterle değiştirme |
|
Panodan metin yapıştır |
|
. (nokta) |
Yürütülen son komutu yeniden yap |
Son komutu iptal et |
|
Geçerli satırdaki tüm değişiklikleri geri al |
|
İmlecin üzerindeki karakteri sil |
Giriş modunda, klavyede yazılan tüm karakterler metne eklenir.
modunda son satır girilen komut ekranın son satırında görüntülenir.
6. Yardım
Unix'in komutların amacını, sözdizimini, kullanım örneklerini vb. içeren bir elektronik kılavuzu vardır. Kılavuz, man komutuyla çağrılır:
7. Temel komutlar kabuk
DSÖ– aktif kullanıcılar hakkında bilgi görüntüleme;
Eko– terminale çıkış mesajları;
afiş– mesajları terminale büyük harflerle yazdırın;
Adam– çevrimiçi yardım sistemini aramak;
tarih – geçerli tarihin çıktısı;
yazmak– mesajların başka bir kullanıcının terminaline iletilmesi;
mesaj– diğer kullanıcılardan gelen mesajları görüntüleme izni/yasağı;
posta– posta gönderme/alma;
haberler- sistem haberlerine aşinalık;
pwd– geçerli çalışma dizininin mutlak yol adını görüntüler;
CD– çalışma dizinini değiştirmek;
ls– dizinin içeriği hakkında bilgi görüntüleme;
mkdir- bir dizin oluşturmak;
rmdir– bir dizini silmek;
dokunmak– dosyanın zaman damgasının güncellenmesi;
CP- dosyalar kopyalanıyor;
kedi- dosyaların içeriğini birleştirme ve görüntüleme;
Daha– dosya içeriğinin sayfalandırılması.
mv – bir dosyayı taşımak veya yeniden adlandırmak;
rm– bir dosyanın silinmesi;
takma ad– bir takma isim oluşturulması;
tr– karakter dönüşümü;
çıkış- akımın tamamlanması kabuk-A;
tişört– boru hattı sonuçlarının ele geçirilmesi;
kesmek – bir diziden alan seçimi;
grep– kalıba göre arama;
pr– belirtilen formatta standart çıktıya dosya çıktısı;
düzenlemek- sıralama;
KAFA– dosyanın ilk satırlarının çıktısı;
kuyruk- dosyanın son satırlarını yazdırın;
WC- karakter, kelime ve satır sayısını sayma;
Okumak, Eko - değişken değerleri okuma ve görüntüleme;
Ölçek- ifadenin değerinin değerlendirilmesi;
ifade, izin vermek- aritmetik ifadelerin hesaplanması;
8. Kabuk-programlar
Kabuk, bir dizi komutu bir dosyaya kaydetmenize ve ardından yürütmenize olanak tanır. Yürütülecek bir kabuk programıyla bir dosyayı çalıştırmak için, yürütme hakkını erişim haklarına eklemeniz gerekir:
$ chmod +x program_file_name
Kabuk programlarında dallanma, operatörler kullanılarak düzenlenir:
eğer-o zaman-başka
Döngü ifadeleri:
EGZERSİZLER
1. Aşağıdaki komutlardan hangisi ekranda bir karşılama mesajının görüntülenmesine neden olur? Ne değil? Neden?
$ yankı merhaba
$ yankı merhaba
$ yankı MERHABA, DÜNYA
$ afiş Merhaba
$ Afiş MERHABA, DÜNYA
2. Komutları kullanarak birden çok satırdan bir mesaj yazdırın Eko Ve afiş.
3. Tarihi iki satır halinde yazdırın: ilk satırda - gün, ay, yıl, ikinci satırda - geçerli saat, çıktıyı bir yorumla sağlayın.
4. Komut kullanma yazmak, konsola bir mesaj gönderin. Aynı anda birden fazla terminale mesaj gönderin.
5. Komut kullanma mesaj, terminalinizde mesajlara izin verilip verilmediğini belirleyin. Mesajları devre dışı bırakın. Birisi size mesaj göndermeye çalışırsa sistemin tepkisi ne olur?
6. Adını koy EV-katalog.
7. Komutları kullanarak /export/home dizininden başlayarak dizinlerin alt ağacına göz atın cd, ls Ve pwd.
8.. İçinde oluştur EV-formun dizin alt dizinleri:
meyve çiçekleri
elma armut üzüm gül menekşe karahindiba
koyu yeşil
9. İçinde olmak EV-dizin, tek bir komut satırı kullanarak aşağıdaki alt dizinleri oluşturun:
A/B/C/D
10. İçinde olmak EV-dizin, dizinin tüm alt dizinlerini sil A.
11. İçeride olmak EV-dizin, bir dosya oluştur Macintosh mevcut katalogda elma ve dizinlerdeki birkaç dosya karanlık Ve yeşil. Kataloğa girin Fdüşürür. dizinde olmak Fdüşürür, tüm alt dizinleri kopyala FRuits içerdikleri dosyalarla birlikte özel oluşturulmuş bir dizine sepet.
12. Katalogda olmak Fdüşürür, dizini kaldır FRuits.
13. Dosyayı okuyun .profil komutları kullanma kedi Ve Daha.
14. İçinde oluştur EV- dizin metin dosyası benim dosyam komutuyla birden çok satırdan kedi. Bir metin dosyası oluşturun MyFile, içine aynı satırları yazarak. Kaç tane dosya aldın? Neden?
15. Görev 2.2'de oluşturulan dosyanın içeriğini görüntüleyin benim dosyam. dosyayı kopyala benim dosyam dosyalamak benim kopyam Her iki dosyanın içeriğini görüntüleyin.
16. Dosyayı taşıyın benim kopyam kataloglamak Çiçekler.
17. İçeride olmak EV-dizin, bir bağlantı oluştur Mybağlantı dosya başına benim kopyam dizinde bulunan Çiçekler. Bağlantı dosyasını görüntüleyin.
18. Dosyaya bir satır ekleyin Benimbağlantı. dosyalardan hangisi Benimbağlantı, Benimkopyalamak, Benimdosya değişti mi? Neden?
19. Bağlantı sayısını belirlemek için hangi komut kullanılabilir? Dosyalar için bağlantı sayısını belirleme Benimbağlantı, Benimkopyalamak, Benimdosya.
Dosyayı sil benim kopyam. Bağlantı dosyasına ne oldu? Dosyalar için bağlantı sayısını belirleme Benimbağlantı, Benimdosya.
20. Bir takma ad oluşturun yön Geçerli dizinin içeriğini genişletilmiş biçimde yazdıran bir.
21. Çıkış yapın ve tekrar giriş yapın. Takma ad çalışıyor mu? yön? Takma adın oturumlar arasında "kaybolmaması" için ne yapılmalıdır?
22. Bir takma ad oluşturun nokta, adları bir nokta ile başlayan çalışma dizinindeki dosyaların bir listesini yazdırır.
23. Komut kullanma dokunmak, yeni bir dizinde aynı anda aşağıdaki adlara sahip dosyalar oluşturun:
Şablon A* 5 dosya eşleşti;
Şablon * A 4 dosya eşleşti;
Şablon ??.? 3 dosya eşleşti;
Şablon * aa* 2 dosya eşleştirildi;
Şablon??? 1 dosya eşleşti.
24. Aşağıdakileri yapmak için hangi komut girilmelidir:
a) bir nokta ile başlayan tüm dosyaların adlarını görüntüleyin;
b) ile biten tüm dosyaların adlarını görüntüleyin ".txt";
c) sözcüğü içeren tüm dosyaların adlarını yazdırın "Benim";
25. Belirli bir dosyada tüm küçük harfleri büyük harfe, diğerinde tüm büyük harfleri küçük harfe çevirin. Dosyadan tüm yinelenen boşlukları kaldırın.
26. adlı bir dosya oluşturun. * . Sadece bu dosyayı silin. Dosya adı oluşturma karakterlerini kullanırken dikkatli olun!
27. Adında boşluk karakteri olan bir dosya oluşturun. Böyle bir dosya nasıl silinir?
28. Komut kullanma kedi orijinal içeriği aynı dosyanın sonuna ekleyerek dosyanın içeriğini ikiye katlayın. dizine git Çiçekler. dosyaya ekle liste dizin içeriğini listele Çiçekler. Bir dosyanın içeriğini görüntüleme
29. Komutla okumayı deneyin kedi olmayan dosya Sistemin tepkisi nedir? Hata mesajlarını bir dosyaya yönlendirerek aynısını yapın benim hatam. Ekranda ne görüyorsun? Dosyayı görüntüle benim hatam.
30. Yalnızca içinde bulunan dosyaların adlarını ve izinlerini listelemek için bir ardışık düzen oluşturun. şu ançalışma dizininizdedir.
31. Yerleşik boru hattını, listenin bir dosyada saklanacağı şekilde değiştirin liste senin onun EV-dizin ve yalnızca listedeki dosya sayısı görüntülendi.
32. Bir dosyanın içeriğini görüntüleyin /etc/şifre, kullanıcı adı alanına göre sıralanmıştır.
33. Bir takma ad oluşturun oturum açmışAçık, o anda sistemde oturum açmış kullanıcıların adlarının alfabetik olarak sıralanmış bir listesini görüntüler.
33. Komutları kullanarak geçerli tarihi büyük harflerle görüntüleyin tarih Ve afiş.
34. Bir değişkene atama BEN Kayıt adınız. Başka bir tane çalıştır kabuk. Bu değişkeni görüyor musunuz? Oluşturulan görüntüde görmek için ne yapılması gerekiyor? kabuk? Bir değişkenin değerini değiştirme BEN oluşturulan kabuk. Çıkış doğdu kabuk. Orijinaldeki bu değişkenin değerine bakın kabuk. Sonucu açıklayın.
35. Yaz kabuk-program bilgi kullanıcıdan bir ad, adres, gün, ay ve doğum yılı girmesini isteyecek ve bu bilgileri ters sırada görüntüleyecektir.
36. Yaz kabuk- bir numara girmek için bir davet görüntüleyecek, girilen numarayı bir değişkende saklayacak bir program Y ve bir mesaj yazdırın “Y, 7'den büyüktür”, eğer değer Y 7'den büyük ve “YOlumsuz daha büyük hariç 7” aksi takdirde.
37. Aşağıdaki istatistikleri gösteren bir kabuk programı yazın:
a) adınız;
b) başlatıldığı bağımsız değişken sayısı;
c) bağımsız değişkenlerinin her birini ve bağımsız değişkenin uzunluğunu karakter cinsinden yazdırır;
38. Yaz kabuk- argüman sayısını belirleyen bir program Komut satırı ve bağımsız değişken sayısı üç değilse veya bağımsız değişkenlerin sayısı üç değilse bir hata mesajı atar.
39. Yaz kabuk- bir kullanıcı kimliğinin girilmesi için bir komut verecek, kimliğin sistemde kullanılanlarla uyumluluğunu kontrol edecek ve tam adı görüntüleyecek bir program EV-dizin veya geçersiz bir tanımlayıcı olması durumunda bir hata mesajı verin.
40. Bir kabuk programı yazın Merhaba, komut satırı bağımsız değişkenlerine aşağıdaki yanıtı sağlar:
Argüman "-D"- program komutu yürütecek tarih;
Argüman “-l”- program mevcut dizinin içeriğini gösterecektir;
komut satırında herhangi bir bağımsız değişken veya geçersiz bağımsız değişken yoksa, program seçenekleri hakkında yardım görüntüler.
41. Bir program yazın kelimeler, kullanıcıdan bir kelime girene kadar her seferinde bir kelime girmesini isteyecektir. “ son” . Girilen tüm kelimeleri hatırla. Kelimeyi girdikten sonra “ son” girilen tüm kelimeleri ekranda görüntüler.
42. Geçerli çalışma dizininin tam yol adını içerecek şekilde sistem istemini değiştirin .
43. Bir program yaz virüs, farklı bir adla kendisinin yürütülebilir bir kopyasını oluşturur ve ardından kendini siler.
44. Bir program yaz virüs2 geçerli dizinde komut dili programları arar ve metinlerine kelimeyi görüntülemek için bir komut ekler. “ enfekte!”.
45. Bir program yaz virüs3 diğer programlara bulaşmak için bulduğu komut dili programlarına kendi kodunu ekleyen .
46. Program yaz virüs4 virüsünüzü, bulaştığında, bulaşan kodun bulaşan programdan kaldırılacağı şekilde değiştirerek.
47. Bir program yaz antivirüs, virüsünüzün bulaştığı tüm kabuk programlarını bulur.
48. Geliştirilen programı, yalnızca kendisi tarafından belirtilen dizindeki virüslü programları bulması için değil, aynı zamanda virüslü sürümü biten yeni bir dosyaya kaydederek "iyileştirmesi" için değiştirin. . vir ve böyle bir dosyadan yürütme özniteliğini kaldırma.
49. Bir program yaz virüs5 , hangisi:
a) geçerli dizindeki ve alt dizinlerindeki kabuk programlarına yalnızca kullanıcı komutu girerse virüs bulaştırır ls;
b) takım gibi davranmak ls, çalışmalarının terminalinde hiçbir şey vermeden.
50. Programlara dayalı virus6 programı yaz virüs2 -virüs5 geliştirdiğiniz program tarafından bulaşma kodu tespit edilemeyen antivirüs ve bulaşma, değişkenin herhangi bir değerinde gerçekleşir YOL.
51. Bir program yaz süper virüs, başlatılması bir önceki görevde geliştirilen virüsü dosyalarınıza bulaştırır ve sisteme her giriş yaptığınızda, yoldaşlarınızın dosyalarına bulaştırılmaya çalışılır. programı süper virüs ilk çalıştırmadan sonra kendini siler.
52. Bir program yaz süper antivirüs, belirtilen dizindeki ve alt dizinlerindeki tüm dosyaları gelişmiş tüm virüslerden algılar ve tamamen "iyileştirir" (ilgili seçenek belirtilirse).
UNIX'te komut kabuğu komut satırı arayüzü Unix benzeri işletim sistemleri, yani kullanıcı tarafından verilen veya dosyalardan okunan komutları yürütür. Bu tür dosyalar kabuk komutları kabuk betikleri (komut dosyaları, programlar) olarak adlandırılır. Bu betikler derlenmez ancak kabuk tarafından yorumlanır. Bu, kabuğun betiği baştan sona, satır satır okuduğu, burada belirtilen komutları aradığı ve bunları yürüttüğü anlamına gelir; bu yaklaşımın aksine, derleyici tüm programı makine yürütmesi için uygun bir forma dönüştürür - daha sonra böyle bir koda sahip bir dosya bir kabuk komut dosyasında kullanılabilir. Özellik kabuk dili - geleneksel programlama dillerinde yerleşik olan birçok işlem, harici programlar çağrılarak gerçekleştirilir.
Kabuğun görevlerinden biri, yapılandırma dosyaları aracılığıyla özelleştirilebilen bir kullanıcı ortamı sağlamaktır.
Kabuk türleri
UNIX, aralarından seçim yapabileceğiniz birkaç farklı kabuk sağlar:
sh veya Born kabuğu ( Bourne Kabuğu), UNIX benzeri ortamlarda kullanılan ilk kabuklardan biridir. Bu, küçük ve küçük bir dizi özelliğe sahip temel bir kabuktur. Fiili standart kabuktur ve her UNIX sisteminde bulunur. Linux'ta /bin/sh, bash'a sembolik bir bağlantı olabilir. Bu, UNIX uygulamalarıyla uyumluluğu sağlamak için yapılır. darbe veya yeni Born kabuğu ( Bourne Yeniden Kabuk) standart Linux kabuğu. Çoğu Linux kullanıcısı, tam olarak kurulu standart kabuğa sahiptir. darbe. Bir şekilde darbe- bu bir üst yapı sh, bir dizi ekleme ve ek modüller. Böylece yeni Bourne kabuğu, normal Bourne kabuğuyla uyumludur: komutlar sh, da çalışacak darbe, ancak tersi zorunlu değildir. csh veya C yönelimli bir kabuk ( C Kabuk) bu kabuğun sözdizimi C programlama diline benzer.Genellikle programcılar bu kabuğu kullanır. tcsh veya geliştirilmiş bir C yönelimli sarıcı ( Turbo C Kabuğu) üst yapı csh. ksh veya Korn kabuğu ( Korn Kabuğu) 1980'lerin başında yazılmıştı ve o sırada Bourne kabuğunun ve csh'nin en iyi özelliklerinden yararlanıyordu. Bourne kabuğu için bir eklenti vardır ve Bourne kabuğu için yazılan betiklerin yürütülmesini garanti eder. POSIX standardı sınırlı Korn kabuğudur./etc/shells dosyası, sistemde bulunan kabuklar hakkında bilgi içerir:
Mia: ~> cat /etc/shells /Bin/bash /Bin/sh /Bin/tcsh /Bin/csh
Kullanıcı kabuğu /etc/passwd dosyasında ayarlanır. Örneğin, kullanıcı dizisi mia yüklü bir kabuğu olan darbe :
Mia: L2NOfqdlPrHwE: 504:504: Mia Maya:/home/mia:/bin/bash
Kabuklar arasında geçiş yapma
Kullanıcı istediği zaman başka bir kabuk başlatabilir. Örneğin, varsayılan olarak kontroller altında çalışıyorsa darbe ve kabuğun altında bazı eylemler gerçekleştirmesi onun için daha uygundur. csh, bu kabuğu başlatır
Mia:~>csh
Tekrar kontrol altına almak için darbeçıkış komutunu yazmanız gerekir.
dilek (UNIX kabuğu)- Bu terimin başka anlamları da var, bkz. Dilek. dilek (Windowing Shell), X Pencere Sistemi ve Mac OS X için basit bir betikli veya etkileşimli UNIX komut kabuğudur. Kullanıcılara bileşenleri kontrol etme yeteneği sağlar ... ... Wikipedia
komut kabuğu- İşletim sistemi kabuğu kabuk) sistem işlevleriyle kullanıcı etkileşimi için bir arabirim sağlayan bir işletim sistemi (OS) komut yorumlayıcısı. Genel olarak, mermiler iki tür arayüzle ayırt edilir ... Wikipedia
UNIX kabuğu
Unix kabuğu- UNIX komut kabuğu (İngilizce Unix kabuğu, genellikle yalnızca "kabuk" veya "sh") komut yorumlayıcısı, Unix Sürüm 7'de görünen Bourne kabuğuna kadar uzanan POSIX uyumlu kabuk ailesinin işletim sistemlerinde kullanılır. İçindekiler 1 ... ... Wikipedia
Unix Kabuğu- UNIX kabuğu (İngilizce Unix kabuğu, genellikle yalnızca "kabuk" veya "sh"), Unix Sürüm 7'de görünen Bourne kabuğuna dayanan POSIX uyumlu kabuk ailesinin işletim sistemlerinde kullanılan bir komut yorumlayıcısıdır. İçindekiler 1 . .. ... Vikipedi
Komut satırı- Komut satırı yorumlayıcı isteği buraya yönlendirilir. "Komut Satırı Tercümanı" konusunda ayrı bir makaleye ihtiyaç vardır. Dış görünüş mermiler (eng. Co ... Wikipedia
UNIX Sistem V- System V'in birçok torunu ... Wikipedia
Unix Sistem V- System V AT T UNIX'in birçok torunu System V, işletim sisteminin 1989'daki sürümlerinden biridir. 4 ana sürüm vardı Sürüm 1, 2, 3 ve 4. System V Sürüm 4 (SVR4) en başarılı ve popüler olanıydı ve ... ... Wikipedia için bir kaynak olarak hizmet etti
UNIX - Soy ağacı UNIX sistemleri UNIX (Unix'i okuyun), taşınabilir, çok görevli ve çok kullanıcılı bir ailedir ... Wikipedia
Unix- UNIX sistemlerinin soy ağacı UNIX (Unix'i okuyun), taşınabilir, çok görevli ve çok kullanıcılı bir işletim sistemleri grubudur. Birinci UNIX sistemi 1969'da AT T'nin Bell Labs bölümünde geliştirildi. O zamandan beri yaratıldı ... Wikipedia
Kitabın
- Kabuk betikleri. Linux, OS X ve Unix. Kılavuz, Taylor Dave. Kabuk betikleri yardımı sistem yöneticileri ve otomatikleştirmek için programcılar rutin görevlerİlk bilgisayarlar ortaya çıktığından beri. İlkinin piyasaya sürülmesinden bu yana ... 1217 UAH karşılığında satın alın (yalnızca Ukrayna)
- Kabuk betikleri. Linux, OS X ve Unix, Taylor Dave, Perry Brandon. Kabuk betikleri, ilk bilgisayarlardan beri sistem yöneticilerinin ve programcıların rutin görevleri otomatikleştirmesine yardımcı oluyor. İlk yayından bu yana…
- öğretici
Makale neden ve kimin için?
Başlangıçta bu, unix benzeri sistemlerle çalışmaya başlayan öğrenciler için bir hatırlatmaydı. Başka bir deyişle, makale, unix komut satırında daha önce deneyimi olmayan, ancak şu veya bu nedenle onunla etkili bir şekilde nasıl etkileşim kuracağını öğrenmek isteyen veya buna ihtiyaç duyan kişiler için tasarlanmıştır.Manaların yeniden anlatılması (belgeleme) olmayacak ve makale hiçbir şekilde onları okumayı iptal etmez veya değiştirmez. Bunun yerine unix kabuğunda çalışmanın en başından itibaren etkili ve keyifli bir şekilde çalışabilmeniz için anlamanız gereken temel şeylerden (komutlar, püf noktaları ve ilkeler) bahsedeceğim.
Makale, tamamen işlevsel bir kabuğa (tercihen zsh veya bash) ve oldukça geniş bir standart programlar.
kabuk nedir
Kabuk (kabuk, diğer adıyla "komut satırı", diğer adıyla CLI, diğer adıyla "konsol", diğer adıyla "terminal", diğer adıyla "beyaz harflerle siyah pencere") ile iletişim kurmak için bir metin arayüzüdür. işletim sistemi(aslında, tam olarak söylemek gerekirse, bu programı, böyle bir arayüz sağlar, ancak şimdi bu fark önemli değildir).Genel olarak, kabuk üzerinde çalışmak şöyle görünür: kullanıcı (yani siz) klavyeden bir komut girer, Enter'a basar, sistem komutu yürütür, yürütmenin sonucunu ekrana yazar ve tekrar bir sonraki komutu bekler. girilecek.
Tipik kabuk görünümü:
Kabuk, tüm Unix benzeri sunucu sistemleriyle etkileşim kurmanın ana yoludur.
Komut satırı sistemleri nerede bulunur?
Bir unix kabuğunun sizi bekleyebileceği popüler seçenekler:- macOS (bash);
- iş veya kişisel bir web projesi için sunucuya uzaktan erişim;
- uzaktan erişimli ev dosya sunucusu;
- Dizüstü/masaüstünde Ubuntu, PC-BSD - Günümüzde Unix benzeri sistemlerin kurulumu ve kullanımı kolaydır.
Bir kabukla hangi görevleri çözmek mantıklıdır?
Kabuğun uygun, yararlı ve vazgeçilmez olduğu doğal görevler:- terminalde etkileşimli çalışma:
- make aracılığıyla işleri derlemek, çalıştırmak;
- metin dosyalarının karşılaştırılması;
- hızlı geçici veri analizi (günlükteki benzersiz ips sayısı, kayıtların saat/dakika olarak dağılımı, vb.);
- tek seferlik toplu eylemler (birçok işlemi sonlandırın; bir sürüm kontrol sistemiyle çalışıyorsanız, bir grup dosyayı tersine çevirin veya çözün);
- sistemde olup bitenlerin teşhisi (semaforlar, kilitler, süreçler, tanımlayıcılar, disk alanı vb.);
- komut dosyası:
- çalıştırması için diğer tercümanlara güvenemeyeceğiniz kurulum betikleri - yeni başlayanlar için değil;
- etkileşimli kabuğu özelleştirme işlevleri (komut istemini etkileme, dizini değiştirme, ortam değişkenlerini ayarlama) - yeni başlayanlar için de pek uygun değil;
- toplu dosya kod çevrimi gibi tek seferlik betikler;
- makefiles.
Kesinlikle ilk adımlar
Başlarken: Oturum Açma ve Oturumu Kapatma
Kabuğu nasıl başlatacağınızı ve ondan nasıl çıkacağınızı tam olarak bildiğinizden emin olun.Ubuntu'nun kurulu olduğu bir makinedeyseniz, Terminal programını başlatmanız gerekir. İşin sonunda pencereyi kapatabilirsiniz.
MacOS'ta Terminal'i de başlatın.
Uzak bir sunucuya erişmek için ssh (yerel olarak MacOS, Ubuntu veya başka bir unix benzeri sisteme sahipseniz) veya macun (Windows kullanıyorsanız) kullanın.
Ben kimim, neredeyim?
Aşağıdaki komutları çalıştırın:- ana bilgisayar adı - şu anda üzerinde bulunduğunuz makinenin (sunucunun) adını görüntüler;
- whoami - oturum açma bilgilerinizi görüntüler (sistemdeki adınız);
- ağaç -d / |less - makinedeki dizin ağacının sözde görüntüsü; kaydırmadan çıkış - q ;
- pwd - içinde bulunduğunuz dizini görüntüler; komut satırında "aynen böyle" olamazsınız, mutlaka bir dizindesiniz (=geçerli dizin, çalışma dizini). Muhtemelen, mevcut çalışma dizini isteminizde (komut isteminde) görüntülenir.
- ls - geçerli dizindeki dosyaların listesi; ls /home - belirtilen dizindeki dosyaların listesi;
Komut geçmişi (geçmiş)
Tam teşekküllü bir komut satırının önemli bir özelliği, komutların geçmişidir.Birkaç komut çalıştırın: hostname , ls , pwd , whoami . Şimdi yukarı tuşuna basın. Önceki komut giriş satırında belirdi. Tarihte ileri ve geri gitmek için yukarı ve aşağı tuşları kullanılabilir. Ana bilgisayar adına kaydırdığınızda Enter'a basın - komut yeniden yürütülecektir.
Geçmişten gelen komutlar yalnızca yeniden yürütülemez, aynı zamanda düzenlenebilir. Tarihte ls komutuna ilerleyin, ona -l anahtarını ekleyin (ortaya çıktı ls -l , eksiden önce bir boşluk var ama sonra değil). Enter'a basın - değiştirilen komut yürütülecektir.
Tarihte gezinme, komutları düzenleme ve yeniden çalıştırma, komut satırında çalışırken en tipik eylemlerdir, buna alışın.
kopyala yapıştır
Komut satırı çok metin merkezlidir: komutlar metindir, çoğu standart program için girdi verileri metindir, çalışmanın sonucu da çoğunlukla metindir.Metinle ilgili güzel olan şey, kopyalanıp yapıştırılabilmesi ve bu komut satırı için de geçerli.
tarih +"%y-%m-%d, %A" çalıştırmayı deneyin
Tamamen elle mi girdiniz yoksa makaleden mi kopyaladınız? Kopyalayabildiğinizden, terminale yapıştırabildiğinizden ve çalıştırabildiğinizden emin olun.
man " kullanmayı öğrendikten sonra, yardımdan örnek komutları kopyalayıp çalıştırabildiğinizden emin olun. Kontrol etmek için, ÖRNEKLER bölümü için tarih programının yardımına bakın, verilen ilk örneği kopyalayıp çalıştırın (sadece durum: dolar işareti komutun bir parçası değildir, bu giriş isteminin koşullu bir görüntüsüdür).
Metnin terminalden tam olarak nasıl kopyalanıp terminale yapıştırılacağı sisteminize ve ayarlarına bağlıdır, bu yüzden evrensel talimat ne yazık ki işe yaramayacak. Ubuntu'da şunu deneyin: kopyala sadece fare seçimidir, yapıştır orta fare düğmesidir. Çalışmazsa veya farklı bir sisteminiz varsa - İnternete bakın veya daha deneyimli arkadaşlara sorun.
Tuşlar ve seçenekler
Komut geçmişini araştırırken zaten ls komutunun en az iki seçeneği olduğu gerçeğiyle karşılaştınız. Aynen böyle çağırırsanız, basit bir liste yazdırır:[e-posta korumalı]: ~/shell-survival-quide> ls Makefile shell-first-steps.md shell-first-steps.pdf shell-survival-quide.md shell-survival-quide.pdf
-l anahtarını eklerseniz, her dosya için ayrıntılı bilgi görüntülenir:
[e-posta korumalı]: ~/shell-survival-quide> ls -l toplam 332 -rw-rw-r-- 1 akira akira 198 13 Şubat 11:48 Makefile -rw-rw-r-- 1 akira akira 15107 14 Şubat 22:26 kabuk -ilk-adımlar.md -rw-rw-r-- 1 akira akira 146226 13 Şubat 11:49 kabuk-ilk-adımlar.pdf -rw-rw-r-- 1 akira akira 16626 13 Şubat 11:45 kabuk-hayatta kalma -quide.md -rw-rw-r-- 1 akira akira 146203 13 Şubat 11:35 shell-survival-quide.pdf
Bu çok tipik bir durumdur: Komut çağrısına özel değiştiriciler (anahtarlar, seçenekler, parametreler) eklenirse, komutun davranışı değişir. Karşılaştırın: ağaç / ve ağaç -d / , ana bilgisayar adı ve ana bilgisayar adı -f .
Ek olarak, komutlar dosya adlarını, dizinleri veya yalnızca metin dizelerini parametre olarak alabilir. Denemek:
ls -ld /home ls -l /home grep kökü /etc/passwd
Adam
man - Makinenizde bulunan komutlar ve programların yanı sıra sistem çağrıları ve C standart kitaplığı hakkında yardım.Deneyin: man grep , man atoi , man chdir , man man .
İleri ve geri kaydırma “yukarı”, “aşağı”, “PageUp”, “PageDown” butonları ile, yardım görünümünden çıkış ise q butonu ile yapılır. Bir yardım makalesinde belirli bir metni arama: / (eğik çizgi) tuşuna basın, arama metnini yazın, Enter tuşuna basın. Sonraki oluşumlara git - n tuşu.
Tüm yardım makaleleri kategorilere ayrılmıştır. En önemli:
- 1 - yürütülebilir programlar ve kabuk komutları (wc , ls , pwd vb.);
- 2 - sistem çağrıları(çatal, dup2 vb.)
- 3 - kitaplık işlevleri (printf , scanf , cos , exec).
man -k komutuyla makinede bulunan tüm yardım makalelerinin bir listesini görüntüleyebilirsiniz. (nokta aynı zamanda takımın bir parçasıdır).
az
Çok uzun bir metnin (bir dosyanın içeriği, uzun bir adam vb.) küçük bir terminal penceresinde görüntülenmesi gerektiğinde, özel “çağrı cihazı” programları kullanılır (sayfa / sayfa kelimesinden, yani sayfalama). En popüler kaydırıcı less 'dır ve mans'ı okurken size kaydırma olanağı sağlayan da budur.Davranışı deneyin ve karşılaştırın:
cat /etc/bash.bashrc cat /etc/bash.bashrc |daha az
Dosyayı parametrelerde hemen kaydırıcıya aktarabilirsiniz:
Daha az /etc/bash.bashrc
Yukarı ve aşağı kaydırın - "yukarı", "aşağı", "PageUp", "PageDown" düğmeleri, çıkış - düğmesi q. Belirli metni arayın: / (eğik çizgi) tuşuna basın, arama metnini girin, Enter tuşuna basın. Sonraki oluşumlara git - n tuşu. (İnsanla ilgili talimatı biliyor musunuz? Yardımı göstermek için daha az kullanılmasına şaşmamalı.)
Haklar
Herhangi bir dosya veya dizinle bir dizi "hak" ilişkilendirilir: dosyayı okuma hakkı, dosyaya yazma hakkı, dosyayı çalıştırma hakkı. Tüm kullanıcılar üç kategoriye ayrılır: dosya sahibi, dosya sahibi grubu, diğer tüm kullanıcılar.Dosya izinlerini ls -l ile görüntüleyebilirsiniz. Örneğin:
> ls -l Makefile -rw-r--r-- 1 akira öğrenci 198 13 Şub 11:48 Makefile
Bu çıktı, sahibin (akira) dosyayı okuyabileceği ve yazabileceği, grubun (öğrenciler) yalnızca okuyabileceği ve kullanıcıdaki diğer herkesin de yalnızca okuyabileceği anlamına gelir.
Çalışırken izin reddedildi mesajı alırsanız, çalışmak istediğiniz nesne üzerinde yeterli izniniz yok demektir.
Man chmod'da daha fazlasını okuyun.
STDIN, STDOUT, boru hatları (borular)
Yürütülen her programın kendisiyle ilişkili 3 standart veri akışı vardır: giriş veri akışı STDIN , çıkış veri akışı STDOUT , hata akışı STDERR .Wc programını çalıştırın, Bugün iyi günler yazın, Enter'a basın, iyi günler yazın, Enter'a basın, Ctrl+d'ye basın. Wc programı, metninizdeki harf, kelime ve satır sayısıyla ilgili istatistikleri gösterecek ve çıkacaktır:
> wc iyi günler bugün iyi günler 2 5 24
İÇİNDE bu durum programın STDIN'ine iki satırlık bir metin verdiniz ve STDOUT'ta üç sayı aldınız.
Şimdi head -n3 /etc/passwd komutunu çalıştırın, şöyle görünmelidir:
> head -n3 /etc/passwd root:x:0:0:root:/root:/bin/bash arka plan programı:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x: 2:2:bin:/bin:/usr/sbin/nlogin
Bu durumda, ana program STDIN'den bir şey okumadı ve STDOUT'a üç satır yazdı.
Şöyle düşünün: Bir program, STDIN'in içeri aktığı ve STDOUT'un dışarı aktığı bir kanaldır.
Unix komut satırının en önemli özelliği, "pipe" programlarının birbirine bağlanabilmesidir: bir programın çıktısı (STDOUT), başka bir programa girdi (STDIN) olarak iletilebilir.
Bağlantılı programların böyle bir yapısına İngilizce boru (boru), Rusça - konveyör veya boru denir.
Programları bir ardışık düzende birleştirmek, | sembolüyle yapılır. (dikey çubuk)
head -n3 /etc/passwd |wc komutunu çalıştırın, şöyle bir şey elde edersiniz:
> kafa -n3 /etc/şifre |wc 3 3 117
İşte olanlar: ana program, STDOUT'a üç satırlık metin çıktısı verdi; bu, hemen wc programının girişine girdi ve bu da alınan metindeki karakterlerin, sözcüklerin ve satırların sayısını saydı.
İstediğiniz kadar programı bir ardışık düzende birleştirebilirsiniz. Örneğin, önceki ardışık düzene, ilk wc'nin çıktısında kaç kelime ve harf olduğunu sayan başka bir wc programı ekleyebilirsiniz:
> kafa -n3 /etc/şifre |wc |wc 1 3 24
Komut satırında çalışırken ardışık düzenleri (boruları) derlemek çok yaygın bir şeydir. Bunun pratikte nasıl yapıldığına dair bir örnek için Tek Hatlı İşlem Hattı Derleme bölümüne bakın.
G/Ç Yönlendirmesi
Bir programın çıktısı (STDOUT) yalnızca başka bir programa aktarılamaz, aynı zamanda bir dosyaya da yazılabilir. Bu yönlendirme > (büyüktür işareti) ile yapılır:Tarih > /tmp/today.txt
Bu komutu çalıştırmanın bir sonucu olarak diskte /tmp/today.txt dosyası görünecektir. İçeriğini cat /tmp/today.txt ile görüntüleyin
Aynı ada sahip bir dosya zaten varsa, eski içeriği yok edilecektir. Dosya yoksa, oluşturulacaktır. Dosyanın oluşturulduğu dizin, komut yürütülmeden önce mevcut olmalıdır.
Dosyanın üzerine yazmak istemiyor, ancak sonuna çıktı eklemek istiyorsanız, >> öğesini kullanın:
Tarih >> /tmp/today.txt
Şimdi dosyada ne yazdığını kontrol edin.
Ayrıca STDIN yerine herhangi bir dosyayı programa iletebilirsiniz. Denemek:
WC
Bir şey net olmadığında ne yapmalı
Anlamadığınız veya belirli bir sonuca ulaşmak istediğiniz ancak nasıl yapacağınızı bilmediğiniz bir sistem davranışıyla karşılaşırsanız, aşağıdaki sırayla ilerlemenizi tavsiye ederim (bu arada, bu yalnızca kabuklar için geçerli değildir):- soruyu veya görevi olabildiğince açık bir şekilde formüle edin - "Neyi bilmiyorum" çözmekten daha zor bir şey yoktur;
- Aynı veya benzer bir sorunla daha önce karşılaşıp karşılaşmadığınızı unutmayın - bu durumda, geçen sefer işe yarayan çözümü denemeye değer;
- uygun adam-ları okuyun (sizin durumunuza hangi adamların uygun olduğunu anlarsanız) - komutların, gerekli seçeneklerin veya diğer komutlara bağlantıların kullanımına ilişkin uygun örnekler bulabilirsiniz;
- bir düşünün: görevi biraz değiştirmek mümkün mü? - belki koşulları biraz değiştirerek, zaten nasıl çözeceğinizi bildiğiniz bir sorunla karşılaşacaksınız;
- iyi tanımlanmış sorunuzu bir arama motorunda sorun - belki yanıt Stack Overflow'ta veya diğer sitelerde bulunabilir;
Zor bir sorunu çözdüyseniz (kendi başınıza, interneti veya diğer insanları kullanarak) - siz veya yoldaşlarınızın aynı sorunu tekrar yaşama ihtimaline karşı çözümünüzü yazın. Basit bir metin dosyasına kaydedebilir, Evernote'ta sosyal ağlarda yayınlayabilirsiniz.
Çalışma metodları
Kopyala ve yapıştır- man-s'den, StackOverflow'taki makalelerden vb.Önceki komutu geçmişten çekin, ardışık düzene başka bir komut ekleyin, çalıştırın, tekrarlayın.Santimetre. Ayrıca "Tek Hatlı İşlem Hattı Derleme" bölümüne bakın.
Temel Komutlar
- dizin değiştirme: cd ;
- dosyaların içeriğini görüntüleme: cat , less , head , tail ;
- dosya işleme: cp , mv , rm ;
- dizin listesi: ls , ls -l , ls -lS ;
- dizin yapısı: ağaç , ağaç -d (bir dizini parametre olarak iletebilirsiniz);
- dosya arama: bul . -isim ... ;
Analitik
- wc, wc -l ;
- sort -k - belirtilen alana göre sırala;
- sort -n - sayısal sıralama;
- diff - dosyaları karşılaştırın;
- grep , grep -v , grep -w , grep "\
" , grep -E - metin ara; - uniq , uniq -c - benzersiz diziler;
- awk - awk "($1 yazdır)" değişkeninde, her satırın yalnızca ilk alanını bırakmak için $1, $2 , $3 , vb. olarak değiştirilebilir;
Sistem Teşhisi
- ps axuww - makinede çalışan işlemler (çalışan programlar) hakkında bilgi;
- üst - en yoğun kaynak kullanan süreçlerin etkileşimli görünümü;
- df - kullanılmış ve boş disk alanı;
- du - dizindeki dosyaların toplam boyutu (alt dizinlerle yinelemeli);
- strace , ktrace - hangi sistemin çağırdığı işlemi yapıyor;
- lsof - işlemin kullandığı dosyalar;
- netstat -na , netstat -nap - sistemde hangi portların ve soketlerin açık olduğu.
Bazı programlarınız olmayabilir, bunların ayrıca yüklenmesi gerekir. Ayrıca, bu programların bazı seçenekleri yalnızca ayrıcalıklı kullanıcılar tarafından kullanılabilir (kök "y").
Toplu ve yarı otomatik yürütme
İlk başta bu bölümü atlayın, basit kabuk komut dosyası yazmaya başladığınızda bu komutlara ve yapılara ihtiyacınız olacak.- test - kontrol koşulları;
- okurken - STDIN satırları arasında geçiş yapın;
- xargs - STDIN'den dizelerin belirtilen programın parametrelerine değiştirilmesi;
- sıra - doğal sayı dizilerinin oluşturulması;
- () - birkaç komutun çıktısını birleştirin;
- ; - birbiri ardına yapın;
- && - ilk komut başarıyla tamamlanırsa çalıştır;
- || - ilk komut başarısız olursa çalıştır;
- tee - program çıktısını STDOUT'a ve diskteki bir dosyaya çoğaltın.
Çeşitli
- tarih - geçerli tarih;
- curl - belirtilen url'deki belgeyi indirir ve sonucu STDOUT'a yazar;
- dokunma - dosya değişiklik tarihini güncelle;
- öldür - sürece bir sinyal gönderin;
- doğru - hiçbir şey yapmaz, doğru döndürür, sonsuz döngüleri düzenlemek için yararlıdır;
- sudo - bir komutu root olarak yürütün "a.
Tek hatlı işlem hattı derleme
Gerçek bir görev örneğine bakalım: mevcut kullanıcı adına çalışan tüm görev-6-sunucu işlemlerini sonlandırmak istiyoruz.Aşama 1.
Saf haliyle olmasa bile, hangi programın yaklaşık olarak gerekli verileri ürettiğini anlayın. Görevimiz için sistemdeki tüm süreçlerin bir listesini almaya değer: ps axuww. Koşmak.
Adım 2
Alınan verilere gözlerinizle bakın, gereksiz verilerin bir kısmını dışarı atacak bir filtre bulun. Genellikle bu grep veya grep -v şeklindedir. "Yukarı" tuşunu kullanarak geçmişten önceki komutu çıkarın, ona icat edilmiş bir filtre atayın ve çalıştırın.
Ps axuww |grep `whoami`
- yalnızca geçerli kullanıcının işlemleri.
Aşama 3
İstediğiniz temiz verileri elde edene kadar 2. adımı tekrarlayın.
- istenen ada sahip tüm işlemler (artı, belki vim task-6-server.c, vb. Gibi gereksiz olanlar),
Ps axuww |grep `whoami` | grep "\
- yalnızca istenen ada sahip işlemler
Ps axuww |grep `whoami` | grep "\
Gerekli işlemlerin pid'leri, 3. adım tamamlandı
Adım 4
Uygun bir son işleyici uygulayın. "Yukarı" tuşunu kullanarak, geçmişten bir önceki komutu çıkarır ve sorunun çözümünü tamamlayacak işlemleri ekleriz:
- |wc -l işlem sayısını saymak için;
- >pid'ler bir dosyaya pid'ler yazmak için;
- |xargs kill -9 öldürme işlemi.
Eğitim için görevler
Yeni beceriler uygulamak ister misiniz? Aşağıdaki görevleri deneyin:- ana dizininizdeki tüm dosya ve dizinlerin bir listesini alın;
- 2. kategorideki tüm erkek makalelerinin bir listesini alın (sistem çağrıları);
- grep man sayfasında grep kelimesinin kaç kez geçtiğini sayın;
- şu anda kaç tane işlemin root olarak çalıştığını sayın;
- maksimum sayıda yardım kategorisinde (man) hangi komutun oluştuğunu bulun;
- var kelimesinin ya.ru sayfasında kaç kez geçtiğini sayın.
Bundan sonra ne çalışmalı?
Komut satırını sevmeye başlarsanız, durmayın, becerilerinizi geliştirmeye devam edin.Komut satırında yaşıyorsanız kesinlikle kullanışlı olacak bazı programlar:
- karmaşık seçeneklerle bul
- ilgili
- bulmak
- tel ağ
- ağ kedisi
- tcp dökümü
- rsync
- ekran
- zgrep zsiz
- görsel
- crontab-e
- posta göndermek
Kimin ihtiyacı var?
Bugün komut satırını ve kabuk komut dosyası oluşturmayı öğrenmeye değer mi? Kesinlikle buna değer. FB'de iş bulmak isteyen adaylar için Facebook'un gereksinimlerinden sadece birkaç örnek vereceğim.Dipnot: Komut kabuğu konsepti. Komut kabuklarına genel bakış. bash komut kabuğu. İşin özellikleri (komut geçmişi, operatör "!" , bir tuşa basma eylemleri
ders ilerlemesi
1. Linux ve Unix dünyasında, bir bilgisayarda çalışmak, kavramla ayrılmaz bir şekilde bağlantılıdır. komut kabuğu- kullanıcının komutları girerek ve yürüterek sistemle etkileşime girmesini sağlayan bir program. Yine de, komut kabuğu düzenli bir programdır. Dosyada varsayılan kabuk olarak ayarlayarak bunu kanıtlayabilirsiniz. şifre kullanıcı için başka bir program. Ancak sistemin onu bir kabuk olarak tanıması için mutlak dosya adını eklemeniz gerekir. /etc/kabuklar.
Linux birkaç komut kabuğuyla birlikte gelir, bileşimleri dağıtıma bağlı olarak değişebilir, ancak her zaman şunları bulabilirsiniz:
Bourne Kabuğu (sh) - en eski ve en yaygın olanı komut kabuğu Unix sistemleri için. Kullanılmadığı tek bir Unix sistemi yoktur.
Bourne Again Shell (bash) - genişletilmiş Bourne Shell. Pek çok hoş avantajı var, bu yüzden son zamanlarda bu kadar popüler hale geldi. Neredeyse tüm Linux dağıtımları için "varsayılan" kabuktur.
Ayrıca popüler dış görünümler şunlardır:
csh- komut sistemi C programlama diline yakın olan kabuk
tcsh, komut sistemi Tcl programlama diline yakın bir kabuktur.
zsh muhtemelen en güçlü kabuktur. sh (bourne Shell) 'in bir uzantısıdır.
Linux bash'ı "varsayılan olarak" kullandığından, bunun hakkında konuşacağız.
2. komut kabuğu bash, başlangıçta Bourne Shell'in ücretsiz bir alternatifiydi. Daha sonra yetenekleri büyüdüğünde bağımsız bir ürün olarak görülmeye başlandı. bash'ın ana özellikleri şunlardır:
№ | Fırsat | Bir yorum |
---|---|---|
1 | Satır düzenleme | Girilen komutu yeniden yazmak yerine düzenleyebilme özelliği |
2 | kanal organizasyonu | Fırsat G/Ç yönlendirmeleri, görevler arasında kanalları düzenleme |
3 | Kullanım kolaylığı | Komut takma adlarının kullanımı, komut geçmişi, otomatik tamamlama |
4 | İş yönetimi | Arka plan işleri oluşturma ve yönetme yeteneği |
5 | Esneklik | Her kullanıcı için oturum açma betiği dosyalarını ayrı ayrı kullanma, ortam değişkenleri |
G/Ç yeniden yönlendirmesi ve boru hatları Ders 8'de daha sonra ele alınacaktır. Bu nedenle, bu noktayı atlayacağız. Ama bash'ta çalışmanın özelliklerinden, sağladığı faydalardan bahsedelim.
Bash, kullanıcı tarafından yazılan tüm komutları otomatik olarak bir dosyaya yazar. ~/.bash_history. Bu dosyayı yönetmek için history komutu kullanılır. tarih yerleşik komut bash. Yani, bu komuta karşılık gelen yürütülebilir dosya yoktur. Kendini komut kabuğu tüm işlemleri gerçekleştirir. Seçenek olmadan girildiğinde, bu dosyada saklanan tüm komutları listeler ve cat ~/.bash_history ile aynıdır.
Komut geçmişi, sık kullanılan komutlar kümesini basitleştirmek için mevcuttur. Komutların geçmişi, tuşlarla listede sıralanabilir. <вверх>Ve<вниз> .
Başka bir yol da yazmaktır! ve komut başlat ve basın
$ !/usr /usr/bin/Perl ./ptest.pl Tamam $ !xfonts bash: !xfonts: olay bulunamadı $
Ancak, ihtiyacımız olan komut henüz geçmişte değilse, girişi nasıl hızlandırabiliriz? Bu durumda, anahtar bize yardımcı olacaktır.
3. İlk dersten itibaren, Linux'un çok görevli bir ortam olduğunu hatırlamanız gerekirdi. Ancak, şimdiye kadar onun çoklu görevinden yararlanamadınız. İlk bakışta, konsolun sistemin çoklu görev yeteneklerini kullanmanıza izin vermediği ve aynı anda iki veya daha fazla programı yalnızca grafik bir ortamda çalıştırabileceğiniz görülüyor. Ama değil! Konsol aynı zamanda çoklu görevdir.
İlk olarak, her birinde bir program açarak birden fazla konsol açabilirsiniz. Konsollar arası geçiş tuşları kullanılarak yapılacaktır. ctrl+
İş kontrol komutlarının yardımıyla tek bir konsolda bile, çoklu görev sisteminin tüm avantajlarından tam olarak yararlanabilirsiniz.
komut & - komuttan sonraki & sembolü, onu arka planda çalıştırmanıza izin verir.
işler - Geçerli kabuk işlerinin bir listesini görüntüler.
bg<#j>– #j işini arka plana koyar. Bundan önce, görev tuş kombinasyonu ile durdurulmalıdır.
fg<#j>- #j işini ön plan yürütme moduna geçirir. İş bir tuş kombinasyonu ile durdurulmalıdır.
$ man bash ^Z + Durdurulmuş man bash $ vim ^Z vim + Durdurulmuş vim $ bg 1 + man bash & $ jobs + Durdurulmuş man bash + Durdurulmuş vim $ fg 2 + vim $ fg + man bash $
4. Ortam Değişkenleri– gibi tercihlerinizi gösteren sistem bilgileri Metin düzeltici varsayılan, yürütülebilir dosyalar vb. için arama yolları ile kullanıcı, sistem ve kabuk kimlikleri gibi Kullanıcı adı, kabuk ve diğer programlar tarafından kullanılan Linux sürümü vb.
Kullanıcı tarafından yaygın olarak kullanılan değişkenler şunlardır:
PATH - değişken, doluysa sistemin yürütülebilir dosyaları araması gereken yolları içerir. göreceli yol onlara.
PWD - değişken, geçerli dizinin tam adını içerir.
HOME - değişken tam yolu içerir kullanıcı ana dizini.
HOSTNAME - değişken, bilgisayarın adını içerir.
LOGNAME - içerir Kullanıcı adı
KABUK - geçerli oturumda çalışan komut kabuğunun adını içerir.
KULLANICI - içerir Kullanıcı adıŞu anda açık olan oturum.
Parametresiz olarak girilen export komutu ile sistemde kurulu olan değişkenlerin listesi görülebilir.
Bash kabuğunun kendi değişkenleri vardır. Yerel değişkenlerin sistem değişkenleri haline gelmesi için, aynı export komutu kullanılarak dışa aktarılmaları gerekir.Örneğin:
$ export beyan -x HOME="/home/gserg" beyan -x HOSTNAME="WebMedia" beyan -x LANG="en_RU.KOI8-R" beyan -x LOGNAME="gserg" beyan -x PATH="/bin: /usr/bin:/usr/local/bin:/home/gserg/bin" beyan -x PWD="/home/gserg" beyan -x KABUK="/bin/bash" beyan -x TERM="Eterm" beyan -x KULLANICI="gserg" $ EDITOR=/bin/vim $ dışa aktarma EDITOR $ dışa aktarma bildirimi -x EDITOR="/bin/vim" bildirimi -x HOME="/home/gserg" bildirimi -x HOSTNAME="WebMedia" bildirimi -x LANG="ru_RU.KOI8-R" beyan -x LOGNAME="gserg" beyan -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" beyan - x PWD="/home/gserg" beyan -x KABUK="/bin/bash" beyan -x TERM="Eterm" beyan -x USER="gserg" $
Takım çöz bir sistem değişkenini siler. Örneğin:
$ unset EDITOR $ export beyan -x HOME="/home/gserg" beyan -x HOSTNAME="WebMedia" beyan -x LANG="en_RU.KOI8-R" beyan -x LOGNAME="gserg" beyan -x PATH=" /bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" beyan -x PWD="/home/gserg" beyan -x KABUK="/bin/bash" beyan -x TERM= "Eterm", -x USER="gserg" $ bildirir
5. Bugünün dersinde, sizi biraz standart olmayan başka bir komut kabuğuyla tanıştıracağız. gece yarısı komutanı. Değil komut kabuğu her zamanki anlamda. Bu bir metin dosyası yöneticisidir - analog Norton Komutanı veya Uzak. gece yarısı komutanı mc komutu ile çalıştırın. Yetenekleri hakkında konuşacağız.
Ekran gece yarısı komutanı" iki bölüme ayrılmıştır. Neredeyse tüm ekran alanı, bir dizin ve dosya listesi içeren iki panel tarafından işgal edilir. Varsayılan olarak, ekranın altından ikinci satır, normal kabuk komutlarını çalıştırabileceğiniz komut satırıdır ve alt satırda işlev tuşu ipuçları ( F1-F10). En üstteki sembol satırı, birçok işlevin gerçekleştirilebileceği bir menü içerir. Menüyü kullanmak için istediğiniz öğeye tıklayabilir veya tuşuna basabilirsiniz. F9 ve tuşları kullanarak imleç kontrolü istediğiniz öğeyi seçin.
Paneller gece yarısı komutanı aynı anda iki dizinin görüntülenmesini sağlar. Panellerden biri aktiftir (kullanıcının içinde bulunan dosya ve dizinlerle belirli eylemleri gerçekleştirebilmesi anlamında). Etkin panelde, dosyalardan veya dizinlerden birinin adı vurgulanır ve üst satırdaki panelin başlığı renkli olarak vurgulanır. Başlık adı, o anda görüntülenen dizinin adıyla aynıdır. Hemen hemen tüm işlemler aktif panelde gerçekleştirilir. Aktarma gibi bazı işlemler veya dosyalar kopyalanıyor Pasif paneli kopyalamak, aktarmak vb. için bir yer olarak kullanın.
Şimdi çalışmanıza yardımcı olacak temel klavye kısayollarından bahsedelim. Geceyarısı komutanı "ohm.
tuşları aktif paneli değiştirmek için kullanılır
bir dosyayı işaretlemek için basın
tıklamak
kullanarak
Anahtar
Anahtar <*> ek bir klavyede dosya seçimini tersine çevirmenize izin verir (dizinleri etkilemez)
Anahtar <+> ek klavyede, dosyaları maskeye göre işaretlemenize izin verir ve <-> dosyaların işaretini maskeye göre kaldırın.
Klavye kısayolları, işleri halletmek için en iyi araç olsa da Geceyarısı komutanı "ohm olabildiğince hızlı ve kolay, yeni başlayanlar için hepsini bir kerede öğrenmek oldukça zordur. Bu boşluğu doldurmak ve klavye kısayolları olmayan diğer özellikleri eklemek için, gece yarısı komutanı bir menüsü vardır (tarafından çağrılır) F9).
Menü öğelerden oluşur: "Sol Panel", "Dosya", "Komut", "Ayarlar", "Sağ Panel".
"Sol/Sağ Panel"- bu menü öğeleri tamamen aynıdır. Aralarındaki fark sadece gerçekleştirilen eylemlerin sol veya sağ panele adreslenecek olmasıdır.
"Liste Biçimi"- dosya / dizin listesinin görüntüleneceği görünümü seçebileceğiniz bir iletişim kutusu açar. Standart, kısa ve genişletilmiş biçimler arasından seçim yapabilirsiniz. Ancak bu penceredeki kullanıcı, "Kullanıcı tanımlı" radyo düğmesini seçerek panelin görünümünü de tatmin olacağı şekilde tanımlayabilir.
"Hızlı Görünüm"- paneli, bitişik panelde seçilen dosyaların otomatik görüntülenme moduna geçirir. Odak otomatik olarak karşı panele geçer.
"Bilgi"- bitişik panelde vurgulanan dosya hakkında konum, erişim hakları ve sahip gibi bilgileri görüntülemek için paneli değiştirir, dosya sistemi ve bulunduğu cihaz, bu dosyayla ilişkili sabit bağlantıların sayısı ve ayrıca dosyanın bulunduğu cihaz hakkındaki bilgiler.
"Ağaç"- çevirir gece yarısı komutanı OC Windows'tan Explorer moduna benzer bir moda. Komutun uygulandığı panelde "Ağaç", oklar kullanılarak gezinilebilen bir dizin ağacı oluşturulur imleç kontrolü, anahtarlar PageUp, PageDown, Ana Sayfa, Son. Bir sonraki panel, ağaçta vurgulanan dizinin içeriğini görüntüler.
"Sıralama düzeni"- dosya ve dizinlerin listede sıralanacağı ad, uzantı, düzenleme zamanı, erişim zamanı, özellik değiştirme zamanı, boyut, düğüm (dosyanın bulunduğu yer) gibi bir özniteliği seçebileceğiniz bir iletişim kutusu açar ). Ayrıca dosyaları sıralanmamış bırakabilir, büyük/küçük harfe duyarlı sıralayabilir veya ters sırada sıralayabilirsiniz.
"Filtre"- iletişim kutusuna girilen bir normal ifadeyi kullanarak panelde görüntülenecek dosya adlarını seçmenize olanak tanır.
"FTP bağlantısı"- bu komutu kullanarak, protokolü kullanarak uzak (hatta yerel) bir bilgisayarla bağlantı kurabilirsiniz. ftp. Yalnızca uzak sunucunun adresi girilirse, o zaman gece yarısı komutanı anonim bir bağlantı kurmaya çalışacak. Düğümün belirtildiği tam satır aşağıdaki gibidir:
ftp:username:password@server_address:port/directory_on_server
Bağlantı kurulduktan sonra, uzak dosya sistemi yerel bir FS ile çalışmaya benzer şekilde ilerler.
"Kabuk bağlantısı"- protokole göre bir ağ bağlantısı açmanıza izin verir BALIK (SHell üzerinden dosya aktarımı– kabuk yoluyla dosya aktarımı). BALIK protokolleri kullanır RSH (Uzak Kabuk)– uzak kabuk) veya SSH (Güvenli Kabuk)- korumalı kabuk, analog RSH, ancak iletilen verilerin şifrelenmesi desteği ile). Kullanıcının uzak ana bilgisayarı belirtebileceği tam dize şöyledir:
sh:username@server_address:options/server_dir
Parametre Kullanıcı adı, seçenekler ve dizin_on_server gerekli değil. Eğer Kullanıcı adı belirtilmemişse, o zaman gece yarısı komutanı yerel makinede kullanılan kullanıcı adı ile uzak sistemde oturum açmaya çalışacaktır.
"Tekrar ziyaret et"- klavye kısayollarına benzer
"Dosya"- öğeleri dosya ve dizinleri işlemek için temel işlevleri sağlayan menü bölümü, örneğin:
"Kullanıcı menüsü"- kullanıcının kendisi tarafından ayarlanan menüyü aramanıza izin verir. Anahtar tarafından da çağrılır
"Dosyayı görüntüle"- basıldığında gerçekleştirilen işlevin analogu
"Dosyayı görüntüle..."- önceki paragrafla aynı, ancak vurgulanan dosyayı değil, iletişim kutusuna adı ve yolu girilecek olan dosyayı etkiler.
"Ekip Görünümü"- bir komutu yürütmenizi ve görüntülemenizi sağlar standart çıkış dosya görüntüleme modunda.
"Düzenleme"- dosyayı düzenlemek için açar. Basit satır içi Metin düzeltici yapılandırma dosyalarını, program kaynak metinlerini vb. düzenlemek için yeterli sayıda yerleşik işleve sahiptir ve yerleşik otomatik sözdizimi vurgulama düzenlemeyi daha rahat ve düzenlenebilir metinleri daha okunabilir hale getirir.
"Kopyala"- bir dosyayı aktif panelden pasif panele kopyalar. tarafından çağrılan bir işlevin bir analogu
"İzinler"- bir iletişim kutusunda bir dosyanın (veya bir dosya grubunun) izinlerini değiştirmenize olanak verir.
"Sembolik bağlantı"- sembolik bir bağlantı oluşturur. Varsayılan olarak, aktif panelde vurgulanan dosya adreslenebilir olarak alınır ve oluşturulan bağlantı aynı ada sahip olur ve pasif panelde açılan dizinde bulunur. Kullanıcı bunu açılan iletişim kutusunda değiştirebilir.
"Sahip/Grup"- bir dosyanın/dizinin ait olduğu sahibi ve/veya grubu değiştirir.
"İzinler (Gelişmiş)"- aynı anda dosyaya ve sahibine ve / veya grubuna erişim haklarını değiştirmenize olanak tanır. İzinler, sahip, grup ve tüm kullanıcılar için üç rwx dizisi olarak temsil edilir.
"Yeniden isimlendirmek"- yeniden adlandırmanızı/taşımanızı sağlar. tarafından çağrılan bir işlevin bir analogu
"Dizin oluştur"- bir dizin oluşturur. tarafından çağrılan bir işlevin bir analogu
"Silmek"- bir dosyayı/dosya/dizin grubunu siler. tarafından çağrılan bir işlevin bir analogu
"Dizin Değiştir"- geçerli dizini değiştirir. Bash kabuğundaki cd komutuna benzer. Diyalog kutusuna gerekli dizin girilir.
"Grubu işaretle"- Aktif panelde açılan dizinde bir grup dosyayı maske ile işaretler. ile çağrılan bir fonksiyonun bir analogu <+> isteğe bağlı klavyede.