Bul komutu: Linux'ta dosyaları bulmak için kapsamlı seçenekler

Hikayeyi hatırlamayanların aynı şeyi tekrar tekrar tekrar etmek zorunda kaldıklarını söylüyorlar. Ve eğer tarihin nasıl kullanıldığını bilmiyorsanız darbeo zaman sisteminizin gücünü tam olarak kullanamazsınız. Ancak, başlamak için asla çok geç değildir ve bu notu okuyarak, günlük çalışmalarınızda GNU Bash ile çalışmak için bazı yararlı ve gerekli becerileri keşfedeceksiniz.

Kabukta belirli bir süre harcarsanız, büyük olasılıkla, web tarayıcınız ziyaret ettiğiniz web sayfalarının geçmişini hatırladığınız şekilde, gerçekleştirdiğiniz komutların “geçmişini” bildiğini bilirsiniz. Elbette, kabuklardaki komutların tarihi, tarayıcılarda ziyaret edilen sayfaların geçmişinden çok daha erken ortaya çıktı.

Birçok kullanıcı, komut geçmişine erişimin komut kullanılarak alınabileceğini bilir   veya klavye kısayollarını kullanma Ctrl + p   (önceki komut) ve Ctrl + n   (sonraki takım). Bunlar tarihle çok kullanışlı ve sıklıkla kullanılan yöntemlerdendir, fakat onların yardımıyla, Bash'in tarih ile çalışacak tüm özelliklerini kullanmazsınız. Komuta kullanarak bash'ın tarihi ile çalışmak için birkaç numaraya bakalım.   ya da başka şekillerde.

Sayıların kullanımı

Bir komut verirsen , her biri önce bir sıra numarası ile girilen son komutların bir listesini alacaksınız. Kullanarak tarihin herhangi bir komutunu yeniden çalıştırabilirsiniz.

eğer yapman gerekiyorsa n'inci   listenin sonundaki komutu sayarak. Örneğin, sonucun   şuna benziyor:

1 sudo su 2 exit 3 sudo apt-get güncellemesi

1 sudo su

2 çıkış

3 sudo apt - güncellemeyi al

sonra talimat

Bu son komutu ( !! yardımı ile sudo. Kötü değil

Muhtemelen tasarımını biliyorsunuzdur ! komutile başlayacak olan tarihin son takımını kuracak olan komuta. Böylece, çok uzun bir komuta başlattıysanız ve nasıl başladığını hatırladığınızda, tarihin bu şekilde başlatılması sizin için yararlı olabilir. Bu durumda Bash'in bir takım aradığını bilmiyor muydunuz, ama alt dize? Yani, ünlem işaretinden sonra tüm komutu girmeniz gerekmez, sadece ilk karakterler yeterlidir. Gibi bir şey koştuğunu varsayalım:

$ git commit -a -m "Çeşitli ve muhtelif notlar"

komutu tekrarlamak için, ama kavram yerine getirmek için yeterlidir

Son komut parametresini çağır

Bir kombinasyon kullanma "Esc +." (kaçış   Bir nokta ile), geçmişten sonuncuyu arayabilirsiniz kelime, bir argüman olarak komuta geçti. Örneğin, siz koştunuz:

$ cp filename1 dosya adı2

ve iki kelimeyi ortadan çıkarmak zorundaydın? Bu kolay!

$ ls! : *

arama

Başka bir kullanışlı özellik, "Ctrl + r". basın "Ctrl + r"   ve görünen davette, önceden girilmiş bir komutun bir bölümüne girmeye başlayın. Siz karakterleri yazarken, Bash belirttiğiniz karakterleri içeren geçmişte son komutu bulmaya çalışacaktır. Bir kez bulundu, başlayabilirsiniz "Ctrl + r"   Bir kez daha, ve Bash varsa, önceki bir komutu görüntüler. İhtiyacınız olan komutu bulduktan sonra tıklamanız yeterlidir. «Enter»   ve komut satırında görünecektir.

Bir komutu düzenlemeniz gerekiyorsa, başlatmadan önce, imleci düzeltme komutu için doğru yere taşımak için geleneksel "sol ok" ve "sağ ok" kullanın.

emniyet

Komutların tarihi çok yararlı bir şeydir, ancak bazen korunmasının istenmediği durumlar vardır. Örneğin, birçok kullanıcı arasında paylaşılan bir sistem kullanıyorsunuz ve istemiyorsunuz sistem yöneticileri   sistem girdiğiniz komutları vurguladı. Kişisel bir bilgisayar kullansanız bile, her zaman saldırıya uğrayacak bir şans vardır ve tarihte gerçekten önemli verileri saklamak istemezsiniz. Sonunda, bazı takımlarla hikayeyi çöpleştirmemek isteyebilirsiniz, çünkü onları saklamanın hiçbir anlamı yoktur. Örneğin, sıklıkla kullanabilirsiniz lsAncak, geçmişi korumak için, ekibi tutmak açısından sadece uzun ve gerçekten yararlı olmak yerine neden devam etsin?

Tarihteki komutların depolanmasını nasıl yönetebileceğinizi görelim.

İlk yolu belirlemek için Bashrc

Evet, "barış" hakkında. Paylaşılan sistemlerde, bazı kullanıcılar yardımcı programları kullanarak çalıştırdığınız komutları görebilir üst   ve ps. Bu nedenle, çalıştığınız sistemin güvenilirliğinden% 100 emin değilseniz, orada gizli veri içeren herhangi bir komut çalıştırmamalısınız.

Sonuç

Burada tartışılan tekniklerin günlük çalışmalarınızda faydalı olacağını ve gerçekleştirmesi biraz daha zevkli hale getireceğini umuyorum. Ancak, hepsi bu değil. Sisteminizde geçmiş adam sayfasını kontrol ettiğinizden emin olun. Kendiniz için daha faydalı bulacağınızdan eminim!

Şüphesiz, Linux ile çalışırken, bazen bir ihtiyaç var dosyaları ara belirli özelliklere sahip. Bu özellikler dosya boyutu veya türü, erişim hakları ve daha fazlası olabilir.

Linux komutunun varlığı bulmakbaşa çıkmak için çok yardımcı olur dosya araması   çeşitli kriterlere göre.

Bugün analiz edeceğiz linux dosya arama   ve ana komut seçeneklerini verin bulmakişinizde başvurabileceğiniz


Komut formatı bulmak:

bulmakyol-options

nerede yol   - Bu arama yapılacak dizin. Aşağıdaki değerler bir yol olarak belirtilebilir:

.   - Geçerli dizinde arama;

/   - kök dizinden arama;

~   - ev dizininde arama yapın.

Seçeneklere gelince, dikkatlice okumanın zorunlu olduğu çok daha büyük bir liste var (bu gelecekte çok yardımcı olacaktır!). Ve böylece, komut temel seçenekleri bulmak:

-adı   - Verilen şablonu kullanarak isme göre dosyaları aramak;

-kullanicitarafindanolusturulmus   - belirtilen kullanıcıya ait dosyaları aramak;

-grubu   - belirtilen gruba ait dosyaları aramak;

-perm   - belirtilen erişim moduna sahip dosyaları aramak;

tipi   - Belirli bir türdeki dosyaları arayın. Yeterli çeşitler de var:

  • b - özel blok dosyası;
  • d - dizin;
  • c - özel karakter dosyası;
  • f düzenli bir dosyadır;
  • l - sembolik bağ;
  • p adı verilen boru;
  • s - soket.
-size n   - n birimleri büyüklüğünde dosyaları aramak;

-mtime -n + n   - İçeriği (-) veya (+) günlerden daha az değiştirilen dosyaları arayın.

Biraz düşünün komut kullanım örnekleri bulmak :

En yaygın kullanılan seçenek -adıdosyaları ada göre arar.

-Name seçeneği ile örnekler :

$ / mnt / usb -name "* .mp3" -print'i bulun

/ mnt / usb dizinine monte edilen USB cihazındaki .mp3 uzantılı tüm dosyaları (* ile gösterilir) arayacaktır.

$ ~ -name "testini bul" * -print

testten başlayarak ev dizini dosyalarının bir listesini gösterir.

Belirli harflerle başlayan dosyaları bulmanız gerekiyorsa (örneğin, a'dan j'ye), işte son derece uygun olan düzenli ifadeleri kullanmak uygun olacaktır:

$ / -name "*" bölümünü bulun

Yukarıdaki komut, sistemdeki tüm dosyaları a'dan j'ye olan harflerle başlayarak bulmanızı sağlayacaktır.

Belirli erişim modlarına sahip dosyaları arayın

Belirli erişim modlarına sahip dosyaları bulmanız gerekirse, seçenek size yardımcı olacaktır. -permki bu kolay bir yardımcıdır.

Örneğin, 775 erişim moduna sahip dosyaları arayacağız (sahip ve grup var tam haklar   ve geçerli dizinde kısıtlama girişleri kısıtlaması olan kullanıcılar:

$ bulabilirsiniz. - 775

Kullanarak arayarak bulmak -perm seçeneğiyle başka bir yöntem kullanabilirsiniz - mod değerinden önce bir tire işareti koyabilirsiniz ve ardından tüm belirtilen izin bitlerinin ayarlandığı dosyaları arayacaktır. Ayrıca, bu durumda kalan bit göz ardı edilir.

Örneğin, grubun kullanıcılarının tam erişime sahip olduğu dosyaları bulun:

$ bulabilirsiniz. -perm -070 -print

Tire yerine bir artı işareti belirtebilirsiniz. Bu durumda, belirtilen izin bitlerinden en az birine sahip dosyalar aranacaktır. Kalan bit yok sayılır.

Belirli bir kullanıcı veya grubun dosyalarını arayın

Belirli bir kullanıcının dosyalarını bulmak, uygulamasında son derece basittir. Bunu yapmak için sadece komutu çalıştırın:

$ / -user admin -print'i bulun

Yukarıdaki komut üretecek arama dosyaları   kullanıcı yöneticisi tarafından sahip olunan sistemde.

Belirli bir gruba ait olan dosyaları (örneğin, yöneticiler) bulmak için şu komutu çalıştırın:

$ bulmak / -group yöneticileri -print

Varolan olmayan kullanıcıların veya grupların dosyalarını aramak için seçenekleri kullanabilirsiniz. -nouser   ve -nogroup:

$ / -uzucu -baskı bul

$ / -nogroup -print'i bulun

Belirli bir türdeki dosyaları ara

Ekibin kullanışlı özelliklerinden biri bulmak, belirli bir türdeki dosyaları aramak için yeteneğidir. Seçeneği kullanma seçeneklerini düşünün tipi:

/ Etc dizinindeki sembolik bağlantıları bulun:

$ / etc -type l -print'i bulun

/ Mnt / raid dizininde bulunan dizinlerin listesini görüntüle

$ bul / mnt / raid-tipi d-print

Belirli bir boyuttaki dosyaları ara

seçenek ölçüsünde   belirli bir boyuttaki dosyaları aramanıza ve yürütüldüğünde aşağıdaki görünüme sahip olmanıza olanak tanır:

$ bulabilirsiniz. -size 2000k -print

Yukarıdaki komut ekranda geçerli dizinde 2 megabaytlık dosyaları bulur ve görüntüler. Örneğin, 500 kilobayttan daha küçük dosyaları bulmanız gerekiyorsa, komut tipi aşağıdaki gibi olacaktır:

$ bulabilirsiniz. -size -500k -print

600 megabayttan büyük dosyaları bulmanız gerekiyorsa, komutu uygulayın:

$ / -size + 600M -print'i bulun

-Mtime seçeneğini kullanarak dosyaları arayın

seçenek -mtime   Belirli bir süre içinde değişmiş dosyaları bulmanızı sağlayacaktır.

Örneğin, / mnt / raid / upload dizininde bulunan ve son 5 günde değiştirilen dosyaları aramakla karşı karşıya kaldık. Takım bu konuda bize yardımcı olacaktır:

$ bul / mnt / raid / upload -mtime -5-print

Örneğin, bir hafta boyunca değişmemiş dosyaları bulmak için, geriye doğru ihtiyacımız varsa, şu komutu uygularız:

$ bul / mnt / raid / upload -7 -print

takım bulmak   için son derece uygun bir araçtır dosyaları ara ve ayrıca için kullanılabilir dosyaları ara   NFS sürücülerinde (ağda) dosya sistemleri), ancak bu durumda NFS'de bir şey aramak için zamanın yerel disklerden daha fazla zaman alacağını hesaba katmak gerekir.

Bu yazıda, işinizde size yardımcı olacak bulma komutu için sadece temel seçenekleri ele aldık. Uygun olanı kullanın ve önemsiz şeyler hakkında endişelenmeyin!

Bir sunucu ortamında, komut satırı ile çalışmak çok zaman alır. Bash kabuğu sıklıkla kullanılır. komut kabuğu   çoğu dağıtımın varsayılanıdır.

Muhtemelen, terminal oturumu sırasında, ortak komutlar sık ​​sık tekrarlanacak ve bu komutların varyasyonları daha da sık olacaktır. Tabii ki, önce her komutu elle yazmanız çok yararlıdır, çünkü bu uygulama için ekstra bir fırsattır, ancak bir noktada sıkılmaya ve can sıkıcı olmaya başlar.

Neyse ki, bash kabuğunun oldukça iyi gelişmiş tarihi işlevleri vardır. Bash'da üretken olarak kullanma ve yönetme yeteneği, komutları girmek için daha az zaman harcayacağınızı ve böylelikle yapılan iş miktarını artırmanızı sağlar. Bilindiği gibi, geliştiriciler arasında, KURU (Kendinizi Tekrar Etmeyin) prensibi denen şey popülerdir. Tarihin bash'da etkin kullanımı bu prensibe göre bilgi ile çalışılmasına yardımcı olur.

Bu kılavuz, Ubuntu 12.04 ile VPS'deki tüm fonksiyonları göstermektedir, ancak hemen hemen tüm modern linux dağıtımları   benzer şekilde çalışacak.

Bash'daki tarih ayarları

Geçmişi kullanmadan önce, daha kullanışlı hale getirmek için bazı bash ayarlarını düzenlemeniz gerekir.

Bash, geçmişte kaydedilmesi gereken önceki komutların sayısını düzenlemenizi sağlar. Bunu yapmak için, bash'ın iki ayrı seçeneği vardır: “HISTFILESIZE” parametresi, geçmiş dosyasında saklanan komutların sayısını ayarlar ve “HISTSIZE”, geçerli oturum için bellekte saklanan komutların sayısını gösterir.

Bu, bellekte, geçerli oturumun geçmişinin büyüklüğüne ilişkin makul sınırlar belirleyebileceğiniz ve daha sonra kullanmak üzere daha büyük bir geçmişi diske kaydedebileceğiniz anlamına gelir.

Varsayılan olarak, bash bu parametreler için çok makul değerler ayarlar, bu nedenle daha eksiksiz bir geçmiş kullanabilmek için genişletilmeleri gerekir. Bazı dağıtımlar varsayılan geçmiş ayarlarını zaten artırdı.

Bu seçenekleri değiştirmek için editörü kullanarak "~ / .bashrc" dosyasını açın:

"HISTSIZE" ve "HISTFILESIZE" seçeneklerini bulun. Değerler onlar için ayarlanmışsa, bunları değiştirin. Bu dosyada böyle bir parametre yoksa, bunları girin. Bu kılavuz bir disk için 10.000 satır ve bellekte depolanan 5000 satırları yönetebilir. Bunlar çoğu sistem için oldukça mütevazı değerlerdir, ancak performansı etkilediklerinde bile indirilmeleri gerekir:

HISTSIZE = 5000
  HISTFILESIZE = 10.000

Varsayılan olarak, bash, her bir oturumun sonunda bir tarih yazarak varolan bir dosyayı üzerine yazar ve günceller. Bu, birkaç bash oturumunda çalışırken, yalnızca son tamamlanan oturumun geçmişinin kaydedileceği anlamına gelir.

Bu oldukça bunu üzerine yazmak yerine, bir öykü katacak «histappend», ayarlayarak atlatılabilir. Zaten kurulmuş olabilir; aksi halde, aşağıdaki satırı ekleyerek etkinleştirilebilir:

shopt -s histappend

oturumu beklemeden hemen tarihinin herhangi bir komut var (terminalin komutasını diğer yandan hemen kullanılabilir edildi) bash için, ayarlamak veya her yeni önce çalıştırılan komutları içerir «PROMPT_COMMAND» seçeneği için komut «tarihin -a» ekleyebilir komut satırı

Ancak böyle bir takımın düzgün çalışması için bir numara gereklidir. hemen «tarihin -a» eklemek gerekir dosyanın Tarihte, daha sonra düzenlenen dosya geçmişini okuyup «tarihin -r» yardımıyla bu oturumun tarihinin geri dönmek, sonra «tarihin -c» yardımıyla bu oturumun geçerli geçmişini temizlemek.

Şuna benziyor:

İhracat PROMPT_COMMAND = "tarih -a; tarih -c; tarih -r; $ PROMPT_COMMAND"

Bu işlemi tamamladıktan sonra değişiklikleri kaydedin ve dosyayı kapatın.

Değişiklikleri etkinleştirmek için oturumu kapatın ve tekrar giriş yapın ya da kaynak komutunu kullanın. bu dosyayazarak:

kaynak ~ / .bashrc

Önceki geçmişi görüntüledarbe

Bash'deki tarihi görüntülemek için "history" komutunu kullanın. Bir dizeye komutla önceki komutları verir. Çoğu durumda, "HISTSIZE" değeri tarafından belirlenen satırların sayısını çıkarmalıdır. Şu anda pek çok takım yok:

tarih
. . .
  43 adam bash
  44 erkek fc
  45 adam bash
  46 fc -l -10
  47 geçmiş
  48 ls
  49 vim .bash_history
  50 geçmiş
  51 adam geçmişi
  52 tarih 10
  53 geçmiş

Ayrıca komutun sıra numarasını görüntüler. Her takımın kullanım kolaylığı için bir numarası ile ilişkilidir.

Çıkış, “geçmiş” ten sonra komutların sayısı belirtilerek azaltılabilir. Örneğin, sadece girilen son 5 komutu görüntülemek isterseniz, şunu yazabiliriz:

tarih 5
  50 geçmiş
  51 adam geçmişi
  52 tarih 10
  53 geçmiş
  54 tarih 5

Belirli bir dizeyi içeren bir geçmişteki tüm komutları bulmak için, dikey çubuk sembolünden sonra grep'i kullanabilirsiniz. Örneğin, “cd” içeren dizeleri bulmak için şunu yazın:

tarih | grep cd
  33 cd Fotoğraflar /
  37 cd ..
  39 cd Masaüstü /
  61 cd / usr / bin /
  68 cd
  83 cd / etc /
  86 cd kararlılık /
  90 cd resolv.conf.d /

Bash'ta tarihin komutlarını çalıştırma

Komutların nasıl çıkarılacağını öğrenmek elbette yararlıdır, ancak komutların sıra sayısını kullanmanın dışında, bu neredeyse hiçbir şey vermez. Herhangi bir önceki komutu çağırmak için özel bir sözdizimi kullanmanız gerekir.

Numaralarını girerek ve önüne yerleştirerek önceki komutlardan herhangi birini arayabilirsiniz. ünlem işareti   "!". Yukarıdaki geçmiş örneğine dayanarak, işletme kılavuzu sayfasını kolayca yazarak hızlı bir şekilde getirebilirsiniz:

Bu, hemen 51 numaralı tarihteki komutu tetikler ve yürütür.

Geçerli konuma göre de komutları çalıştırabilirsiniz. Bu, “! -N” sözdizimi kullanılarak yapılır; burada “n”, yürütülecek komutun numarasıyla değiştirilmelidir.

Örneğin, sondan büyük çevrilen çevirme komutunu görüntülemek ve yürütmek istiyorsanız, "! -2" yazabilirsiniz. Dolayısıyla, dizine giden uzun yolun içeriği görüntülendiyse ve ardından echo komutu girildiyse ve şimdi yolu yeniden çıkarmanız gerekiyorsa, oturum şu şekilde görünebilir:

ls / usr / share / doc / manpages
  echo merhaba
  ! -2 # tekrar içeriği listeler

Son komutu yeniden çalıştırmak için, bash içinde “! -1” yerine, “!!” sıcak komutunu kullanabilirsiniz.

Birçok kişi, sudo ayrıcalıkları gerektiren bir komut yazmışlarsa bunu kullanırlar. “Sudo !!” yazarken, komut sudo ayrıcalıklarıyla gereğinden fazla doldurulacaktır. Bu oturum şöyle görünür:

dokunmatik / etc / merhaba
  dokunma: '/ etc / hello' değerine dokunma:: İzin reddedildi
  sudo !!
  sudo touch / etc / merhaba
   demouser için şifre:

Bu örnek, bu kullanışlı sözdiziminin bir başka özelliğini göstermektedir. Aslında bu basit bir değişimdir, çünkü gerekirse diğer komutlara eklenebilir.

Bash'teki hikayeyi kaydırmak

Bash'teki geçmişe doğru ilerleyebilir, düzenleme için komut satırındaki her bir sonraki komutu birkaç şekilde görüntüleyebilirsiniz.

En yaygın yol, komut satırındaki yukarı ok tuşuna basmaktır.

Bu tuşa yapılan her ek basış, komut satırı geçmişinde bir adım geri dönecektir. Yönü değiştirmek için, öyküyü son komut satırına kadar aşağı kaydıran aşağı ok tuşunu kullanın.

hikayeleri geri kaydırmak için «CTRL p» ve «CTRL-n» ileri kaydırmak için: Yerine ok tuşları, klavye kısayollarını kullanabilirsiniz.

Mevcut komut satırına dönmek için "Meta-\u003e" seçeneğini kullanabilirsiniz. Çoğu durumda, "meta" ve "\u003e" sembolü "ALT-Shift-." Kombinasyonunu değiştirir. Bu mevcut durumda çok yararlıdır komut satırı   yeterince uzakta.

Hikayenin ilk satırına geçmek için, ters manevrayı kullanın, “Meta-<». Обычно это сочетание замещает «ALT-Shift-,».

Özet olarak, tarihin en önemli gezinme anahtarlarının listesi aşağıdadır:

  • Yukarı Ok Tuşu: Hikayeyi geri kaydır;
  • CTRLp: Geçmişi geri kaydır;
  • Aşağı Ok Tuşu: Hikayeyi ileri kaydır;
  • CTRLn: öyküyü ilerletmek;
  • ALTvardiya-. : öykünün sonuna (son girilen komuta kadar) geçmek;
  • ALTvardiya-, : öykünün başlangıcına (girilen ilk komutla) geçin.

İçinde arama geçmişidarbe

Kombinasyonun kullanımı olmasına rağmen "tarih | grep ”bazı prosedürleri gerçekleştirmenin en kolay yoludur, birçok durumda çalışması mükemmel değildir.
  Bash bir geçmiş arama fonksiyonuna sahiptir. Örneğin, ters yönde tarih araması genellikle “Ctrl-r” tuş bileşimini kullanarak (önce en güncel “sonuçlar” görüntülenir) kullanılır.

Örneğin, "Ctrl-r" girip önceki komutun bir bölümünü yazabilirsiniz. Takımın sadece bir kısmını işe almak gerekiyor. Girilen değer gereksiz bir komutla çakıştıysa, aşağıdaki sonucu görüntülemek için tekrar "Ctrl-r" ye basabilirsiniz.

İstenen komutun yanlışlıkla atlanması durumunda, “CTRL-s” kombinasyonunu kullanarak arama yönünü değiştirebilirsiniz. Bu, ileriye doğru arama için önceki bölümde anlatılan tarihte gezinirken de yararlıdır.

düşünce: Birçok terminalde, "CTRL-s" kombinasyonu terminal oturumunu engeller. Yani, arama için kullanmaya çalışırsanız, terminali “donduracak”. Bir oturumun kilidini açmak için "Ctrl-q" yazmanız yeterlidir.

Çoğu modern terminalde oturumun askıya alınması ve yeniden başlatılmasına ilişkin bu işlevlere gerek yoktur çünkü yazarak devre dışı bırakılabilirler:

Şimdi, komutun sürekli çalışmasını sağlamak için bunu "~ / .bashrc" dosyasına eklemeniz gerekir.

Şimdi bu arama birleşimi doğru şekilde çalışacaktır.

Girilen komutun bir parçası ile ara

Aramanın ortak bir yolu, bir komutun bir bölümüne girmek, daha önce idam edilmiş olup olmadığını öğrenmek ve daha sonra tarihte bulmaktır.

Komut satırında girilmiş olan verileri kullanarak nasıl doğru bir şekilde arama yapılır? «CTRL a» kullanılarak üst satıra İmleci, o zaman, bir geriye doğru arama hikayeleri «CTRL-r» diyoruz kullanarak arama geçerli satırı eklemek tekrar «CTRL-y» ve «CTRL r» kullanmak arama ters.

Örneğin, paket önbelleğini Ubuntu'da güncellemeniz gerekir. Bu komut zaten yürütüldü, ancak durumun bu olup olmadığını kontrol etmek için sudo yazabilirsiniz:

Bu aşamada, bu komutun son zamanlarda kesinlikle uygulandığı açıktır. Şimdi tıkla:

Bu, imleci satırın başına hareket ettirir.

Bu, ters sıralı geçmiş aramalarına neden olur. Bu eylemin bir yan etkisi vardır - geçerli imleç konumundan sonraki komut satırının tüm içeriğini kopyalar ve panoya ekler.

Bu, sadece komut satırından kopyaladığınız komutun kısımlarını aramaya ekler.

Şimdi, belirtilen parçayı içeren komutları bulmak için ters geçmiş aramayı tekrar çalıştırmanız gerekiyor.

İlk başta, bu prosedür oldukça kafa karıştırıcı gibi gözüküyor, ama buna alışman gerekiyor. Karmaşık komutların yarısının girildiği anlarda çok yararlıdır ve şimdi işin tamamlanması için tarihe ihtiyaç duyulmaktadır.

Ayrıca, tüm bu eylemler bir araya getirilebilir:

Bash'ta tarihin ileri kullanımı

Tarihin kullanımında temel teknikleri inceleyen, bash. Bunlar arasında:

  • !! : son komutu görüntüler;
  • ! n: "n" seri numarası ile komuta gidin;
  • !- n: son komutu çalıştırmadan önce “n” olan komuta gidin.

Etkinlik Tanımlayıcıları

Yukarıdaki üç kombinasyon denir olayın belirleyicileri. Aslında, bu belirli takımları kullanarak geçmişten önceki takımları arama yolu.

Örneğin, son "ssh" komutunu çalıştırmak için şunları kullanabilirsiniz:

Bu işlem, "ssh" ile başlayan satırları arar. Bir komutun başında olmayan bir diziyi bulmak için, diziden önce ve sonra “?” Karakterini girebilirsiniz. Örneğin, son “apt-cache search” komutunu tekrarlamak için şunu yazmanız gerekir:

Son komutun (“!!”) çıktısının çeşitlemelerini de kullanabilirsiniz. Hızlı arama yapın ve yazarak değiştirin:

^ original ^ değiştirme ^

Bu "orijinal" değerine sahip bir eşleşme arar ( "!!" gibi) son komutu neden olabilir ve "yerine" nin değeri ile değiştirir olacaktır. Daha sonra komut yürütülür.

Yazım hatalarını düzeltmeniz gerekiyorsa, kullanımı çok uygundur. Örneğin:

kedi / etc / hosst
  cat: / etc / hosst: Böyle bir dosya veya dizin yok
  ^ hosst ^ hosts ^

Kelime tanımlayıcıları

Etkinlik tanımlayıcılarından sonra, bir iki nokta karakteri (:) ekleyebilir ve ardından ekleyebilirsiniz. kelime niteleyicieşleşen takımın bir bölümünü seçmek için.

Bu, komutu “kelimeler” e böler - boşluklarla ayrılmış alanlar. Bu, komut parametreleriyle etkileşim için yeni olasılıklar açar.

Komutun kendisi sıfır numaralıdır, ilk argüman 1'dir, vb.

Örneğin, bir dizinin içeriğini görüntüleyebilir ve sonra bu şekilde değiştirebilirsiniz:

ls / usr / share / doc / manpages
  cd: 1

Bu işlem başlatılan son komutla gerçekleştirilirse, bu kombinasyon ikinci “!” Ve kolonun kaldırılmasıyla sıkıştırılabilir:

Bu aynı şekilde çalışacaktır.

İlk argüman “^” sembolü ile referanslanabilir ve son argüman “$” olarak adlandırılabilir. Bu karakterler, seri numaraları ile değil, aralıklarla çalışırken çok daha kullanışlıdır. Örneğin, tüm bağımsız değişkenleri önceki komuttan yeni bir yöntemle üç şekilde alabilirsiniz:

!!:1*
!!:1-$
!!:*

Asterisk “*”, orijinal komut haricinde herhangi bir verinin çıktısını göstermek için kullanılır. Benzer şekilde, belirtilen kelimeden sonra her şeyin de dahil edilmesi gerektiğini belirtmek için, kelime numarasını ve ardından * ile kullanabilirsiniz.

düzenleyiciler

Çağrılan tarih satırının davranışına eklenebilecek en son şey, metnin kendisini kontrol etmek için çağrının davranışındaki değişikliktir. Değiştiriciler, satırın sonundaki ek “:” sembolünden sonra eklenir.

Örneğin, "h" değiştiricisiyle ("kafa" anlamına gelir) bir dosyaya giden yolu kısaltabilirsiniz; bu, son eğik çizgi (/) karakterine giden yolu kaldırır. Unutmayın: Bir eğik çizgi ile biten bir dizinin yolunu kısaltmanız gerekirse, düzgün çalışmayacaktır.

Bu, genellikle bir dosya değiştirildiğinde ve ilişkili dosyalarında işlemleri gerçekleştirmek için dizine gitmek gerektiğinde kullanılır.

cat / usr / share / doc / manpages / copyright

Bundan sonra dizine gitmeniz gerekiyor. Bu, parametre dizgesindeki "cd" komutuyla, dosya adının sonunda "kesilmesi" ile yapılabilir.

cd !!: $: h
  pwd
  / usr / share / doc / manpages

Ayrıca, ters yordamı gerçekleştirebilir, yolu kısaltabilir ve "t" değiştiricisini ("kuyruk" anlamına gelir) kullanarak yalnızca dosya adını kullanabilirsiniz. Örneğin, sadece dosya adını bırakmak için “t” işaretini kullanarak son “kedi” komutunu arayabilirsiniz.

Ayrıca tam yolu bırakabilirsiniz, ve takım düzgün bir şekilde çalışacaktır. Ama bazen değil. Örneğin, geçerli dizinin birkaç alt dizininde yer alan bir dosyayla çalıştığınızda göreceli bir yol kullanırsanız ve alt dizini "h" değiştiricisiyle değiştirirseniz, bu dosyanın göreli yolu artık kullanılmayacaktır.

Bir başka çok kullanışlı modifiye edici "r", ".xxx" formunun kuyruk eki çıkarılır. Bu, bir dosyayı açmak ve bir dizine geçmek için “tar” komutunu kullanırken kullanışlıdır. Dizin adının dosya adıyla aynı olduğunu varsayarak, aşağıdaki gibi bir şey gerçekleştirebilirsiniz:

tar xzvf uzun proje adı.tgz
  cd !!: $: r

Tarball tgz yerine tar.gz uzantısını kullanırsa, değiştiriciyi iki kez girmeniz yeterlidir:

tar xzvf uzun proje-adı.tar.gz
  cd !!: $: r: r

Benzer bir değiştirici, "e", kuyruk uzantısı hariç her şeyi kaldırır.

Çağrılacak komut sadece bulunacak ve yürütülmeyecekse, “p” değiştirici bash için komutun tekrar gösterilmesi için kullanılabilir.

Hikayenin seçilen kısmının doğru olduğundan emin olmak istiyorsanız bu yararlıdır. Ayrıca, daha fazla düzenleme yapılması gerektiğinde bu değiştirici, seçilen komutu tarihe koyar.

Örneğin, “bul” komutu daha önce ana dizinde çalıştırıldı ve şimdi bu dizinden (/) çalıştırılması gerekiyor. İkamenin aşağıdaki gibi doğru bir şekilde yapılıp yapılmadığını kontrol etmek mümkündür (bu komutun No. 119 olması koşuluyla):

~ -name "file1" # orijinal komutunu bulun
  ! 119: 0: p /! 119: 2 *: p
  / -name "dosya1" bulun

Komut doğru görüntülendiyse, aşağıdakileri kullanarak çalıştırılabilir:

Komutlarda ikame işlemini gerçekleştirmek için daha kolay bir yol vardır: sözdizimini s / original / new / kullanabilirsiniz.

Örneğin, yukarıda açıklanan eylem aşağıdaki gibi gerçekleştirilebilir:

Bu, arama modelinin ilk örneğini değiştirir. Her maçta bir ikame gerçekleştirmek için “g” ve “s” değiştiricilerini kullanın. Örneğin, "file1", "file2" ve "file3" ve dizinler "dir1", "dir2", "dir3" adlı dosyaları oluşturmak için şunları kullanmanız gerekir:

dosya1 dosya2 dosya3
  mkdir !!: *: gs / dosya / dir /

sonuçlar

Bu kılavuz, geçmiş kullanma temellerini öğrenmenize yardımcı olur. Tabii ki, açıklanan bazı fonksiyonlar nadir durumlarda yararlı olacaktır, ancak onları bilmek ve bunları nasıl kullanacağınızı bilmek de gereklidir.

Genel olarak, tarihin tüm tarif edilen kullanımları işi önemli ölçüde hızlandırabilir.

   Etiketler :,

Linux'un dosyaları bulmak için çok güçlü ve kullanışlı bir komutu var - bul komutu. Dosya bulmak için birçok seçeneğe sahiptir, ancak bazen yeni başlayanlar için sözdizimi nedeniyle birçok yönden zor olmaktadır.

Bulmanın kullanımı için basit bir örnek

Başlamak için, config adında bir bilgisayardaki dosyaları bulmak için find komutunu kullanmanın basit bir örneğini düşünün. Kök dizinden başlayarak yapılandırma dosyalarını arayacağız /. Bunu yapmak için, yeterli erişim haklarına sahip olmak için komutu root kullanıcısı olarak çalıştırmanız gerekir, aksi halde “İzin reddedildi” mesajları alırsınız. Yani, komutu çalıştırın:

/ -Name config -print'i bulun

Komut, aşağıdakileri ifade eder: / config (find komutunun ilk parametresi) 'den başlayarak, ad yapılandırmasına (-name config) sahip dosyaları arayın ve ekranda dosya adlarını (-print argümanı) görüntüleyin. Aramanın özyinelemeli olduğunu, yani arama yaparken tüm alt dizinlerin görüntülendiğini görüyorum. Gördüğünüz gibi her şey basit. Şimdi komutun sözdizimini düşünün ve ana argümanlarının gözden geçirilmesine geçin.

Bulmak için sözdizimi

Referans kılavuzunda bulabileceğiniz bulma komutunun genel sözdizimi açık görünmeyebilir, bu yüzden daha okunabilir bir özellik sunacağız:

[Yolunu] bulun [seçenekler] [arama kriterleri] [dosya eylemleri]

Yol

Hem mutlak hem de göreli yollar, ayrıca bir boşlukla ayrılmış yolların bir listesi, bir arama yolu olarak kullanılabilir.

seçenekleri

Bul komutu için seçenekler, bir “-” karakteri ile başlayan ve ardından seçeneğin adı ile belirtilir. Temel seçenekleri düşünelim.

Arama kriterleri

Bul komutu birkaç arama kriterine sahip olabilir (aynı zamanda test denir). Her bir ölçüt, doğru veya yanlış döndüren belirli bir test koşuludür. Bu, programlamada bir if ifadesinin koşulları ile karşılaştırılabilir. Bir sonraki dosyayı işleme sürecinde, bulma komutu her bir kriteri sırayla kontrol eder ve bir sonraki ölçüt yanlış döndürürse, bulma komutu sonraki dosyaya gider. Bul komutu oldukça az kritere sahip, sadece bir kısmını ele alacağız.

-gün NSon dosyaya N gün önce erişildi.
-saat NSon dosya değişikliği N gün önce yapıldı.
-name şablonuBir yol belirtmeden dosya adı (desen adı). Şablonu her zaman tırnak içine almanız önerilir.
-yeni other_fileDosya, başka bir dosyadan daha sonra değiştirildi.
-size [±] NDosya boyutu N bloktur, eğer + N belirtilirse, dosya boyutu N'den büyüktür, -N daha küçüktür. N'den sonraki sembol blok büyüklüğünü gösterir. b - 512 bayt, s - bayt, w - 2 bayt, k - kilobayt, M - megabayt, G - gigabayt.
-type CC tipi bir dosya C için en yaygın kullanılan değerler şunlardır: d dizin, f dosyadır.
-user kullanıcı adıDosya, kullanıcı adı adlı bir kullanıcıya ait.

Kriterleri kullanarak bulma komutunu kullanma örnekleri

  bulabilirsiniz. -type f -name "~ *" -print

Geçerli dizinde "~" karakteriyle başlayan sıradan dosyalarda (dizinler değil) bulun.

Bulun. -yeni dosya.bak-türü f-izi

Geçerli dizindeki dosyaları, daha sonra file.bak dosyasından değiştirilmiş olarak bulun.

operatörler

Kriterler operatörler kullanılarak birleştirilebilir. Aşağıdakiler, öncelik sırasına göre azalan operatörlerdir.

Genel olarak, operatörler kullanıldığında, kriterler öncelik sırasına göre kontrol edilir. Siparişi parantez kullanarak değiştirebilirsiniz. Köşeli parantezler kullanılarak parantez seçilmelidir.

Operatörleri kullanarak bulma komutunu kullanma örnekleri

  bulabilirsiniz. \\ (- name "~ *" -or -name "temp *" \\) -type f -print

“~” Veya c “temp” simgesiyle başlayan ve sadece normal dosyalar olan (-type f) ve dizin olmayan geçerli dizin dosyalarında bulabilirsiniz.

Bulun. -maxdepth 1 \\ (\\ (- size + 600M-ve -size -1G \\) -or -name "* .mpeg" \\) -ve -type f

Geçerli dizinde (alt dizinleri işlemeden - -maxdeph 1), normal dosyalar (-file f) 600 megabayttan daha büyük ve 1 gigabayttan (-boyut) daha küçük veya isimleri ".mpeg" (-name) ile biten dosyalar.

Dosyalardaki işlemler

Bul komutu çalıştırıldığında, bulunan dosyalar üzerinde çeşitli eylemler gerçekleştirebilirsiniz. En önemli olanları düşünelim.

Yürütülebilir komutlarda, geçerli dosyaya giden yolla değiştirilen () parametresini argüman olarak kullanabilirsiniz.

Eylemleri kullanarak bulma komutunu kullanma örnekleri

  bulabilirsiniz. -size + 1000c -type f -ls

Geçerli dizinde 1000 bayttan büyük düzenli dosyaları bulun ve bunlara ls -dils komutunu (ls eylemi) çalıştırın.

Bulun. -name "~ *" -type f -ok rm () \\;

Geçerli dizinde, tilde "~" ile başlayan ve her dosya için, silinmesini (rm komutunun yürütülmesi için) isteyin.

Sonuç

Bu notta, dosyaları bir çok kritere ve desene göre bulmak için neredeyse sınırsız olanak sağlayan çok önemli ve kullanışlı bir Linux bulma komutuna baktık. Ve komutların kullanımıyla (eylemler), dosyaları arayabilir ve üzerinde herhangi bir işlem gerçekleştirebilirsiniz.

Teması devam ediyor:
android

Hangi akıllı telefon modelinin en popüler ve yüksek kalitede olduğunu söylemek zor. Birisi Android işletim sisteminde çalışan telefonları ve birileri kullanmayı seviyor.