15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
09.10.2024

Linux’ta `history` Komutu: Bash Geçmişine Eksiksiz Bir Kılavuz

Linux’taki `history` komutu, bir terminal oturumunda yürütülen her komutu kaydeden, görüntüleyen ve yöneten yerleşik bir Bash kabuk yardımcı programıdır. Her kullanıcının ana dizinindeki düz metin dosyası olan `~/.bash_history`’dan okur ve bu dosyaya yazar; böylece komutları yeniden yazmadan oturumlar arasında hatırlamanıza, aramanıza, yeniden çalıştırmanıza ve denetlemenize olanak tanır.

Sistem yöneticileri ve ileri düzey kullanıcılar için Bash geçmişi yalnızca bir kolaylık özelliği değildir — operasyonel bir denetim izi, bir hata ayıklama aracı ve bir verimlilik çarpanıdır. İç işleyişini, yapılandırma değişkenlerini ve güvenlik etkilerini anlamak, sıradan kullanıcıları komut satırından maksimum değer elde eden mühendislerden ayırır.

Bash Geçmişi İçsel Olarak Nasıl Çalışır

Bir terminal oturumu açtığınızda, Bash `~/.bash_history` içeriğini bellek içi bir listeye yükler. Komutları çalıştırdıkça, bunlar bu bellek içi tampona eklenir. Oturum normal şekilde kapandığında (`exit` veya `logout` aracılığıyla), tampon ortam değişkenleriniz tarafından tanımlanan kurallara göre `~/.bash_history`’a geri yazılır.

Bu mimarinin kritik bir sonucu vardır: oturumunuz anormal şekilde sonlanırsa (güç kesintisi, SSH bağlantısı kesilmesi, `kill -9`), o oturumdaki komutlar hiçbir zaman diske yazılmayabilir. Bu, yöneticilerin kesintiye uğrayan bir oturum sırasında çalıştırılan komutların izini kaybettiğinde yaşanan yaygın bir karışıklık kaynağıdır.

İki kabuk seçeneği bu varsayılan çıkışta yazma davranışını değiştirir:

  • `shopt -s histappend` — `~/.bash_history`’ın üzerine yazmak yerine yeni geçmişi ekler. Bu, çok oturumlu ortamlarda zorunludur.
  • `PROMPT_COMMAND='history -a'` — Bash’i her komut isteminden sonra en son komutu geçmiş dosyasına eklemeye zorlar; gerçek zamanlı kalıcılık ve terminaller arası görünürlük sağlar.

`histappend` olmadan, son kapanan kabuk kazanır — geçmiş dosyasının üzerine yazar ve diğer tüm eş zamanlı oturumların girişlerini sessizce siler.

`history` Komutunun Temel Kullanımı

Tam Komut Geçmişini Görüntüleme

“`bash

history

“`

Saklanan komutların numaralı bir listesini çıktılar. Soldaki numara, olay belirleyicileri için kullanılan geçmiş dizinidir.

Belirli Sayıda Son Komutu Görüntüleme

“`bash

history 20

“`

Son 20 komutu gösterir. Yüzlerce girişi kaydırmadan son etkinliğe hızlıca göz atmak istediğinizde kullanışlıdır.

Mevcut Oturum Geçmişini Hemen Dosyaya Yazma

“`bash

history -w

“`

Bellek içi geçmiş tamponunun `~/.bash_history`’a anında yazılmasını zorlar. Hiçbir şeyin kaybolmamasını sağlamak için kritik bir oturumu kapatmadan önce bunu kullanın.

Dosyadan Geçmişi Mevcut Oturuma Okuma

“`bash

history -r

“`

`~/.bash_history`’ı mevcut oturumun belleğine yeniden yükler. Aynı oturum açma sırasında başka bir terminal penceresinde yazılan komutlara erişmek istediğinizde kullanışlıdır.

Komutları Hatırlama ve Yeniden Çalıştırma

`!` ile Olay Belirleyicileri

Bash’in olay belirleyici sözdizimi, geçmiş komutların referansla doğrudan yeniden çalıştırılmasına olanak tanır:

BelirleyiciDavranış
`!!`Hemen önceki komutu yeniden çalıştırır
`!n``n` geçmiş dizinindeki komutu çalıştırır
`!-n`Mevcut konumdan `n` geriye gidilen komutu çalıştırır
`!string``string` ile başlayan en son komutu çalıştırır
`!?string?`Herhangi bir yerde `string` içeren en son komutu çalıştırır
`!$`Önceki komutun son argümanını kullanır
`!*`Önceki komutun tüm argümanlarını kullanır

Pratik örnek — son argümanı yeniden kullanma:

“`bash

mkdir /var/www/myproject

cd !$

“`

`!$`, `/var/www/myproject` olarak genişler ve yolu yeniden yazmanızı önler. Bu, Bash geçmişinin en az kullanılan ancak en değerli özelliklerinden biridir.

Çalıştırmadan önce önizleme:

Komutu çalıştırmadan yazdırmak için herhangi bir olay belirleyicisine `:p` ekleyin:

“`bash

!42:p

“`

Bu, üretim sunucularında çalışırken kritik bir güvenlik alışkanlığıdır. Yıkıcı komutları çalıştırmadan önce her zaman önizleyin.

Argüman Çıkarmak için Sözcük Belirleyicileri

Tüm komutları yeniden çalıştırmanın ötesinde, Bash geçmiş girişlerinden belirli argümanları çıkarmanıza olanak tanır:

“`bash

!!:2 # Second word (argument) of the last command

!!:1-3 # Words 1 through 3 of the last command

!ssh:$ # Last argument of the most recent ssh command

“`

Bu ayrıntı düzeyi, karmaşık pipeline’lar oluştururken veya aynı dosya yollarında işlemleri tekrarlarken son derece değerlidir.

Geçmiş Gezintisi için Klavye Kısayolları

KısayolEylem
`Up Arrow` / `Ctrl+P`Önceki komuta git
`Down Arrow` / `Ctrl+N`Sonraki komuta git
`Ctrl+R`Geçmişte artımlı geriye dönük arama
`Ctrl+S`İleriye artımlı arama (`stty -ixon` gerektirir)
`Alt+.`Önceki komutun son argümanını ekle
`Ctrl+G`Mevcut geçmiş aramasını iptal et

`Ctrl+S` hakkında not: Varsayılan olarak, `Ctrl+S` XON/XOFF akış kontrolünü tetikler ve terminali dondurur. İleriye dönük geçmiş aramasını etkinleştirmek için `~/.bashrc` dosyanıza `stty -ixon` ekleyin.

`Ctrl+R` ile Geriye Dönük Arama

“`

(reverse-i-search)`git': git commit -am "fix: resolve race condition"

“`

Bir alt dize yazın; Bash onu içeren en son komutu artımlı olarak eşleştirir. Daha eski eşleşmelere geçmek için `Ctrl+R`’e tekrar basın. Çalıştırmak için `Enter`’e, hiçbir şey çalıştırmadan iptal etmek için `Ctrl+G`’e basın.

Yüksek hacimli geçmiş aramalarında `grep` üzerinden yönlendirin:

“`bash

history | grep "docker run"

history | grep -E "^[[:space:]]+[0-9]+[[:space:]]+ssh"

“`

Geçmiş Girişlerini Düzenleme ve Yönetme

Belirli Bir Girişi Silme

“`bash

history -d 87

“`

87. dizindeki komutu bellek içi listeden kaldırır. Bunu kalıcı hale getirmek için değiştirilmiş listeyi diske geri yazmak üzere `history -w` ile devam edin.

Bir Dizi Girişi Silme

“`bash

for i in $(seq 85 90); do history -d 85; done

“`

Silme işlemi dizinleri kaydırdığından, her zaman artırmak yerine döngüde aynı dizin numarasını silin.

Tüm Bellek İçi Geçmişi Temizleme

“`bash

history -c

“`

Mevcut oturumun geçmiş tamponunu siler. Bu işlem diskteki `~/.bash_history`’a dokunmaz.

Tüm Geçmişi Tamamen Silme

“`bash

history -c && history -w

“`

Bellek içi tamponu temizler ve ardından boş tamponu `~/.bash_history`’a yazar; bu da dosyayı etkin biçimde kırpar. Bu doğru iki adımlı sıradır — yalnızca `> ~/.bash_history` kullanmak bellek içi tamponu temizlemez, bu nedenle dosya oturum çıkışında yeniden doldurulabilir.

Bash Geçmişini Yapılandırma: Ortam Değişkenleri

Tüm geçmiş davranışı, genellikle `~/.bashrc` (etkileşimli oturum açmayan kabuklar) veya `~/.bash_profile` / `~/.profile` (oturum açma kabukları) içinde ayarlanan ortam değişkenleri tarafından yönetilir. Değişiklikler dosya kaynaklandıktan sonra geçerli olur:

“`bash

source ~/.bashrc

“`

`HISTSIZE`

Etkin bir oturum sırasında bellekte kaç komutun tutulacağını kontrol eder.

“`bash

export HISTSIZE=10000

“`

Bunu `0` olarak ayarlamak bellek içi geçmişi tamamen devre dışı bırakır. Bunu `-1` olarak ayarlamak (Bash 4.3+ sürümünde) sınırsız yapar.

`HISTFILESIZE`

Diskteki `~/.bash_history` dosyasında saklanan maksimum satır sayısını kontrol eder.

“`bash

export HISTFILESIZE=20000

“`

Dosya bu sınırı aştığında, Bash en eski girişleri kırpar. Uyumluluk gerektiren ortamlar için bunu büyük bir değere ayarlayın ve günlük rotasyonuyla eşleştirin.

`HISTCONTROL`

Hangi komutların kaydedileceğine ilişkin filtreleme kurallarını belirler.

DeğerDavranış
`ignoredups`Ardışık yinelenen komutları atlar
`ignorespace`Boşlukla başlayan komutları atlar
`ignoreboth`Yukarıdakilerin ikisini birleştirir
`erasedups`Yeni girişi eklemeden önce bir komutun önceki tüm oluşumlarını kaldırır

“`bash

export HISTCONTROL=ignoreboth

“`

`ignorespace` için güvenlik kullanım senaryosu: Parola veya gizli bilgi içeren herhangi bir komutun önüne kaydedilmesini önlemek için boşluk ekleyin:

“`bash

mysql -u root -pSuperSecretPassword

“`

Bu, paylaşılan veya çok kullanıcılı sistemlerde yaygın olarak kullanılan bir operasyonel güvenlik uygulamasıdır.

`HISTTIMEFORMAT`

Her geçmiş girişine `~/.bash_history` içinde yorum satırı olarak saklanan bir zaman damgası ekler.

“`bash

export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "

“`

Çıktı örneği:

“`

487 2024-11-14 09:32:17 systemctl restart nginx

488 2024-11-14 09:32:45 tail -f /var/log/nginx/error.log

“`

Zaman damgaları, VPS Hosting ortamlarında ve özel altyapılarda olay sonrası adli analiz için zorunludur. Bunlar olmadan *ne* çalıştırıldığını bilirsiniz ama *ne zaman* çalıştırıldığını bilemezsiniz.

`HISTIGNORE`

İki nokta üst üste ile ayrılmış glob desenleri listesi. Herhangi bir desenle eşleşen komutlar geçmişe kaydedilmez.

“`bash

export HISTIGNORE="ls:ll:la:cd:pwd:exit:clear:history"

“`

Bu, önemsiz komutların geçmişinizi kirletmesini ve arama sonuçlarını seyreltmesini önler. Joker karakterler de kullanabilirsiniz:

“`bash

export HISTIGNORE="*password*:*secret*:*token*"

“`

Bu, derinlemesine savunma önlemidir — maksimum kimlik bilgisi hijyeni için `ignorespace` ile birleştirin.

Bash Geçmişi Yapılandırma Değişkenleri: Tam Referans Tablosu

DeğişkenVarsayılanAmaç
`HISTSIZE`500–1000Oturum başına bellekte tutulan komutlar
`HISTFILESIZE`500–2000`~/.bash_history` içinde saklanan satırlar
`HISTCONTROL`(ayarlanmamış)Kaydedilen komutlar için filtreleme kuralları
`HISTTIMEFORMAT`(ayarlanmamış)Girişlere eklenen zaman damgası biçimi
`HISTIGNORE`(ayarlanmamış)Hariç tutulacak komutlar için glob desenleri
`HISTFILE``~/.bash_history`Geçmiş dosyasının yolu
`histappend` (shopt)kapalıOturum çıkışında ekleme veya üzerine yazma

Birden Fazla Terminal Oturumunda Geçmişi Paylaşma

Varsayılan olarak, her Bash oturumu kendi yalıtılmış geçmiş tamponunu korur. Terminal A’da yazılan komutlar, her iki oturum da kapanıp dosya yazılana kadar Terminal B’ye görünmez. Dedicated Servers üzerinde aynı anda birden fazla SSH oturumunu yöneten yöneticiler için bu, operasyonel kayıtta boşluklar oluşturur.

Gerçek zamanlı çapraz oturum geçmiş paylaşımı için önerilen yapılandırma:

“`bash

~/.bashrc

export HISTSIZE=100000

export HISTFILESIZE=100000

export HISTCONTROL=ignoreboth

export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "

shopt -s histappend

PROMPT_COMMAND='history -a; history -c; history -r'

“`

Bu yapılandırmanın işlevi:

  • `history -a` — en son komutu dosyaya ekler
  • `history -c` — bellek içi tamponu temizler
  • `history -r` — dosyayı belleğe yeniden yükler

Her komuttan sonra, her terminal oturumu tüm etkin oturumlardan eksiksiz ve birleşik geçmişi görür. Bunun bedeli, `PROMPT_COMMAND` çalıştırmasında uygulamada ihmal edilebilir düzeyde olan hafif bir ek yüktür.

Geçmişi Verimli Arama: Gelişmiş Teknikler

`fzf` — Bulanık Geçmiş Araması

`fzf` aracı, geçmiş aramasını doğrusal taramadan etkileşimli bulanık eşleştirme arayüzüne dönüştürür:

“`bash

Install fzf (Debian/Ubuntu)

sudo apt install fzf

Bind Ctrl+R to fzf-powered history search

Add to ~/.bashrc:

[ -f ~/.fzf.bash ] && source ~/.fzf.bash

“`

Yapılandırıldıktan sonra, `Ctrl+R` tüm geçmişiniz üzerinde tam ekran bulanık arama açar. Bu, `grep`’ın hantal hale geldiği büyük geçmiş dosyalarında (10.000’den fazla giriş) özellikle güçlüdür.

Betik Yazımı için Geçmişi Çıkarma

“`bash

Export all unique commands containing "iptables" to a script

history | grep iptables | awk '{$1=""; print $0}' | sort -u > iptables_audit.sh

“`

Bu desen, olay müdahalesi sırasında anlık olarak çalıştırılan komutlardan çalışma kitaplarını yeniden oluşturmak için kullanışlıdır.

Bash Geçmişi için Güvenlik Değerlendirmeleri

Bash geçmişi çift taraflı bir araçtır. Meşru iş akışlarını hızlandırır, ancak aynı zamanda önemli bir saldırı yüzeyi oluşturur.

Temel riskler ve azaltma yöntemleri:

  • Kimlik bilgisi ifşası: Komut satırı argümanları olarak iletilen parolalar (örn. `curl -u admin:password`) `~/.bash_history` içinde düz metin olarak saklanır. Bunun yerine `ignorespace`, `HISTIGNORE` veya ortam değişkenlerini kullanın.
  • Ayrıcalık yükseltme adli analizi: Kabuk erişimi kazanan saldırganlar, ortamı anlamak, kimlik bilgilerini keşfetmek ve yüksek değerli hedefleri belirlemek için rutin olarak `~/.bash_history`’ı okur. Kısıtlayıcı izinler ayarlayın: `chmod 600 ~/.bash_history`.
  • Geçmiş kurcalama: Ele geçirilmiş bir kullanıcı tüm kanıtları silmek için `history -c && history -w` çalıştırabilir. Üretim sistemlerinde denetim amacıyla, kullanıcı tarafından manipüle edilemeyen `auditd` veya `syslog` tabanlı komut günlüğünü değerlendirin.
  • Root geçmişi izolasyonu: Root kullanıcısının geçmişi `/root/.bash_history` içinde saklanır. Bu dosyanın dünya tarafından okunabilir olmadığından ve yedekleme ile denetim kapsamınıza dahil edildiğinden emin olun.

PCI-DSS veya SOC 2 uyumlu altyapı gibi katı komut denetimi gerektiren ortamlar için Bash geçmişi tek başına yetersizdir. Bunu `auditd` aracılığıyla çekirdek düzeyinde denetleme ve merkezi günlük gönderimi ile eşleştirin.

Bash Geçmişi ile Alternatif Kabuk Geçmiş Sistemlerinin Karşılaştırması

ÖzellikBash GeçmişiZsh GeçmişiFish Geçmişi
Varsayılan geçmiş dosyası`~/.bash_history``~/.zsh_history``~/.local/share/fish/fish_history`
Zaman damgası desteği`HISTTIMEFORMAT` aracılığıylaYerleşikYerleşik (YAML biçimi)
Yineleme işleme`HISTCONTROL``HIST_IGNORE_DUPS` seçeneğiOtomatik tekilleştirme
Çapraz oturum paylaşımıManuel (`PROMPT_COMMAND`)`INC_APPEND_HISTORY` seçeneğiOtomatik (varsayılan olarak paylaşımlı)
Arama arayüzü`Ctrl+R` (doğrusal)`Ctrl+R` (doğrusal)Sözdizimi vurgulu, bağlam duyarlı
Maksimum geçmiş boyutu`HISTFILESIZE` değişkeni`SAVEHIST` değişkeniSabit sınır yok
Kilitleme mekanizmasıYok (yarış koşulları mümkün)Dosya kilitleme desteklenirSQLite destekli (atomik yazma)

Bash geçmişinin temel sınırlaması, yerleşik kilitleme mekanizmasının olmamasıdır; bu durum, birden fazla oturum aynı anda yazma yaptığında yarış koşullarına yol açabilir. Zsh ve Fish bunu kabuk düzeyinde daha zarif biçimde ele alır.

Üretim Ortamları için Pratik Yapılandırma

Aşağıda, VPS with cPanel veya özel kontrol panelleri çalıştıranlar dahil üretim Linux sunucuları için uygun, savaş testinden geçmiş bir `~/.bashrc` geçmiş yapılandırması yer almaktadır:

“`bash

— Bash History Configuration —

export HISTSIZE=50000

export HISTFILESIZE=50000

export HISTCONTROL=ignoreboth:erasedups

export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "

export HISTIGNORE="ls:ll:la:cd:pwd:exit:clear:bg:fg:jobs"

export HISTFILE=~/.bash_history

Append to history file; don't overwrite

shopt -s histappend

Save and reload history after each command

PROMPT_COMMAND='history -a; history -c; history -r'

Enable multi-line command history as single entry

shopt -s cmdhist

Store multi-line commands with embedded newlines

shopt -s lithist

“`

`cmdhist` ve `lithist` özellikle dikkat çekicidir. `cmdhist` olmadan, çok satırlı bir komut (etkileşimli olarak yazılan bir `for` döngüsü gibi) ayrı satırlar olarak saklanır ve temiz biçimde yeniden çalıştırılması imkânsız hale gelir. `cmdhist` etkinleştirildiğinde ve `lithist` ayarlandığında, tüm yapı gerçek yeni satırlarla tek bir geçmiş girişi olarak saklanır ve yapısı korunur.

Geçmiş Tabanlı İş Akışlarını Otomatikleştirme

Komut Frekans Raporu Oluşturma

“`bash

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -20

“`

Bu, en çok kullandığınız 20 komutu ortaya çıkarır — takma ad veya kabuk fonksiyonları için aday belirlemeye yarar.

`sudo` Kullanımını Denetleme

“`bash

history | grep sudo | awk '{$1=""; print $0}'

“`

Paylaşılan VPS Control Panels ortamlarında bu, bir oturum sırasında gerçekleştirilen ayrıcalıklı işlemlerin hızlı bir denetimini sağlar.

Oturum Zaman Çizelgesini Yeniden Oluşturma

“`bash

HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " history | grep "2024-11-14"

“`

Belirli bir tarihte çalıştırılan tüm komutları filtreler — olay sonrası incelemeler sırasında son derece değerlidir.

Temel Teknik Çıkarımlar ve Karar Kontrol Listesi

Herhangi bir ortamda Bash geçmiş yapılandırması dağıtmadan önce aşağıdakileri doğrulayın:

  • `shopt -s histappend` ayarlanmış — eş zamanlı oturumların birbirinin üzerine yazmasından kaynaklanan geçmiş kaybını önler
  • `HISTSIZE` ve `HISTFILESIZE` her ikisi de yapılandırılmış — yalnızca birini ayarlamak diğerini varsayılan değerinde bırakır ve beklenmedik kırpmaya neden olur
  • `HISTTIMEFORMAT` etkin — zaman damgaları olmadan geçmişin adli değeri yoktur
  • `HISTCONTROL=ignoreboth` en azından ayarlanmış — gürültüyü azaltır ve kimlik bilgilerine yakın komutların günlüğe kaydedilmesini önler
  • `HISTIGNORE` önemsiz komutları dışlar — geçmişin sinyal-gürültü oranını yüksek tutar
  • `~/.bash_history` için `chmod 600` izni var — diğer kullanıcıların komut geçmişinizi okumasını önler
  • `cmdhist` etkin — çok satırlı komutların tutarlı birimler olarak saklanmasını sağlar
  • `PROMPT_COMMAND` geçmişi gerçek zamanlı senkronize eder — çok oturumlu ortamlar için gereklidir
  • `auditd` birlikte dağıtılmış — kurcalamaya karşı korumalı günlüğün gerekli olduğu üretim sistemleri için
  • Kimlik bilgileri hiçbir zaman CLI argümanı olarak iletilmez — bunun yerine ortam değişkenleri, `.netrc` veya gizli yöneticileri kullanın

Sıkça Sorulan Sorular

SSH oturumunu kapattıktan sonra Bash geçmişim neden kayboluyor?

Bu genellikle `shopt -s histappend`’ın ayarlanmamış olmasından kaynaklanır. Bu olmadan, her oturum çıkışta `~/.bash_history`’ın üzerine yazar. Oturum anormal şekilde sonlanırsa (ağ kesintisi, `kill -9`), yazma işlemi hiç gerçekleşmez. Komutları gerçek zamanlı olarak kalıcı hale getirmek için `histappend` ve `PROMPT_COMMAND='history -a'` ayarlayın.

Parolaların Bash geçmişine kaydedilmesini nasıl önlerim?

İki tamamlayıcı teknik kullanın: komutun önüne boşluk ekleyin (`HISTCONTROL=ignorespace` veya `ignoreboth` gerektirir) ve hassas komut desenlerini `HISTIGNORE`’a ekleyin. Uzun vadeli hijyen için, gizli bilgileri hiçbir zaman CLI argümanı olarak iletmeyin — ortam değişkenlerini veya özel gizli yönetim araçlarını kullanın.

`HISTSIZE` ile `HISTFILESIZE` arasındaki fark nedir?

`HISTSIZE`, Bash’in etkin bir oturum sırasında bellekte kaç komutu tutacağını kontrol eder. `HISTFILESIZE`, diskteki `~/.bash_history` dosyasında kaç satırın saklandığını kontrol eder. Her ikisi de açıkça ayarlanmalıdır — büyük bir `HISTSIZE` ile küçük bir `HISTFILESIZE` kombinasyonu, oturum içi geçmişinizin zengin olduğu ancak oturum sona erdiğinde büyük bölümünün atıldığı anlamına gelir.

Silinen geçmiş girişleri kurtarılabilir mi?

`history -c && history -w` çalıştırıldıktan sonra, bellek içi tampon temizlenir ve dosya kırpılır — standart kurtarma mümkün değildir. Ancak sisteminiz dosya sistemi anlık görüntüleri veya yedekleme çözümleri kullanıyorsa, `~/.bash_history`’ın önceki sürümü bir anlık görüntüden kurtarılabilir. Bu, kritik altyapıda kurcalamaya karşı korumalı günlük için `auditd` uygulamanın bir başka nedenidir.

Birden fazla eş zamanlı terminal oturumunda Bash geçmişini nasıl paylaşırım?

`~/.bashrc` dosyasına şunları ekleyin: `shopt -s histappend` ve `PROMPT_COMMAND='history -a; history -c; history -r'`. Bu, her oturumu en son komutunu paylaşılan dosyaya eklemeye ve her komut isteminden sonra tam dosyayı yeniden yüklemeye zorlar; böylece tüm etkin terminallere komut geçmişinin birleşik, gerçek zamanlı görünümü sağlanır.

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın