Помогни ни да направим Uroci.net по - богат! Добави урок

Трикове за Bash

Black Pearl   трудност:    видян: 8937



Нека сега да променим промпта, така че да показва и часът:


slaff@atlantis slaff> PS1="[t][u@h:w]$ "
[21:52:01][slaff@atlantis:~]$ ls
bin mail
Ако не искаме всеки път да променяме промта, а той да се променя още с влизането ни, трябва да променим файлът .bash_profile, който се намира във нашата главна директория. Ако такъв файл не съществува трябва да го създадем. Ако имате root права и искате да промените на всички потребители промпта редактирайте файлът /etc/profile или /etc/bashrc . Имайте предвид, че този файл може да се намира на друго място за различните Linux дистрибуции. Самото редактиране се състои в добавянето на този ред:

PS1="[t][u@h:w]$ "


Добавяне на псевдоними (alias)

Alias представлява псевдоним (алтернативно име) на дадена команда или последователности от команди и се използва за улеснение. Ако например искате всеки път вместо да пишете командата "cd /usr/local/share/" да напишете само GO трябва да направите следния псевдоним:

alias GO="cd /usr/local/share/"

За да не го пишете всеки път най-добре да го добавите във файлът .bash_profile.


Променливата PROMPT_COMMAND

Прменливата PROMPT_COMMAND се показва или изпълнява преди да се покаже самият промпт. Разгледайте следният пример:


[21:55:01][slaff@atlantis:~] PS1="[u@h:w]$ "
[slaff@atlantis:~] PROMPT_COMMAND="echo 2155"
2155
[slaff@atlantis:~] d
bin mail
2156
[slaff@atlantis:~]

Това което се случва е да се показва числото 2155 винаги преди показването на самият ред. Проблемът тук е, че 2155 не се показва на същия ред на който се показва и промпта. За целта ще използваме опцията -n на командата echo.

[slaff@atlantis:~] PROMPT_COMMAND="echo -n 2155"
2156[slaff@atlantis:~]$
2156[slaff@atlantis:~]$ d
bin mail
Вече нещата изглеждат по-добре.
Сега ще ви покажа как можете да накарате промта да показва размера който заема текущата директория.
Запишете следния Bash скрипт в /usr/local/bin директорията под името lsbytesum. Директория може и да е друга, стига да е посочена в променливата PATH.
___________________________________________________
#!/bin/bash
# lsbytesum - sum the number of bytes in a directory listing
TotalBytes=0
for Bytes in $(ls -l | grep "^-" | cut -c30-41)
do
let TotalBytes=$TotalBytes+$Bytes
done
TotalMeg=$(echo -e "scale=3 n$TotalBytes/1048576 nquit" | bc)
echo -n "$TotalMeg"
___________________________________________________
Направете този файл изпълним.

Променяме промпта:

[2158][slaff@atlantis:~]$ PS1="[u@h:w ($(lsbytesum) Mb)]$ "
[slaff@atlantis:~ (0 Mb)]$ cd /bin
[slaff@atlantis:/bin (4.498 Mb)]$
Това е. Вече имаме промпт, който показва колко е големината на текущата директория.
Нищо не пречи да се създадат и други промптове. Опитайте сами да създадете нов.


Цветове за Bash

Може би сте забелязали цветните съобщения при стартирането на RedHat.
Писането на цветни съобщения е елементарно. Нека да си направим наше цветно съобщение. Опитайте следния пример:
echo -e "�33[41;33;1m Welcome to Linux�33[m"
Тази команда ще изпечата "Welcome to Linux" с жълти букви на червен фон. Забележете, че текста е обграден от "�33[bg;fg;1m �33[m". Числото 41 указва, че фонът на буквите трябва да е червен, а 33 указва, че цвета на буквите трябва да е жълт.
Кодовете на цветовете са следните:

За цвят на фона: 30=черно, 31=червено, 32=зелено, 33=жълто, 34=синьо, 35=пурпурно, 36=тюркоазено, 37=бяло
За цвят на буквите: 0=прозрачно, 40=черно, 41=червено, 42=зелено, 43=жълто, 44=синьо 45=пурпурно, 46=тюркоазено, 47=бяло
Ако искаме да променим нашия надпис и да го направим с бели букви на син фон трябва да напишем следното
echo -e "�33[44;37;1m Welcome to Linux�33[m"
Ето и една примерна програма за Slackware дистрибуцията на Linux
___________________________________________________
#/bin/bash
version="`cat /etc/slackware-version`"
echo -e "�33[41;33;1m Welcome to Slackware $version�33[m"
___________________________________________________
Освен цветни съобщения може да имате и цветен промпт. Оцветяването на промпта става по същия начин както и нормален текст с тази разлика, че трябва да заградим текста с [�33[ и m]. За да получим светло син промпт трябва да направим следното

PS1="[�33[1;34m][$(date +%H%M)][u@h:w]$[�33[0m] "

Ето и кодовете за цвят на буквите:

Черно 0;30 Тъмно сиво 1;30
Синьо 0;34 Светло синьо 1;34
Зелено 0;32 Светло зелено 1;32
Цикламено 0;36 Светло цикламено 1;36
Червено 0;31 Светло червено 1;31
Пурпурно0;35 Светло пурпурно 1;35
Кафяво 0;33 Жълто 1;33
Светло сиво 0;37 Бяло 1;37
Ако искате вашият промпт да бъде със светло синьо на червен фон трябва да използвате следната комбинация:
[�33[44;1;31m]
или
[�33[44m][�33[1;31m]
Допълнителни кодове:
4: Подчертан, 5: Мигащ, 8: Невидим


Страници: «1 2 3 »

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com