Совет дня:
Как заблокировать пакеты для обновления и все таки обновить их потом при необходимости (для
после установки защитите версии пакетов от обновления.
при необходимости обновления можно принудительно разрешить
опубликовано в @gitgate
#tips #apt
Как заблокировать пакеты для обновления и все таки обновить их потом при необходимости (для
apt
дистрибутивов)после установки защитите версии пакетов от обновления.
apt-mark hold <PACKAGENAME>
при необходимости обновления можно принудительно разрешить
apt-get install -y --allow-change-held-packages <PACKAGENAME>
опубликовано в @gitgate
#tips #apt
👍46🔥9
Совет дня:
Разные варианты команды
опубликовано в @gitgate
#tips #grep
Разные варианты команды
grep
и ключи для смены режимов в базовом grep
grep = grep -G # базовое регулярное выражение (BRE)
fgrep = grep -F # фиксированный текст, игнорирующий мета-символы
egrep = grep -E # расширенное регулярное выражение (ERE)
rgrep = grep -r # рекурсивный
опубликовано в @gitgate
#tips #grep
👍21🔥7
Совет дня:
Звуковой сигнал в консоли заданного тона и длительности. Например для оповещений об ошибках.
Вообще интересная утилитка, позволяющая проигрывать и WAV, и раздельно левый правый канал и много чего еще.
опубликовано в @gitgate
#tips #speaker #beep
Звуковой сигнал в консоли заданного тона и длительности. Например для оповещений об ошибках.
TONE=3500 #от 500 до 3500
(speaker-test -t sine -f $TONE) & pid=$!;sleep 0.1s;kill -9 $pid
Вообще интересная утилитка, позволяющая проигрывать и WAV, и раздельно левый правый канал и много чего еще.
опубликовано в @gitgate
#tips #speaker #beep
👍15🔥8
Совет дня:
Условные выражения для файлов в
PS. в линукс все есть файл или поток :)
PPS. И переменные окружения.
опубликовано в @gitgate
#tips #bash
Условные выражения для файлов в
bash
## True if file exists.
[[ -a ${file} ]]
## True if file exists and is a block special file.
[[ -b ${file} ]]
## True if file exists and is a character special file.
[[ -c ${file} ]]
## True if file exists and is a directory.
[[ -d ${file} ]]
## True if file exists.
[[ -e ${file} ]]
## True if file exists and is a regular file.
[[ -f ${file} ]]
## True if file exists and is a symbolic link.
[[ -h ${file} ]]
## True if file exists and is readable.
[[ -r ${file} ]]
## True if file exists and has a size greater than zero.
[[ -s ${file} ]]
## True if file exists and is writable.
[[ -w ${file} ]]
## True if file exists and is executable.
[[ -x ${file} ]]
## True if file exists and is a symbolic link.
[[ -L ${file} ]]
PS. в линукс все есть файл или поток :)
PPS. И переменные окружения.
опубликовано в @gitgate
#tips #bash
👍38🔥13
Совет дня:
Условные выражения для строковых переменных в
опубликовано в @gitgate
#tips #bash
Условные выражения для строковых переменных в
bash
# True if the shell variable varname is set (has been assigned a value).
[[ -v ${varname} ]]
# True if the length of the string is zero.
[[ -z ${string} ]]
# True if the length of the string is non-zero.
[[ -n ${string} ]]
# True if the strings are equal. = should be used with the test command for POSIX conformance. When used with the [[ command, this performs pattern matching as described above (Compound Commands)
[[ ${string1} == ${string2} ]]
# True if the strings are not equal.
[[ ${string1} != ${string2} ]]
# True if string1 sorts before string2 lexicographically.
[[ ${string1} < ${string2} ]]
# True if string1 sorts after string2 lexicographically.
[[ ${string1} > ${string2} ]]
опубликовано в @gitgate
#tips #bash
👍31🔥10
Совет дня:
Арифметические операции в
опубликовано в @gitgate
#tips #bash
Арифметические операции в
bash
# Returns true if the numbers are equal
[[ ${arg1} -eq ${arg2} ]]
# Returns true if the numbers are not equal
[[ ${arg1} -ne ${arg2} ]]
# Returns true if arg1 is less than arg2
[[ ${arg1} -lt ${arg2} ]]
# Returns true if arg1 is less than or equal arg2
[[ ${arg1} -le ${arg2} ]]
# Returns true if arg1 is greater than arg2
[[ ${arg1} -gt ${arg2} ]]
# Returns true if arg1 is greater than or equal arg2
[[ ${arg1} -ge ${arg2} ]]
# As with other programming languages you can use AND & OR conditions:
[[ test_case_1 ]] && [[ test_case_2 ]] # And
[[ test_case_1 ]] || [[ test_case_2 ]] # Or
опубликовано в @gitgate
#tips #bash
👍15🔥10
Совет дня:
прокси только для apt, но не для системы в целом
Альтернативный способ, чтобы не прописывать прокси в систему (мы же за безопасность) можно ее прям команде скормить, например:
опубликовано в @gitgate
#tips #apt #proxy
прокси только для apt, но не для системы в целом
cat <<EOF | sudo tee /etc/apt/apt.conf.d/90curtin-aptproxy
Acquire::http::Proxy "http://10.20.30.40:3128";
Acquire::https::Proxy "http://10.20.30.40:3128";
EOF
Альтернативный способ, чтобы не прописывать прокси в систему (мы же за безопасность) можно ее прям команде скормить, например:
http_proxy=http://10.20.30.40:3128 https_proxy=http://10.20.30.40:3128 HTTP_PROXY=http://10.20.30.40:3128 HTTPS_PROXY=http://10.20.30.40:3128 apt update
(это все одной строкой, просто переменные прокси указываются перед командой)опубликовано в @gitgate
#tips #apt #proxy
👍29🔥13
Совет дня:
Перманентно отключить
и добавить в файл:
Но можно и через
После чего обновите загрузчик:
Проверить:
опубликовано в @gitgate
#tips #ipv6
Перманентно отключить
IPv6
в linux
системеvi /etc/sysctl.d/10-ipv6off.conf
и добавить в файл:
# Disabling the IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Но можно и через
grub
:vi /etc/default/grub
#найдите строку содержащую
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
#добавьте "ipv6.disable=1" в опции
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
После чего обновите загрузчик:
sudo update-grub
Проверить:
ip a | grep inet6
опубликовано в @gitgate
#tips #ipv6
👍30🔥7
Совет дня:
Улучшаем читаемость истории комманд.
Может быть полезно показать, когда была выполнена команда. Определите переменную окружения
в результете вывод команды
Добавка от Александр Дьяченко:
Чтобы сохранить изменения после перезагрузки - добавьте команду в
Добавка от Иван Маленков:
Действует только с момента определения переменной. Все предыдущее строки в истории будет показаны с временем определения переменной.
опубликовано в @gitgate
#tips
Улучшаем читаемость истории комманд.
Может быть полезно показать, когда была выполнена команда. Определите переменную окружения
HISTTIMEFORMAT
, чтобы настроить это. Она использует стандартные шаблоны даты и времени Здесь %F
указывает дату, а %T
— время.export HISTTIMEFORMAT='%F %T - '
в результете вывод команды
history
примет красивый читаемый вид с временными метками: 1 2023-04-04 06:20:20 - ls
2 2023-04-04 06:20:25 - cat /etc/passwd
3 2023-04-04 06:20:29 - whoami
4 2023-04-04 06:20:32 - history
Добавка от Александр Дьяченко:
Чтобы сохранить изменения после перезагрузки - добавьте команду в
~/.bashrc
для пользователя или в общий /etc/profile
echo "export HISTTIMEFORMAT='%F %T - '" >> /etc/profile
Добавка от Иван Маленков:
Действует только с момента определения переменной. Все предыдущее строки в истории будет показаны с временем определения переменной.
опубликовано в @gitgate
#tips
👍33🔥12
Совет дня:
Неожиданно - если при установке
Подсказал: @Tagd_Tagd
опубликовано в @gitgate
#tips #debian #sudo
Неожиданно - если при установке
Debian
оставить пароль root
пустым, то пакет sudo
будет установлен автоматически и первый пользователь будет включен в группу sudo
.Подсказал: @Tagd_Tagd
опубликовано в @gitgate
#tips #debian #sudo
🔥29👍12
SystemRescue
- диск восстановления системы Linux
, доступный в виде загрузочного CD-ROM
или USB
-накопителя для администрирования или восстановления вашей системы и данных после сбоя. Он призван обеспечить простой способ выполнения задач администрирования на вашем компьютере, таких как создание и редактирование разделов жесткого диска.Он поставляется с большим количеством программного обеспечения, такого как инструменты управления дисками (
parted
, partimage
, fsarchiver
, инструменты файловой системы, ...), программы сетевого администрирования и простые текстовые редакторы. Его можно использовать как на компьютерах Linux
, так и на компьютерах Windows
, а также на настольных компьютерах и серверах.Cистема не требует установки, так как ее можно загрузить с
CD/DVD
-привода, USB
-накопителя или из сети с помощью PXE
. Но при желании ее можно установить на жесткий диск. Она поставляется с обновленными ядрами для поддержки новейшего оборудования, а также всех важных файловых систем (ext2
/ext3
/ext4
, xfs
, btrfs
, ntfs
, reiserfs
, vfat
), а также сетевых файловых систем (samba
и nfs
).https://sourceforge.net/projects/systemrescuecd/
Подсказал: Алексей Агафонов - @supmea
опубликовано в @gitgate
#hdd #tools #resque #iso #boot #linux #tips #windows
👍16🔥6
Совет дня:
А вы знали что помимо
Утилитка
Подсказал: Сергей - @nu_tab_5
опубликовано в @gitgate
#tips
А вы знали что помимо
tee
, который читает из стандартного ввода и пишет в стандартный вывод и файлы, такой же трюк можно сделать и с пайпами ? Утилитка
pee
(входит в состав пакета moreutils
) - так же как tee
, но для пайпов ! cat file | pee sort 'wc -l'
Подсказал: Сергей - @nu_tab_5
опубликовано в @gitgate
#tips
👍25🔥9
Совет дня:
Пример:
Версия от @Tagd_Tagd
Пример:
Подсказал: @Tagd_Tagd
опубликовано в @gitgate
#tips #calc #alias #awk
Bash
алиас - простой калькулятор на awk
Версия от @nu_tab_5alias calc='_(){ awk "BEGIN{print $*}";};_'
Пример:
calc 1+2/3
если со скобками нужны кавычки: calc "(7+5)^2-1"
Если нужны функции, для тех, у кого gawk:Версия от @Tagd_Tagd
alias calc='_(){ gawk "BEGIN{pi=atan2(0,-1);e=exp(1);print $*}";};_'
Пример:
calc "sin(pi^e+1/3)"
если без скобок - можно и не кавычить.Подсказал: @Tagd_Tagd
опубликовано в @gitgate
#tips #calc #alias #awk
👍30🔥9
Совет дня:
Как после например добавления диска в виртуалку принудительно перечитать в системе диски ?
#tips
Как после например добавления диска в виртуалку принудительно перечитать в системе диски ?
echo 1>/sys/class/block/sda/device/rescanА вот @Fenix917 подсказал как перечитать состояние
scsi
/sata
/sas
контролеров.echo "- - -" > /sys/class/scsi_host/hostX/scanА Илья - @Zizibob подсказал как отключить контроллер для горячей замены
echo 1 > /sys/block/sda/device/deleteопубликовано в @gitgate
#tips
👍32🔥10
Совет дня:
можно управлять
пример:
для чего это может понадобиться и насколько удобно - пофантазируйте сами :)
добавка от Max Zotov - @sf1nk5 - а можно сразу так
https://sleeplessbeastie.eu/2021/03/03/how-to-manage-systemd-services-remotely/
опубликовано в @gitgate
#tips #systemd #timer #remote
можно управлять
systemd timers
на удаленных узлах по ssh
пример:
ssh user@remote_host "sudo systemctl start example.timer"
для чего это может понадобиться и насколько удобно - пофантазируйте сами :)
добавка от Max Zotov - @sf1nk5 - а можно сразу так
https://sleeplessbeastie.eu/2021/03/03/how-to-manage-systemd-services-remotely/
опубликовано в @gitgate
#tips #systemd #timer #remote
👍8🔥5
Совет дня:
Как на одном узле забиндить кучу сервисов на один и тот же порт ? Используйте магию
Естественно обращаться к сервисам придется по их IP. но это по прежнему все еще один узел.
PS. 16.777.214 (2 в 24 степени минус 2 адреса). Именно столько и можно набиндить :)
опубликовано в @gitgate
#tips
Как на одном узле забиндить кучу сервисов на один и тот же порт ? Используйте магию
localhost
сети 127.0.0.0/8
!127.0.0.2:80
127.0.0.3:80
127.0.0.4:80
Естественно обращаться к сервисам придется по их IP. но это по прежнему все еще один узел.
PS. 16.777.214 (2 в 24 степени минус 2 адреса). Именно столько и можно набиндить :)
опубликовано в @gitgate
#tips
👍45🔥19