Давайте определим псевдоним, используя одинарные кавычки:
$ alias d='$(date)'
Теперь давайте извлечем определение псевдонима:
$ alias d
alias d='$(date)'
Обратите внимание, что подстановка команд еще не производилась.
Давайте сделаем то же самое, но на этот раз с двойными кавычками:
$ alias d="$(date)"
$ alias d
alias d='Fri Oct 28 17:01:12 PDT 2016'
Поскольку используются двойные кавычки, подстановка команд была выполнена до того, как был определен псевдоним.
Давайте попробуем выполнить версию с одинарными кавычками:
$ alias d='$(date)'
$ d
bash: Fri: command not found
Версия с одинарными кавычками эквивалентна выполнению:
$ $(date)
bash: Fri: command not found
В обоих случаях подстановка команды выполняется при выполнении команды.
Давайте рассмотрим этот псевдоним, который использует подстановку команд и определяется с помощью одинарных кавычек:
$ alias e='echo $(date)'
$ e
Fri Oct 28 17:05:29 PDT 2016
$ e
Fri Oct 28 17:05:35 PDT 2016
Каждый раз, когда мы запускаем эту команду, дата
вычисляется снова. При использовании одинарных кавычек подстановка команд выполняется при выполнении псевдонима, а не при его определении.
В Debian в /etc/mysql/debian.cnf
находится пароль пользователя debian-sys-maint .
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Используя имя пользователя и пароль в разделе [client], вы можете изменить пароль root после установки MySQL.
Тогда вы можете сделать это:
PASS=`sudo awk '/password/ { print $3;exit }' /etc/mysql/debian.cnf`
echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');" \
| mysql -u debian-sys-maint -p$PASS
Я полагаю, что вы пытаетесь подключиться к mysql-серверу, не запуская его.
В mysql у вас есть два основных компонента: сервер (mysqld
) и клиент (mysql
). Ваш первый звонок
apt-get install mysql-server php5-mysql
устанавливает сервер (и поддержку mysql для php). Вы не указываете клиент mysql в этом вызове, но он будет установлен автоматически. Затем вам нужно запустить сервер. В CentOS это можно сделать (не уверен насчет Ubuntu, но, вероятно, что-то подобное) позвонив в
# /etc/rc.d/init.d/mysqld start
и только после этого вы можете подключиться к серверу mysql с помощью команды
$ mysql -u root