bash - andyceo/documentation GitHub Wiki
Чтобы создать алисасы команд для своего профиля (своего пользователя), нужно создать в своей папке home файл .bash_profile
и скопировать туда содержимое файла .profile
(т.к. при наличии .bash_profile
, .profile
не читается), а затем дописать в конец файла следующие алиасы:
#aliases for commands. added by andyceo (see http://dokuwiki.ruware.com/doku.php?id=ubuntu_8.04:bash_alias)
#DRUPAL 6.x
alias d6='cd ~/hosts/drupal6'
alias d6s='cd ~/hosts/drupal6/sites/'
alias d6l='cd ~/hosts/drupal6/sites/libraries'
alias d6p='cd ~/drupal_projects'
alias d6m='cd ~/hosts/drupal6/sites/all/modules'
alias d6mc='cd ~/hosts/drupal6/sites/all/modules/contrib'
alias d6mi='cd ~/hosts/drupal6/sites/all/modules/intecco'
alias d6mr='cd ~/hosts/drupal6/sites/all/modules/ruwaredotcom'
alias d6t='cd ~/hosts/drupal6/sites/all/themes'
alias d6tc='cd ~/hosts/drupal6/sites/all/themes/contrib'
alias d6ti='cd ~/hosts/drupal6/sites/all/themes/intecco'
alias d6tr='cd ~/hosts/drupal6/sites/all/themes/ruwaredotcom'
alias tard6m='tar -zcf ~/hosts/files.ruware.com/d6m.tar.gz ~/hosts/drupal6/sites/all/modules'
alias tard6mc='tar -zcf ~/hosts/files.ruware.com/d6mc.tar.gz ~/hosts/drupal6/sites/all/modules/contrib'
#DRUPAL 7.x
alias d7='cd ~/hosts/drupal7'
alias d7s='cd ~/hosts/drupal7/sites/'
alias d7l='cd ~/hosts/drupal7/sites/libraries'
alias d7p='cd ~/drupal_projects'
alias d7m='cd ~/hosts/drupal7/sites/all/modules'
alias d7mc='cd ~/hosts/drupal7/sites/all/modules/contrib'
alias d7mi='cd ~/hosts/drupal7/sites/all/modules/intecco'
alias d7mr='cd ~/hosts/drupal7/sites/all/modules/ruwaredotcom'
alias d7t='cd ~/hosts/drupal7/sites/all/themes'
alias d7tc='cd ~/hosts/drupal7/sites/all/themes/contrib'
alias d7ti='cd ~/hosts/drupal7/sites/all/themes/intecco'
alias d7tr='cd ~/hosts/drupal7/sites/all/themes/ruwaredotcom'
alias tard7m='tar -zcf ~/hosts/files.ruware.com/d7m.tar.gz ~/hosts/drupal7/sites/all/modules'
alias tard7mc='tar -zcf ~/hosts/files.ruware.com/d7mc.tar.gz ~/hosts/drupal7/sites/all/modules/contrib'
В файле .bashrc
в домашней директории профиля можно добавить следующую функцию для cvs
команды извлечения модуля в текущую папку в директорию, равной имени модуля. Вот пример этой команды для модуля coder
:
cvs -z6 -d:pserver:anonymous:[email protected]:/cvs/drupal-contrib checkout -r DRUPAL-6--2-0-BETA1 -d coder contributions/modules/coder
#andyceo added
cvsdm () { # for checkout/update drupal module in current directory
cvs -z6 -d:pserver:anonymous:[email protected]:/cvs/drupal-contrib checkout -r $2 -d $1 contributions/modules/$1
}
Поэтому, для того, чтобы выполнить предыдущую команду, нужно набрать команду:
cvsdm coder DRUPAL-6--2-0-BETA1
Вот полный список полезных функций:
#andyceo added (see http://dokuwiki.ruware.com/doku.php?id=ubuntu_8.04:bash_comargs)
cvsdm () { # for checkout/update drupal module in current directory
cvs -z6 -d:pserver:anonymous:[email protected]:/cvs/drupal-contrib checkout -r $2 -d $1 contributions/modules/$1
}
cvsdt () { # for checkout/update drupal theme in current directory
cvs -z6 -d:pserver:anonymous:[email protected]:/cvs/drupal-contrib checkout -r $2 -d $1 contributions/themes/$1
}
cvsdp () { # for checkout/update drupal profile in current directory
cvs -z6 -d:pserver:anonymous:[email protected]:/cvs/drupal-contrib checkout -r $2 -d $1 contributions/profiles/$1
}
+--------------------+----------------------+-----------------+-----------------+
| | parameter | parameter | parameter |
| | Set and Not Null | Set But Null | Unset |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter:-word} | substitute parameter | substitute word | substitute word |
| ${parameter-word} | substitute parameter | substitute null | substitute word |
| ${parameter:=word} | substitute parameter | assign word | assign word |
| ${parameter=word} | substitute parameter | substitute null | assign word |
| ${parameter:?word} | substitute parameter | error, exit | error, exit |
| ${parameter?word} | substitute parameter | substitute null | error, exit |
| ${parameter:+word} | substitute word | substitute null | substitute null |
| ${parameter+word} | substitute word | substitute word | substitute null |
+--------------------+----------------------+-----------------+-----------------+
Ссылка: How to check if a variable is set in Bash?
+-----------------------+-------+-------+-----------+
| VAR is: | unset | empty | non-empty |
+-----------------------+-------+-------+-----------+
| [ -z "${VAR}" ] | true | true | false |
| [ -z "${VAR+set}" ] | true | false | false |
| [ -z "${VAR-unset}" ] | false | true | false |
| [ -n "${VAR}" ] | false | false | true |
| [ -n "${VAR+set}" ] | false | true | true |
| [ -n "${VAR-unset}" ] | true | false | true |
+-----------------------+-------+-------+-----------+
Ссылка: How to determine if a bash variable is empty?
-
if [ -d "$DIRECTORY" ]; then
: проверка что папка существует. Символическая ссылка также пройдет проверку -
if [ -L "$LINK_OR_DIR" ]; then
: сработает, если$LINK_OR_DIR
является символической ссылкой
Ссылки:
Сравнения:
-eq | equal to
-ne | not equal to
-lt | less than
-le | less than or equal to
-gt | greater than
-ge | greater than or equal to
Файловые операции
-s | file exists and is not empty
-f | file exists and is not a directory
-d | directory exists
-x | file is executable
-w | file is writable
-r | file is readable
Ссылки:
Управлять ведением истории можно с помощью файла ~/.bashrc
и специальных переменных окружения.
mcedit ~/.bashrc
HISTCONTROL=ignoreboth:erasedups
HISTIGNORE='history:exit:df:df *:cd:cd ..*:ls:ls *:git *:mc:sudo mc:htop:lscpu:ps:pip list'
HISTSIZE=1000000
HISTFILESIZE=1000000
source ~/.bashrc
Ссылки:
-
Как узнать какой shell я использую?
$ echo $0 -bash
или
$ echo $SHELL /bin/bash