Hakkında notlar dizisinin devamı
1) PROMPT_COMMAND
Çeşitli yararlı bilgileri göstermek için istemi nasıl değiştireceğinizi zaten biliyor olabilirsiniz, ancak herkes, istem her gösterildiğinde bir kabuk komutunu çalıştırabileceğinizi bilmiyor.
Aslında birçok karmaşık bilgi istemi manipülatörü, bilgi isteminde görüntülenen bilgileri toplamak amacıyla komutları yürütmek için bu değişkeni kullanır.
Bunu yeni bir kabukta çalıştırmayı deneyin ve oturuma ne olacağını görün:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
Eğer koşarsan history
Konsolda, daha önce hesabınız altında yürütülen komutların bir listesini alacaksınız.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Bu değişken ayarlandıktan sonra, yeni girişler komutla birlikte zamanı da kaydeder, böylece çıktı şu şekilde görünecektir:
1871 Bunu şu adreste çalıştırdım: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Bunu şu adreste çalıştırdım: 01/05/19 13:38:19 curl bbc.co.uk 1873 Bunu şu adreste çalıştırdım: : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Bunu şu adreste çalıştırdım: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Bunu şu adreste çalıştırdım: 01 /05/19 13:39:25 sudo su -
Biçimlendirme şuradaki karakterlerle eşleşir: man date
.
3) CDPATH
Komut satırında zaman kazanmak için, bu değişkeni kullanarak komutları verdiğiniz kadar kolay bir şekilde dizinleri değiştirebilirsiniz.
Olarak PATH
, değişken CDPATH
yolların iki nokta üst üsteyle ayrılmış bir listesidir. Komutu çalıştırdığınızda cd
göreli bir yolla (yani başta eğik çizgi olmadan) kabuk, varsayılan olarak eşleşen adlar için yerel klasörünüze bakar. CDPATH
gitmek istediğiniz dizin için verdiğiniz yollarda arama yapacaktır.
yüklerseniz CDPATH
bu şekilde:
$ CDPATH=/:/lib
ve ardından şunu girin:
$ cd /home
$ cd tmp
o zaman her zaman sona ereceksin /tmp
Nerede olduğunun bir önemi yok.
Ancak dikkatli olun, çünkü yerel olanı listede belirtmezseniz (.
) klasörünü seçerseniz başka bir klasör oluşturamazsınız. tmp
ve her zamanki gibi ona gidin:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Hata!
Bu, yerel klasörün daha tanıdık değişkene dahil olmadığını fark ettiğimde hissettiğim kafa karışıklığına benzer. PATH
... ancak bunu PATH değişkeninizde yapmanız gerekir çünkü indirilen bazı kodlardan sahte bir komut çalıştırmanız için kandırılabilirsiniz.
Benimki başlangıç noktasına göre belirlenir:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Hiç merak ettin mi, yazarak exit
sizi mevcut bash kabuğunuzdan başka bir "ana" kabuğa mı götürecek yoksa konsol penceresini tamamen kapatacak mı?
Bu değişken, bash kabuğunda ne kadar derin yuvalanmış olduğunuzun izini sürer. Yeni bir terminal oluşturursanız 1'e ayarlanır:
$ echo $SHLVL
1
Daha sonra başka bir kabuk işlemi başlatırsanız sayı artar:
$ bash
$ echo $SHLVL
2
Bu, çıkıp çıkmayacağınızdan emin olmadığınız veya nerede yuvalandığınızı takip edemediğiniz komut dosyalarında çok yararlı olabilir.
5) LINENO
Değişken aynı zamanda mevcut durumu analiz etmek ve hata ayıklamak için de kullanışlıdır. LINENO
oturumda o ana kadar yürütülen komutların sayısını bildiren:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Bu, çoğunlukla komut dosyalarında hata ayıklarken kullanılır. Gibi satırlar ekleme echo DEBUG:$LINENO
komut dosyasında nerede olduğunuzu (veya olmadığınızı) hızlı bir şekilde belirleyebilirsiniz.
6) REPLY
Benim gibi, genellikle şöyle kod yazarsanız:
$ read input
echo do something with $input
Değişkeni oluşturma konusunda endişelenmenize gerek kalmaması şaşırtıcı gelebilir:
$ read
echo do something with $REPLY
Bu da aynı şeyi yapıyor.
7) TMOUT
Güvenlik nedeniyle üretim sunucularında çok uzun süre kalmayı veya tehlikeli bir şeyin yanlışlıkla yanlış terminalde çalıştırılmasını önlemek için, bu değişkenin ayarlanması bir koruma işlevi görür.
Belirli bir saniye boyunca hiçbir şey girilmezse kabuk çıkar.
Yani bu bir alternatif sleep 1 && exit
:
$ TMOUT=1
Kaynak: habr.com