İlk 50 Shell Scripting Röportaj Sorusu ve amp; Yanıtlar

Anonim

PDF İndir

1: Kabuk nedir?

Kabuk, kullanıcı ve çekirdek arasındaki bir arayüzdür. Tek bir çekirdek olabilse de; bir sistem aynı anda çalışan birçok kabuğa sahip olabilir. Bu nedenle, bir kullanıcı klavye aracılığıyla bir komut girdiğinde, kabuk onu yürütmek için çekirdek ile iletişim kurar ve ardından çıktıyı kullanıcıya görüntüler.

2: Tipik bir Linux sisteminde yaygın olarak kullanılan farklı kabuk türleri nelerdir?

csh, ksh, bash, Bourne. Günümüzde en yaygın kullanılan ve gelişmiş kabuk "Bash" dir.

3: Linux sisteminde bir pencereye sahip olan bir dosya kısayolunun eşdeğeri nedir?

Kısayollar, Linux'ta "bağlantılar" kullanılarak oluşturulur. Kullanılabilen iki tür bağlantı vardır: "yumuşak bağlantı" ve "sabit bağlantı".

4: Yumuşak ve sert bağlantılar arasındaki fark nedir?

Yumuşak bağlantılar, dosya adına bağlantıdır ve farklı dosya sistemlerinde de bulunabilir; ancak sabit bağlantılar dosyanın inode'una bağlantıdır ve dosyanınki ile aynı dosya sisteminde olmalıdır. Orijinal dosyanın silinmesi yazılım bağlantısını devre dışı bırakır (bozuk bağlantı) ancak sabit bağlantıyı etkilemez (Sabit bağlantı yine de dosyanın bir kopyasına erişir)

5: Linux'ta bir betiğe argümanları nasıl iletecek ve bunlara nasıl erişeceksiniz?

Bağımsız değişkenler şu şekilde aktarılabilir:

scriptName "Arg1" "Arg2"

…. "Argn" ve komut dosyasının içinden $ 1, $ 2… $ n olarak erişilebilir

6: $ #'ın önemi nedir?

$ #, betiğe aktarılan bağımsız değişkenlerin sayısını gösterir.

7: $ * ve $ @ arasındaki fark nedir?

$ @, her bir alıntılanan bağımsız değişkeni ayrı bağımsız değişkenler olarak ele alır, ancak $ * konumsal parametrelerin tamamını tek bir dizge olarak değerlendirir.

8: Dosyanın içeriğini değiştirmek için sed komutunu kullanın (taklit tac komutu)

Örneğin:

if cat filleABCDEFGH

O zaman O / p olmalıdır

EFGHABCD

sed '1! G; h;$!d' file1

Burada G komutu desen boşluğuna eklenir,

h komutu, tamponu tutmak için model arabelleğini kopyalar

ve d komutu mevcut desen alanını siler.

9: Bir dosya verildiğinde , sadece "MNO" kelimesini içeren satırlarda 5. satırdan sonuna kadar "ABC" kelimesinin tüm oluşumunu "DEF" ile değiştirin.

sed -n '5,$p' file1|sed '/MNO/s/ABC/DEF/'

10: Bir dosya verildiğinde, her kelimenin sayısını bulmak için bir komut dizisi yazın.

tr -s "(backslash)040" 

"(ters eğik çizgi) 011", "sekme karakteri" nin sekizlik eşdeğeridir ve

"(ters eğik çizgi) 012" satırsonu karakterinin sekizlik eşdeğeridir.

11: Nasıl 99 bulacaksınız inci sadece kuyruk ve baş komutunu kullanarak bir dosyanın satırını?

kuyruk +99 dosya1 | kafa -1

12: 10 Print inci kuyruk ve baş komutunu kullanmadan hattı.

sed -n '10p' file1

13: Benim bash kabuğumda istemimin '$ "Mevcut çalışma dizini": "ana bilgisayar adı"> biçiminde olmasını istiyorum ve oturum açar açmaz kullanıcı tanımlı işlevlerin bir listesini içeren bir dosya yüklüyorum, bunu nasıl otomatikleştireceksiniz ?

Bash kabuğunda, oturum açar açmaz otomatik olarak çağrılan ".profile" dosyası oluşturabilir ve aşağıdaki sözdizimini ona yazabiliriz.

export PS1='$ `pwd`:`hostname`>' .File1

Burada Dosya1, kullanıcı tanımlı işlevleri ve "." bu dosyayı mevcut kabukta çağırır.

14: Bir dosyadaki "s" izin bitini açıklar mısınız?

"s" bitine "kullanıcı kimliği ayarla" (SUID) biti denir.

Bir dosyadaki "s" biti, işlemin program örneği sırasında dosyanın sahibinin ayrıcalıklarına sahip olmasına neden olur.

Örneğin, mevcut parolayı değiştirmek için "passwd" komutunun çalıştırılması, kullanıcının yeni parolasını, sahibi "root" a sahip olsa bile gölge dosyaya yazmasına neden olur.

15: Gruptaki herkesin bir dosya oluşturabileceği ve içindeki herhangi bir kişinin dosyasına erişebileceği, ancak hiçbirinin kendi oluşturduğu dosya dışındaki bir dosyayı silemeyeceği bir dizin oluşturmak istiyorum.

Gruptaki herkese okuma ve yürütme erişimi sağlayan ve yapışkan biti "t" yi aşağıdaki gibi ayarlayan dizini oluşturabiliriz:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Sistemin ne kadar süredir çalıştığını nasıl öğrenebilirsiniz?

Bunu "uptime" komutunu kullanarak bulabiliriz.

17: Herhangi bir kullanıcı, varsayılan kabuğu, gerçek hayattaki adı, varsayılan dizini, sistemi ne zaman ve ne kadar süredir kullandığı gibi belirli bir kullanıcı hakkındaki tüm bilgileri nasıl öğrenebilir?

parmak "loginName"

… Burada loginName, kullanıcının oturum açma adıdır

bilgileri beklenen kullanıcı.

18: $$ ile $ !? arasındaki fark nedir?

$$, şu anda yürütülmekte olan sürecin işlem kimliğini verirken $! Yakın zamanda arka plana giren işlemin işlem kimliğini gösterir.

19: Zombi süreçleri nelerdir?

Bunlar, ölmüş olan ancak çıkış durumu hala üst süreç tarafından seçilmeyen süreçlerdir. Bu işlemlerin işlevsel olmasa bile işlem tablosunda işlem kimliği girişi vardır.

20: Bir dosyayı bir makineden diğerine nasıl kopyalayacaksınız?

Bir dosyayı bir makineden diğerine kopyalamak için "ftp", "scp" veya "rsync" gibi yardımcı programları kullanabiliriz.

Örneğin, ftp kullanarak:

FTP ana bilgisayar adı

> dosya1 koy

> güle güle

Yukarıda, yerel sistemden ana bilgisayar adı belirtilen hedef sisteme dosya1 dosyası kopyalanır.

21: Sürekli güncellenen bir günlük dosyasını izlemek istiyorum, bunu en verimli şekilde gerçekleştirmek için hangi komut kullanılabilir?

Tail -f dosya adını kullanabiliriz. Bu sadece varsayılan son 10 satırın std o / p üzerinde sürekli olarak dosyanın güncellenen kısmını gösteren görüntülenmesine neden olacaktır.

22: Uzak bir sunucuya bağlanmak ve bazı komutları çalıştırmak istiyorum, bunu nasıl başarabilirim?

Bunu yapmak için ssh kullanabiliriz:

ssh kullanıcıadı @ sunucuIP -p sshport

Misal

ssh Bu e-posta adresi istenmeyen postalardan korunmaktadır. Görüntülemek için JavaScript'in etkin olması gerekir. -p 22

Yukarıdaki komut yürütüldüğünde, şifreyi girmeniz istenecektir.

23: 2 dosyam var ve her ikisinde de ortak olan kayıtları yazdırmak istiyorum.

"Comm" komutunu şu şekilde kullanabiliriz:

comm -12 dosya1 dosya2… 12,

1 özgü st ve 2 nd sırasıyla dosyanın.

24: Fibonacci serisinin ilk 10 elemanını yazdırmak için bir betik yazın.

#!/bin/sha=1b=1echo $aecho $bfor I in 1 2 3 4 5 6 7 8doc=ab=$ab=$(($a+$c))echo $bdone

25: Linux'tan bir veritabanı sunucusuna nasıl bağlanacaksınız?

Açık istemci sürücüsü ile gelen isql yardımcı programını aşağıdaki gibi kullanabiliriz:

isql -S serverName -U kullanıcı adı -P şifre

26: Linux'taki 3 standart akış nedir?

0 - Standart Giriş1 - Standart Çıkış2 - Standart Hata

27: Dosya1'den tüm çıktıları dosya2'ye ve hatayı dosya 3'e yönlendiren tüm girdileri okumak istiyorum, bunu nasıl başarabilirim?

komut dosya2 2> dosya3

28: exec kullanarak bir komut yürüttüğümde mevcut sürecime ne olacak?

"exec" yeni çatallanmış süreci mevcut sürecin üzerine yerleştirir; bu yüzden komutu exec kullanarak çalıştırdığımda, komut mevcut kabukta herhangi bir yeni işlem oluşturmadan yürütülüyor.

Örneğin, komut isteminde "exec ls" yürütmek ls'yi çalıştıracak ve ls çıktıktan sonra süreç kapanacaktır.

29: awk kullanarak wc -l'yi nasıl taklit edeceksiniz?

awk 'END {print NR} dosyaAdı'

30: Bir dosya verildiğinde, "ABC" kelimesini içeren satırların sayısını bulun.

grep -c "ABC" dosyası1

31: grep ve egrep arasındaki fark nedir?

egrep, "+" (önceki bir karakterin 1 veya daha fazla geçtiği yer), "?" (önceki bir karakterin 0 veya 1 kez geçtiği) ve "|" gibi ek grep özelliklerini destekleyen Genişletilmiş grep'tir. (alternatif eşleme)

32: Bir sistemdeki tüm kullanıcıların oturum açma adlarını nasıl yazdıracaksınız?

/ etc / shadow dosyasında tüm kullanıcılar listelenmiştir.

awk -F ':' '{print $1}' /etc/shadow|uniq -u

33: Linux'ta bir dizi nasıl kurulur?

Ksh cinsinden sözdizimi:

Set -A arrayname= (element1 element2… element)In bashA=(element1 element2 element3… . elementn)

34: "for" döngüsünün sözdizimini yazın

Sözdizimi:

for iterator in (elements)doexecute commandsdone

35: Belirli bir kullanıcı tarafından kullanılan toplam disk alanını nasıl bulacaksınız?

du -s / home / kullanıcı1… .burada kullanıcı1, kendisi için toplam disk alanının bulunması gereken kullanıcıdır.

36: Linux'ta "if" koşullarının sözdizimi yazılsın mı?

Sözdizimi

If condition is successfulthenexecute commandselseexecute commandsfi

37: $ 'ın önemi nedir?

$ Komutu? çalıştırılan son komutun çıkış durumunu verir.

38: Bir dosyadaki tüm boş satırları nasıl sileriz?

sed '[(backslash)011(backslash)040]*$/d' file1

burada (ters eğik çizgi) 011, boşluğun sekizlik eşdeğeridir ve

(ters eğik çizgi) 040, sekmenin sekizlik eşdeğeridir

39: Nasıl her 100'de bir çizgi "ABCDEF" ekler inci bir dosyanın hat?

sed '100i \ ABCDEF' dosyası1

40: 2 günden daha kısa sürede değiştirilen tüm dosyaları bulmak ve her birinin kayıt sayısını yazdırmak için bir komut dizisi yazın.

bul. -mtime -2 -exec wc -l {} \;

41: Geçerli kabukta oluşturulan her dosyada varsayılan rwx iznini tüm kullanıcılar için nasıl ayarlayabilirim?

Kullanabiliriz:

umask 777

Bu, her kullanıcı için oluşturulan her dosya için varsayılan rwx iznini ayarlayacaktır.

42: İşlem adını işlem kimliğinden nasıl bulabiliriz?

Biz kullanabilirsiniz "ps -p Processıd"

43: Linux'taki her dosya sisteminin dört temel bileşeni nelerdir?

Bootblock, süper blok, inode bloğu ve Datablock, Linux'taki her dosya sisteminin temel bileşenleridir.

44: Önyükleme bloğu nedir?

Bu blok, sistem önyüklemesi sırasında çekirdeği yükleyen "Ana Önyükleme kaydı" (MBR) adlı küçük bir program içerir.

45: Süper blok nedir?

Süper blok, dosya sisteminin boyutu, boş veri bloklarının sayısı tarafından kullanılan blok boyutu ve ücretsiz inode ve veri bloklarının listesi gibi dosya sistemi hakkındaki tüm bilgileri içerir.

46: Bir inode bloğu nedir?

Bu blok, dosya sisteminin her dosyası için inode'u ve adı hariç tüm dosya özniteliklerini içerir.

47: Ek olarak sıkıştırılmış bir dosya içeren bir postayı nasıl gönderebilirim?

zip dosyası1.zip dosya1 | mailx -s "konu" Alıcılar e-posta kimliği

E-posta içeriği

EOF

48: Bir kabukta komut takma adlarını nasıl oluştururuz?

alias Aliasname = "Takma adı oluşturulacak komut".

49: Bir dosyanın "c" ve "b" izin alanları nelerdir?

"c" ve "b" izin alanları genellikle bir cihaz dosyasıyla ilişkilendirilir. Bir dosyanın özel bir karakter dosyası mı yoksa bir blok özel dosya mı olduğunu belirtir.

50: Shebang dizesinin faydası nedir?

Her betiğin üstündeki Shebang satırı, betiği yürütmek için kullanılacak motorun konumunu belirler.