• Kabuk programlamanın temelleri. UNIX'te komut kabuğu

    Komut dili kabuğu (çeviride - kabuk, kabuk) aslında çok yüksek düzeyde bir programlama dilidir. Bu dilde kullanıcı bilgisayarı kontrol eder. Genellikle giriş yaptıktan sonra bir kabukla etkileşime girmeye başlarsınız. Kabuğun (kabuğun) komutları almaya hazır olduğuna dair bir işaret, onun tarafından ekrana verilen istemdir. En basit durumda bu bir dolar ("$") olur. Kabuk gerekli ve tek bir komut dili değildir (her ne kadar POSIX standardında standartlaştırılmış olsa da) mobil sistemler). Örneğin cshell dili oldukça popüler, ayrıca kshell, bashell ve diğerleri de var. Üstelik her kullanıcı kendi komut dilini oluşturabilir. İşletim sisteminin bir örneğinde farklı komut dilleriyle aynı anda çalışabilir. kabuk birçok UNIX komutundan biridir. Yani, "kabuk" komut seti "kabuk" yorumlayıcısını çağıran "sh" komutunu içerir. Oturum açtığınızda ilk "kabuk" otomatik olarak çağrılır ve bilgi istemini görüntüler. Bundan sonra, eskisinin içinde sizin için yeni bir kabuk oluşturacak olan "kabuğun" kendisi de dahil olmak üzere herhangi bir komutu yürütme için çağırabilirsiniz. Örneğin editörde "file_1" dosyasını hazırlarsanız:

    Eko Merhaba!

    o zaman "echo" komutunu içeren normal bir metin dosyası olacaktır ve bu, yürütüldüğünde sağında yazılan her şeyi ekranda görüntüleyecektir. "chmod 755 file_1" komutu ile "file_1" dosyasını çalıştırılabilir hale getirebilirsiniz. Ancak bu, "sh" ("kabuk") komutunu açıkça çağırarak yapılabilir:

    Sh dosyası_1

    Ş< file1

    Dosya aynı zamanda mevcut "kabuk" örneğinde de çalıştırılabilir. Bunun için özel bir komut var "." (nokta), yani

    Dosya_1

    UNIX çok kullanıcılı bir sistem olduğundan, kişisel bilgisayar paralel olarak çalışın, örneğin 12 ekranda (ekrandan ekrana geçiş ALT / işlev tuşu), her ekranda kendi komut kabuğuna sahip yeni (veya aynı) bir kullanıcıya sahip olun. Ayrıca X-Window grafik modunda çok sayıda pencere açabilirsiniz ve her pencerenin kendi komut kabuğuna sahip kendi kullanıcısı olabilir... Kabuk dilinin temel öğesi komuttur.

    Komut yapıları:

    Kabuk komutları genellikle aşağıdaki formata sahiptir:

    <имя команды> <флаги> <аргумент(ы)>

    Örneğin:

    ls -ls /usr/bin

    Burada ls dizinin içeriğini veren komutun adıdır, -ls bayraklardır ("-" bayrakların işaretidir, l uzun bir formattır, s bloklar halindeki dosyaların boyutudur), /usr/bin komutun yürütüldüğü dizindir.Bu komut /usr/bin dizininin içeriğini uzun formatta görüntüleyecek ve aynı zamanda her dosyanın boyutu hakkında bloklar halinde bilgi ekleyecektir. Egzotik formatlara sahip komutların sayısı, cc - C derleyicisini çağırma, tar - arşivlerle çalışma, dd - bir dosyayı dönüşümle kopyalama, bulma - dosyaları arama ve diğer birçok komut gibi "çalıştırma" komutlarını içerir. Kural olarak , kabuğun ilk sözcüğü bir komut olarak ele alınır, dolayısıyla komut satırında

    ilk kelimenin kodu kabuk tarafından geçerli dizinde "cat" (ikinci kelime) adlı bir dosyayı görüntüleyecek bir (birleştirme) komutu olarak çözülecektir. Komut yeniden yönlendirme UNIX OS'de standart giriş (giriş) - "stdin" terminal klavyesinden gerçekleştirilir ve standart çıkış (çıkış) - "stdout" terminal ekranına yönlendirilir. Ayrıca biraz sonra tartışılacak olan standart bir teşhis mesajı dosyası da vardır - "stderr". Birlikte çalışabilecek ekip standart giriş ve çıktıya FİLTRE adı verilir. Kullanıcı, girdi ve çıktıyı diğer dosyalara (cihazlara) yeniden yönlendirmek için uygun araçlara sahiptir. ">" ve ">>" sembolleri çıktının yeniden yönlendirilmesini belirtir. ls >file_1 "ls" komutu, geçerli dizindeki dosyaları listeleyecek ve onu "file_1" dosyasına koyacaktır (ekranda görüntülemek yerine). "File_1" dosyası daha önce mevcutsa, yeni dosya onun üzerine yazılacaktır.

    Şifre >>dosya_1

    pwd komutu geçerli dizinin tam adını oluşturacak ve onu "file_1" dosyasının sonuna yerleştirecektir, yani. Dosya boş değilse dosyaya ">>" eklenir. Semboller "<" и "<<" обозначают перенаправление ввода.

    Wc-l

    file_1 dosyasındaki satır sayısını sayacak ve görüntüleyecektir.

    Ed dosyası_2<

    düzenleyiciyi kullanarak doğrudan terminalden "file_2" dosyasını oluşturacaktır. Girişin sonu sağdaki karakter tarafından belirlenir "<<" (т. е. "!"). То есть ввод будет закончен, когда первым в очередной строке будет "!". Можно сочетать перенаправления. Так

    Wc-l dosya_4

    Wc -l >dosya_4

    aynı şekilde gerçekleştirilir: "file_3" dosyasının satır sayısı sayılır ve sonuç "file_4" dosyasına yerleştirilir. Bir komutun standart çıktısını diğerinin standart girdisiyle birleştiren bir tesise BORU HATTI adı verilir ve dikey çubuk "|" ile gösterilir.

    L | tuvalet -l

    geçerli dizindeki dosyaların listesi, dizindeki satır sayısını görüntüleyecek olan "wc" komutunun girişine aktarılacaktır. Bir boru hattı aynı zamanda ikiden fazla komutu da birleştirebilir; bunların tümü (muhtemelen ilk ve sonuncu hariç) filtre olduğunda:

    Kedi dosyası_1 | grep -hresult | sıralama | kedi -b > dosya_2

    "file_1" ("cat") dosyasındaki bu ardışık düzen, "result" ("grep") kelimesini içeren tüm satırları seçecek, ortaya çıkan satırları sıralayacak ("sıralayacak") ve ardından numaralandıracak ("cat -b") ve sonucu "file_2" dosyasına aktarın. UNIX aygıtları özel dosyalarla temsil edildiğinden yeniden yönlendirmelerde kullanılabilirler. Özel dosyalar "/dev" dizininde bulunur. Örneğin, "lp" - yazdırma; "konsol" - konsol; "ttyi" - i-inci terminal; "null" - sahte (boş) dosya (cihaz). Daha sonra örneğin,

    Ls > /dev/lp

    geçerli dizinin içeriğini ve dosya_1'i yazdıracak< /dev/null обнулит файл "file_1".

    dosya_1'i sırala | tee /dev/lp | kuyruk-20

    Bu durumda "file_1" dosyası sıralanıp yazdırılacak ve son 20 satırı da ekranda görüntülenecektir. Çıkış yönlendirmesine geri dönelim. Standart dosyalar numaralandırılmıştır:

    0 - stdin, 1 - stdout 2 - stderr. Ekranda bir hata mesajı görünmesini istemiyorsanız, onu ekrandan belirttiğiniz dosyaya yönlendirebilirsiniz (veya onu "boş aygıt" dosyasına - /dev/null yönlendirerek tamamen "atabilirsiniz"). Örneğin, komutu çalıştırırken

    Kedi dosyası_1 dosya_2

    "file_1" ve "file_2" dosyalarının içeriğini ekranda sırayla göstermesi gereken komut size örneğin aşağıdakileri verecektir:

    111111 222222 cat: f2: Böyle bir dosya veya dizin yok

    burada 111111 222222, "file_1" dosyasının içeriğidir ve standart teşhis dosyasındaki "cat" komutu tarafından varsayılan olarak bildirildiği gibi "file_2" dosyası ve ekran tarafından temsil edilen standart çıktı eksiktir. Eğer ekranda böyle bir mesajın görünmesini istemiyorsanız belirttiğiniz dosyaya yönlendirebilirsiniz:

    Kedi dosya_1 dosya_2 2>f-hata

    hata mesajları ("2>" yönlendirmesiyle belirtildiği gibi) "f-err" dosyasına gönderilecektir. Bu arada, bu durumda yapıyı kullanarak tüm bilgileri tek bir "ff" dosyasına gönderebilirsiniz.

    Kedi dosya_1 dosya_2 >>off 2>ff

    Yalnızca hangi standart dosyalardan yönlendirileceğinizi değil, aynı zamanda hangi standart dosyaya yönlendirileceğinizi de belirleyebilirsiniz.

    Kedi dosya_1 dosya_2 2>>ff 1>&2

    Burada, önce "stderr" (ekleme modunda) "ff" dosyasına yönlendirilir ve ardından standart çıktı, şu anda "ff" dosyası olan "stderr"e yönlendirilir. Yani sonuç öncekine benzer olacaktır. Yapı "1>&2" - yönlendirilecek standart dosya numarasına ek olarak, önüne "&" konulması gerektiği anlamına gelir; yapının tamamı boşluksuz yazılmıştır.<- закрывает стандартный ввод. >- standart çıkışı kapatır. komut dosyaları. Bir metin dosyasının komut olarak kullanılabilmesi için çeşitli olasılıklar vardır. Editörün aşağıdaki formun bir satırını içeren "cmd" adında bir dosya oluşturmasına izin verin:

    tarih; pwd; ls

    Kabuğu "sh" ile gösterilen bir komut olarak çağırabilir ve ona bir "cmd" dosyasını argüman olarak veya yeniden yönlendirilmiş giriş olarak iletebilirsiniz.

    $ sh cmd

    Bu komutlardan herhangi biri tarihi, ardından geçerli dizinin adını ve ardından dizinin içeriğini yazdıracaktır. Bir toplu iş dosyasıyla çalışmak için daha ilginç ve kullanışlı bir seçenek, onu yürütülebilir bir dosyaya dönüştürmektir, yani. bunu sadece güvenlik kodunu değiştirerek elde edilen bir komut haline getirin. Bunu yapmak için bu dosyanın yürütülmesine izin vermeniz gerekir. Örneğin,

    Chmod 711cmd

    güvenlik kodunu "rwx__x__x" yapacaktır. Sonra basit bir arama

    aynı üç komutun yürütülmesine neden olacaktır. İçeriğin bulunduğu dosya ise sonuç aynı olacaktır.

    tarih; pwd; ls

    şu şekilde temsil edilir: date pwd ls çünkü satır sonu aynı zamanda komut dizisinde bir sınırlayıcıdır. Böylece çalıştırılabilir dosyalar sadece derleme ve montaj sonucu elde edilen dosyalar değil aynı zamanda kabuk dilinde yazılmış dosyalar da olabilir. Bir kabuk yorumlayıcısı kullanılarak yorumlama modunda yürütülürler.

    Toplu Dosyalarda Hata Ayıklama

    SHELL, toplu iş dosyalarında hata ayıklamak için iki mekanizma kullanır. İlki: set -v toplu iş dosyasının satırlarını okundukça yazdırır. Bu mod, sözdizimi hatalarını ararken kullanılır. Bunu kullanmak için toplu iş dosyasını değiştirmenize gerek yoktur, örneğin: sh -v proc... burada proc, toplu iş dosyasının adıdır. -v anahtarı -n anahtarı ile birlikte kullanılabilir ve bu da aşağıdaki komutların yürütülmesini engeller (set -n komutu, EOF işareti girilene kadar terminali bloke eder). set -x komutu, komutları yürütüldükçe yazdırır; program satırları terminale yazdırılır ve değerleri değişkenlerin yerine geçer. -x ve -v anahtarlarını devre dışı bırakmak için set komutunu kullanabilir ve ayarlamak için makro değişkenine uygun değeri atayabilirsiniz. KABUK ORTAMI (DEĞİŞKENLER VE PARAMETRELER) Kabuk dilinde toplu dosyalar yazabilir ve "chmod" komutunu kullanarak bunları çalıştırılabilir hale getirebilirsiniz. Bundan sonra diğer UNIX OS komutlarından hiçbir farkı yoktur.

    Kabuk değişkenleri

    Kabuk değişken adı, harflerden, rakamlardan ve alt çizgilerden oluşan, harfle başlayan bir dizidir. Kabuk değişkeninin değeri bir karakter dizisidir. Kabukta yalnızca iki veri türünün (bir karakter dizisi ve bir metin dosyası) bulunması, bir yandan daha önce hiç programlama yapmamış son kullanıcıların programlamaya dahil edilmesini kolaylaştırırken, diğer yandan bazı sorunlara neden olur. Dil araçlarının daha fazla çeşitliliğine ve daha fazla esnekliğine alışkın olan birçok programcı arasında iç protesto. Bununla birlikte, kabuğun "oyun kurallarına" hakim olan üst sınıf programcıların, C'ye göre çok daha hızlı programlar yazdıklarını gözlemlemek ilginçtir, ancak özellikle ilginç olan, bazı durumlarda bu programların işe yaramasıdır. C'de uygulananlardan bile daha hızlı. Değişken adı, geleneksel tanımlayıcı kavramına benzer; ad, bir harfle veya alt çizgiyle başlayan bir dizi harf, sayı ve alt çizgiden oluşabilir. Atama operatörü "=" değişkenlere değer atamak için kullanılabilir.

    Var_1=13 - "13" bir sayı değil, iki basamaklı bir dizedir. var_2="UNIX OS" - Dizede boşluk olduğundan burada çift tırnak işareti (" ") gereklidir.

    Kabuk değişkenlerine değer atamanın başka yolları da vardır. Yani örneğin giriş

    DAT='tarih'

    "tarih" komutunun ilk önce çalıştırılmasına neden olur (arka tırnak işaretleri ilk önce ekteki komutun çalıştırılması gerektiğini belirtir) ve çalıştırmanın sonucu, standart çıktıya yazdırılmak yerine, bir değişkenin değeri olarak atanır. bu durumda "DAT". Ayrıca, bir değişkenin değerinin diyalog modunda (klavye) ekranından alınmasına olanak tanıyan "oku" komutunu kullanarak bir değişkene değer atayabilirsiniz. Genellikle, bir toplu iş dosyasındaki "oku" komutunun önünde, bir tür mesajı ekrana önceden yazdırmanıza olanak tanıyan "yankı" komutu gelir. Örneğin:

    echo -n "Üç basamaklı bir sayı girin:" read x

    Bir toplu iş dosyasının bu parçasını çalıştırırken, mesajı görüntüledikten sonra

    Üç haneli bir sayı girin:

    yorumlayıcı duracak ve klavyeden bir değer girilmesini bekleyecektir. "753" girerseniz bu, "x" değişkeninin değeri olacaktır. Bir "okuma" komutu, birkaç değişkenin değerlerini aynı anda okuyabilir (atayabilir). "Read" bölümünde girilenden daha fazla değişken varsa (boşluklarla ayrılmış olarak), geri kalanlara boş bir dize atanır. "Read" komutunda değişkenlerden daha fazla iletilen değer varsa, fazla olanlar dikkate alınmaz. Bir kabuk değişkenine erişirken, adın önüne "$" sembolü gelmelidir. Böylece ekranda echo $var_2 echo var_2 komutları görüntülenecektir.

    UNIX OS var_2 Kaçış

    Kabukta kullanılan kaçış tekniklerine daha yakından bakalım. Kaçış karakterleri çift tırnak (""), tek tırnak (" ") ve ters eğik çizgilerden (\) oluşur. Eylemleri örneklerde açıkça görülmektedir: Bir satıra birden fazla ödev yazabilirsiniz.

    X=22 y=33 z=$x A = "$x" B = "$ x" C=\$x D = "$ x + $ y + $z" E = "$ x + $ y + $z " F=$x\ +\ $y\ +\ $z

    (G=$x+$y ataması boşluklar nedeniyle yürütülmezdi) Sonra

    echo A = $A B = $B C = $C echo D = $D E = $E F = $F değerlendirme yankı değerlendirmesi A = $A değerlendirme yankı değerlendirmesi B = $B değerlendirme yankı değerlendirmesi C = $C

    Ekranda görüntülenen

    A = 22 B = $x C = $x D = 22 + 33 + 22 E = $x + $y + $z F = 22 + 33 + 22 değerlendirildi A = 22 değerlendirildi B = 22 değerlendirildi C = 22

    Satır sonlarından kaçmayla ilgili birkaç örnek daha verelim. "string" değişkenine "array" değeri atansın 2x3: abc def Fazladan boşluk atamayı önlemek için dizinin ikinci satırının bir sonraki satırın ilk konumundan başladığını unutmayın: string='abc def' Sonra orada değişkeni komutta yazmanın üç yolu vardır "echo" echo $string echo "$string" echo "$string" sırasıyla üç farklı sonuç verecektir: abc def $string abc def ve komut dizisi echo "str_1 str_2" > file_1 echo "str_1 str_2" > file_2 cat file_1 file_2 sırayla çıktı verecek aynı dosyalar file_1 ve file_2: str_1 str_2 str_1 str_2 Ayrıca ters eğik çizginin (\) yalnızca kendisini takip eden karakterden kaçmakla kalmayıp, özel karakterlerin basitçe kendilerini temsil eden karakterler olarak kullanılmasına izin verdiğini (kendisini de kaçabilir - \\) değil, aynı zamanda bir toplu iş dosyasında ters eğik çizgi, satırları tek bir satırda birleştirmenize olanak tanır (satırın sonundan kaçarak). Örneğin, daha önce bahsedilen komut satırı örneği:

    Kedi dosyası_1 | grep -hresult | sıralama | kedi -b > dosya_2

    bir toplu iş dosyasına yazılabilir, mesela

    Kedi dosyası_1 | grep -h \sonuç | sıralama | kedi -b > dosya_2

    Bu arada, boru hattı sembolü aynı zamanda komut satırının devamı efektini de sağlıyor. Bu durumda bu daha güzel bir sonuç verebilir, örneğin:

    Kedi dosyası_1 | grep -hresult | sıralama | kedi -b > dosya_2

    Kabuk değişkenleri ile manipülasyonlar Kabuk değişkenleri genellikle dizeler olarak ele alınsa da, yani "35" bir sayı değil, "3" ve "5" olmak üzere iki karakterden oluşan bir dizedir, bazı durumlarda farklı şekilde yorumlanabilirler, örneğin tamsayılar olarak. "İfade" komutunun çeşitli olasılıkları vardır. Bazılarını örneklerle açıklayalım: Bir toplu iş dosyasını yürütmek:

    X=7 y=2 a=`ifade $x + $y` ; echo a=$a a=`ifade $a + 1` ; echo a=$a b=`ifade $y - $x` ; echo b=$b c=`ifade $x "*" $y` ; echo c=$c d=`ifade $x / $y` ; echo d=$d e=`ifade $x % $y` ; yankı e=$e

    ekranda görüntülenecek

    A=9 a=10 b=-5 c=14 d=3 e=1

    Çarpma işleminden ("*") kaçınılmalıdır, çünkü kabukta bu simge özel bir karakter olarak algılanır; bu, bu yerin yerine herhangi bir karakter dizisinin konulabileceği anlamına gelir. "İfade" komutuyla yalnızca (tamsayı) aritmetik işlemler değil aynı zamanda dize işlemleri de mümkündür:

    A=`ifade "kokteyl" : "horoz"` ; echo $A B=`ifade "kokteyl" : "kuyruk"` ; echo $B C=`ifade "kokteyl" : "aşçı"` ; echo $C D=`ifade "horoz" : "kokteyl"` ; yankı $D

    Ekranda dizelerde eşleşen karakterlerin sayısını gösteren sayılar (baştan itibaren) görüntülenecektir. Satırlardan ikincisi birincisinden daha uzun olamaz:

    4 0 0 0

    Değişkenleri Dışa Aktarma UNIX bir süreç kavramına sahiptir. Bir komut yürütülmek üzere çalıştırıldığında bir işlem meydana gelir. Örneğin klavyede "r" yazarken " "p" süreci ortaya çıkar. Buna karşılık, "p" diğer süreçleri doğurabilir. Diyelim ki "p", karşılık gelen süreçleri sırayla üreten "p1" ve "p2"yi çağırıyor. Her sürecin kendi ortamı vardır - bir küme Örneğin, "p"yi çalıştırmadan önce, bazı değişkenlerin önceden tanımlandığı bir ortam zaten mevcuttu. "p"yi çalıştırmak, içinde "p1" ve "p2"nin üretileceği yeni bir ortam oluşturur. Bildirildiği süreç içerisinde local yani değerlerin atandığı yer. Diğer üretilen süreçlere ulaşabilmeleri için açıkça iletilmeleri gerekir. Bunun için "export" yerleşik komutu kullanılır.

    Seçenekler

    Parametreler toplu iş dosyasına aktarılabilir. Kabuk konumsal parametreleri kullanır (yani görünme sıraları önemlidir). Bir toplu iş dosyasında, parametrelere karşılık gelen değişkenler (kabuk değişkenlerine benzer şekilde) "$" karakteriyle başlar ve ardından 0'dan 9'a kadar olan rakamlardan biri gelir: "examp-1", "cock" ile çağrılsın ve "kuyruk" parametreleri. Bu parametreler yeni ortama "1" ve "2" standart adları altında girer. "0" adlı (standart) değişken, çağrılan hesaplamanın adını taşıyacaktır. Parametrelere erişirken, "$" dolar işareti rakamın önüne yerleştirilir (değişkenlere erişirken olduğu gibi): $0, verilen toplu iş dosyasının adına karşılık gelir; $1 ilk parametre; $2 ikinci parametredir ve bu şekilde devam eder. Parametrelerin aktarılabileceği değişken sayısı bir rakamla sınırlı olduğundan; 9. ("0", daha önce de belirtildiği gibi özel bir anlama sahiptir), o zaman iletim için Daha parametreler için özel bir "shift" komutu kullanılır. "Set" komutu parametrelere özel bir yaklaşım sağlar. Örneğin, fragman

    Bir b'yi şununla ayarlayın: echo birinci=$1 ikinci=$2 üçüncü=$3

    ekranda görüntülenecek

    Birinci=a İkinci=b Üçüncü=c

    onlar. "set" komutu parametre değerlerini ayarlar. Bu çok uygun olur. Örneğin, "tarih" komutu geçerli tarihi görüntüler; örneğin "Mon May 01 12:15:10 2000", beş kelimeden oluşur ve ardından

    'Tarih'i ayarla echo $1 $3 $5

    ekranda görüntülenecek

    Pzt 01 2000

    "Set" komutu ayrıca programın yürütülmesini kontrol etmenize de olanak tanır, örneğin: set -v, kabuk tarafından terminale okunabilen satırların çıktısını verir. set +v önceki modu iptal eder. set -x komutları yürütmeden önce terminale yazdırır. set +x önceki modu iptal eder. Parametresiz "set" komutu, yazılım ortamının durumunu terminale yazdırır.

    Shell yorumlayıcı değişiklikleri

    Toplu iş dosyalarında bulunan komutları doğrudan yorumlayıp yürütmeden önce kabuk, Farklı türde Değişiklikler: 1. SONUÇLARIN DEĞİŞTİRİLMESİ. Geri tırnak içine alınan tüm komutlar yürütülür ve sonuç onların yerine yazılır. 2. PARAMETRE VE DEĞİŞKENLERİN DEĞERLERİNİN YERLEŞTİRİLMESİ. Yani "$" ile başlayan kelimelerin yerini değişkenlerin ve parametrelerin karşılık gelen değerleri alır. 3. BOŞLUKLARIN YORUMLANMASI. Kaçınılan boşluklar dikkate alınmaz. 4. DOSYA ADLARININ OLUŞTURULMASI. Kelimelerin içinde özel karakterlerin ("*", "?", "") bulunup bulunmadığı kontrol edilir ve karşılık gelen nesiller gerçekleştirilir. Yazılım ortamı Her sürecin içinde çalıştığı bir ortam vardır. Shell bir dizi ortam değişkeni kullanır. Parametreler olmadan "set" komutunu yazarsanız, ekran, oturum açma sırasında oluşturulan (ve tüm yeni süreçlerinize "miras yoluyla" aktarılan) bir dizi standart değişkenin yanı sıra süreçleriniz tarafından oluşturulan ve dışa aktarılan değişkenler hakkındaki bilgileri görüntüleyecektir. . Görüntülenen bilgilerin spesifik türü ve içeriği büyük ölçüde hangi UNIX sürümünün kullanıldığına ve sistemin nasıl kurulduğuna bağlıdır.

    Yürütme sonucu komutları ayarla parametresiz (tam değil):

    HOME=/root PATH=/usr/local/bin:/usr/bin:/bin:.:/usr/bin/X11: IFS= LOGNAME=sae MAIL=/var/spool/mail/sae PWD=/home/ sae/STUDY/SHELL PS1=$(PWD):" " PS2=> SHELL=/bin/bash

    Değişkenlerin değerlerini yorumlayalım. HOME=/root kullanıcının oturum açtıktan sonra bulunduğu ana dizinin adıdır. Yani kullanıcı adı ve şifreyi doğru yazarak "/root" dizininde olacağım. PATH=/bin:/usr/bin:.:/usr/local/bin:/usr/bin/X11 - bu değişken "kabuk"un bir komut aradığı dosyaların sırasını ayarlar. Dosya adları burada iki nokta üst üste ile ayrılmıştır. Tarama sırası, izdeki adların sırasına karşılık gelir. Ancak başlangıçta arama, yerleşik komutlar olarak adlandırılan komutlar arasında gerçekleşir. Yerleşik komutlar "echo", "cd", "pwd", "date" gibi en sık kullanılan komutları içerir. Bundan sonra sistem, "sh", "cp", "mv", "ls" vb. komutları içerebilen "/bin" dizinine bakar. Daha sonra "cat", "cc", "expr", "nroff", "man" ve diğer birçok komutları içeren "/usr/bin" dizini. Ayrıca, arama, yazdığınız komutların büyük olasılıkla bulunduğu geçerli dizinde (""." veya başka bir "boş", yani "") adı altında gerçekleşir. Komut satırını yazıp tuşuna bastıktan sonra "kabuk" (gerekli değişiklikleri yaptıktan sonra) komuta karşılık gelen adı tanır ve onu PATH'de listelenen dizinlerde arar. Komut bu dizinlerin dışına yerleştirilirse bulunamaz. Aynı ada sahip birden fazla komut varsa, ilk görüntülenen dizinde bulunan komut çağrılacaktır. PATH, diğer değişkenler gibi, dizinler eklenerek, yeniden düzenlenerek veya hariç tutularak kolayca değiştirilebilir. IFS= (Dahili Alan Ayırıcı), kelimeleri (alanları) ayırmak için kullanılan karakterleri listeler. Bunlar "boşluk", "sekme" ve "satır besleme"dir, yani burada atamanın solunda hiçbir şey görünmüyor ve iki satır dolu. LOGNAME=root - oturum açma adı ("kullanıcı adı"). MAIL=/var/spool/mail/root, (e-posta) postayı alan dosyanın adıdır. PWD=/root - geçerli dizin adı PS1=$(PWD):" " - promter türü. Bu durumda, istemde geçerli dizinin adı, iki nokta üst üste ve bir boşluk görüntülenir. Yani "/root:" burada olacak. PS2=> - bu istem (burada ">") tamamlanmamış bir komutu yazmaya (sonraki satırda) devam etmek için bir davet olarak kullanılır. Örneğin, açılış parantezini "(" yazın ve tuşuna bastıktan sonra bir sonraki satırda bu istemi göreceksiniz. Henüz ne yapacağınızı bilmiyorsanız, kapatma parantezini ")" yazın, kaybolacaktır. SHELL=/bin/sh - Bu değişken kullanıcının kullandığı kabuğu belirtir. Bu durumda standart kabuk ("sh") kullanılır. Başlangıç ​​ortamı, oturum açma sırasında "/etc/rc" ve "/etc/.profile" gibi dosyalar kullanılarak otomatik olarak ayarlanır. Ortamı basitçe değiştirmenin bir yolu (örneğin, komut arama yolu, bilgi istemi görünümü, kabuk görünümü, ekran rengi vb.), bu bilgiyi ana dizininize özel bir ".profile" dosyasına ($(HOME)/.profile) yerleştirmektir. ) ortam değişkenlerine istenilen değerleri atayarak. Yani bu dosyayı editöre çağırın ve ne istiyorsanız yazın). Daha sonra her giriş yaptığınızda bu dosya otomatik olarak çalıştırılacak ve yeni bir ortam oluşturulacaktır. Bu dosyanın HOME dizininize (oturum açma dizini) yerleştirilmesi GEREKİR. Noktayla başlayan dosya adlarının genellikle özel bir statüye sahip olduğunu unutmayın. Yani basit bir "ls" komutuyla ekranda görüntülenmezler - bu komutu "-a" bayrağıyla çağırmanız gerekir. Bu arada, "rm *" komutuyla ayrım gözetmeksizin yok edilmezler. Kabuk yorumlayıcısının kendisi otomatik olarak aşağıdaki değişkenlere (parametrelere) değerler atar: ? son komutun döndürdüğü değer; $ işlem numarası; ! arka plan işlem numarası;

    1. kabuğa iletilen konumsal parametrelerin sayısı;
    • parametre listesi tek satır halinde;

    @ kelimelerin bir koleksiyonu olarak seçenekler listesi; - kabuğa iletilen bayraklar. Bu değişkenlere erişirken (yani bunları bir toplu iş dosyasında - bir kabuk programında kullanırken), önüne "$" koymalısınız. Önemli rol benzersiz dosyalar oluştururken, değeri bu hesaplamayı gerçekleştiren işlemin sayısına karşılık gelen "$$" özel değişkeni oynatılır. Bilgisayar tarafından gerçekleştirilen her yeni hesaplama, sayıları otomatik olarak sırayla alan bir veya daha fazla işlemi başlatır. Bu nedenle, işlem numarasını dosya adı olarak kullanarak, her yeni dosyanın yeni bir ada sahip olacağından (mevcut olanın üzerine yazılmadığından) emin olabilirsiniz. Dosyaları bu şekilde adlandırmanın avantajı aynı zamanda ana dezavantajıdır. Dosyalara hangi isimlerin verileceği bilinmiyor. Ve eğer bu süreç çerçevesinde bir dosyayı "bakmadan", yani ona $$ kullanarak başvurarak bulmak mümkünse, o zaman bu tür dosyalar kolayca kaybolabilir. Yaratır ek sorunlar programlarda hata ayıklarken. Tercümanın çağrılması Kullanıcı sisteme giriş yaptıktan sonra (login komutunu kullanarak), SHELL dil tercümanı çağrılır. Kullanıcının oturum açma dizini bir .profile dosyası içeriyorsa, terminalden tek bir komut bile alınmadan, yorumlayıcı bu dosyayı çalıştırır (.profile dosyasının komutlar içerdiği varsayılır). Çağrı sırasında aşağıdaki anahtarlar belirtilebilir: -c string Komutlar belirtilen dizeden okunur. -s Komutlar standart girişten okunur. Tercüman mesajları standart teşhis dosyasına yazılır. -i Etkileşimli mod. "0" parametresinin ilk karakteri - ise komutlar .profile dosyasından okunur.

    PROGRAM YAPILARI===

    Her programlama dilinde olduğu gibi kabuk dilinde de metin içerisinde yorumlar bulunabilir. Bunun için "#" karakteri kullanılır. Bu sembolün solundaki satırda (toplu iş dosyasında) bulunan her şey, yorumlayıcı tarafından yorum olarak algılanır. Örneğin,

    # Bu bir yorumdur.

    Herhangi bir prosedürel programlama dili gibi, kabuk dilinin de operatörleri vardır. Bir dizi operatör, komutların yürütülme sırasını kontrol etmenize olanak tanır. Bu tür operatörlerde genellikle hesaplamaların devamının yönünü belirleyen koşulu kontrol etmek gerekir.

    deneme(") komutu

    Test komutu belirli bir koşulun karşılanıp karşılanmadığını kontrol eder. Bu (yerleşik) komutu kullanarak kabuk dili seçme ve döngü ifadeleri oluşturulur. İki olası komut formatı:

    test koşulu

    [ durum ]

    ikinci seçeneği kullanacağız, yani. Koşuldan önce "test" kelimesini yazmak yerine, programcıların daha aşina olduğu koşulu parantez içine alacağız. Aslında, kabuk bu komutu açılış parantezi "["'den "test" komutuna karşılık gelen kelime olarak tanıyacaktır. Parantezlerin arasında boşluklar ve bunların içerdiği durum olmalıdır. Değerler ile karşılaştırma karakteri veya işlemi arasında da boşluk olmalıdır. Kabuk, çeşitli "türlerin" koşullarını kullanır. DOSYA KONTROL KOŞULLARI: -f dosya "dosya" normal bir dosyadır; -d dosya dosya "dosya" - dizin; -c dosyası "dosya" özel bir dosyadır; -r dosyanın "dosya" dosyasını okuma izni vardır; -w dosyanın "dosya" dosyasına yazma izni vardır; -s dosyası "dosya" boş değil.

    Dize KONTROL KOŞULLARI: str1 = str2 dizeleri "str1" ve "str2" eşleşir; str1 != str2 dizeleri "str1" ve "str2" eşleşmiyor; -n str1 string "str1" mevcut (boş değil); -z str1 string "str1" mevcut değil (boş). Örnekler.

    x = "kim kimdir"; x'i dışa aktar; [ "kim kimdir" = "$x" ]; yankı $? 0x=abc ; x'i dışa aktar; [ abc = "$x" ] ; yankı $? 0x=abc ; x'i dışa aktar; [ -n "$x" ] ; yankı $? 0 x = "" ; x'i dışa aktar; [ -n "$x" ] ; yankı $? 1

    Ayrıca koşul yerine kullanılabilecek iki standart koşul değeri vardır (parantezlere gerek yoktur). TAM SAYI KARŞILAŞTIRMA KOŞULLARI: x -eq y "x", "y"ye eşittir, x -ne y "x", "y"ye eşit değildir, x -gt y "x", "y"den büyüktür, x -ge y "x", "y"den büyük veya ona eşittir, x -lt y "x", "y"den küçüktür, x -le y "x", "y"den küçüktür veya ona eşittir. KARMAŞIK KOŞULLAR: Tipik mantıksal işlemler kullanılarak uygulanır: ! (değil) çıkış kodunun değerini tersine çevirir. -o (veya) mantıksal "VEYA" ile eşleşir. -a (ve) mantıksal VE ile eşleşir.

    Koşullu "if" ifadesi

    Genel olarak "if" ifadesi şu yapıya sahiptir:

    koşul varsa listele

    Burada "elif", "else if"in kısaltmasıdır ve tam hali ile birlikte kullanılabilir. Rastgele sayıda "if" ifadesinin (aynı zamanda diğer ifadelerin) iç içe yerleştirilmesine izin verilir. Kesinlikle her durumda "liste"nin verilen bağlamda anlamlı ve kabul edilebilir olması gerekir. Bu operatörün en kesik yapısı

    Koşul varsa fi'yi listele

    koşul karşılanırsa (kural olarak, "0" tamamlama kodunu alan kişidir, ardından "liste" yürütülür, aksi takdirde atlanır. Örnekler. "if-1" yazalım

    Eğer [ $1 -gt $2 ]

    sonra pwd else echo $0: Merhaba!

    Daha sonra if-1 12 11 çağrıldığında /home/sae/STUDY/SHELL ve if-1 12 13 ifadesi ise if-1: Merhaba!

    Operatörü arayın ("durum")

    "Case" seçim ifadesi aşağıdaki yapıya sahiptir:

    Vaka dizesi

    desen) komutların listesi;; desen) komutların listesi;; ... model) komutların listesi;;

    Burada "case", "in" ve "esac" yardımcı kelimelerdir. Bir "dizge" (tek bir karakter olabilir) bir "desen" ile karşılaştırılır. Daha sonra seçilen satırın "komut listesi" yürütülür. Alışılmadık şekilde ";;" seçim satırlarının sonuna bakın, ancak buraya ";" yazın bu bir hata olurdu. Her alternatif için çeşitli komutlar yürütülebilir. Bu komutlar tek satırda yazılmışsa ";" karakteri komut ayırıcı olarak kullanılacaktır. Genellikle son seçim satırında "*" deseni bulunur; bu, "case" yapısında "herhangi bir değer" anlamına gelir. Bu dize, değişkenin değeri (burada $z), ")" paranteziyle sınırlandırılan önceden yazılmış kalıplardan hiçbiriyle eşleşmediğinde seçilir. Değerler yazılma sırasına göre aranır.

    Numaralandırma döngüsü ifadesi ("for")

    "For" döngü operatörü aşağıdaki yapıya sahiptir:

    İsim için

    yapılan komutların listesi burada "for" döngünün türünü tanımlayan bir işlev sözcüğüdür, "do" ve "done" ise döngünün gövdesini vurgulayan hizmet sözcükleridir. "Lsort" komutunun bir toplu iş dosyasıyla temsil edilmesine izin verin

    i için dosya_1 dosya_2 dosya_3'te proc_sort $i bitti

    Bu örnekte "i" adı bir döngü parametresi rolünü oynuyor. Bu ad, listelenen değerlerin (i=file_1, i=file_2, i=file_3) sırayla atandığı ve "proc_sort" komutunun bir döngü içinde yürütüldüğü bir kabuk değişkeni olarak düşünülebilir. "For i in *" formu sıklıkla kullanılır, bu da "geçerli dizindeki tüm dosyalar için" anlamına gelir. "Proc_sort"un bir toplu iş dosyasıyla temsil edilmesine izin verin

    Kedi 1$ | sıralama | tee /dev/lp > $(1)_sorted

    onlar. belirtilen dosyalar sırayla sıralanır, sıralama sonuçları yazdırılır ("/dev/lp") ve file_1_sorted file_2_sorted ve file_3_sorted dosyalarına gönderilir

    Doğru koşula sahip döngü ifadesi ("while")

    Hesaplamaların da yapılmasını sağlayan "while" yapısı, parametre değerlerinin tam listesinin önceden bilinmediği veya bu listenin bir döngü içerisinde hesaplamalar sonucu elde edilmesi gerektiği durumlarda tercih edilir. "while" döngü ifadesi aşağıdaki yapıya sahiptir:

    durum iken

    "while"ın döngü türünü doğru koşulla tanımlayan bir işlev sözcüğü olduğu yapılan komutların listesini yapın. Döngü gövdesindeki komutların listesi ("do" ve "done" arasında), koşul doğru olana kadar (yani, döngü gövdesindeki son komutun çıkış kodu "0" olana kadar) veya döngü, döngüden kesilene kadar tekrarlanır. içeride özel komutlarla ("ara", "devam et" veya "çıkış"). Döngüye ilk girdiğinizde koşulun doğru olması gerekir. "break [n]" komutu döngüden çıkmanızı sağlar. Eğer "n" yoksa "break 1"e eşdeğerdir. "n", çıkılacak iç içe geçmiş döngülerin sayısını belirtir; örneğin, "break 3" - üç iç içe döngüden çıkış. "break" komutunun aksine, "continue [n]" komutu yalnızca mevcut döngünün yürütülmesini sonlandırır ve döngünün BAŞLANGICI'na geri döner. Bir parametreyle de olabilir. Örneğin, "devam et 2", ikinci (derinlikten sayılıyorsa) iç içe geçmiş döngünün başlangıcına çıkış anlamına gelir. "exit [n]" komutu, "0" veya "n" ("n" parametresi belirtilmişse) dönüş koduyla prosedürden tamamen çıkmanıza olanak tanır. Bu komut yalnızca döngülerde kullanılamaz. Doğrusal bir talimat dizisinde bile, (geçerli) hesaplamanın yürütülmesini belirli bir noktada durdurmak hata ayıklamada yararlı olabilir.

    Yanlış koşullu döngü ifadesi ("kadar")

    "Until" döngü operatörü şu yapıya sahiptir:

    koşula kadar

    "kadar" ifadesinin yanlış koşullu döngü türünü tanımlayan bir işlev sözcüğü olduğu yapılan komutların listesini yapın. Döngünün gövdesindeki komutların listesi ("do" ve "done" arasında), koşul yanlış olana kadar veya döngü özel komutlarla ("break", "continue" veya "exit") içeriden kesilinceye kadar tekrarlanır. . Döngüye ilk girdiğinizde koşulun doğru olmaması gerekir. "While" operatöründen farkı, döngü koşulunun yanlışlık açısından kontrol edilmesidir (döngü gövdesinin son komutunun sıfırdan farklı bir çıkış kodu için), döngü komutlarının her (ilk dahil!) yürütülmesinden SONRA kontrol edilir. döngü gövdesi. Örnek.

    yanlış yapana kadar

    x'i oku eğer [$x = 5] o zaman yeterli yankı yap; başkasını kır, biraz daha yankı yap

    Burada program, "5" girilene kadar sonsuz bir döngü içinde kelimelerin girilmesini bekler (ekranda "biraz daha" ifadesini tekrarlayarak). Bundan sonra "yeter" verilir ve "break" komutu döngünün yürütülmesini sonlandırır.

    Boş ifade

    Boş ifade şu formata sahiptir:

    :

    Hiçbir şey yapmamak. "0" değerini döndürür."

    Kabuk işlevleri

    İşlev, sonraki yürütme için kabuk komutlarının bir listesini hazırlamanıza olanak tanır. İşlev açıklaması şuna benzer:

    Ad() (komut listesi)

    bundan sonra işleve çağrı isme göre gerçekleşir. Fonksiyon çalıştırıldığında yeni bir süreç oluşturulmaz. İlgili sürecin ortamında yürütülür. Fonksiyonun argümanları onun konumsal parametreleri haline gelir; işlev adı onun boş parametresidir. Bir işlevin yürütülmesini "return [n]" ifadesiyle kesebilirsiniz; burada (isteğe bağlı) "n" dönüş kodudur.

    Kesinti yönetimi ("tuzak")

    Bazen programın yürütülmesini kesintiye karşı korumak gerekir. Sinyallere karşılık gelen en yaygın kesintiler şunlardır: 0 tercümandan çıkış, 1 serbest bırakma (uzak abonenin bağlantısının kesilmesi), 2 tercümandan kesinti , 9 öldürme (yakalanmadı), 15 infazın sonu. Kesintilere karşı koruma sağlamak için şu formatta bir "tuzak" komutu vardır:

    "Komut listesi" sinyallerini yakalayın

    Sinyalleri "sinyaller" içinde boşlukla listelenen sistemde kesintiler meydana gelirse, "komut listesi" yürütülür ve ardından ("çıkış" komutu komutlar listesinde yürütülmezse), kontrol kesme noktasına dönecek ve toplu iş dosyasının yürütülmesine devam edilecektir. Örneğin, bir toplu iş dosyasının yürütülmesini kesmeden önce "/tmp" içindeki dosyaları silmek istiyorsanız, bunu "trap" komutuyla yapabilirsiniz:

    Tuzak "rm /tmp/*; çıkış 1" 1 2 15

    dosyadaki diğer komutlardan önce gelir. Burada dosyaları sildikten sonra toplu iş dosyasından “çıkış” işlemi yapılacaktır.

    =====================================================

    1 No'lu LABORATUAR ÇALIŞMASI (tamamlanma süresi - 3 saat)

    Konu: “Girişkabuk

    1. Kabuğa giriş

    Kabuk, kullanıcı ile Unix çekirdeği arasında 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

    Solaris, listelenenlere ek olarak ek kabuklar da sağlar:

      J kabuğu - /sbin/jsh

      Kısıtlı Korn l -- / usr/ kutu/rsh

      T-kabuk -- /usr/bin/tcsh

      GNU Bourne Yeniden -- /usr/bin/bash

      Z kabuğu - usr/bin/zsh

    Kabuk seçimi kişisel tercih meselesidir.

    2. Komutları çalıştırın

    Unix'teki herhangi bir komut, başlatılacak programın adından (komut), seçeneklerden (anahtarlar) ve programa aktarılan argümanlardan 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 yürütülebilir dosyanın yolu belirtilmezse, işletim sistemi PATH değişkeninde belirtilen dizinleri sırayla arar. Göz atılan dizinde aynı adda bir program varsa, yürütülmek üzere başlatılır. Geçerli çalışma dizini, PATH değişkeninde ayarlanmadığı sürece program ararken aranmaz.

    ! Güvenlik nedeniyle, yöneticinin kullanıcının geçerli dizinini ve ana (kişisel) dizinlerini PATH değişkenine eklememesi önerilir.

    Örnekler

    Programın tam yolla başlatılması

    $ / usr/ yerel/ çöp Kutusu/ Benim_ programı

    Bir programın daha yüksek (ana) dizinden başlatılması

    $ ../ yerel/ çöp Kutusu/ Benim_ programı

    Programın geçerli dizinden başlatılması

    $ ./ Benim_ programı

    3. Kabuktaki özel karakterler

    Kabuktaki bazı karakterlerin özel anlamları vardır.

    3.1. Dosya adı oluşturma kalıpları

    ? (soru işareti) ilk nokta dışındaki herhangi bir karakterle eşleşir;

    (köşeli parantez) bir sembol grubunu tanımlayın (gruptan bir sembol seçilir);

    - (Eksi işareti") geçerli karakter aralığını tanımlar;

    ! (Ünlem işareti) kendisini takip eden karakter grubunu reddeder;

    * (yıldız sembolü) ilk nokta dışındaki herhangi bir sayıda karakterle eşleşir.

    3.2. G/Ç yönlendirme sembolleri

    < - giriş yönlendirmesi;

    >, >> - çıktı yönlendirmesi;

    2>, 2>> - hata mesajlarının yeniden yönlendirilmesi;

    | - konveyör.

    3.3. Joker karakter simgeleri

    $değişken_adıQ - değişken ikame;

    $(komut) veya 'komut' - komut ikamesi;

    ~ - yaklaşık değişikliği.

    4. Ara

    İçin hızlı arama dosyalar ve dizinler, Whereis komutu, daha derin bir komut için find komutu kullanılır (belirtilen gereksinimleri karşılayan dosyaları arayın;).

    5.vi metin editörü

    vi metin düzenleyicisi herhangi bir Unix'te bulunan evrensel bir metin düzenleyicisidir. Düzenlemenin Ötesinde metin dosyaları, vi düzenleyicisi komut satırını düzenlemek için kullanılabilir.

    vi düzenleyicisinin 3 çalışma modu vardır (şekle bakın).

    Vi düzenleyicisine girme

    vi'den çık

    İlk konumdaki ”~” (tilde) işareti dosyanın boş (var olmayan) satırlarını işaret eder.

    Ana mod, belirli bir tuş dizisine basılarak komutların girildiği komuttur (ekranda hiçbir şekilde görüntülenmezler).

    Komut modunda metinde gezinmek oklar ve tuşlar kullanılarak gerçekleştirilir (sol) (aşağı), (yukarı), (Sağa).

    Bazı vi komutları tabloda listelenmiştir.

    Geçerli satırı sil

    Geçerli satırı panoya kopyala

    İmleç hareketi

    İmleçle işaretlenen karakterleri ara belleğe yerleştirme

    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)

    Son yürütülen komutu yinele

    Son komutu iptal et

    Geçerli satırdaki tüm değişiklikleri geri al

    İmlecin üstündeki karakteri sil

    Giriş modunda klavyede yazılan tüm karakterler metne eklenir.

    Son satır modunda yazdığınız komut ekranın son satırında görüntülenir.

    6. Yardım

    Unix'in, komutların amacının açıklaması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 kabuk komutları

    DSÖ– aktif kullanıcılar hakkındaki bilgilerin görüntülenmesi;

    Eko– terminale mesaj çıkışı;

    afiş– mesajların terminale büyük harflerle gönderilmesi;

    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ın görüntülenmesine izin verilmesi/yasaklanması;

    posta– posta gönderme/alma;

    haberler- sistem haberlerine aşinalık;

    özürlü– geçerli çalışma dizininin mutlak yol adını görüntüleyin;

    CD– çalışma dizinini değiştirmek;

    ls– dizinin içeriğine ilişkin bilgilerin görüntülenmesi;

    mkdir- bir dizin oluşturmak;

    rmdir– bir dizinin silinmesi;

    dokunmak– dosyanın zaman damgasının güncellenmesi;

    cp- dosyalar kopyalanıyor;

    kedi- dosya içeriklerinin birleştirilmesi ve görüntülenmesi;

    Daha– dosya içeriğinin sayfalandırılması.

    mv – bir dosyayı taşımak veya yeniden adlandırmak;

    rm– bir dosyayı silmek;

    takma ad– takma adın oluşturulması;

    TR– karakter dönüşümü;

    çıkış- akımın tamamlanması kabuk-A;

    tişört– boru hattı sonuçlarına müdahale edilmesi;

    kesmek – bir diziden alanların seçimi;

    grep– desene göre arama;

    halkla ilişkiler– 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ın çıktısını alın;

    WC- karakter, kelime ve satır sayısını saymak;

    Okumak, Eko - değişken değerlerinin okunması ve görüntülenmesi;

    Ö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. Bir dosyayı yürütmek üzere bir kabuk programıyla çalıştırmak için, yürütme hakkını erişim haklarına eklemeniz gerekir:

    $ chmod +x program_dosya_adı

    Kabuk programlarında dallanma, operatörler kullanılarak düzenlenir:

    eğer-o halde-else

    Döngü ifadeleri:

    EGZERSİZLER

    1. Aşağıdaki komutlardan hangisi ekranda bir hoş geldiniz mesajının görüntülenmesine neden olur? Ne değildir? Neden?

    $ yankı merhaba

    $ yankı merhaba

    $ echo MERHABA, DÜNYA

    $ afiş Merhaba

    $ AFİŞ MERHABA, DÜNYA

    2. Komutları kullanarak birden çok satırdan bir mesaj yazdırın Eko Ve pankart.

    3. Tarihi iki satır halinde yazdırın: ilk satıra gün, ay, yıl, ikinci satıra ise geçerli saat, çıktıyı bir yorumla birlikte sağlayın.

    4. Komutu kullanma yazmak, konsola bir mesaj gönderin. Aynı anda birden fazla terminale mesaj gönderin.

    5. Komutu 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ı verin EV-katalog.

    7. Komutları kullanarak /export/home dizininden başlayarak dizinlerin alt ağacına göz atın cd, ls Ve pwd.

    8.. Kendinizde yaratın EV-dizin formun alt dizinleri:

    meyve çiçekleri

    elma armut üzüm gül menekşe karahindiba

    koyu yeşil

    9. Kendi içinde olmak EV-dizin, tek bir komut satırını kullanarak aşağıdaki alt dizinleri oluşturun:

    A/B/C/D

    10. Kendi içinde olmak EV-dizin, dizinin tüm alt dizinlerini silin A.

    11. İçinde Olmak EV-dizin, bir dosya oluştur Macintosh mevcut katalogda elma ve dizinlerdeki birkaç dosya karanlık Ve yeşil. Dizine girin Fdüşürür. Dizinde olmak Fdüşürür, tüm alt dizinleri kopyala Fkalıntılar içerdikleri dosyalarla birlikte özel olarak oluşturulmuş bir dizine sepet.

    12. Katalogda yer almak Fdüşürür, dizini kaldır Fkalıntılar.

    13. Dosyayı okuyun .profil komutları kullanma kedi Ve Daha.

    14. İçinde yaratın EV- dizin metin dosyası dosyam komutuyla birden fazla satırdan kedi. Bir metin dosyası oluşturun MsenFile, içine aynı satırları yazarak. Kaç dosya aldın? Neden?

    15. Görev 2.2'de oluşturulan dosyanın içeriğini görüntüleyin dosyam. Dosyayı kopyala dosyam dosyalamak kopyam. Her iki dosyanın içeriğini görüntüleyin.

    16. Dosyayı taşıyın kopyam kataloglamak Çiçekler.

    17. İçinde Olmak EV-dizin, bir bağlantı oluştur Msenbağlantı dosya başına kopyam dizinde bulunur Çiçekler. Bağlantı dosyasını görüntüleyin.

    18. Dosyaya bir satır ekleyin Benimbağlantı. Dosyalardan hangisi Benimbağlantı, Benimkopyala, 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ı, Benimkopyala, Benimdosya.

    Dosyayı sil 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. Oturumu kapatıp tekrar oturum açın. Takma ad çalışıyor mu? yön? Takma adın oturumlar arasında "kaybolmaması" için ne yapılmalıdır?

    22. Takma ad oluşturun noktaçalışma dizinindeki adları noktayla başlayan dosyaların listesini yazdırır.

    23. Komutu kullanma dokunmak, yeni bir dizinde aynı anda aşağıdaki adlara sahip dosyalar oluşturun:

    Şablon A* 5 dosyayla eşleşti;

    Şablon * A 4 dosyayla eşleşti;

    Şablon ??.? 3 dosyayla eşleşti;

    Şablon * aa* 2 dosyayla eşleşti;

    Şablon??? 1 dosyayla eşleşti.

    24. Aşağıdakileri yapmak için hangi komutun girilmesi gerekir:

    a) noktayla başlayan tüm dosyaların adlarını görüntüler;

    b) ile biten tüm dosyaların adlarını görüntüler ".txt";

    c) sözcüğü içeren tüm dosyaların adlarını yazdırın "Benim";

    25. Belirli bir dosyadaki tüm küçük harfleri büyük harfe, diğerinde ise tüm büyük harfleri küçük harfe değiştirin. Dosyadaki tüm yinelenen alanları kaldırın.

    26. Adlı bir dosya oluşturun * . Yalnızca bu dosyayı silin. Dosya adı oluşturma karakterlerini kullanırken dikkatli olun!

    27. Adında boşluk karakteri bulunan bir dosya oluşturun. Böyle bir dosya nasıl silinir?

    28. Komutu kullanma kedi Orijinal içeriği aynı dosyanın sonuna ekleyerek dosyanın içeriğini iki katına çıkarı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. komutuyla okumayı deneyin kedi var olmayan dosya. Sistemin tepkisi nedir? Hata mesajlarını bir dosyaya yönlendirerek de aynısını yapın benim hatam. Ekranda ne görüyorsunuz? Dosyayı görüntüle benim hatam.

    30. Şu anda çalışma dizininizde bulunan dosyaların yalnızca adlarını ve izinlerini listelemek için bir işlem hattı oluşturun.

    31. Oluşturulan 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/passwd, kullanıcı adı alanına göre sıralanmıştır.

    33. Takma ad oluşturun oturum açıldıAçık Sistemde o anda oturum açmış olan kullanıcıların adlarının alfabetik olarak sıralanmış bir listesini görüntüleyecektir.

    33. Komutları kullanarak geçerli tarihi büyük harflerle görüntüleyin tarih Ve pankart.

    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 dosyada 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, doğum günü, ayı ve yılını girmesini isteyecek ve bu bilgileri ters sırada görüntüleyecektir.

    36. Yaz kabuk- bir sayı girme davetini görüntüleyen, girilen sayıyı bir değişkende saklayan bir program e ve bir mesaj yazdırın “Y 7'den büyüktür”, eğer değer e 7'den büyük ve “YOlumsuz daha büyük hariç 7” aksi takdirde.

    37. Aşağıdaki istatistikleri görüntüleyen bir kabuk programı yazın:

    a) adınız;

    b) başlatıldığı argümanların sayısı;

    c) argümanlarının her birini ve argümanın uzunluğunu karakter olarak yazdırır;

    38. Yaz kabuk-komut satırındaki argüman sayısını belirleyen ve argüman sayısı üçe eşit değilse veya argümanların sayısı üçe eşitse argümanların kendilerini bir hata mesajı veren bir program.

    39. Yaz kabuk- Kullanıcı kimliğini girmenizi isteyen, kimliğin sistemde kullanılanlarla uyumluluğunu kontrol eden ve tam adı görüntüleyen bir program EV-dizin veya geçersiz bir tanımlayıcı durumunda bir hata mesajı yayınlayın.

    40. Bir kabuk programı yazın Merhaba, komut satırı argümanlarına aşağıdaki yanıtı sağlar:

    Argüman "-D"- program komutu yürütecektir tarih;

    Argüman “-l”- program geçerli dizinin içeriğini gösterecektir;

      komut satırında hiçbir argüman veya geçersiz argüman yoksa program, seçenekleriyle ilgili yardım görüntüleyecektir.

    41. Bir program yazın kelimeler, kullanıcıdan bir kelime girene kadar her defasında 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. Sistem istemini, geçerli çalışma dizininin tam yol adını içerecek şekilde değiştirin .

    43. Bir program yazın virüs, farklı bir adla kendisinin yürütülebilir bir kopyasını oluşturur ve ardından kendisini siler.

    44. Bir program yazın virüs2 programın geçerli dizinine bakan komut dili ve metinlerine sözcüğü görüntülemek için bir komut ekler enfekte!”.

    45. Bir program yazın virüs3 , diğer programlara bulaşmak için bulduğu komut dili programlarına kendi kodunu ekleyen.

    46. ​​​​Bir program yazın virüs4 virüsünüzü değiştirerek, virüs bulaştığında, bulaşan kodun, bulaşan programdan kaldırılmasını sağlar.

    47. Bir program yazın 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ı bulmakla kalmayacak, aynı zamanda virüslü sürümü sonuyla yeni bir dosyaya kaydederek bunları "iyileştirecek" şekilde değiştirin. . virüs ve böyle bir dosyadan yürütme niteliğinin kaldırılması.

    49. Bir program yazın virüs5 , hangisi:

    a) yalnızca kullanıcının komutu girmesi durumunda geçerli dizindeki ve alt dizinlerindeki kabuk programlarına virüs bulaştırabilir ls;

    b) takım gibi davranmak ls, işlerinin terminalinde hiçbir şey vermeden.

    50. Programlara dayalı virus6 programı yazın virüs2 -virüs5 Bulaşma kodu tarafınızca geliştirilen program tarafından tespit edilemeyen antivirüs ve değişkenin herhangi bir değerinde enfeksiyon meydana gelebilir YOL.

    51. Bir program yazın süper virüs Başlatıldığında bir önceki görevde geliştirilen virüs dosyalarınıza bulaşıyor ve sisteme her giriş yaptığınızda yoldaşlarınızın dosyalarına bulaşmaya çalışılıyor. programı süper virüs ilk çalıştırmadan sonra kendini siler.

    52. Bir program yazın süper antivirüs Belirtilen dizindeki ve alt dizinlerindeki tüm dosyaları, geliştirilen tüm virüslerden algılayan ve tamamen "tedavi eden" (ilgili seçenek belirtilirse).

    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 basıldığında yapılan işlemler ). Konsolda çoklu görev. Görevler. Görev yönetimi. Gece yarısı komutanı ortam değişkenleri

    Ders ilerlemesi

    1. Linux ve Unix dünyasında, 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ır-dir düzenli program. Dosyayı varsayılan kabuk olarak ayarlayarak bunu kanıtlayabilirsiniz. şifre kullanıcı için başka bir program. Ancak sistemin bunu kabuk olarak bilmesi için mutlak dosya adını eklemeniz gerekir. /etc/kabuklar.

    Linux çeşitli komut kabuklarıyla birlikte gelir; bunların bileşimi dağıtıma bağlı olarak değişebilir, ancak her zaman şunları bulabilirsiniz:

    Bourne Shell (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 bu kadar popüler hale geldi. Son zamanlarda. Neredeyse tüm Linux dağıtımları için "varsayılan" kabuktur.

    Ayrıca popüler kaplamalar şunlardır:

    csh- komut sistemi C programlama diline yakın olan kabuk

    tcsh, komut sistemi Tcl programlama diline yakın olan bir kabuktur.

    zsh muhtemelen en güçlü kabuktur. sh'nin (bourne kabuğu) bir uzantısıdır.

    Linux bash'ı "varsayılan olarak" kullandığından, bunun hakkında konuşacağız.

    2. komut kabuğu bash aslında Bourne Shell'e ücretsiz bir alternatifti. Daha sonra yetenekleri büyüdüğünde bağımsız bir ürün olarak görülmeye başlandı. Bash'ın temel özellikleri şunlardır:

    Tablo 1.1.
    Fırsat Bir yorum
    1 Satır düzenleme Girilen komutu yeniden yazmak yerine düzenleme yeteneği
    2 Kanal organizasyonu Fırsat G/Ç yönlendirmeleri, görevler arasındaki kanalları organize etmek
    3 Kullanım kolaylığı Komut takma adlarının, komut geçmişinin, otomatik tamamlamanın kullanımı
    4 İş yönetimi Arka plan işleri oluşturma ve yönetme yeteneği
    5 Esneklik Her kullanıcı için oturum açma komut dosyası dosyalarının ayrı ayrı kullanılması, ortam değişkenleri

    G/Ç yönlendirmesi ve borular daha sonra Ders 8'de ele alınacaktır. Bu nedenle bu noktayı atlayacağız. Ancak 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. History komutu bu dosyayı yönetmek için kullanılır. tarih yerleşik komut bash. Yani bu komuta karşılık gelen yürütülebilir bir dosya yoktur. Kendini komut kabuğu tüm eylemleri gerçekleştirir. Seçenekler 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 komut kümesini basitleştirmek için mevcuttur. Komutların geçmişi tuşlarla liste üzerinden sıralanabilir <вверх>Ve<вниз> .

    Başka bir yol da yazmaktır! ve komut başlat ve tuşuna basın . İlk harfleri yazılanlarla eşleşen geçmişin son komutu yürütülecektir. Örneğin:

    $ !/usr /usr/bin/perl ./ptest.pl Tamam $ !xfonts bash: !xfonts: olay bulunamadı $

    Ancak ihtiyacımız olan komut henüz geçmişte yoksa girişi nasıl hızlandırabiliriz? Bu durumda anahtar bize yardımcı olacaktır. . Komutun (veya dosya yolunun) ilk birkaç harfini yazdıktan sonra tuşuna basın. Ve darbe komutunuzu (veya yol öğesini) otomatik olarak tamamlayacaktır. Birkaç dosyanın eşleşmesi veya hiçbir dosyanın eşleşmemesi durumunda sistem, ses sinyali. Eğer düğme birkaç dosya sığdığında tekrar basın - sistem bir liste görüntüleyecektir ve hiçbiri olmadığında bip sesini tekrarlayın

    3. İlk dersten itibaren Linux'un çoklu görev ortamı olduğunu hatırlamış olmalısınız. Ancak şu ana kadar hala çoklu görev özelliğinden yararlanamadınız. İlk bakışta konsolun sistemin çoklu görev yeteneklerini kullanmanıza izin vermediği ve yalnızca grafiksel ortamda iki veya daha fazla programı aynı anda çalıştırabileceğiniz anlaşılıyor. Ama değil! Konsol aynı zamanda çoklu görev özelliğine sahiptir.

    Öncelikle her birinde bir program açarak birden fazla konsol açabilirsiniz. Konsollar arasında geçiş tuşlar kullanılarak yapılacaktır. ctrl+ , Nerede X konsol numarasıdır.

    Ve iş kontrol komutlarının yardımıyla tek bir konsolda bile çoklu görev sisteminin tüm avantajlarından tam olarak yararlanabilirsiniz.

    - sürece yakalanamayan bir sinyal gönderen bir tuş kombinasyonu sigstop. Kontrolü komut satırına aktarmak için işlemin yürütülmesini durdurmanıza olanak tanır.

    komut & - komuttan sonraki & sembolü onu çalıştırmanıza izin verir arka plan.

    işler - mevcut işleri listeler komut yorumlayıcısı.

    bg<#j>– #j işini arka plana koyar. Bundan önce görevin tuş kombinasyonuyla durdurulması gerekir. . Şu anda tercümanın yalnızca bir görevi varsa, bu sayı atlanabilir.

    fg<#j>- #j işini ön planda yürütme moduna geçirir. İşin bir tuş kombinasyonu ile durdurulması gerekir veya arka planda olun. Şu anda tercümanın yalnızca bir görevi varsa, bu sayı atlanabilir.

    $ man bash ^Z + Durdurulan man bash $ vim ^Z vim + Durdurulan vim $ bg 1 + man bash & $ jobs + Durdurulan man bash + Durdurulan vim $ fg 2 + vim $ fg + man bash $

    4. Ortam Değişkenleri– tercihlerinizi belirten sistem bilgileri, örneğin Metin düzeltici varsayılan olarak, yürütülebilir dosyalar vb. için arama yollarının yanı sıra kullanıcı, sistem ve kabuk kimlikleri gibi Kullanıcı adı, Linux sürümü vb., komut yorumlayıcısı ve diğer programlar tarafından kullanılır.

    Kullanıcı tarafından yaygın olarak kullanılan değişkenler şunlardır:

    PATH - değişken, sistemin tam veya çalıştırılabilir dosyalar için 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ı

    SHELL - geçerli oturumda çalışan komut kabuğunun adını içerir.

    KULLANICI - içerir Kullanıcı adıŞu anda açık olan oturum.

    Sistemde yüklü olan değişkenlerin listesi, parametresiz olarak girilen dışa aktarma komutu ile görülebilir.

    Bash kabuğunun kendi değişkenleri vardır. Yerel değişkenlerin sistem değişkenleri olabilmesi için aynı dışa aktarma komutu kullanılarak dışa aktarılmaları gerekir. Örneğin:

    $ ihracat beyanı -x HOME="/home/gserg" ilan -x HOSTNAME="WebMedia" ilan -x LANG="en_RU.KOI8-R" ilan -x LOGNAME="gserg" ilan -x PATH="/bin: /usr/bin:/usr/local/bin:/home/gserg/bin" ilan -x PWD="/home/gserg" ilan -x SHELL="/bin/bash" ilan -x TERM="Eterm" ilan -x USER="gserg" $ EDITOR=/bin/vim $ ihracat EDİTÖR $ ihracat beyanı -x EDITOR="/bin/vim" ilan -x HOME="/home/gserg" ilan -x HOSTNAME=WebMedia" beyanı -x LANG='ru_RU.KOI8-R' ilan -x LOGNAME='gserg' ilan -x PATH='/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:' ilan - x PWD = "/home/gserg" beyan -x SHELL = "/bin/bash" beyan -x TERM = "Eterm" beyan -x USER = "gserg" $

    Takım ayarsız bir sistem değişkenini siler. Örneğin:

    $ unset EDITOR $ ihracat bildirimi -x HOME="/home/gserg" deklare -x HOSTNAME=WebMedia" deklare -x LANG='en_RU.KOI8-R" deklare -x LOGNAME="gserg" deklare -x PATH=" /bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" ilan -x PWD="/home/gserg" ilan -x SHELL="/bin/bash" ilan -x TERM= "Eterm" bildirimi -x KULLANICI = "gserg" $

    5. Bugünkü dersimizde sizi biraz standart dışı başka bir komut kabuğuyla tanıştıracağız. gece yarısı komutanı. Değil komut kabuğu her zamanki anlamıyla. Bu bir metin dosyası yöneticisidir - analog Norton Komutanı veya Uzak. gece yarısı komutanı mc komutuyla çalıştırın. Yetenekleri hakkında konuşacağız.

    Ekran Gece yarısı komutanı" iki parçaya bölünmüştür. Neredeyse tüm ekran alanı, dizin ve dosya listesinin bulunduğu iki panel tarafından kaplanıyor. Varsayılan olarak, ekranın alt kısmından ikinci satır, normal kabuk komutlarını yürütebileceğiniz bir komut satırıdır ve alt satırda, komut istemleri gösterilir. fonksiyon tuşları (F1-F10). Sembollerin üst satırında birçok işlevin gerçekleştirilebileceği bir menü bulunur. Menüyü kullanmak için istediğiniz öğeye tıklayabilir veya tuşuna basabilirsiniz. F9 ve tuşları kullanma 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. Transfer veya transfer gibi bazı işlemler dosyalar kopyalanıyor Pasif paneli kopyalama, aktarma vb. için bir yer olarak kullanın.

    Şimdi çalışmanıza yardımcı olacak temel klavye kısayollarından bahsedelim. Gece yarısı komutanı "ohm.

    tuşları aktif paneli değiştirmek için kullanılır veya +

    Bir dosyayı işaretlemek için tuşuna basın veya +

    tıklamak yardım için

    dosya tarayıcısını getirecek

    kullanarak dosyayı sen düzenle

    dosyayı kopyalamanıza izin verecektir.

    dosyayı taşıyın veya yeniden adlandırın

    dizin oluştur

    Anahtar bir dosyayı ve/veya dizini silecek

    , daha önce de belirtildiği gibi, menüye erişimi açar.

    - çıkmanıza izin verir gece yarısı komutanı.

    işaretçiyi dosya listesinin başına taşıyacak,

    - tam tersine - listenin sonuna.

    Ve göstergenin sayfa başına konumunu sırasıyla yukarı ve aşağı değiştirecektir.

    Anahtar <*> Açık ek klavye dosya seçimini tersine çevirir (dizinleri etkilemez)

    Anahtar <+> ek klavyede dosyaları maskeye göre işaretlemenize olanak tanır ve <-> dosyaların işaretini maskeyle kaldırın.

    + - dizinin içeriğini güncelleyin (diskten veya ağdan yeniden okuyarak)

    + - sağ ve sol panelleri değiştirin.

    + - panelleri çıkarın/iade edin.

    Her ne kadar kombinasyonlar Klavye kısayolları işi bitirmek için en iyi araçtır Gece yarısı komutanı "ohm Olabildiğince hızlı ve kullanışlı olduğundan yeni başlayanların hepsini aynı anda öğrenmesi oldukça zordur. Bu boşluğu doldurmak ve klavye kısayolları olmayan başka özellikler eklemek için, gece yarısı komutanı bir menüye sahiptir (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 farklar yalnızca gerçekleştirilen eylemlerin sol veya sağ panele yönelik olmasıdır.

    "Liste Formatı"- 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ş formatlar arasından seçim yapabilirsiniz. Ancak bu pencerede kullanıcı "Kullanıcı tanımlı" radyo butonunu seçerek panelin görünümünü tatmin olacağı şekilde de 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ındaki 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'un 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"- ad, uzantı, düzenleme zamanı, erişim zamanı, nitelik değiştirme zamanı, boyut, düğüm (dosyanın bulunduğu yer) gibi dosya ve dizinlerin listede sıralanacağı özniteliği seçebileceğiniz bir iletişim kutusu açar ). Ayrıca dosyaları sıralanmamış halde bırakabilir, büyük/küçük harfe duyarlı olarak sıralayabilir veya ters sırada sıralayabilirsiniz.

    "Filtre"- iletişim kutusuna girilen 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 (veya hatta yerel) bir bilgisayara bağlantı kurabilirsiniz ftp. Yalnızca uzak sunucunun adresi girilirse, o zaman gece yarısı komutanı anonim bir bağlantı kurmaya çalışacaktır. Düğümün belirtildiği tam satır aşağıdaki gibidir:

    ftp:kullanıcı adı:şifre@sunucu_adresi:sunucudaki/bağlantı noktası/dizin_on_adresi

    Bağlantı kurulduktan sonra aşağıdakilerle çalışın: 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 olanak tanır 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ğiyle). Kullanıcının uzak ana bilgisayarı belirtebileceği tam dize şöyledir:

    sh:kullanıcıadı@sunucu_adresi:seçenekler/sunucu_dizini

    Parametre Kullanıcı adı, seçenekler ve dizin_on_sunucusu gerekli değil. Eğer Kullanıcı adı belirtilmemişse o zaman gece yarısı komutanı Yerel makinede kullanılan kullanıcı adı ile uzaktaki sisteme giriş yapmaya çalışacaktır.

    "Tekrar ziyaret et"- klavye kısayollarına benzer + - Geçerli paneldeki dosya ve dizinlerin listesinin diskten veya ağ üzerinden yeniden okunarak güncellenmesine neden olur.

    "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 olanak sağlar. Ayrıca anahtar tarafından çağrılır .

    "Dosyayı görüntüle"- basıldığında gerçekleştirilen fonksiyonun analogu . Vurgulanan dosyayı görüntülemenizi (veya bir dizine girmenizi) sağlar. Gibi birçok formatı destekler metin formatları, arşiv, Winword DOC, Linux ikili dosyaları vb.

    "Dosyayı görüntüle..."- önceki paragrafla aynı, ancak vurgulanan dosyayı etkilemez, ancak adı ve yolu iletişim kutusuna girilecek olan dosyayı etkiler.

    "Takım Görünümü"- bir komutu yürütmenize ve onu görüntülemenize olanak tanır standart çıktı 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 ve yerleşik otomatik sözdizimi vurgulama düzenlemeyi daha kullanışlı ve düzenlenebilir metinleri daha okunaklı hale getirir.

    "Kopyala"- bir dosyayı aktif panelden pasif panele kopyalar. Tarafından çağrılan bir fonksiyonun analogu . Varsayılan olarak, aktif panelde vurgulanan dosyanın (veya dosya grubunun) kopyalandığı kabul edilir ve hedef, pasif panelde açılan dizindir. Bu komut çağrıldıktan sonra açılan iletişim kutusundaki alanların değerleri düzeltilerek bu durum değiştirilebilir.

    "İzinler"- iletişim kutusunda bir dosyanın (veya bir dosya grubunun) izinlerini değiştirmenize olanak sağlar.

    "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ı adı taşıyacak ve pasif panelde açılan dizinde yer alacaktır. 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ş)"- dosyaya ve dosyanın sahibine ve/veya grubuna erişim haklarını aynı anda 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ıza/taşımanıza olanak tanır. Tarafından çağrılan bir fonksiyonun analogu . Varsayılan olarak, aktif panelde vurgulanan dosyanın (veya dosya grubunun) taşındığı/yeniden adlandırıldığı kabul edilir ve hedef, pasif panelde açılan dizindir. Bu komut çağrıldıktan sonra açılan iletişim kutusundaki alanların değerleri düzeltilerek bu durum değiştirilebilir.

    "Dizin Oluştur"- bir dizin oluşturur. Tarafından çağrılan bir fonksiyonun analogu . Varsayılan olarak dizin, aktif panelde açılan dizinde oluşturulur. Açılan iletişim kutusunda oluşturulacak dizinin tam yolu belirtilerek bu değiştirilebilir.

    "Silmek"- bir dosyayı/dosya grubunu/dizini siler. Tarafından çağrılan bir fonksiyonun 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ı maskeye göre işaretler. ile çağrılan bir fonksiyonun analogu <+> isteğe bağlı klavyede.

        Linux ailesinin işletim sistemleri ve diğer tüm işletim sistemleri, bilgisayar sisteminin bileşenleri ile son kullanıcı arasındaki etkileşim için bir arayüz gerektirir; yani, gerekli komutların ve parametrelerin girilmesini sağlayan bir yazılım katmanının varlığı. arzulanan sonuçlar. Bu yazılım katmanına denir "kabuk" veya ingilizce dili - kabuk.

    Kabuk nedir?

    komut kabuğu ( kabuk) kullanıcı ile Linux işletim sistemi ortamı arasındaki etkileşimi sağlar. O uzmanlaşmıştır yazılım ürünü komutların yürütülmesini ve bunların yürütülmesinin sonuçlarının elde edilmesini sağlayan veya çok basitleştirilmişse kabuk, kullanıcının isteği üzerine diğer programların yürütülmesini sağlamak için tasarlanmış bir programdır. Bir kabuk örneği, örneğin bir komut yorumlayıcısı olabilir komut.com MS DOS işletim sistemi veya kabuk darbe Unix/Linux işletim sistemleri.

    Tüm kabuklar, ana amaçlarına uygun olarak benzer işlevlere ve özelliklere sahiptir - kullanıcı komutlarını yürütmek ve yürütme sonuçlarını görüntülemek için:

    Komut satırı yorumlaması.

    Komutlara ve sonuçlarına erişim.

    Değişkenler, özel karakterler ve ayrılmış kelimeler için destek.

    Dosyaların işlenmesi, standart giriş ve çıkış işlemleri.

    Özel bir kabuk programlama dilinin uygulanması.

        Unix / Linux ailesinin işletim sistemleri için, sistemle etkileşim özellikleri ve yöntemleri bakımından farklılık gösteren birkaç farklı kabuk kullanmak mümkündür. En yaygın kabuklar

    ş- kabuk Bourne, klasik Unix kabuğu

    darbe kabuk Yeniden Bourne(GNU Bourne-Again Shell). Belki de şu anda en yaygın olanı, Linux işletim sistemi ailesinin ortamındaki kabuktur.

    ksh- kabuk Korn bir kabuk geliştirmesi olarak tasarlandı Bourne komut satırı geçmişi ve komutları düzenleme yeteneği ile.

    csh- kabuk C, popüler bir programlama dilinin sözdizimini kullanarak C

    tcsh- kabuk versiyonu C etkileşimli komut satırı düzenleme ile.

    Sisteme birkaç farklı kabuk kurulabilir ve her kullanıcı kendi varsayılan kabuğunu kullanabilir. Elbette tüm bunlar, bir kullanıcının indirilmesi ve kaydedilmesi işlemi sırasında otomatik olarak yapılır.

        Linux ailesinin işletim sistemlerinin yüklenmesi sırasında, sistem çekirdeğini yükledikten sonra, etkileşimli moda - kullanıcı ile işletim sistemi arasındaki etkileşim modu - geçiş yapılır. Linux'ta önyükleme sırasında başlayan ilk süreç başlatma programıdır. içinde yapılandırma dosyasının içeriğini okuyan /etc/inittab, sistemde mevcut terminallerin listesini ve özelliklerini belirler ve etkileşimli oturum açma programını çağırır getty Kullanıcı adı istemini görüntüleyen A. Kullanıcı adı ve şifreyi girdikten sonra program getty programı çağırır giriş yapmak Hesabı doğrulayan, kullanıcının ana dizinine giden ve kontrolü oturumun ilk başlangıç ​​programına aktaran, bu program genellikle kullanıcının kabuk programıdır ve bunun belirli bir çeşidi dosyanın içeriğine göre belirlenir. /etc/passwd Bu hesap için. Örneğin:

    kullanıcı1:x:508:511::/home/kullanıcı1:/bin/sh
    tabanlar arası:x:510:511::/home/ara tabanlar:/bin/csh
    apb:x:511:513:apb:/home/apb:/bin/bash

    Dosyanın içeriğinden de görebileceğiniz gibi /etc/passwd, kullanıcı için kullanıcı1 kabuk başlatılacak ş(Bourne kabuğu), kullanıcı başına taban arası- kabuk csh(C kabuğu) ve kullanıcı için apb- kabuk darbe(Yine Bourne). Kabuk başladıktan sonra ekranda bir komut istemi görüntülenir (genellikle dolar işareti şeklindedir) $ iş standart bir kullanıcı hesabı bağlamında yapılıyorsa veya lb # kabuk ayrıcalıklı bir kullanıcı hesabı altında kullanılıyorsa ( kök).

    Kabuktan çıkıldığında sistem çekirdeği kontrolü programa geri verir. içinde, oturum açma işlemini yeniden başlatır ve terminalde kullanıcı adı istemini görüntüler. Kabuktan çıkmak iki yoldan biriyle yapılabilir:

    Ekip aracılığıyla çıkış kullanıcı tarafından gerçekleştirilen

    Kabuk işlemi bir sinyal aldığında öldürmek sistem yeniden başlatıldığında çekirdek tarafından gönderilir.

    Komut satırı yorumlaması.

        Bir kabuk istemine yanıt olarak kullanıcı girişine genel olarak şu ad verilir: Komut satırı veya takım. Bir Linux komutu, komut adının ve argümanların boşluklarla ayrılmış bir karakter dizisidir. Komuta sağlanan argümanlar Ekstra seçenekler davranışını belirleyen şey. En sık kullanılan argümanlar şunlardır: seçenekler Ve isimler dosyalar ve dizinler. Örneğin komut satırı

    ls -l dosya01 dosya02

    ls komutunu, -l seçeneğini ve file01 file02 adlı iki dosya adını içerir.

    Birden fazla seçenek kullanıldığında bunlar birleştirilebilir. Örneğin aşağıdaki komutların çeşitleri aynıdır:

    Ls-l-d
    ls-ld

    Kabuğun parçası olan komutlara denir yerleşik. Bu tür komutlar arasında örneğin cd, if, case vb. bulunur. Doğal olarak yerleşik komutlar, farklı kabuklar için farklılık gösterebilir. Yerleşik komutlara ek olarak, ayrı yürütülebilir dosyalar veya dosyalar olan program modüllerini kullanmak mümkündür. Kodlar veya senaryolar- kabuk komutlarıyla sıralı olarak yürütülen satırları içeren sıradan metin dosyaları. Bazı komut dosyaları (komut dosyaları), görev zamanlayıcı gibi Linux işlemleri tarafından yürütülebilir cron. Görev Zamanlayıcı, kural olarak, zamanlanmış sistem yönetimi görevlerini otomatik olarak gerçekleştirmek için tasarlanmıştır. Görevler cron komutlar veya komut dosyalarıdır ve herhangi bir insan müdahalesi olmadan otomatik olarak yürütülür ve farklı kullanıcı hesapları bağlamında yürütülebilir. Zamanlayıcı görevinin bir betiğin yürütülmesini içermesi durumunda, alt süreç olarak başlatılması gereken kabuğun seçilmesi sorunu ortaya çıkar. cron komut dosyasındaki komutları işlemek için - sonuçta, kabuk herhangi biri olabilir ve komut dosyasının sözdizimi, kural olarak, yazıldığı belirli bir kabuğun kullanımını içerir. Bu sorunu ortadan kaldırmak için, Linux işletim sistemi ailesinde, betiğin ilk satırında yürütülmesi için gereken kabuk türünü şu şekilde belirtmek gelenekseldir:

    #!/bin/bash- kabuk için darbe

    #!/bin/sh- kabuk için ş

    İmza # bir yorumun işaretidir ve onu takip eden karakterler komut olarak yorumlanmaz. Bu teknik, dosyanın sonraki içeriğini işlemek için hangi kabuğun kullanılması gerektiğini açıkça belirtmenize olanak tanır. Betik, gerekli kabuğu açıkça tanımlayan bir giriş içermiyorsa, verilen betiğin yürütüldüğü bağlamdaki hesaptaki ayarlar kullanılacaktır. Bu durumda, örneğin bir kabuk için yazılmış bir betiğin aşağıdaki gibi olması mümkündür: tch yürütülmek üzere kabuğa aktarılacak darbe bu da yürütülmesini imkansız hale getirecek.

    Komutları veya komut dosyalarını yürütürken, Ortam Değişkenleri(İngilizce - çevre değerleri komutların yürütüldüğü yazılım ortamını karakterize eden. Bu tür değişkenler genel sistem ayarlarını, grafik veya komut kabuğu seçeneklerini, yürütülebilir dosya yollarını vb. içerebilir. Ortam değişkeni değerleri sistem düzeyinde (tüm kullanıcılar için) ve belirli bir kullanıcı düzeyinde ayarlanır. Ortam değişkenlerini sistem düzeyinde ayarlamak için dosyaların içeriği kullanılır:

    /etc/profil- değişkenleri yalnızca kabuklar için ayarlar. Bourne kabuğu uyumlu kabuklarda herhangi bir komut dosyasını çalıştırabilir.

    /etc/bash.bashrc- yalnızca etkileşimli kabuklar için değişkenleri ayarlar. Ayrıca bash betiklerini de çalıştırır.

    /etc/ortam- PAM-env modülü tarafından kullanılır. Bu dosyada yalnızca çiftler belirtilebilir. ad=değer.

    Bu dosyaların her birinin kendi uygulaması vardır, bu nedenle amacınıza uygun olanı dikkatlice seçmelisiniz. Örneğin, özel bir dizin eklemek istiyorsanız ~/bin bir değişkene YOL tüm kullanıcılar için aşağıdaki kodu sistem ortamı başlatma dosyalarından birine (/etc/profile veya /etc/bash.bashrc) yerleştirin:

    # Kullanıcı kimliği 1000'den büyük veya ona eşitse ve ~/bin dizini mevcutsa ve

    # daha önce PATH değişkenine eklenmemişti,

    # ~/bin'i $PATH'e aktarın.

    If [[ $UID -ge 1000 && -d $HOME/bin && -z $(echo $PATH | grep -o $HOME/bin)

    Dışarı aktar PATH=$HOME/bin:$(PATH)

    Genellikle Linux işletim sistemlerinde hizmet hesapları için 1000'den küçük veya 500'den küçük bir kullanıcı kimliği kullanılır. Bu örnekte ortam değişkeni tüm kullanıcılar için ayarlanacaktır. yerel kullanıcılar ID 1000 veya daha fazla olan sistemler.

    Belirli bir kullanıcı için ortamı değiştirmeniz gerekiyorsa kullanıcının ortamının içeriğini değiştirin:

    - ~/.bash_profile, ~/.bash_login ve benzeri. - kullanıcının ana dizinindeki kabuk başlatma dosyaları.

    - ~/.profil- kullanıcı profili başlatma dosyası. Birçok kabuk tarafından ortam değişkenlerini tanımlamak için kullanılır.

    ~/.pam_environment- PAM-env modülü tarafından kullanılan /etc/environment dosyasının özel bir eşdeğeri.

    Örneğin, kullanıcının ~/bin dizinini değişken tarafından belirtilen yürütülebilir dosyalar için arama yoluna eklemek için YOLörneğin bir dosyada ~/.profil satırı koyun:

    PATH'i dışa aktar = "$ (PATH):/home/user/bin"

    Ortam değişkenlerini ayarlamak için grafik uygulamaları, kullanıcının grafiksel ortam ayarları dosyalarının içeriği kullanılır ~/.xinitrc

    Geçerli kullanıcı oturumu için ortam değişkenlerinin ayarlanması çok daha yaygındır. Örneğin, özel bir dizin eklemek için ~/bin yürütülebilir arama yolunda:

    PATH'i dışa aktar=~/bin:$PATH

    Yeni değişken değeri YOL yalnızca geçerli kullanıcı oturumunun sonuna kadar sürecektir.

    Bir değişkenin değerini görüntülemek için şu komutu kullanabilirsiniz: yankı $değişken, Örneğin:

    yankı $PATH

    Şu anda yukarıda da belirtildiği gibi en yaygın kabuk darbe. Bunun temel nedeni kabuğun darbe dır-dir ş- eklenen uyumlu bir komut kabuğu kullanışlı özellikler Korn kabuklarından ( ksh) ve C kabuğu ( csh). kabuk darbeçoğu kabuk betiğini herhangi bir değişiklik yapmadan çalıştırabilir ş ve standarda mümkün olduğunca yaklaşmaya çalışır POSIX Bu, hem programlama hem de etkileşimli kullanım açısından birçok iyileştirmeye yol açmıştır. Modern uygulamada darbe bir komut satırı düzenleme modu, sınırsız boyutta komut geçmişi, iş yönetimi araçları, takma ad kullanma yeteneği, kapsamlı bir yerleşik komut listesi, kabuk işlevleri vb. vardır. Genel olarak, darbe ortalama kullanıcının ihtiyaçlarını en iyi şekilde karşılar, bu da onu Linux ortamında en çok kullanılan hale getirir.

    Başlangıçta darbe komut satırı seçenekleri olmadan, kabuk etkileşimli modda başlar ve ekranda bir komut istemi görüntüler. Etkileşimli kabuk genellikle kullanıcının terminalinden verileri okur ve verileri aynı terminale yazar. standart cihaz Giriş klavyedir ve standart çıkış ekrandır. Kullanıcı klavyede komutları girer ve bunların yürütülmesinin sonucu ekranda görüntülenir.

    UNIX ile etkileşimin ana ortamı Komut satırı. Özü, kullanıcı tarafından sisteme iletilen her satırın, yürütmesi gereken bir komut olmasıdır. Bir tuşa basılana kadar Girmek, satır düzenlenebilir ve ardından sisteme gönderilir.

    Komutlar özel bir program tarafından yorumlanır ve yürütülür – kabuk(veya İngilizce'de "kabuk"). Komut kabuğu aracılığıyla kullanıcı işlemleri yönetilir - bunun için işlemler arası değişim araçları kullanılır.

    Komut kabuğu, kontrol dizilerinin ve metnin aktarıldığı terminale doğrudan bağlanır. Şekil (3.1), komut satırını kullanırken sistemle kullanıcı etkileşiminin genel şemasını göstermektedir.

    Şekil 3.1. Komut satırı arayüzü

    Eş zamanlı sistem erişimi

    UNIX çalıştıran her bilgisayar, birden fazla kullanıcının aynı anda oturum açmasına ve sisteme erişmesine olanak sağlar. Tüm kullanıcıların elinde yalnızca bir monitör ve bir sistem klavyesi olsa bile, bu özellik faydalıdır: birden fazla kullanıcının sisteme eşzamanlı olarak kaydedilmesi, her seferinde başlatılan tüm görevleri tamamlayıp daha sonra devam ettirmek zorunda kalmadan sırayla çalışmanıza olanak tanır. Aynı giriş adı ile sisteme birden fazla kez giriş yapmak da mümkündür. Böylece aynı kaynaklara erişebilir ve çeşitli görevlerde paralel çalışmalar düzenleyebilirsiniz.

    UNIX'in modern sürümlerinin kullanıcıların paralel çalışmalarını organize etmesinin tipik bir yolu şudur: sanal konsollar. Sanal konsollar, kullanıcının sistemde metin modunda oturum açmasına ve komut satırına erişmesine olanak tanıyan, işletim sistemi tarafından paralel olarak çalışan çeşitli programlardır (bkz. Şekil 3.2, "Sanal ve Grafik Konsollar").

    İÇİNDE işletim sistemi Linux arasında geçiş sanal konsollar metin modunda bir klavye kısayolu kullanılarak yapılır alternatif-F1,alternatif-F2 ve benzeri. Bu durumda, her sanal konsol özel bir adla belirtilir: "tty1", "tty2" vb. Her kombinasyon, kendisiyle ilişkilendirilmiş, karşılık gelen numaralandırılmış bir sanal konsola sahiptir. Bu konsolların her biri kendi terminal uygun ada sahip bir aygıt dosyasıyla karakterize edilir (örneğin, /dev/tty1).

    UNIX'in modern sürümleri, kullanıcılara aynı zamanda komut satırı seçenekleri de sağlayan grafik kullanıcı arayüzleri sağlar. Bu yetenek kullanılarak elde edilir grafik terminalleri- grafik penceresindeki metin terminalini taklit eden özel programlar.

    Birkaç grafik alt sistemini başlatmak da mümkündür, daha sonra bunlar arasında geçiş yapmak, sanal konsollar arasındaki geçişe benzer şekilde gerçekleştirilecektir - bir tuş kombinasyonu Ctrl-alternatif-F1.

    Şekil 3.2. Sanal ve grafik konsollar

    Her terminal cihazının kendine ait olasılıklar Bilgi girişi ve çıkışı. Bu yeteneklere örnek olarak şunlar gösterilebilir: ekran renklerinin sayısı, imleci hareket ettirme ve ekran boyutunu değiştirme yeteneği, kontrol karakterleri seti vb. Terminaller şu şekilde bölünür: türleri: Özel bir yapılandırma dosyasında düzenlenen bir dizi özellik. Tür örnekleri şunlardır: tty (teletype) veya xterm (grafik terminali). Terminal türü, terminalin cihaz adında açıkça belirtilir (örneğin, /dev/tty1). Tüm terminal türü ayarları /etc/termcap dizininde bulunur.