Programming, robotics, traveling

16 Apr 2020

Заметка по работе с Bash

У меня накопилось достаточно большое количество переодически гуглящихся вещей, которые хочу структурировать в этой заметке. Заметка будет обновлена.

Bash

Перенаправления и pipe

| - передача аргумента
> – передача вывода команды в новый файл или перезапись существующего файла
>> - передача вывода команды в новый файл или дозапись с конца

Стандартный вывод команды происходит с числом 1, вывод ошибок с числом 2. Выводы перенаправлять в разные файлы отдельно.

2>&1 – перенаправляет вывод ошибки на стандартный вывод, поэтому они появляются вместе и могут быть совместно перенаправлены в файл.
2>1 – перенаправит вывод ошибки в файл с именем 1, а не в стандартный вывод 1.

Источники:

Параллельно исполнение в Bash

nohup - запускает с игнорирование потери связи с пользователем (при выходе пользователя из системы все будет продолжаться в фоновом режиме)

Источники:

Полезные ссылки

  • Изменение значения окружения указывающей на разделение списка f-notes.info
  • Хороший справочник по встроенным командам bash losst.ru
  • bash awk habr.ru
  • bash uniq (удаление повторов строк) linux.org.ru
  • разница return and exit stackoverflow
  • Вывод echo \r losst.ru
  • переменные окружения env, $SHELL, $EDITOR unix1.jinr.ru
  • firewall gui centos – system-config-firewall

Отладка программ

  • strace - системные вызовы
  • ltrace - трейсить вызовы из SO
  • ldd - посмотреть зависимые библиотеки

Посмотреть какому пакету принадлежит файл

sudo dpkg -S FILE

Посмотреть какие файлы принадлежат пакету

sudo dpkg -L ros-kinetic-catkin

Проверка версии Debian

lsb_release -a

image

Копирование с exclude

rsync -av --progress * --exclude sakis_install.sh
sudo cp -r * -i sakis_install.sh

Поиск

Дебиан просто так не завелся

Добавление прав для выполнения sudo:

usermod -a -G sudo artem

Установление норм репы в/etc/apt/sources.list

Мощное удаление всего что можно APT

sudo apt-get remove lxde-common lxde-icon-theme omxplayer x11-common midori lxde python3 python3-minimal
sudo apt-get remove $(sudo dpkg --get-selections | grep -v "deinstall" | grep x11 | sed s/install//)
sudo apt-get remove $(sudo dpkg --get-selections | grep -v "deinstall" | grep audio | sed s/install//)
sudo apt-get autoremove

Debian packages

Настройка сети ubuntu server

Очистить history

cat /dev/null > ~/.bash_history && history -c && exit

Screen

Unconfigure

virt-sysprep virt-configure

Название вкладки

image

Работа с логами

Logrotate in ROS

ROS: Переполнение логов

Стандартная утилита для мониторинга и чистки http://wiki.ros.org/rosclean https://answers.ros.org/question/258978/is-there-an-alternative-way-to-get-rid-of-ros-log-files/

image

image

Переполнение логов 20 метров (то, что я сохранил) .ros/log/cecd58fa-972b-11e7-ad41-3974d4b0fb26

Скрипт очистки логов, если накопилось более 300MB

if [[ $(du -s .ros | awk '{ print $1 }') -ge 300000 ]]; then yes | rosclean purge; echo "urpylka: cleaned ros log"; fi

macOS

Удаление любых программ на macos

geektimes.ru/post/297121/

mkdir /Applications/*.app/Contents/_MASReceipt && sudo touch /Applications/*.app/Contents/_MASReceipt/receipt

lifehacker.ru/2015/10/06/chto-takoe-system-integrity-protection-v-os-x-el-capitan-i-kak-ee-otklyuchit/

support.apple.com/en-us/HT204899

Sounds like it could be System Integrity Protection? Make sure it’s disabled before you mess around with system files.

To disable it, restart in recovery mode (hold ⌘+R), open Terminal, and use this command:

csrutil disable

Установка гостевой штуки для VirtualBox

/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso

sudo apt-get install dkms build-essential

Настройка гостевой штуки serverfault.com/questions/674974/how-to-mount-a-virtualbox-shared-folder/674978

sudo mount -t vboxsf share moint_poin

Update Coda License

sudo rm ~/Library/Preferences/com.panic.Coda2.plist

Cron on macOS ole.michelsen.dk/blog/schedule-jobs-with-crontab-on-mac-osx.html

crontab -l
0 12 * * *  rm /Users/smirart/Library/Preferences/com.panic.Coda2.plist

Смена TTL на macOS

sudo sysctl -w net.inet.ip.ttl=65

Скрипт для создания скрипта)))

echo "#! /bin/bash"
>
 ch_ttl.sh
echo "sudo sysctl -w net.inet.ip.ttl=65"
>
>
 ch_ttl.sh
chmod +x ch_ttl.sh

Resize volume on macos

losetup macos

hdiutil attach build_server_backup.img

ctrld.me/blog/2009/10/03/rabotaem-s-obrazami-diskov-v-terminal-app-hdiutil/

Монитрование файловых систем ext2, ext3, ext4

Cкрин окна с тенью на macOS

cmd+shift+4+space

на маке что исправлено

  1. сочетание клавишь для заметок на com+T для создания новой
  2. Настроить терминал: перемещение словами, перемещение в начало и конец строки
  3. Ctrl + k удаление строки в nano
  4. Поиск по истории bck-i-search (типа ctrl+i)

Использования мака в качестве монитора

support.apple.com/en-us/ht204592

Wireshark

мониторинг пакетов с помощью wireshark tcpdump

image

ip.addr == 192.168.11.1 and udp and udp.port == 14550

VSCODE

CMD + / - комментирование

Неразрывные символы