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.
→
Ş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.
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 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önlendirmestdin
.>
: yönlendirmestdout
.|
: 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 ../
.
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 mv
dosyaları 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
: bir dosyanın kopyasını oluşturun
cp my_source_file target_directorymy_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.
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
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
Ş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. stdin
bu 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.
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.
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.
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.
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.
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.
В ~/.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 -
Sevgili okuyucular! Bu makalede tartışılanlara yeni başlayanlar için yararlı olan hangi komutları eklersiniz?
→
Kaynak: habr.com