Kül - Linux Komutanlığı - Unix Komutu

ADI

sh - komut yorumlayıcısı ( kabuk )

ÖZET

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -words [ hedef ... ]

AÇIKLAMA

Sh, sistem için standart komut yorumlayıcısıdır. Şuanın mevcut versiyonu, kabuk için POSIX 1003.2 ve 1003.2a özelliklerine uygun olacak şekilde değiştirilmekte olan süreçtir. Bu sürümde, Korn kabuğuna benzer şekilde görünmesini sağlayan birçok özellik vardır, ancak Korn kabuk klonu değildir (bkz. Ksh (1)). Bu kabuk içine sadece POSIX ve birkaç Berkeley eklentisi tarafından belirlenen özellikler eklenmiştir. POSIX uyumluluğunun, 4.4 BSD'nin piyasaya sürülme süresine göre olmasını bekliyoruz. Bu adam sayfası, bir öğretici veya kabuğun tam bir belirtimi olmayı amaçlamamaktadır.

genel bakış

Kabuk, bir dosyadan veya terminalden gelen hatları okuyan, yorumlar ve genellikle diğer komutları yürüten bir komuttur . Bir kullanıcı sistemde oturum açtığında çalışan bir programdır (bir kullanıcı chsh (1) komutuyla farklı bir kabuk seçebilirse de). Kabuk, akış kontrol yapılarına sahip bir dil, veri saklamaya ek olarak çeşitli özellikler sağlayan bir makro özelliği, tarih ve satır düzenleme yetenekleri ile birlikte uygular. Etkileşimli kullanıma yardımcı olmak için birçok özellik içerir ve yorumlayıcı dilin hem etkileşimli hem de etkileşimli olmayan kullanım (kabuk betikleri) için ortak olması avantajına sahiptir. Yani, komutlar doğrudan çalışan kabuklara yazılabilir veya bir dosyaya yerleştirilebilir ve dosya doğrudan kabuk tarafından çalıştırılabilir.

yakarma

Eğer herhangi bir hata yoksa ve kabuğun standart girişi bir terminale bağlıysa (veya - i bayrağı ayarlanmışsa) ve - c seçeneği mevcut değilse, kabuk etkileşimli bir kabuk olarak kabul edilir. Etkileşimli bir kabuk genellikle her komuttan önce ister ve programlama ve komut hatalarını farklı şekilde ele alır (aşağıda açıklandığı gibi). İlk başladığında, kabuk argüman 0'ı denetler ve eğer bir '-' çizgi ile başlarsa, kabuk da bir giriş kabuğu olarak kabul edilir. Bu, kullanıcı ilk kez oturum açtığında, normal olarak sistem tarafından otomatik olarak yapılır. Bir oturum açma kabuğu, eğer varsa, / etc / profile ve .profile dosyalarından gelen komutları okur. Ortam değişkeni ENV bir kabuk girdisine ayarlanmışsa veya bir giriş kabuğunun .profile'sinde ayarlanmışsa, kabuk daha sonra ENV adlı dosyadan gelen komutları okur, bu nedenle bir kullanıcı yalnızca çalıştırılacak komutları yerleştirmelidir. .profile dosyasındaki oturum açma zamanı ve ENV dosyasının içindeki her kabuk için çalıştırılan komutlar. ENV değişkenini bir dosyaya ayarlamak için, aşağıdaki dizini kendi dizininizin .profile dosyasına yerleştirin.

ENV = $ HOME / .shinit; ihracat ENV

İstediğiniz herhangi bir dosya adı için ``shinit '' ile değiştirilmesi. Kabuk betikleri ve etkileşimli olmayan kabuklar dahil olmak üzere kabuğun her çağırımı için ENV dosyası okunduğundan, aşağıdaki paradigma ENV dosyasındaki komutları etkileşimli çağrılara kısıtlamak için kullanışlıdır. Komutları aşağıdaki '`durum' 've' ' esac ' 'içine yerleştirin (bu komutlar daha sonra açıklanacaktır):

$ - in * i *)

# sadece etkileşimli kullanım için komutlar

...

esac

Seçeneklerin yanı sıra komut satırı argümanları belirtildiyse, kabuk ilk argümanı komutların okunacağı bir dosyanın adı olarak (kabuk betiği) ele alır ve kalan argümanlar kabuğun konumsal parametreleri olarak ayarlanır ($ 1). 2 $, vb. Aksi takdirde, kabuk standart girdiden komutları okur.

Bağımsız Değişken Listesi İşleme

Tüm tek harf seçeneklerinin - o seçeneğine argüman olarak kullanılabilecek bir ismi vardır. Set- o ismi, aşağıdaki açıklamada bulunan tek harf seçeneğinin yanında verilmiştir. Bir tire belirtmek `` - '' seçeneği, using + using 'i kullanırken artı turns seçeneği döner. Aşağıdaki seçenekler komut satırından veya set (1) yerleşik (daha sonra açıklanacaktır) ile ayarlanabilir.

-allexport

Atanan tüm değişkenleri dışa aktar. (4.4alpha için UNIMPLEMENTED)

-c

Komut satırından komutları okuyun. Standart girişten hiçbir komut okunmayacaktır.

-C noclobber

Mevcut dosyaları '`' '' ile yazmayın (4.4alpha için UNIMPLEMENTED)

-e errexit

Etkileşimli değilse, test edilmemiş bir komut başarısız olursa hemen çıkın. Bir komutun çıkış durumunun, komutun bir “el” ve / veya “` '”işlecinin sol işleneni olduğu zaman ya da komut satırına geçip geçmediğini kontrol etmek için kullanılması durumunda açıkça test edilmiş sayılır.

-f noglob

Yol adı genişletmeyi devre dışı bırak.

-n noexec

Etkileşimli değilse, komutları okuyun, ancak bunları yürütmeyin. Bu kabuk betikleri sözdizimini kontrol etmek için kullanışlıdır.

-u nounset

Ayarlanmamış bir değişkeni genişletmeye çalışırken standart hata mesajını yazın ve kabuk etkileşimli değilse hemen çıkın. (4.4alpha için UNIMPLEMENTED)

-v ayrıntı

Kabuk, girdiyi okunduğunda standart hataya yazar. Hata ayıklama için kullanışlıdır.

-x xtrace

Her komutu standart hataya yazın (önce + + ile işaretlenmeden önce. Hata ayıklama için kullanışlıdır).

-q sessiz profil

- v veya - x seçenekleri ayarlanmışsa, başlatma dosyalarını okurken bunları uygulamayın, bunlar / etc / profile .profile ve ENV ortam değişkeni tarafından belirtilen dosyadır.

-Bunu görmezden geldim

Etkileşimli olduğunda EOF'ları girişten yoksayın.

-i interaktif

Kabuğun etkileşimli davranması için zorlayın.

-m monitör

İş kontrolünü açın (etkileşimli olduğunda otomatik olarak ayarlayın).

-s stdin

Standart girdiden komutları okuyun (hiçbir dosya argümanı yoksa otomatik olarak ayarlanır). Kabuk zaten çalışmaya başladıktan sonra (yani set (1) ile) bu seçenek etkin değildir.

-V vi

Yerleşik vi (1) komut satırı düzenleyicisini etkinleştirin (devre dışı bırakılmışsa - E , ayarlanmışsa).

-E emacs

Yerleşik emacs (1) komut satırı düzenleyicisini etkinleştir (devre dışı bırakır - ayarlanmışsa V ).

-b bildir

Arka plan işinin tamamlanmasının senkronize olmayan bildirimini etkinleştir. (4.4alpha için UNIMPLEMENTED)

Sözcüksel Yapı

Kabuk, girdiyi bir dosyadan satırlar olarak okur ve beyaz boşlukta boşluklara (boşluklar ve sekmeler) ve “işleçler” denilen kabuğa özel belirli karakter dizilerine ayırır. İki tür operatör vardır: kontrol operatörleri ve yönlendirme operatörleri (anlamları daha sonra tartışılacaktır). Aşağıda operatörlerin listesi bulunmaktadır:

"Kontrol operatörleri:"

& && (); ;; | ||

"Yönlendirme operatörü:"

<>> | << >> <&> & << - <>

Alıntı yapmak

Teklif, operatörlere, boşluklara veya anahtar sözcüklere göre belirli karakterlerin veya sözcüklerin kabuğun özel anlamını kaldırmak için kullanılır. Üç tür alıntı vardır: eşleşen tek tırnak, eşleştirilmiş çift tırnak ve ters eğik çizgi.

backslash

Ters eğik çizgi, Aq newline hariç, aşağıdaki karakterin gerçek anlamını korur. Aq satırsonundan önce gelen ters eğik çizgi, çizgi devam olarak kabul edilir.

Tek tırnak

Tek tırnak içinde karakterlerin çevrelenmesi, tüm karakterlerin gerçek anlamını korur (tek tırnaklı tek bir tırnak içine tek tırnak işareti koymanın olanaksız hale getirilmesini sağlayan tek tırnak hariç).

İkili alıntı

Çifte tırnak içine alan karakterleri saklamak, dolar ($) backquote (`) ve ters eğik çizgi (\) haricindeki tüm karakterlerin gerçek anlamını korur. Çift tırnak içinde bulunan ters eğik çizgi, tarihsel olarak tuhaftır ve yalnızca aşağıdaki karakterleri alıntılamaya yarar:

$ `\

Aksi halde, değişmez kalır.

Ayrılmış kelimeler

Ayrılmış kelimeler, kabuk için özel bir anlamı olan ve bir satırın başında ve bir kontrol operatöründen sonra tanınan kelimelerdir. Aşağıdaki ayrılmış kelimeler:

! Ta elif Ta fi Ta Ta vakası sırasında

Ta Ta sonra Ta Ta

Ta es Ta olmasa Ta Ta'ya kadar

Anlamları daha sonra tartışılmaktadır.

Takma adlar

Diğer ad, takma ad (1) yerleşik komutu kullanılarak ayarlanan bir ad ve karşılık gelen değerdir. Ayrılmış bir sözcük (yukarıda) göründüğünde ve ayrılmış sözcükleri kontrol ettikten sonra, kabuk bir takma isimle eşleşip eşleşmediğini görmek için sözcüğü kontrol eder. Bunu yaparsa, giriş akışıyla değerini değiştirir. Örneğin, `` ls -F '' değeriyle `` lf '' isminde bir ad varsa, giriş:

Eğer foobar

olacaktı

ls -F foobar

Diğer adlar, naif kullanıcılara, bağımsız değişkenlerle işlevlerin nasıl oluşturulacağını öğrenmek zorunda kalmadan komutlar için kısa yollar oluşturmaları için uygun bir yol sağlar. Ayrıca, sözcüksel olarak anlaşılması zor bir kod oluşturmak için de kullanılabilirler. Bu kullanım önerilmez.

Komutları

Kabuk, okuduğu kelimeleri bir dile göre yorumlamakta, bu tarifname bu kılavuzun kapsamı dışındadır ( POSIX 1003.2 belgesindeki BNF'ye bakınız). Aslında, bir satır okunur ve satırın ilk sözcüğü (veya bir kontrol operatöründen sonra) ayrılmış bir sözcük değilse, kabuk basit bir komut tanıdı. Aksi takdirde, karmaşık bir komut veya başka bir özel yapı tanınmış olabilir.

Basit Komutlar

Basit bir komut tanındığında, kabuk aşağıdaki eylemleri gerçekleştirir:

  1. `` Name = value '' formunun önde gelen kelimeleri çıkarılır ve basit komutun ortamına atanır. Yönlendirme operatörleri ve bunların argümanları (aşağıda açıklandığı gibi) sıyrılarak işlenmek üzere kaydedilir.
  2. Kalan sözcükler, "Expansions" adlı bölümde açıklanan şekilde genişletilir ve kalan ilk kelime, komut adı olarak kabul edilir ve komut bulunur. Kalan sözcükler, komutun argümanları olarak kabul edilir. Hiçbir komut adı sonuçlanmadıysa, öğe 1'de tanınan `` name = value '' değişken atamaları geçerli kabuğu etkiler.
  3. Yönlendirmeler, bir sonraki bölümde açıklandığı gibi gerçekleştirilir.

Yönlendirmeler

Yönlendirmeler, bir komutun girdiyi okuduğu veya çıkışını gönderdiği yeri değiştirmek için kullanılır. Genel olarak, yönlendirmeler mevcut bir başvuruyu bir dosyaya açar, kapatır veya kopyalar. Yönlendirme için kullanılan genel biçim şöyledir:

[n] yeniden yönlendirme dosyası

redir-op , daha önce bahsedilen yönlendirme operatörlerinden biridir. Aşağıda olası yönlendirme listesi verilmiştir. Bq n, bir dosya tanıtıcısına atıfta bulunan "3" (`Bq 3 'değil)' de olduğu gibi isteğe bağlı bir sayıdır.

[n]> dosya

Standart çıkışı (veya n) dosyaya yönlendir.

[n]> | dosya

Aynı, ama - C seçeneğini geçersiz kıl.

[n] >> dosya

Standart çıktıyı (veya n) dosyaya ekleyin.

[n]

Standart girişi (veya n) dosyadan yönlendir.

[n1] <& n2

Dosya tanıtıcı n2'den standart giriş (veya n1) kopyalayın.

[n] <& -

Standart girişi kapatın (veya n).

[n1]> & n2

Duplicate standart çıktı (veya n1) n2'den.

[n]>

Standart çıkışı kapatın (veya n).

[n] <> dosya

Standart giriş (veya n) üzerinde okuma ve yazma için dosya açın.

Aşağıdaki yönlendirme genellikle "burada-belge" olarak adlandırılır.

[n] << sınırlayıcı

Burada-doc metin ...

sınırlayıcı

Sınırlayıcıya kadar ardışık çizgilerdeki tüm metinler kaydedilir ve standart girdi komutuna veya belirtilmişse dosya tanıtıcısına kullanılabilir. İlk satırda belirtildiği gibi sınırlayıcı belirtilirse, buradaki belge metni tam anlamıyla ele alınır, aksi halde metin parametre genişletme, komut değiştirme ve aritmetik genişletme işlemine tabi tutulur ("Genişletmeler" bölümünde açıklandığı gibi) 'Eğer operatör `` <<' 'yerine `` << -' 'ise, buradaki doc-metnindeki sekmeler çıkarılır.

Arama ve Yürütme

Üç tür komut vardır: kabuk işlevleri, yerleşik komutlar ve normal programlar - ve bu sırayla komut (adla) aranır. Her biri farklı bir şekilde yürütülür.

Bir kabuk fonksiyonu yürütüldüğünde, tüm kabuk konum parametreleri (değişmeden kalan $ 0 hariç) kabuk işlevinin argümanlarına ayarlanır. Komuta ortamına açıkça yerleştirilen değişkenler (işlev isminden önce atamaları yerleştirerek) işlev için yerel hale getirilir ve verilen değerlere ayarlanır. Daha sonra işlev tanımında verilen komut yürütülür. Komut tamamlandığında konumsal parametreler orijinal değerlerine geri yüklenir. Bu tüm geçerli kabuk içinde gerçekleşir.

Kabuk yerleşikleri, yeni bir işlem oluşturmadan, kabuk içine dahili olarak yürütülür.

Aksi takdirde, komut adı bir işlevle eşleşmez veya yerleşik değilse, komut dosya sisteminde normal bir program olarak aranır (sonraki bölümde açıklandığı gibi). Normal bir program yürütüldüğünde, kabuk argümanı ve ortamı programa geçirerek programı çalıştırır. Program normal bir yürütülebilir dosya değilse (yani, ASCII gösterimi "#!" Olan "sihirli sayı" ile başlamıyorsa, yürütme (2) daha sonra Er ENOEXEC değerini döndürür.) Kabuk, programı altkabuk. Çocuk kabuğu, bu durumda kendini yeniden başlatacaktır, böylece etki, ana kabukta yer alan kabuk komutunu işlemek için yeni bir kabuk başlatılmış gibi görünecektir, ancak üst kabukta bulunan karma komutların konumu, çocuk.

Bu belgenin önceki sürümlerinin ve kaynak kodun kendisinin yanıltıcı ve düzensiz bir şekilde, bir "kabuk prosedürü" olarak bir sihirli sayı olmadan bir kabuk komut dosyasına başvurduğunu unutmayın.

Yol Arama

Bir komutu bulduğunuzda, kabuk ilk önce bu isimle bir kabuk işlevinin olup olmadığına bakar. Sonra o isimle bir yerleşik komut arar. Yerleşik bir komut bulunmazsa, iki şeyden biri gerçekleşir:

  1. Eğik çizgi içeren komut isimleri herhangi bir arama yapmadan yürütülür.
  2. Kabuk, komut için her girişi PATH'de arar. PATH değişkeninin değeri, kolonlar ile ayrılmış bir dizi giriş olmalıdır. Her giriş bir dizin isminden oluşur. Geçerli dizin, boş bir dizin adıyla veya açıkça tek bir dönemle örtülü olarak belirtilebilir.

Komut Çıkış Durumu

Her komut, diğer kabuk komutlarının davranışını etkileyebilecek bir çıkış durumuna sahiptir. Paradigma, bir komutun normal veya başarı için sıfırdan, başarısızlık, hata veya yanlış gösterme için sıfırdan çıkmasıdır. Her komutun man sayfası, çeşitli çıkış kodlarını ve ne anlama geldiğini göstermelidir. Ayrıca, yerleşik komutlar yürütülen bir kabuk işlevi gibi çıkış kodlarını döndürür.

Karmaşık Komutlar

Karmaşık komutlar, daha büyük karmaşık bir komut oluşturarak, kontrol operatörlerine veya ayrılmış sözcüklere sahip basit komutların kombinasyonlarıdır. Daha genel olarak, bir komut aşağıdakilerden biridir:

  • basit komut
  • boru hattı
  • liste veya bileşik listesi
  • bileşik komut
  • işlev tanımı

Aksi belirtilmedikçe, bir komutun çıkış durumu, komut tarafından yürütülen son basit komuttan oluşur.

Boru hatları

Bir boru hattı, kontrol operatörü | ile ayrılmış bir veya daha fazla komut dizisidir. Son komutun tümü dışındaki standart çıktı, bir sonraki komutun standart girişine bağlanır. Son komutun standart çıktısı, her zaman olduğu gibi, kabuktan miras alınır.

Bir boru hattının formatı:

[!] komut1 [| command2 ...]

Komut1 standart çıkışı, komut2'nin standart girişine bağlanır. Komutun bir parçası olan yönlendirme operatörleri tarafından belirtilen herhangi bir yeniden yönlendirme öncesinde standart girdi, standart çıktı veya her iki komutun da boru hattı tarafından atanacağı kabul edilir.

Boru hattı arka planda değilse (daha sonra açıklanacaktır), kabuk tüm komutların tamamlanmasını bekler.

Eğer ayrılmış kelime! boru hattından önce gelmez, çıkış durumu boru hattında belirtilen son komutun çıkış durumudur. Aksi takdirde, çıkış durumu son komutun çıkış durumunun mantıksal DEĞİLDİR. Yani, son komut sıfırlanırsa, çıkış durumu 1'dir; Son komut sıfırdan büyükse, çıkış durumu sıfırdır.

Standart girdi veya standart çıktı veya her ikisi de boru hattı ataması, yeniden yönlendirme öncesinde gerçekleştiği için, yeniden yönlendirme ile değiştirilebilir. Örneğin:

$ command1 2> & 1 | command2

hem standart çıktıyı hem de komut1'in standart hatasını komut2'nin standart girdisine gönderir.

A; veya sonlandırıcı, önceki AND-OR listesinin (ileride anlatılacak) sırayla yürütülmesine neden olur; a ve önceki AND-OR listesinin senkronize olmayan yürütme neden olur.

Diğer bazı kabuklardan farklı olarak, boru hattındaki her işlemin çağıran kabuğun bir çocuğu olduğunu unutmayın (kabuk kabuğu yerleşik değilse, bu durumda geçerli kabukta yürütülür - ancak ortamdaki herhangi bir etki silinir).

Arka Plan Komutları -

Bir komut, kontrol işlecindeki ampersan (&) tarafından sonlandırılırsa, kabuk eşzamansız olarak komutu yürütür - yani kabuk, bir sonraki komutu çalıştırmadan önce komutun bitmesini beklemez.

Arka planda bir komut çalıştırmak için format:

komut1 ve [komut2 ve ...]

Kabuk etkileşimli değilse, bir eşzamansız komutun standart girişi / dev / null olarak ayarlanır.

Listeler - Genel Konuşma

Liste, yeni satırlar, noktalı virgüller veya işaretler ile ayrılmış ve isteğe bağlı olarak bu üç karakterden biri tarafından sonlandırılan sıfır veya daha fazla komut dizisidir. Bir listedeki komutlar yazılma sırasına göre yürütülür. Komut bir ampersan tarafından takip edilirse, kabuk komutu başlatır ve hemen bir sonraki komuta geçer; aksi halde komutun bir sonrakine geçmeden önce sonlanmasını bekler.

Kısa Devre Listesi Operatörleri

`&& '' ve` `|| '' AND-OR liste operatörleridir. `` && '' ilk komutu yürütür ve sonra ikinci komutu yürütür, ilk komutun çıkış durumu sıfırdır. `` || '' benzerdir, ancak ikinci komutu çalıştırırsa, ilk komutun çıkış durumu sıfırdan farklıdır. `` && '' ve `` || '' her ikisi de aynı önceliğe sahiptir.

Akış Kontrol Yapıları - eğer durum için ise

If komutunun sözdizimi

eğer liste
sonra liste
[elif listesi
sonra liste] ...
[başka liste]
fi

While komutunun sözdizimi

sırada
yapılacaklar listesi
tamam

İlk listenin çıkış durumu sıfır iken, iki liste tekrarlanır. Kadar olan komut benzerdir, ancak yerine, ilk listenin çıkış durumu sıfır olana kadar tekrarlanmasına neden olan yere kadar kelime vardır.

Komutun sözdizimi

kelimede değişken için ...
yapılacaklar listesi
tamam

Sözcükler genişletilir ve liste sırayla her bir sözcüğe ayarlanmış değişkenle tekrarlanır. yap ve yap, `` {'' ve ``} '' ile değiştirilebilir

Mola ve devam komutunun sözdizimi

kırmak
devam et [num]

Arası, döngülerin başına veya oradaki num'i sonlandırır. Devam, iç döngüdeki bir sonraki yineleme ile devam eder. Bunlar yerleşik komutlar olarak uygulanır.

Vaka komutunun sözdizimi

davadaki kelime
desen) listesi;
...
esac

Desen aslında bir veya daha fazla desen olabilir (daha sonra açıklanan Kabuk Kalıplarına bakın), karakterlerle ayrılır.

Birlikte Gruplandırma Komutları

Komutlar ya

(liste)

veya

{ liste;

Bunlardan birincisi bir alt kabuktaki komutları yürütür. Bir (liste) halinde gruplandırılmış yerleşik komutlar geçerli kabuğu etkilemez. İkinci form başka bir mermi çatalatmaz, bu yüzden biraz daha verimli olur. Komutları bu şekilde gruplamak, çıktılarını tek bir programmış gibi yönlendirmenize olanak tanır:

{printf merhaba; printf world \ n ";}> tebrik

Fonksiyonlar

Bir fonksiyon tanımının sözdizimi

name () komutu

Bir işlev tanımı yürütülebilir bir ifadedir; yürütüldüğünde, ad adında bir işlev yükler ve sıfırın çıkış durumunu döndürür. Komut normalde `` {'' ve ``} '' arasında yer alan bir listedir.

Değişkenler yerel bir komut kullanılarak yerel bir işlev olarak bildirilebilir. Bu, bir işlevin ilk ifadesi olarak görünmeli ve sözdizimi

yerel [değişken | -] ...

Yerel yerleşik bir komut olarak uygulanır.

Bir değişken yerel olarak yapıldığında, başlangıç ​​değeri miras alır ve eğer varsa, çevreleyen alandaki aynı adla değişkenden dışa aktarılır ve oklar. Aksi halde, değişken başlangıçta belirsizdir. Kabuk, dinamik scoping kullanır, böylece x işlevinin f işlevini f yapar, sonra g işlevini çağırırsanız, g içinde yapılan değişken x'e yapılan başvurular, x adlı global değişkene değil, f içinde bildirilen değişken x değerine başvurur. .

Yerel olarak yapılabilen tek özel parametre `` - '`` `` `` -' 'işlevinin geri döndürülmesi sırasında, işlev içinde ayarlanan komutla değiştirilen herhangi bir kabuk seçeneklerini yerel değerlerine döndürür.

Dönüş komutunun sözdizimi

dönüş [exitstatus

Mevcut yürütme işlevini sonlandırır. Dönüş, yerleşik komut olarak uygulanır.

Değişkenler ve Parametreler

Kabuk bir dizi parametreyi korur. Bir isimle belirtilen bir parametreye değişken denir. Başlarken, kabuk tüm ortam değişkenlerini kabuk değişkenlerine dönüştürür. Yeni değişkenler form kullanılarak belirlenebilir

adı = değer

Kullanıcı tarafından ayarlanan değişkenlerin yalnızca alfabetik, sayısal ve altçizgi içeren bir isme sahip olması gerekir - bunlardan ilki sayısal olmamalıdır. Bir parametre ayrıca aşağıda açıklandığı gibi bir sayı veya özel bir karakterle de gösterilebilir.

Konumsal Parametreler

Bir konumsal parametre, bir sayı ile belirtilen bir parametredir (n> 0). Kabuk, bunları başlangıçta kabuk komut dosyasının adını izleyen komut satırı argümanlarının değerlerine ayarlar. Set (1) yerleşik ayrıca bunları ayarlamak veya sıfırlamak için kullanılabilir.

Özel parametreler

Özel bir parametre, aşağıdaki özel karakterlerden biriyle belirtilen bir parametredir. Parametrenin değeri, karakterinin yanında listelenir.

*

Birinden başlayarak konumsal parametrelere genişler. Genişletme çift tırnaklı bir dizgede gerçekleştiğinde, IFS değişkeninin ilk karakteri ile ayrılmış her bir parametrenin değeriyle veya bir IFS'nin bozulması durumunda bir ile tek bir alana genişler.

@

Birinden başlayarak konumsal parametrelere genişler. Genişleme çift tırnak içinde gerçekleştiğinde, her bir konumsal parametre ayrı bir argüman olarak genişler. Eğer pozisyon parametresi yoksa, @ 'nin genişlemesi @ çift tırnaklı olsa bile sıfır argümanları üretir. Bunun temel olarak anlamı, örneğin, 1 $ `` abc '' ve $ 2 `` ghi '' ise, Qq $ @ iki argümana genişler:

abc def ghi

#

Konumsal parametrelerin sayısını genişletir.

?

En yeni boru hattının çıkış durumuna genişler.

- (Tire)

Geçerli seçenek işaretlerine (bir dizeyle birleştirilen tek harfli seçenek adları), çağrılan komut satırında veya kabuk tarafından örtülü olarak belirtildiği gibi genişletir.

$

Çağrılan kabuğun işlem kimliğine genişler. Bir alt kabuk, ebeveyn ile aynı değeri tutar.

!

Geçerli kabuktan yürütülen en yeni arka plan komutunun işlem kimliğine genişler. Bir boru hattı için işlem kimliği, boru hattındaki son komutunkidir.

0 (Sıfır)

Kabuk veya kabuk komut dosyasının adını genişletir.

Kelime Genişlemeleri

Bu madde, kelimeler üzerinde gerçekleştirilen çeşitli genişletmeleri açıklar. Tüm açılımlar, daha sonra açıklanacağı gibi, her kelimede yapılmaz.

Tilde açılımları, parametre genişletmeleri, komut ikameleri, aritmetik açılımlar ve tek bir sözcük içinde oluşan alıntı kaldırma işlemleri tek bir alana genişler. Tek bir kelimeden birden fazla alan oluşturabilen yalnızca alan bölme veya yol adı genişletme. Bu kuralın tek istisnası, yukarıda açıklandığı gibi, özel parametrenin @ çift tırnak içine genişletilmesidir.

Kelime genişletme sırası:

  1. Tilde Genişletme, Parametre Genişletme, Komut Değiştirme, Aritmetik Genişleme (hepsi aynı anda gerçekleşir).
  2. Alan Bölme, IFS değişkeni boş olmadığı sürece adım (1) tarafından oluşturulan alanlarda gerçekleştirilir.
  3. Yol Adı Genişletme (set- f etkin olmadıkça).
  4. Alıntı Kaldırma.

$ Karakteri, parametre genişletme, komut ikamesi veya aritmetik değerlendirme sunmak için kullanılır.

Tilde Genişletme (bir kullanıcının ev dizini değiştirerek)

Belirtilmemiş bir tilde karakteri (~) ile başlayan bir sözcük tilde genişlemesine tabi tutulur. Eğik çizgi (/) veya sözcüğün sonuna kadar olan tüm karakterler bir kullanıcı adı olarak kabul edilir ve kullanıcının giriş dizini ile değiştirilir. Eğer kullanıcı adı eksikse (~ / foobar'da olduğu gibi) tilde HOME değişkeninin değeri (mevcut kullanıcının ana dizini) ile değiştirilir.

Parametre genişletme

Parametre genişletme formatı aşağıdaki gibidir:

İfadenin, bir ters eğik çizgi ile veya tırnak içine alınmış bir dizgeden kaçınılan eşleştirilen ``} '' Any ``} '' ifadesine kadar tüm karakterlerden oluşan ve gömülü aritmetik açılımlar, komut ikameleri ve değişken genişletmelerdeki karakterler, eşleme ``} ''

Parametre genişletme için en basit form:

Varsa, parametrenin değeri değiştirilir.

Parametre adı veya sembolü, birden fazla rakamlı konumsal parametreler hariç veya isteğe bağlı olarak adın bir parçası olarak yorumlanabilecek bir karakter tarafından izlenen isteğe bağlı olan parantez içine alınabilir. Çift tırnak içinde bir parametre genişletme meydana gelirse:

  1. Genişleme sonuçları üzerinde yol adı genişletme gerçekleştirilmez.
  2. @ Dışında, genişletmenin sonuçlarında alan bölme işlemi gerçekleştirilmez.

Ek olarak, bir parametre genişletme aşağıdaki biçimlerden biri kullanılarak değiştirilebilir.

Varsayılan Değerleri Kullan. Parametre unset veya null ise, kelimenin genişletilmesi; aksi halde, parametrenin değeri değiştirilir.

Varsayılan Değerler Ata. Parametre unset veya null ise, sözcüğün genişletilmesi parametreye atanır. Her durumda, parametrenin son değeri değiştirilir. Bu şekilde sadece değişkenler, konumsal parametreler veya özel parametreler atanamaz.

Boş veya Ayarlanmamışsa Hatayı Belirtin. Parametre unset veya null ise, word'ün genişletilmesi (veya word atlanırsa onu belirten bir mesaj) standart hataya yazılır ve kabuk sıfır olmayan bir çıkış durumuyla çıkar. Aksi halde, parametrenin değeri değiştirilir. Etkileşimli bir kabuk çıkmamalı.

Alternatif Değeri Kullan. Parametre unset veya null ise, boş bırakılır; aksi halde, kelimenin genişletilmesi yerine geçer.

Daha önce gösterilen parametre genişletmelerinde, biçimdeki kolonun kullanılması, unset veya null olan bir parametre için bir sınama ile sonuçlanır; kolonun ihmal edilmesi, sadece unset olan bir parametre için bir test sonucunu verir.

IP uzunluğu. Parametrenin değerindeki karakterlerin uzunluğu.

Aşağıdaki dört parametre genişletme seçeneği, alt tabaka işlemeyi sağlar. Her durumda, desenleri değerlendirmek için düzenli ifade gösterimi yerine desen eşleştirme notasyonu (Kabuk Desenler bölümüne bakınız) kullanılır. Parametre * veya @ ise, genişletmenin sonucu belirtilmemiş. Tam parametreli genişletme dizgesini çift tırnak içine almak, aşağıdaki dört çeşit desen karakterinin alıntılanmasına neden olmazken, parantez içindeki karakterlerin alıntılanması bu etkiye sahiptir.

En Küçük Sonek Kalıbı'nı kaldırın. Sözcük bir desen oluşturmak için genişletilmiştir. Parametre genişletme daha sonra parametre ile sonuçlanır, sonekin en küçük kısmı silinmiş şablonla eşleşir.

En Büyük Sonek Kalıbı Kaldır. Sözcük bir desen oluşturmak için genişletilmiştir. Parametre genişletme daha sonra parametre ile sonuçlanır, sonekin en büyük kısmı silinmiş şablonla eşleşir.

En Küçük Önek Kalıbı'nı kaldırın. Sözcük bir desen oluşturmak için genişletilmiştir. Parametre genişletme daha sonra parametreyle sonuçlanır, silinen modelin eşleştirdiği önekin en küçük kısmı ile birlikte.

En Büyük Önek Kalıbı Kaldır. Sözcük bir desen oluşturmak için genişletilmiştir. Parametre genişletme daha sonra parametre ile sonuçlanır, silinen modelin eşleştiği önekin en büyük kısmı ile birlikte.

Komuta Değiştirme

Komut ikamesi , komutun kendisinin yerine yerine konması için bir komutun çıkışına izin verir. Komut, aşağıdaki gibi komut eklendiğinde gerçekleşir:

$ (Komut)

veya Po `` backquoted '' sürümü Pc:

`command`

Kabuk, subshell ortamında komutu çalıştırarak komut ikamesini genişletir ve komutun standart çıktısıyla komut ikamesini değiştirerek, ikame sonunda bir veya daha fazla s dizisini çıkarır. (Çıktının sonundan önce gömülü ler silinmez, ancak alan ayırma sırasında, IFS değerine ve geçerli olan alıntıya bağlı olarak 'a çevrilebilirler.)

Aritmetik Genişleme

Aritmetik genişleme, bir aritmetik ifadeyi değerlendirmek ve değerini değiştirmek için bir mekanizma sağlar. Aritmetik genişletme biçimi şöyledir:

$ ((Ifade))

İfadenin, çift tırnak içinde olduğu gibi ifade edilir, ancak ifadenin içinde çift tırnak işareti özel olarak ele alınmaz. Kabuk, parametre genişletme, komut değiştirme ve alıntı kaldırma için ifadedeki tüm simgeleri genişletir.

Ardından, kabuk bunu aritmetik bir ifade olarak ele alır ve ifadenin değerini değiştirir.

Beyaz Uzay Bölme (Alan Bölme)

Parametre genişletme, komut ikamesi ve aritmetik genişlemeden sonra, kabuk alan ayırma için çift tırnakta bulunmayan genleşmelerin ve ikamelerin sonuçlarını tarar ve çoklu alanlar ortaya çıkabilir.

Kabuk, IFS'nin her karakterini bir sınırlayıcı olarak ele alır ve sınırlayıcıları parametre genişletme ve komut ikamesinin sonuçlarını alanlara bölmek için kullanır.

Yol Adı Genişletme (Dosya Adı Üretimi)

- f bayrağı ayarlanmadığı sürece, kelime bölme işlemi tamamlandıktan sonra dosya adı oluşturma işlemi gerçekleştirilir. Her kelime, eğik çizgilerle ayrılmış bir dizi kalıp olarak görülür. Genişleme işlemi, kelimeyi, her bir kalıbı belirtilen desenle eşleşen bir dizeyle değiştirerek adlarının oluşturulabileceği tüm mevcut dosyaların adlarıyla değiştirir. Bu konuda iki kısıtlama vardır: bir desen, bir eğik çizgi içeren bir dizeyle eşleşemez ve ikinci olarak, bir model, desenin ilk karakteri bir dönem olmadığı sürece bir periyotla başlayan bir dizeyle eşleşemez. Bir sonraki bölümde, Pathname Expansion ve case (1) komutu için kullanılan desenler açıklanmaktadır.

Kabuk Desenler

Bir desen, kendileri ve meta-karakterler ile eşleşen normal karakterlerden oluşur. Meta-karakterler ``! '' `` `* ''` `? '' Ve` `['' Bu alıntılar eğer alıntı yapılırsa özel anlamlarını yitirirler. Komut veya değişken ikamesi yapıldığında ve dolar işareti ya da geri tırnaklar çift tırnak içine alınmadığında, bu karakterler için değişkenin değeri ya da komutun çıkışı taranır ve bunlar meta-karakterlere dönüştürülür.

Yıldız işareti (`` * '') herhangi bir karakter dizesiyle eşleşir. Soru işareti herhangi bir karakterle eşleşir. Bir sol parantez (`` ['') bir karakter sınıfı sunar. Karakter sınıfının sonu, bir `` `'' ile gösterilirse,` `'' eksikse,` `['' bir karakter sınıfını tanıtmak yerine` `['' ile eşleşir. Bir karakter sınıfı, köşeli ayraçlar arasındaki herhangi bir karakterle eşleşir. Bir eksi işareti kullanılarak bir dizi karakter belirtilebilir. Karakter sınıfı, karakter sınıfının ilk karakterini bir ünlem işareti yaparak tamamlanabilir.

Bir karakter sınıfında bir `` `'' ifadesini dahil etmek için, onu listelenen ilk karakteri (varsa` `! '') Yapın. Bir eksi işareti eklemek için, onu listelenen ilk veya son karakteri yapın

yerleşikleri

Bu bölümde, yerleşik olan yerleşik komutlar listelenir, çünkü bunlar ayrı bir işlem tarafından gerçekleştirilemeyen bazı işlemleri gerçekleştirmeleri gerekir. Bunlara ek olarak, verimlilik için yerleştirilebilecek bazı başka komutlar da vardır (örneğin echo 1).

:

0 (true) çıkış değerini döndüren boş bir komut.

. dosya

Belirtilen dosyadaki komutlar kabuk tarafından okunur ve yürütülür.

alias [ name [ = string ... ]]

Name = string belirtilmişse, kabuk, alias adını değer dizesi ile tanımlar. Sadece ad belirtilirse, diğer adın değeri yazdırılır. Argüman olmadan, takma ad , tüm tanımlı takma adların adlarını ve değerlerini yazdırır (bkz. Unalias)

bg [ iş] ...

Arka planda belirtilen işleri (veya herhangi bir iş verilmediyse mevcut işi) devam ettirin.

komut komutu arg ...

Belirtilen yerleşik komutu çalıştırın. (Bu, yerleşik komutla aynı ada sahip kabuk işleviniz olduğunda kullanışlıdır.)

cd [ dizin ]

Belirtilen dizine geçme (varsayılan $ HOME) CD komutu ortamında CDPATH için bir giriş görünüyorsa veya CDPATH kabuk değişkenine ayarlanmışsa ve dizin adı eğik çizgi ile başlamıyorsa, CDPATH'de listelenen dizinler aranacaktır. belirtilen dizin için. CDPATH formatı, PATH ile aynıdır. Bir interaktif kabukta, cd komutu, kullanıcının verdiği addan farklıysa, gerçekte değiştirilen dizinin adını yazdıracaktır. Bunlar CDPATH mekanizmasının kullanıldığı ya da sembolik bir bağlantının geçildiği için farklı olabilir.

eval dizesi ...

Tüm argümanları boşluklarla birleştirin. Sonra yeniden ayrıştırın ve komutu çalıştırın.

exec [ komut arg ... ]

Komut atlanmadığı sürece, kabuk işlemi belirtilen programla değiştirilir (gerçek bir program olmalı, kabuk yerleşiği veya işlevi olmamalıdır). Exec komutundaki tüm yönlendirmeler kalıcı olarak işaretlenir, böylece exec komutu tamamlandığında geri alınmazlar.

çıkış [ exitstatus ]

Kabuk işlemini sonlandır. Eğer exitstatus verilirse, kabuğun çıkış durumu olarak kullanılır; aksi halde, önceki komutun çıkış durumu kullanılır.

ihracat adı ...

ihracat -p

Belirtilen adlar, sonraki komutların ortamında görünecek şekilde dışa aktarılır. Bir değişkeni ihraç etmenin tek yolu onu kaldırmaktır. Kabuk, bir değişkenin değerinin, aynı zamanda yazılarak ihraç edilmesine izin verir.

ihracat adı = değer

Bağımsız değişkenler olmadan dışa aktarma komutu, dışa aktarılan tüm değişkenlerin isimlerini listeler. Belirtilen p seçeneği ile çıktı, etkileşimli olmayan kullanım için uygun şekilde biçimlendirilecektir.

fc [- editör ] [ ilk [ son ]]

fc -l [- nr ] [ ilk [ son ]]

fc -s [ eski = yeni ] [ ilk ]

Fc yerleşik, daha önce etkileşimli bir kabukta girilen komutları listeler veya düzenler ve yeniden çalıştırır.

-e editör

Komutları düzenlemek için editör tarafından düzenlenmiş editörü kullanın. Düzenleyici dizesi, PATH değişkeniyle arama yapmaya tabi olan bir komut adıdır. - e belirtilmemişse, FCEDIT değişkenindeki değer varsayılan olarak kullanılır. FCEDIT boş veya unset ise, EDITOR değişkeninin değeri kullanılır. EDITOR boş veya unset ise ed (1) editör olarak kullanılır.

-l (ell)

Onlara bir editör çağırmak yerine komutları listeleyin. Komutlar, komut numarasının önündeki her komutla etkilenen ilk ve son işlenenler tarafından gösterilen sırayla yazılır.

-n

-l ile listelendiğinde komut numaralarını bastır.

-r

Listelenen komutların sırasını tersine çevirme (- l veya düzenlenmiş (ne - l ile ne )

-s

Bir editörü çağırmadan komutu yeniden çalıştırın.

ilk

son

Listelemek veya düzenlemek için komutları seçin. Erişilebilen önceki komutların sayısı, HISTSIZE değişkeninin değerine göre belirlenir. İlk veya son veya her ikisinin değeri aşağıdakilerden biridir:

[+] numara

Bir komut numarasını temsil eden pozitif bir sayı; komut numaraları - l seçeneği ile görüntülenebilir.

-numara

Önceden komutların çalıştırıldığı komutu temsil eden negatif bir ondalık sayı. Örneğin -1, hemen önceki komuttur.

sicim

Bu dizeyle başlayan en son girilen komutu gösteren bir dize. Eski = yeni işlenen de - s ile belirtilmemişse, ilk işlenenin dize formu gömülü bir eşittir işareti içeremez.

Aşağıdaki ortam değişkenleri fc'nin yürütülmesini etkiler:

FCEDIT

Kullanılacak editörün adı.

HISTSIZE

Erişilebilir olan önceki komutların sayısı.

fg [ ]

Belirtilen işi veya geçerli işi ön plana taşıyın.

getopts optstring var

POSIX , Bell Labs -derived getopt (1) ile karıştırılmamalıdır.

İlk argüman, her biri opsiyonun bir argüman gerektirdiğini belirtmek için bir kolon tarafından takip edilebilen bir dizi harf olmalıdır. Belirtilen değişken ayrıştırılan seçeneğe ayarlanır.

Getopts komutu, boşluk içeren argümanların ele alınmasından dolayı eski getopt (1) yardımcı programını kullanımdan kaldırır.

Yerleşik getopts , seçenekler ve bunların argümanlarını bir parametre listesinden almak için kullanılabilir. Çağrıldığında , getopts , varyantın belirttiği kabuk değişkeninde listedeki seçenek dizgesindeki bir sonraki seçeneğin değerini yerleştirir ve kabuk değişkeni OPTIND dizini dizinindedir. Kabuk çağrıldığında, OPTIND 1'e başlatılır. bir argüman, içerisindeki getopt'lar onu OPTARG kabuk değişkenine yerleştirir . Optstring'de bir seçeneğe izin verilmezse OPTARG unset olmayacaktır.

optstring , tanınan seçenek harflerinden oluşan bir dizedir. Bir harfin iki nokta üst üste gelmesi durumunda, bu seçeneğin beyaz alan ile ayrılabileceği ya da ayrılmayacak bir argümanı olması beklenir. Eğer bir seçenek karakteri beklenildiği zaman bulunamazsa, getopts değişken değişkenini bir ``? '' Olarak ayarlayacaktır, daha sonra getopt'lar OPTARG 'i çıkararak çıktıyı standart hataya yazacaktır. Bir sütunu optstring'in ilk karakteri olarak belirterek tüm hatalar dikkate alınmayacaktır.

Son seçenek ulaşıldığında sıfır olmayan bir değer döndürülür. Geriye kalan argüman yoksa, getopt'lar özel seçeneğe ayarlayacaktır, aksi halde ``? '' Ifadesi var demektir

Aşağıdaki kod parçası, [a] ve [b] seçeneklerini ve bir argüman gerektiren [c] seçeneğini alabilecek bir komut için argümanların nasıl işlenebileceğini gösterir.

getopts abc: f
yap
durumda $ f
a | b) bayrak = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; çıkış 1;
esac
tamam
vardiya `expr $ OPTIND - 1`

Bu kod aşağıdakilerden herhangi birini eşdeğer olarak kabul edecektir:

cmd -acarg dosya dosyası
cmd -a -c arg dosya dosyası
cmd -carg -a dosya dosyası
cmd -a -carg - dosya dosyası

hash -rv komutu ...

Kabuk, komutların yerlerini hatırlayan bir karma tabloyu korur. Herhangi bir argüman olmadan, hash komutu bu tablonun içeriğini basar. Son cd komutundan beri bakılmayan girişler yıldız işareti ile işaretlenir; Bu girişlerin geçersiz olması mümkündür.

Argümanlar ile karma komutu belirtilen komutları karma tablodan kaldırır (işlev olmadıkları sürece) ve sonra bunları bulur. - v seçeneğiyle, hash, komutların yerlerini buldukça basar. - r seçeneği, hash komutunun işlevler haricinde karma tablosundaki tüm girdileri silmesine neden olur.

jobid [ ]

İşteki süreçlerin işlem kimliklerini yazdırın. İş argümanı atlanırsa, mevcut iş kullanılır.

Meslekler

Bu komut, mevcut kabuk işleminin çocukları olan tüm arka plan işlemlerini listeler.

pwd

Geçerli dizini yazdır. Yerleşik komut, aynı addaki programdan farklı olabilir, çünkü yerleşik komut, geçerli dizinin her seferinde yeniden derlemekten ziyade ne olduğunu hatırlar. Bu daha hızlı yapar. Ancak, geçerli dizin yeniden adlandırılırsa, pwd'nin yerleşik sürümü dizinin eski adını yazdırmaya devam eder.

[- p prompt ] [- r ] değişkenini oku ...

- p seçeneği belirtilmişse ve standart giriş bir terminal ise, istemi yazdırılır. Daha sonra standart girişten bir satır okunur. Sondaki satırsonu satırdan silinir ve satır yukarıdaki kelime bölme bölümünde açıklandığı gibi bölünür ve parçalar sırayla değişkenlere atanır. En az bir değişken belirtilmelidir. Değişkenlerden daha fazla parça varsa, kalan parçalar (onları ayıran IFS'deki karakterlerle birlikte) son değişkene atanır. Parçalardan daha fazla değişken varsa, kalan değişkenlere boş dizge atanır. Okunan yerleşik, girişte EOF ile karşılaşılmadıkça başarı gösterir, bu durumda başarısızlık geri döner.

Varsayılan olarak, - r seçeneği belirtilmedikçe, ters eğik çizgi '`\' ', aşağıdaki karakterin tam anlamıyla ele alınmasına neden olarak bir çıkış karakteri işlevi görür. Ters eğik çizgiyi bir satırsonu izlerse, ters eğik çizgi ve satırsonu silinir.

readonly adı ...

readonly -p

Belirtilen adlar, salt okunur olarak işaretlenir, böylece daha sonra değiştirilemez veya değiştirilemez. Kabuk, bir değişkenin değerinin aynı anda ayarlanmasına izin verir, sadece okunarak okunur olarak işaretlenir

readonly name = value

Bağımsız değişkenler olmadan salt okunur komut, salt okunur tüm değişkenlerin isimlerini listeler. Belirtilen p seçeneği ile çıktı, etkileşimli olmayan kullanım için uygun şekilde biçimlendirilecektir.

[{- seçenekler | + seçenekler | - arg ... ]

Set komutu üç farklı işlevi yerine getirir.

Hiçbir argüman olmadan, tüm kabuk değişkenlerinin değerlerini listeler.

Seçenek belirtilirse, belirtilen seçenek bayraklarını ayarlar veya Sx Bağımsız Değişim Listesi İşleme bölümünde açıklanan şekilde bunları temizler.

Set komutunun üçüncü kullanımı, kabuğun konumsal parametrelerinin değerlerini belirtilen hatalara ayarlamasıdır. Herhangi bir seçeneği değiştirmeden konum parametrelerini değiştirmek için, ayarlanacak ilk argüman olarak `` - '' kullanın. Eğer herhangi bir hata yoksa, set komutu tüm konumsal parametreleri (`` shift $ #. '' Komutunu çalıştırır.

değişken değer

Değişkene değer atar. (Genelde setvar setvar kullanmak yerine değişken = değer yazmak daha iyidir, isimleri parametre olarak iletilen değişkenlere değer atayan işlevlerde kullanılması amaçlanmıştır.)

vardiya [ n ]

Pozisyonel parametreleri n kere kaydır. Bir vardiya 1 $ değerini 2 $ değerine 2 $ değerine, $ 3 değerine ve böylece $ # değerinin bir azalarak değerine ayarlar. N, konumsal parametrelerin sayısından büyükse, kayma bir hata mesajı verir ve geri dönüş durumu 2 ile çıkar.

zamanlar

Kabuk için birikmiş kullanıcı ve sistem zamanlarını ve kabuktan yürütülen işlemler için yazdırın. Dönüş durumu 0'dır.

tuzak eylem sinyali ...

Belirtilen sinyallerden herhangi biri alındığında kabuk ayrıştırmak ve eylem yürütmek için neden olur. Sinyaller sinyal numarası ile belirtilir. Sinyal 0 ise, kabuk çıktığı zaman eylem yürütülür. eylem , boş olabilir veya `` - '', belirtilen sinyalin göz ardı edilmesine neden olur ve ikincisi, varsayılan eylemin yapılmasına neden olur. Kabuk bir alt kabuğunu çatalladığında , yakalanan (ama göz ardı edilmeyen) sinyalleri varsayılan eyleme sıfırlar. Tuzak komutunun, kabuğa girişte yok sayılan sinyaller üzerinde bir etkisi yoktur.

yazın [ isim ... ]

Her adı bir komut olarak yorumlayın ve komut aramanın çözünürlüğünü yazdırın. Olası çözümler şunlardır: kabuk anahtar sözcüğü, takma ad, kabuk yerleşiği , komut, izlenen takma ad ve bulunamadı. Diğer adlar için takma ad genişletme yazdırılır; komutlar ve izlenen diğer adlar için komutun tam yol adı yazdırılır.

ulimit [- H-S ] [- a-tfdscmlpn [ değer ]]

İşlemlerde sert veya yumuşak limitleri araştırın veya ayarlayın veya yeni sınırlar belirleyin. Sert limit (herhangi bir işlemin ihlal edilmesine izin verilmeyen ve indirildikten sonra yükseltilemeyen) ile yumuşak limit (bu durumun sinyal vermesine rağmen zorunlu olarak öldürülmesine neden olan ve yükseltilebilecek olan) arasındaki seçim yapılır. bu bayraklar:

H

zor limitleri belirlemek veya sormak

-S

Yumuşak limitleri belirlemek veya sorgulamak. Ne - H ne de S belirtilmemişse, yumuşak limit görüntülenir veya her iki limit de ayarlanır. Her ikisi de belirtilirse, sonuncusu kazanır.

Sorgulanacak veya ayarlanacak olan sınır, bu bayraklardan herhangi birini belirterek seçilir:

-a

tüm güncel limitleri göster

-t

CPU zaman sınırını göster veya ayarla (saniye cinsinden)

-f

Oluşturulabilen en büyük dosyada sınırı göster veya ayarla (512 bayt blokta)

-d

Bir işlemin veri segmenti boyutundaki sınırı gösterir (kilobayt cinsinden)

-s

Bir işlemin yığın boyutundaki sınırı gösterir (kilobayt cinsinden)

-c

Üretilebilecek en büyük çekirdek boşaltma boyutundaki sınırı gösterme veya ayarlama (512 baytlık bloklarda)

-m

Bir işlem tarafından kullanılabilecek toplam fiziksel bellek üzerindeki sınırı gösterme veya ayarlama (kilobayt cinsinden)

-l

Bir işlemin mlock (2) ile kilitleyebildiği bellek miktarını sınırlamak veya ayarlamak ( kilobayt cinsinden )

-p

Bu kullanıcının bir seferde sahip olabileceği işlemlerin sayısını sınırlama veya gösterme

-n

Bir işlemin aynı anda açabileceği numara dosyalarındaki limiti göster veya ayarla

Bunlardan hiçbiri belirtilmemişse, gösterilen veya ayarlanan dosya boyutundaki sınırdır. Değer belirtilirse, sınır bu sayıya ayarlanır; aksi halde geçerli limit görüntülenir.

Rasgele bir sürecin sınırları, sysctl (8) yardımcı programı kullanılarak görüntülenebilir veya ayarlanabilir.

umask [ maske ]

Umask değerini (umask (2)) belirtilen sekizlik değere ayarlayın. Tartışma atlanırsa, umask değeri yazdırılır.

unalias [- a ] [ isim ]

İsim belirtilirse, kabuk bu diğer adı kaldırır. - a belirtilirse, tüm takma adlar kaldırılır.

unset adı ...

Belirtilen değişkenler ve işlevler belirlenmemiş ve bildirilmemiş. Belirli bir ad hem bir değişkene hem de bir fonksiyona karşılık gelirse, hem değişken hem de fonksiyon unset edilir.

bekle [ ]

Belirtilen işin işteki son işlemin çıkış durumunu tamamlayıp geri vermesini bekleyin. Argüman atlanırsa, tüm işlerin tamamlanmasını bekleyin ve sıfırın çıkış durumunu döndürün.

Komut Satırı Düzenleme

Bir terminalden interaktif olarak kullanıldığında, geçerli komut ve komut geçmişi (Sx Builtins'deki fc'ye bakın), vi-mode komut satırı düzenlemesi kullanılarak düzenlenebilir. Bu mod, vi man sayfasında açıklananların bir alt kümesine benzer, aşağıda açıklanan komutları kullanır. `Set '-o vi komutu vi mod düzenleme sağlar ve vi insert moduna yerleştirilir. Vi modu etkinken, ekleme modu ve komut modu arasında geçiş yapılabilir. Editör burada tam olarak açıklanmamıştır, ancak daha sonraki bir belgede yer alacaktır. Vi'ya benzer: yazarak Aq ESC sizi komut VI komut moduna atar. Komut modundayken Aq dönüşüne vurmak, çizgiyi kovana iletir.

Önemli: Komutunuzun belirli bir bilgisayarda nasıl kullanıldığını görmek için man komutunu ( % adam ) kullanın.