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.
-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;
- CTRL— p: Geçmişi geri kaydır;
- Aşağı Ok Tuşu: Hikayeyi ileri kaydır;
- CTRL— n: öyküyü ilerletmek;
- ALT— vardiya-. : öykünün sonuna (son girilen komuta kadar) geçmek;
- ALT— vardiya-, : ö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 N | Son dosyaya N gün önce erişildi. |
-saat N | Son dosya değişikliği N gün önce yapıldı. |
-name şablonu | Bir yol belirtmeden dosya adı (desen adı). Şablonu her zaman tırnak içine almanız önerilir. |
-yeni other_file | Dosya, başka bir dosyadan daha sonra değiştirildi. |
-size [±] N | Dosya 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 C | C 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 "~ *" -printGeç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 -lsGeç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.