:::: MENU ::::

Памятка пользователя Linux Ubuntu для постоянно забывающих все чайников )))

Вспомним …

mc поиск ctrl+s

apt-get remove, intstall ...

synaptic - гафический менеджер пакетов linux
remarkable - markdown editor
amarok - music pleer

ubuntu скрыть все окна ctrl+win+d
mint скрыть все окна ctrl_alt+d

ctrl-c - сигнал закрыть программу
ctrl-z - приостановить программу
fg - вернуть программу(остается привязка к терминалу)
bg - вернуть программу(отвязывается от терминала)

gedit main.py& - откроет gedit и отвяжет от терминала 

jobs - список запущенных программ
kill %1 - убить первую программу в списке jobs
kill 164 - убить по PID

sudo -i - аналог su в ubuntu

chmod +x /path/to/your/file - делаем файл исполняемым
chmod +x *.bundle

sudo apt-get remove openocd - Удалить только openocd
sudo apt-get remove --auto-remove openocd - Удаление openocd и ее зависимости

alias emacs='emacs -nw'

ln -nfs dir_name link_name перевесит ссылку link_name на папку dir_name.
-s - тут все понятно, указываем, что хотим симлинку
-f - опция разрешает переписывать существующую симлинку
-n - тут весь смак: опция говорит не обращать внимания на то, является ли объект файлом или директорией

git clone git://github.com/kivy/kivy

sudo openocd -f /board/stm32ldiscovery.cfg
telnet localhost 4444
reset halt
flash write_image erase /home/sasha/Project_X/NewGenSTM32/qt_start2/main.hex
reset run

arm-none-eabi-gdb main.elf
target remote localhost:3333
load LEDblink
symbol-file LEDblink
monitor reset halt
load main.hex
monitor reset halt
file main.elf
break 22
break main
step
continue


grep
 "main(" *.c

rm -f - без запросов и сообщений -r - рекурсивное удаление катологов
********************************************************************

ldconfig - создаёт необходимые привязки и кэш для большинства необходимых динамических библиотек, найденных в каталогах, которые указываются в командной строке, в файле /etc/ld.so.conf, и в доверенные каталогах (/lib и /usr/lib). Созданный кэш используется компановщиками ld.so и ld-linux.so, которые выполняют связывание во время выполнения.

После установки динамические - подключаемые файлы(заголовки, исходники) кладутся в:
/usr/local/include
/usr/local/include/opencv

Объектные файлы кладутся в:
/usr/local/lib

Для связывания объектных файлов создается "opencv.conf" в:
/etc/ld.so.conf.d

И после запускается 
ldconfig


gcc -Idir - добавляет директории для поиска header файлов
gcc -Ldir looks in directory for library files. 
*********************************************************************

в Linux в случае успеха программа возращает 0
 в случае ошибки -1

. - текущая директория
.. - на одну директорию выше

*********************************************************************

# user setting
export PATH=$PATH:/home/sasha/Soft/SublimeText2
export PATH=$PATH:/home/sasha/Soft/Popcorn-Time
export EDITOR=/home/sasha/Soft/SublimeText2/subl

********************************************************************
etc/rc.local - команды автозагрузки????
********************************************************************

GITHUB

git clone git://github.com/kivy/kivy

git config --global user.name "username"
git config --global user.email "sasha.antonov1989@gmail.com"

git init
git add *
git status

git commit -m 'init repo comment'

git remote add rep https://github.com/sasha-antonov/OCV_test.git - привязка к удал. репозиторию

git remote set-url rep https://github.com/sasha-antonov/OCV_test.git - изиенение адреса удал. репозитория 

git pull rep master - обязательно перед push
git push rep master 

***************************************************************************

sudo openocd -f board/stm32f4discovery.cfg
***************************************************************************
Add /usr/local/go/bin to the PATH environment variable. You can do this by adding this line to your /etc/profile (for a system-wide installation) or $HOME/.profile:

export PATH=$PATH:/usr/local/go/bin
****************************************************************************
VIM

set wildmenu
set wcm=<Tab>
menu Exit.quit :quit<CR>
menu Exit.quit! :quit!<CR>
menu Exit.save :exit<CR>
map <F9> :emenu Exit.<Tab>

map <F10> :quit!<CR>

****************************************************************************
EMACS

C-X X-C - выход
C-Z fg - заснуть, разбудить
C-X C-S - сохранить
C-X S - сохранить все
C-W - вырезать
M-W - копировать
C-Y - вставить

M-> - в конец
M-< в начало

С-S - Искать вперед
C-R - искать назад
С-/ или С-X U - undo, отмена последнего действия
С-G - отмена ввода команды (приер C-X C-F ... C-g)

C-X C-F - открыть файл (работа с буферами)
C-X C-B - показать все буферы
C-X B name - перейти в буфер name
C-X 1 - закрыть все окна кроме главного
С-X 2 - открыть второе окно 
C-X 4 C-F name
C-X O - переключиться на сл. окно

C-L C-L - курсор распоожить строку вверху экрана 

C-H - справка

(global-set-key (kbd "<f4>") 'kill-emacs) ; F3 key


***************************************************************

КОМПИЛЯЦИЯ:

arm-none-eabi-gcc -Wall -mcpu=cortex-m4 -mlittle-endian -mthumb -ISTM32CubeF4Root/Drivers/CMSIS/Device/ST/STM32F4xx/Include -ISTM32CubeF4Root/Drivers/CMSIS/Include -DSTM32F401xE -Os -c system.c -o system.o

-Wall – enable all warnings
-mcpu=cortex-m4 – specify the target processor
-mlittle-endian – прямой порядок данных в памяти (младший байт по младшему адресу)
-mthumb – generate core that executes in Thumb states
-mthumb-interwork – generate code that supports calling between the ARM and Thumb instruction sets (see comments)
-ISTM32CubeF4Root/Drivers/CMSIS/Include – append directory to compiler list of directories which will be used to search for headers included with #include preprocessor directive. Note: replace STM32CubeF4Root with an absolute path to your STM32 Cube root directory
-DSTM32F401xE – define target processor (used in device header files)
-Os – optimize for size
-c – do not run linker, just compile
system.c – input file name
-o system.o – output file name

ЛИНКУЕМ:

arm-none-eabi-gcc -mcpu=cortex-m4 -mlittle-endian -mthumb -DSTM32F401xE -TSTM32CubeF4Root/Projects/STM32F4xx-Nucleo/Templates/TrueSTUDIO/STM32F4xx-Nucleo/STM32F401CE_FLASH.ld -Wl,--gc-sections system.o main.o startup_stm32f401xe.o -o main.elf

-TSTM32CubeF4Root/Projects/STM32F4xx-Nucleo/Templates/TrueSTUDIO/STM32F4xx-Nucleo/STM32F401CE_FLASH.ld – use specific linker script, I use script provided in STM32 Cube package. As above, you need to replace STM32CubeF4Root with an absolute path to your STM32 Cube root directory
-Wl,--gc-sections – enable garbage collection of unused input sections
system.o main.o startup_stm32f401xe.o – input files
-o main.elf – output file name


КОНВЕРТИРУЕМ из ELF в HEX

arm-none-eabi-objcopy -Oihex main.elf main.hex

************************************************************
 
sudo add-apt-repository ppa:test/test
sudo apt-get update
sudo apt-get install test
sudo apt-get install ppa-purge
sudo ppa-purge ppa:test/test              удаление