spot_img
Friday, April 19, 2024
spot_img
HomeTechBilgi TeknolojisiLinux'ta geçmiş Komutunu Kullanma

Linux'ta geçmiş Komutunu Kullanma

-

Linux dizüstü bilgisayarda terminal istemi.
Fatmawati Achmad Zaenuri / Shutterstock

Linux’un kabuğu, çalıştırdığınız komutların geçmişini kaydeder ve geçmişte çalıştırdığınız komutları tekrarlamak için arama yapabilirsiniz. Linux geçmişi komutunu ve nasıl kullanılacağını anladıktan sonra, verimliliğinizi önemli ölçüde artırabilir.

Geçmişi Değiştirme

George Santayana'nın ünlü söylediği gibi, “Geçmişi hatırlayamayanlar onu tekrarlamaya mahkumdur.” Ne yazık ki, Linux'ta geçmişi hatırlayamıyorsanız, isteseniz bile tekrarlayamazsınız.

İşte o zaman Linux history komut kullanışlı olur. Önceki komutlarınızı gözden geçirmenizi ve tekrarlamanızı sağlar. Bu sadece tembellikleri teşvik etmek veya zamandan tasarruf etmek için tasarlanmamıştır – oyunda bir verimlilik (ve doğruluk) faktörü de vardır. Bir komut ne kadar uzun ve karmaşıksa, bir hata yapmadan hatırlanması ve yazılması o kadar zor olur. İki tür hata vardır: biri komutun çalışmasını engelleyen ve diğeri komutun çalışmasına izin veren, ancak beklenmedik bir şey yapmasını sağlayan.

history komutu bu sorunları ortadan kaldırır. Çoğu Linux komutu gibi, düşündüğünüzden daha fazlası vardır. Ancak, history komutuyla, Linux komut satırı kullanımınızı her gün artırabilir. Bu sizin zamanınıza iyi bir yatırım. Kullanmanın çok daha iyi yolları var history Yukarı okuna art arda vurmaktan daha çok.

Tarihçe Komutanlığı

En basit haliyle, history sadece adını yazarak komut verin:

history

Bir terminal penceresindeki "geçmiş" komutu.

Daha önce kullanılan komutların listesi terminal penceresine yazılır.

Bir terminal penceresindeki "history" komutundan çıktıya bir örnek.

Komutlar, listenin sonunda en son kullanılanlar (en yüksek rakamlara sahip olanlar) olacak şekilde numaralandırılır.

Belirli sayıda komutu görmek için, history komut satırında. Örneğin, en son kullandığınız 10 komutu görmek için aşağıdakileri yazın:

history 10

Bir terminal penceresindeki "history 10" komutu.

Aynı sonucu elde ederseniz, history içinden tail Komut. Bunu yapmak için aşağıdakileri yazın:

history | tail -n 10

Bir terminal penceresindeki "history | tail -n 10" komutu.

İLİŞKİLİ: Linux'ta Borular Nasıl Kullanılır

Yinelenen Komutlar

Geçmiş listesinden bir komutu yeniden kullanmak istiyorsanız, bir ünlem işareti (!) Ve arada boşluk olmayan komutun numarasını yazın.

Örneğin, 37 numaralı komut satırını yinelemek için şu komutu yazabilirsiniz:

!37

Terminal penceresinde "! 37" komutu.

Son komutu tekrarlamak için, boşluk olmadan tekrar iki ünlem işareti yazın:

!!

Bir "!!" komutu.

Bu, bir komut verdiğinizde ve kullanmayı unuttuğunuzda yararlı olabilir sudo . tip sudo, bir boşluk, çift ünlem işareti ve Enter tuşuna basın.

Aşağıdaki örnekte, gerektiren bir komut yazdık sudo. Tüm satırı yeniden yazmak yerine, bir grup tuş vuruşunu kaydedebilir ve sadece sudo !!, Aşağıda gösterildiği gibi:

mv ./my_script.sh /usr/local/bin/
sudo !!

Bir terminal penceresinde "mv ./my_script.sh / usr / local / bin /" komutu.

Böylece, bir komutu tekrarlamak için ilgili numarayı listeden yazabilir veya en son kullandığınız komutu tekrarlamak için çift ünlem işaretlerini kullanabilirsiniz. Ancak, beşinci veya sekizinci komutu tekrarlamak isterseniz ne olur?

Tekrarlamak için bir ünlem işareti, kısa çizgi (-) ve önceki komutların sayısını (yine boşluk bırakmadan) kullanabilirsiniz.

Önceki 13. komutu tekrarlamak için aşağıdakileri yazardınız:

!-13

Bir terminal penceresinde "! -13" komutu.

Komutları Dizeye Göre Arama

Belirli bir dizeyle başlayan son komutu tekrarlamak için, bir ünlem işareti ve ardından boşluk içermeyen dizeyi yazıp Enter tuşuna basabilirsiniz.

Örneğin, ile başlayan son komutu tekrarlamak için sudo, şu komutu yazabilirsiniz:

!sudo

Bir terminal penceresinde "! Sudo" komutu.

Yine de bu konuda bir tehlike unsuru var. İle başlayan son komut sudo düşündüğünüz kişi değil, yanlış komutu başlatacaksınız.

Bununla birlikte, bir güvenlik ağı sağlamak için, :p (baskı) değiştirici, aşağıda gösterildiği gibi:

!sudo:p

Bir terminal penceresinde "! Sudo: p" komutu.

Bu talimatlar history komutu yürütmek yerine terminal penceresine yazdırmak için. Bu, komutu kullanmadan önce görmenizi sağlar. İstediğiniz komut buysa, Yukarı oka basın ve ardından kullanmak için Enter tuşuna basın.

Belirli bir dize içeren bir komut bulmak istiyorsanız, bir ünlem işareti ve soru işareti kullanabilirsiniz.

Örneğin, “takma adlar” kelimesini içeren ilk eşleşen komutu bulmak ve yürütmek için şu komutu yazabilirsiniz:

!?aliases

Terminal penceresinde "!? Takma adlar" komutu.

Bu, dizede nerede göründüğüne bakılmaksızın “takma adlar” dizesini içeren tüm komutları bulur.

Etkileşimli Arama

Etkileşimli bir arama, eşleşen komutların bir listesini atlamanıza ve istediğiniz komutları tekrarlamanıza olanak tanır.

Aramayı başlatmak için Ctrl + r tuşlarına basmanız yeterlidir.

"Ctrl + r" tuşlarına basıldıktan sonra bir terminal penceresi.

Arama ipucunu yazdıkça, ilk eşleşen komut görünür. Yazdığınız harfler ters tırnak (`) ve kesme işareti (‘) arasında görünür. Her harfi yazarken eşleşen komutlar güncellenir.

Arama ipucu olarak "sudo" yazılı bir "Ctrl + r" araması.

Ctrl + r tuşlarına her basışınızda, terminal penceresinde görünen bir sonraki eşleme komutunu geriye doğru arıyorsunuz.

Bir terminal penceresinde eşleşen bir komutu gösteren "Ctrl + r" araması.

Enter tuşuna bastığınızda, görüntülenen komut yürütülür.

"Ctrl + r" arama komutundan başlatılan bir terminal penceresindeki "gedit" komutu.

Bir komutu yürütmeden önce düzenlemek için Sol veya Sağ ok tuşuna basın.

Bir terminal penceresinde "Ctrl + r" araması.

Komut, komut satırında görünür ve bunu düzenleyebilirsiniz.

Komut satırında düzenleme etkinleştirilmiş bir komut.

Geçmiş listesinde arama yapmak için diğer Linux araçlarını kullanabilirsiniz. Örneğin, çıkışı history içine grep ve “aliases” dizesini içeren komutları arayın ve şu komutu kullanabilirsiniz:

history | grep aliases

Bir terminal penceresindeki "history | grep aliases" komutu.

Son Komutu Değiştirme

Bir yazım hatasını düzeltmeniz ve komutu tekrarlamanız gerekirse, değiştirmek için düzeltme işaretini (^) kullanabilirsiniz. Bu, bir komutu yanlış yazdığınızda veya farklı bir komut satırı seçeneği veya parametresiyle yeniden çalıştırmak istediğinizde kolunuzu kaldırmak için harika bir numara.

Kullanmak için (boşluk bırakmadan) bir düzeltme işareti, değiştirmek istediğiniz metni, başka bir düzeltme işareti, yerine koymak istediğiniz metni, başka bir düzeltme yazın ve Enter tuşuna basın.

Örneğin, yanlışlıkla “sshd” yerine “shhd” yazarak aşağıdaki komutu yazdığınızı varsayın:

sudo systemctl start shhd

Aşağıdakileri yazarak bunu kolayca düzeltebilirsiniz:

^shhd^sshd^

Bir terminal penceresinde "sudo systemctl start shhd" komutu.

Komut “shhd”, “sshd” olarak düzeltilmiş olarak yürütülür.

Komutları Geçmiş Listesinden Silme

Ayrıca komutları geçmiş listesinden -d (sil) seçeneğini tıklayın. Yanlış yazılmış komutunuzu geçmiş listesinde tutmak için hiçbir neden yoktur.

Kullanabilirsiniz grep bulmak için numarasını history ile -d silme seçeneğini tıklayın ve ardından gittiğinden emin olmak için tekrar arama yapın:

history | grep shhd
history -d 83
history | grep shhd

Bir terminal penceresindeki "history | grep shhd" komutu.

Ayrıca bir dizi komutu -d seçeneği. 22'den 32'ye (dahil) tüm liste girişlerini silmek için şu komutu yazın:

history -d 22 32

Yalnızca son beş komutu silmek için, aşağıdaki gibi negatif bir sayı yazabilirsiniz:

history -d -5

Geçmiş Dosyasını Manuel Olarak Güncelleme

Oturum açtığınızda veya bir terminal oturumu açtığınızda geçmiş listesi geçmiş dosyasından okunur. Bash'te varsayılan geçmiş dosyası .bash_history.

Geçerli terminal penceresi oturumunuzda yaptığınız değişiklikler geçmiş dosyasına yalnızca terminal penceresini kapattığınızda veya oturumu kapattığınızda yazılır.

İlk terminal penceresine yazdığınız komutlar dahil olmak üzere tam geçmiş listesine erişmek için başka bir terminal penceresi açmak istediğinizi varsayalım. -a (tümü) seçeneği, ikincisini açmadan önce bunu ilk terminal penceresinde yapmanızı sağlar.

Kullanmak için aşağıdakileri yazın:

history -a

Bir terminal penceresindeki "history -a" komutu.

Komutlar sessizce geçmiş dosyasına yazılır.

Geçmiş listesindeki tüm değişiklikleri geçmiş dosyasına yazmak istiyorsanız (örneğin, bazı eski komutları sildiyseniz), -w (write) seçeneği, şöyle:

history -w

Bir terminal penceresindeki "history -w" komutu.

Geçmiş Listesini Temizleme

Geçmiş listesinden tüm komutları silmek için, -c (temizle) seçeneği aşağıdaki gibidir:

history -c

geçmiş -c bir terminal penceresinde

Ek olarak bu değişiklikleri geçmiş dosyasında zorlamak istiyorsanız, -w seçeneği, şöyle:

history -w

Güvenlik ve Geçmiş Dosyası

Komut satırına hassas bilgiler (parolalar gibi) yazmanızı gerektiren herhangi bir uygulama kullanıyorsanız, bunun da geçmiş dosyasına kaydedileceğini unutmayın. Belirli bilgilerin kaydedilmesini istemiyorsanız, hemen geçmiş listesinden silmek için aşağıdaki komut yapısını kullanabilirsiniz:

special-app my-secret-password;history -d $(history 1)
history 5

Bir terminal penceresinde "özel uygulama my-secret-password; geçmiş -d $ (geçmiş 1)" komutu.

Bu yapı, noktalı virgülle (;) ayrılmış iki komut içerir. Bunu parçalayalım:

  • özel uygulama: Kullandığımız programın adı.
  • benim gizli-şifre: Komut satırındaki uygulama için sağlamamız gereken gizli şifre. Bu birinci komutun sonu.
  • tarih -d: İkinci komutta, -d (sil) seçeneği history. Silmek istediğimiz, komutun bir sonraki bölümünde.
  • $ (tarih 1): Bu bir komut ikamesi kullanır. Komutun $() bir alt kabukta yürütülür. Bu yürütmenin sonucu, orijinal komutta metin olarak gönderilir. history 1 komutu önceki komutu döndürür. Yani, ikinci komutu tarih -d “burada son komut” olarak düşünebilirsiniz.

Kullanabilirsiniz history 5 parolayı içeren komutun geçmiş listesinden kaldırıldığından emin olmak için komut.

Yine de bunu yapmanın daha basit bir yolu var. Bash varsayılan olarak boşlukla başlayan satırları yok saydığından, satırın başına aşağıdaki gibi bir boşluk eklemeniz yeterlidir:

 special-app another-password
history 5

Bir terminal penceresinde "özel uygulama başka bir şifre" komutu.

Parola içeren komut geçmiş listesine eklenmez. Bu hile çalışmasının nedeni, .bashrc dosya.

.Bashrc Dosyası

.bashrc her oturum açışınızda veya bir terminal penceresi açtığınızda dosya yürütülür. Ayrıca, history Komut. Bu dosyayı şununla düzenleyelim: gedit.

Aşağıdakileri yazın:

gedit .bashrc

Bir terminal penceresindeki "gedit .bashrc" komutu.

Dosyanın üst kısmına yakın iki giriş görürsünüz:

  • HISTSIZE: Geçmiş listesinin içerebileceği maksimum giriş sayısı.
  • HISTFILESIZE: Bir geçmiş dosyasının içerebileceği satır sayısı sınırı.

".bashrc" yazın.

Bu iki değer aşağıdaki şekillerde etkileşime girer:

  • Giriş yaptığınızda veya bir terminal penceresi oturumu başlattığınızda, geçmiş listesi .bash_history dosya.
  • Bir terminal penceresini kapattığınızda, ayarlanan maksimum komut sayısı HISTSIZE kaydedildi .bash_history dosya.
  • Eğer histappend kabuk seçeneği etkinse, komutlara .bash_history. Eğer histappend ayarlanmadı, .bash_history üzerine yazılır.
  • Komutları geçmiş listesinden kaydettikten sonra .bash_history , geçmiş dosyasında en fazla HISTFILESIZE çizgiler.

Ayrıca dosyanın üst kısmına yakın bir yerde, HISTCONTROL değer.

Gedit ".bashrc" dosyasındaki "HISTCONTROL" girdisi.

Bu değeri aşağıdakilerden herhangi birini yapacak şekilde ayarlayabilirsiniz:

  • ignorespaces:Boşluk ile başlayan satırlar geçmiş listesine eklenmez.
  • ignoredups:Geçmiş dosyasına yinelenen komutlar eklenmez.
  • ignoreboth:Yukarıdakilerin her ikisini de etkinleştirir.

Ayrıca geçmiş listenize eklenmesini istemediğiniz belirli komutları da listeleyebilirsiniz. Bunları iki nokta üst üste (:) ile ayırın ve tırnak içine alın (“…”).

Bir satır eklemek için bu yapıyı takip edersiniz. .bashrc dosyasını seçin ve yok sayılmasını istediğiniz komutları değiştirin:

export HISTIGNORE="ls:history"

Bir "export HISTIGNORE =" ls: geçmiş "komutu gedit.

Zaman Damgalarını Kullanma

Geçmiş listesine zaman damgaları eklemek istiyorsanız, HISTIMEFORMAT ayarı. Bunu yapmak için, aşağıdaki gibi bir satır ekleyin. .bashrc dosya:

export HISTTIMEFORMAT="%c "

Kapanış tırnak işaretlerinden önce boşluk olduğunu unutmayın. Bu, zaman damgasının komut listesindeki komutlara girmesini önler.

Gedit içinde "export HISTTIMEFORMAT ="% c "komutu.

Geçmiş geçmişi komutunu çalıştırdığınızda, tarih ve zaman damgalarını görürsünüz. Zaman damgalarını eklemeden önce geçmiş listesinde bulunan komutların, zaman damgası alan ilk komutun tarih ve saatiyle zaman damgası ekleneceğini unutmayın. Aşağıda gösterilen bu örnekte, bu komut 118'dir.

Bir terminal penceresinde zaman damgaları içeren bir geçmiş listesi.

Bu çok uzun soluklu bir zaman damgası. Ancak, başka simgeler de kullanabilirsiniz %c düzeltmek için. Kullanabileceğiniz diğer tokenler:

  • %d: Gün
  • %m: Ay
  • %y: Yıl
  • %H: Saat
  • %M: Dakika
  • %S: Saniye
  • %F: Tam tarih (yıl-ay-tarih biçimi)
  • %T: Zaman (saat: dakika: saniye biçimi)
  • %c: Tam tarih ve zaman damgası (gün-tarih-ay-yıl ve saat: dakika: saniye biçimleri)

Şimdi birkaç farklı jeton deneyelim ve kullanalım:

export HISTTIMEFORMAT="%d n%m %T "

Gedit'te dışa aktarma HISTTIMEFORMAT = "% d n% m% T" komutu.

Çıktı gün, ay ve saati kullanır.

Bir terminal penceresinde zaman damgaları içeren bir geçmiş listesi.

Ancak günü ve ayı kaldırırsak, zamanı gösterecektir.

Yaptığınız değişiklikler HISTIMEFORMAT kendilerini tüm geçmiş listesine uygulayabilirler. Bu, her komutun süresi Unix döneminden saniye olarak kaydedildiğinden mümkündür. HISTTIMEFORMATyönergesi basitçe, bu saniye sayısını insan tarafından okunabilir bir stile dönüştürmek için kullanılan formatı belirtir, örneğin:

export HISTTIMEFORMAT="%T "

Gedit'te "export HISTTIMEFORMAT ="% T "komutu.

Çıktımız artık daha yönetilebilir.

Bir terminal penceresinde zaman damgaları içeren bir geçmiş listesi.

Ayrıca history denetim komutu. Bazen, geçmişte kullandığınız komutları gözden geçirmek, soruna neyin yol açmış olabileceğini belirlemenize yardımcı olabilir.

Tıpkı hayatta olabildiğince, Linux'ta, history iyi zamanları yeniden yaşamaya ve kötüden öğrenmeye emreder.

İLİŞKİLİ: Bilmeniz Gereken 37 Önemli Linux Komutu

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
spot_img

Latest posts