[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut

Bugün çevirisini yayınladığımız materyal, Linux komut satırında ustalaşmak isteyenlere yöneliktir. Bu aracın etkili bir şekilde nasıl kullanılacağını bilmek çok zaman kazandırabilir. Özellikle Bash kabuğundan ve 21 faydalı komuttan bahsedeceğiz. Ayrıca uzun ifadeler yazmayı hızlandırmak için Bash komut işaretlerini ve takma adlarını nasıl kullanacağımız hakkında da konuşacağız.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut

Ayrıca blogumuzda bash betikleriyle ilgili bir dizi yayını da okuyun

Şartlar

Linux komut satırıyla çalışmayı öğrendikçe, gezinmenize yardımcı olacak birçok kavramla karşılaşacaksınız. Bunlardan bazıları, örneğin "Linux" ve "Unix" veya "kabuk" ve "terminal" bazen karıştırılır. Bunlar ve diğer önemli terimler hakkında konuşalım.

Unix 1970'li yıllarda Bell Laboratuvarları tarafından geliştirilen popüler bir işletim sistemidir. Kodu kapalıydı.

Linux Unix benzeri en popüler işletim sistemidir. Artık bilgisayarlar da dahil olmak üzere birçok cihazda kullanılmaktadır.

Terminal (terminal) veya terminal emülatörü, işletim sistemine erişim sağlayan bir programdır. Aynı anda birden fazla terminal penceresini açabilirsiniz.

kabuk (Shell), özel bir dilde yazılmış komutları işletim sistemine göndermenizi sağlayan bir programdır.

Cümbüş Bourne Again Shell'in kısaltmasıdır. İşletim sistemiyle etkileşimde bulunmak için kullanılan en yaygın kabuk dilidir. Ayrıca Bash kabuğu macOS'ta varsayılandır.

Komut satırı arayüzü (Komut Satırı Arayüzü, CLI), kullanıcının klavyeden komutlar girdiği ve bu komutları yürüten bilgisayarın mesajları kullanıcı için metin biçiminde görüntülediği bir kişi ile bilgisayar arasındaki etkileşim yöntemidir. CLI esas olarak dosyalar hakkında belirli varlıklar hakkında güncel bilgi almak ve dosyalarla çalışmak için kullanılır. Komut satırı arayüzü, esas olarak fareyi kullanan grafik kullanıcı arayüzünden (GUI) ayrılmalıdır. Komut satırı arayüzüne genellikle basitçe komut satırı denir.

Senaryo (script) bir dizi kabuk komutu içeren küçük bir programdır. Komut dosyaları dosyalara yazılır, tekrar tekrar kullanılabilirler. Komut dosyaları yazarken değişkenleri, koşulları, döngüleri, işlevleri ve diğer özellikleri kullanabilirsiniz.

Artık önemli terimleri ele aldığımıza göre, "dizin" ve "klasör" terimlerinin yanı sıra "Bash", "shell" ve "komut satırı" terimlerini de burada birbirinin yerine kullanacağımı belirtmek isterim.

standart Canlı YayınlarBurada kullanacağımız standart giriştir (standart giriş, stdin), standart çıkış (standart çıkış, stdout) ve standart hata çıktısı (standart hata, stderr).

Aşağıda verilecek örnek komutlarda şöyle bir şey bulacaksınız: my_whatever - bu, bu parçanın size ait bir şeyle değiştirilmesi gerektiği anlamına gelir. Örneğin dosya adı.

Şimdi, bu materyalin tahsis edildiği komutların analizine geçmeden önce, onların listesine ve kısa açıklamalarına bir göz atalım.

21 Bash komutu

▍Bilgi alma

  • man: Komutun kullanım kılavuzunu (yardım) görüntüler.
  • pwd: çalışma dizini hakkındaki bilgileri görüntüler.
  • ls: Bir dizinin içeriğini görüntüler.
  • ps: Çalışan işlemlerle ilgili bilgileri görüntülemenizi sağlar.

▍Dosya sistemi manipülasyonu

  • cd: çalışma dizinini değiştirin.
  • touch: bir dosya oluşturun.
  • mkdir: bir dizin oluşturun.
  • cp: Bir dosyayı kopyalayın.
  • mv: Bir dosyayı taşıyın veya silin.
  • ln: bir bağlantı oluşturun.

▍G/Ç yönlendirmesi ve işlem hatları

  • <: yönlendirme stdin.
  • >: yönlendirme stdout.
  • |: Bir komutun çıktısını başka bir komutun girişine aktardı.

▍Dosyaları okuma

  • head: dosyanın başlangıcını okuyun.
  • tail: dosyanın sonunu oku.
  • cat: Bir dosyayı okuyun ve içeriğini ekrana yazdırın veya dosyaları birleştirin.

▍Dosyaları silme, işlemleri durdurma

  • rm: Bir dosyayı silin.
  • kill: işlemi durdurun.

▍Ara

  • grep: bilgi arayın.
  • ag: arama için gelişmiş komut.

▍Arşivleme

  • tar: arşiv oluşturma ve onlarla çalışma.

Bu komutlar hakkında daha detaylı konuşalım.

Takım Detayları

Başlangıç ​​​​olarak, sonuçları formda verilen komutlarla ilgilenelim. stdout. Genellikle bu sonuçlar bir terminal penceresinde görünür.

▍Bilgi alma

man command_name: komut kılavuzunu, yani yardım bilgilerini görüntüleyin.

pwd: Geçerli çalışma dizininin yolunu görüntüleyin. Komut satırıyla çalışırken, kullanıcının genellikle sistemin tam olarak nerede olduğunu bulması gerekir.

ls: Bir dizinin içeriğini görüntüler. Bu komut da oldukça sık kullanılır.

ls -a: Gizli dosyaları görüntüleyin. Bayrak burada kullanılıyor -a komutlar ls. Bayrakların kullanılması komutların davranışını özelleştirmeye yardımcı olur.

ls -l: Dosyalar hakkında ayrıntılı bilgileri görüntüleyin.

Bayrakların birleştirilebileceğini unutmayın. Örneğin şöyle: ls -al.

ps: Çalışan işlemleri görüntüleyin.

ps -e: Yalnızca geçerli kullanıcı kabuğuyla ilişkili olanlar değil, çalışan tüm işlemler hakkındaki bilgileri görüntüleyin. Bu komut genellikle bu formda kullanılır.

▍Dosya sistemi manipülasyonu

cd my_directory: çalışma dizinini şu şekilde değiştirin: my_directory. Dizin ağacında bir seviye yukarı çıkmak için şunu kullanın: my_directory göreceli yol ../.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
cd komutu

touch my_file: dosya oluşturma my_file verilen yol boyunca.

mkdir my_directory: Bir klasör oluşturun my_directory verilen yol boyunca.

mv my_file target_directory: dosyayı taşı my_file klasöre target_directory. Hedef dizini belirlerken, ona giden mutlak yolu kullanmanız gerekir (ve bunun gibi bir yapıyı değil). ../).

takım mvdosyaları veya klasörleri yeniden adlandırmak için de kullanılabilir. Örneğin, şöyle görünebilir:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: bir dosyanın kopyasını oluşturun my_source_file ve onu bir klasöre koy target_directory.

ln -s my_source_file my_target_file: sembolik bir bağlantı oluştur my_target_file dosya başına my_source_file. Bağlantıyı değiştirirseniz orijinal dosya da değişecektir.

eğer dosya my_source_file sonra silinecek my_target_file kalacak. Bayrak -s komutlar ln dizinler için bağlantılar oluşturmanıza olanak sağlar.

Şimdi G/Ç yeniden yönlendirmesi ve işlem hatları hakkında konuşalım.

▍G/Ç yönlendirmesi ve işlem hatları

my_command < my_file: standart giriş dosyası tanımlayıcısının yerine geçer (stdin) dosyalamak my_file. Komut klavyeden bir miktar giriş bekliyorsa ve bu veriler zaten bir dosyaya kaydedilmişse bu yararlı olabilir.

my_command > my_file: komutun sonuçlarını, yani normalde nelerin girileceğini yönlendirir stdout ve ekrana, bir dosyaya çıktı my_file. Eğer dosya my_file mevcut değil - yaratıldı. Dosya mevcutsa üzerine yazılır.

Örneğin, komutu yürüttükten sonra ls > my_folder_contents.txt geçerli çalışma dizininde bulunanların listesini içeren bir metin dosyası oluşturulacaktır.

Sembol yerine > inşaatı kullan >>, komutun çıktısının yönlendirildiği dosyanın mevcut olması koşuluyla bu dosyanın üzerine yazılmaz. Veriler bu dosyanın sonuna eklenecektir.

Şimdi veri hattı işlemeye bir göz atalım.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
Bir komutun çıktısı başka bir komutun girdisine beslenir. Bir boruyu diğerine bağlamak gibi

first_command | second_command: konveyör sembolü, |Bir komutun çıktısını başka bir komuta göndermek için kullanılır. Tanımlanan yapının sol tarafındaki komutun gönderdiği şey stdout, İçine düşmek stdin boru hattı sembolünün sağındaki komut.

Linux'ta veriler hemen hemen her türlü iyi biçimlendirilmiş komut kullanılarak ardışık düzenlenebilir. Linux'ta her şeyin bir boru hattı olduğu sıklıkla söylenir.

Boru hattı sembolünü kullanarak birden fazla komutu zincirleyebilirsiniz. Şuna benziyor:

first_command | second_command | third_command

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
Birkaç komuttan oluşan bir işlem hattı, bir işlem hattına benzetilebilir

Sembolün solundaki komut kullanıldığında |, bir şeyin çıktısını verir stdout, çıktısı hemen şu şekilde mevcuttur: stdin ikinci takım. Yani, boru hattını kullanarak komutların paralel yürütülmesiyle uğraştığımız ortaya çıktı. Bazen bu beklenmedik sonuçlara yol açabilir. Bununla ilgili ayrıntılar okunabilir burada.

Şimdi dosyalardan veri okumak ve ekranda görüntülemek hakkında konuşalım.

▍Dosyaları okuma

head my_file: Bir dosyanın başından itibaren satırları okur ve bunları ekrana yazdırır. Yalnızca dosyaların içeriğini değil aynı zamanda komutların çıktılarını da okuyabilirsiniz. stdinbu komutu ardışık düzenin bir parçası olarak kullanmak.

tail my_file: dosyanın sonundaki satırları okur. Bu komut aynı zamanda bir boru hattında da kullanılabilir.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
Baş (kafa) önde, kuyruk (kuyruk) arkadadır

Pandas kütüphanesini kullanarak verilerle çalışıyorsanız komutlar head и tail size tanıdık geliyor olmalı. Eğer durum böyle değilse yukarıdaki şekle bir bakın, kolaylıkla hatırlayacaksınız.

Dosyaları okumanın diğer yollarını düşünün, hadi komut hakkında konuşalım cat.

Ekip cat ya bir dosyanın içeriğini ekrana yazdırır ya da birden fazla dosyayı birleştirir. Bu, çağrıldığında bu komuta kaç dosyanın aktarıldığına bağlıdır.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
kedi komutu

cat my_one_file.txt: Bu komuta tek bir dosya iletildiğinde, onu çıktı olarak verir. stdout.

İki veya daha fazla dosya verirseniz farklı davranır.

cat my_file1.txt my_file2.txt: girdi olarak birden fazla dosya almış olan bu komut, bunların içeriklerini birleştirir ve içinde ne olduğunu görüntüler. stdout.

Dosya birleştirme işleminin sonucunun yeni bir dosya olarak kaydedilmesi gerekiyorsa operatörünü kullanabilirsiniz. >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Şimdi dosyaların nasıl silineceği ve işlemlerin nasıl durdurulacağından bahsedelim.

▍Dosyaları silme, işlemleri durdurma

rm my_file: dosyayı sil my_file.

rm -r my_folder: bir klasörü siler my_folder ve içerdiği tüm dosya ve klasörler. Bayrak -r komutun özyinelemeli modda çalışacağını belirtir.

Sistemin bir dosya veya klasör her silindiğinde onay istemesini önlemek için bayrağı kullanın. -f.

kill 012345: Belirtilen çalışan işlemi durdurarak, düzgün bir şekilde kapanması için zaman tanır.

kill -9 012345: Belirtilen çalışma sürecini zorla sonlandırır. Bayrağı Görüntüle -s SIGKILL bayrakla aynı anlama gelir -9.

▍Ara

Veri aramak için farklı komutlar kullanabilirsiniz. Özellikle - grep, ag и ack. Bu komutlarla tanışmamıza başlayalım grep. Bu, zamanla test edilmiş, güvenilir bir komuttur, ancak diğerlerinden daha yavaştır ve kullanımı onlar kadar kolay değildir.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
grep komutu

grep my_regex my_file: bir arama gerçekleştirir my_regex в my_file. Bir eşleşme bulunursa, her eşleşme için dizenin tamamı döndürülür. Varsayılan my_regex düzenli ifade olarak ele alınır.

grep -i my_regex my_file: Arama büyük/küçük harfe duyarlı olmayan bir şekilde gerçekleştirilir.

grep -v my_regex my_file: içermeyen tüm satırları döndürür my_regex. Bayrak -v ters çevirme anlamına gelir, operatöre benzer NOT, birçok programlama dilinde bulunur.

grep -c my_regex my_file: Dosyada bulunan aranan modelin eşleşme sayısı hakkındaki bilgileri döndürür.

grep -R my_regex my_folder: Belirtilen klasörde bulunan tüm dosyalarda ve bu klasörde yer alan klasörlerde yinelemeli bir arama gerçekleştirir.

Şimdi takım hakkında konuşalım ag. Daha sonra geldi grep, daha hızlıdır, onunla çalışmak daha uygundur.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
ag komutu

ag my_regex my_file: ile eşleşmelerin bulunduğu satır numaraları ve satırların kendisi hakkındaki bilgileri döndürür my_regex.

ag -i my_regex my_file: Arama büyük/küçük harfe duyarlı olmayan bir şekilde gerçekleştirilir.

Ekip ag dosyayı otomatik olarak işle .gitignore ve o dosyada listelenen klasörlerde veya dosyalarda bulunanları çıktının dışında bırakır. Çok rahat.

ag my_regex my_file -- skip-vcs-ignores: otomatik sürüm kontrol dosyalarının içeriği (örneğin .gitignore) aramada dikkate alınmaz.

Ayrıca takıma şunu söylemek gerekirse ag hangi dosya yollarını aramanın dışında bırakmak istediğinizde bir dosya oluşturabilirsiniz .agignore.

Bu bölümün başında komuttan bahsetmiştik. ack. Takımlar ack и ag çok benzer, %99 oranında değiştirilebilirler diyebiliriz. Ancak ekip ag daha hızlı çalışır, bu yüzden tanımladım.

Şimdi arşivlerle çalışmaktan bahsedelim.

▍Arşivleme

tar my_source_directory: bir klasördeki dosyaları birleştirir my_source_directory tek bir tarball dosyasına dönüştürün. Bu tür dosyalar, büyük dosya kümelerini birine aktarmak için kullanışlıdır.

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut
katran komutu

Bu komut tarafından oluşturulan tarball dosyaları şu uzantıya sahip dosyalardır: .tar (Kaset Arşivi). Komutun adında ve oluşturduğu dosyaların adlarının uzantılarında "tape" (tape) kelimesinin gizli olması, bu komutun ne kadar süredir var olduğunu göstermektedir.

tar -cf my_file.tar my_source_directory: adında bir tarball dosyası oluşturur my_file.tar klasör içeriğiyle my_source_directory. Bayrak -c "yarat" (yaratma) anlamına gelir ve bayrak -f "dosya" (dosya) olarak.

Dosyaları çıkarmak için .tar-dosya komutunu kullanın tar bayraklı -x (“ekstrakt”, ekstraksiyon) ve -f ("dosya", dosya).

tar -xf my_file.tar: dosyaları ayıklar my_file.tar geçerli çalışma dizinine.

Şimdi nasıl sıkıştırılacağı ve sıkıştırılacağı hakkında konuşalım .tar-Dosyalar.

tar -cfz my_file.tar.gz my_source_directory: burada bayrağı kullanıyoruz -z (“zip”, sıkıştırma algoritması), algoritmanın dosyaları sıkıştırmak için kullanılması gerektiğini belirtir gzip (GNUzip). Dosya sıkıştırma, bu tür dosyaları saklarken disk alanından tasarruf sağlar. Dosyaların örneğin diğer kullanıcılara aktarılması planlanıyorsa, bu, bu tür dosyaların daha hızlı indirilmesine katkıda bulunur.

Dosyayı aç .tar.gz bayrak ekleyebilirsiniz -z içeriği çıkar komutuna .tar-yukarıda tartıştığımız dosyalar. Şuna benziyor:

tar -xfz my_file.tar.gz
Şunu belirtmek gerekir ki ekip tar Daha birçok kullanışlı bayrak var.

Bash takma adları

Bash takma adları (takma adlar veya kısaltmalar olarak da bilinir), normal komutlar yerine kullanımı işi hızlandıran kısaltılmış komut adları veya bunların dizilerini oluşturmak için tasarlanmıştır. Bir takma adınız varsa bu, komutu gizleyen python setup.py sdist bdist_wheel, daha sonra bu komutu çağırmak için bu takma adı kullanmanız yeterlidir.

Böyle bir takma ad oluşturmak için aşağıdaki komutu dosyaya eklemeniz yeterlidir. ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Sisteminizde dosya yoksa ~/.bash_profile, daha sonra komutu kullanarak kendiniz oluşturabilirsiniz. touch. Takma adı oluşturduktan sonra terminali yeniden başlatın, ardından bu takma adı kullanabilirsiniz. Bu durumda, iki karakterin girişi, komutun üç düzineden fazla karakterinin girişinin yerini alır. montaj Python paketleri.

В ~/.bash_profile sık kullanılan komutlar için takma adlar ekleyebilirsiniz.

▍Sonuçlar

Bu yazıda 21 popüler Bash komutunu ele aldık ve komut takma adları oluşturma hakkında konuştuk. Bu konuyla ilgileniyorsanız - burada Bash'e adanmış bir dizi yayın. öyle Bu yayınların pdf versiyonunu bulabilirsiniz. Ayrıca Bash'i öğrenmek istiyorsanız, diğer programlama sistemlerinde olduğu gibi pratik yapmanın önemli olduğunu unutmayın.

Sevgili okuyucular! Bu makalede tartışılanlara yeni başlayanlar için yararlı olan hangi komutları eklersiniz?

Ayrıca blogumuzda bash betikleriyle ilgili bir dizi yayını da okuyun

[yer imlerine eklendi] Yeni başlayanlar için Bash: 21 faydalı komut

Kaynak: habr.com

Yorum ekle