Last active
April 4, 2023 07:48
-
-
Save IFilonov/876b8e4e122af42c9b19f227ba0737dc to your computer and use it in GitHub Desktop.
Install commands Ubuntu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Ubuntu | |
| sudo apt-get install language-pack-ru --установка русской локали | |
| sudo apt-get install firefox-locale-ru -- русский для firefox | |
| sudo apt install numix-gtk-theme numix-icon-theme --установка темы Numix | |
| sudo apt install unity-tweak-tool --для управления темой и расширенными настройками | |
| -- Установка расширения VirtualBox GuestAddtion | |
| sudo apt-get install virtualbox-guest-additions-iso | |
| --environment variables -- | |
| env, printenv -- see list only the environment variables | |
| printenv HOME -- check whether this variable is an environment variable or not | |
| echo $BASH_VERSION -- see one any variable env or shell | |
| bash -c 'echo $MY_VAR' -- check whether this variable is an environment variable or not by new shell | |
| set -- see list all variables, including environment, shell and variables, and shell functions | |
| -- this way of creation vars are for variable only in the current session: | |
| MY_VAR='Linuxize' -- set shell vatiable | |
| export MY_VAR -- set environment variable (before create shell variable) | |
| export MY_NEW_VAR="My New Var" -- set environment variables in a single line | |
| -- create persistent Environment Variables | |
| edit /etc/environment, add: VAR_TEST="Test Var" | |
| edit /etc/profile, add: export MY_NEW_VAR="My New Var" | |
| edit ~/.bashrc (per user), add: export MY_NEW_VAR="My New Var" | |
| -- применение изменений переменных окружения | |
| source ~/.bashrc или source /etc/profile для применения изменений в сессии. | |
| Требуется перезагрузка для применения изменений во всех сессиях по умолчанию | |
| -- Применить переменные окружения из файла .env | |
| if [ -f .env ]\nthen\n export $(cat .env | sed 's/#.*//g' | xargs)\nfi | |
| -- Работа с файлами | |
| --Переименовать файлы *.yml.example в *.copy | |
| for f in *.yml.example; do mv -- "$f" "${f%.yml.example}.copy"; done | |
| --Копировать файлы *.yml.example в *.yml | |
| for f in *.yml.example; do cp -- "$f" "${f%.yml.example}.yml"; done | |
| --Копировать файлы *.yml.example в *.yml.example.copy | |
| find . -type f -name '*.yml.example' -exec cp {} {}.copy ';' | |
| --Уменьшение лога журнала | |
| nano /etc/systemd/journald.conf | |
| SystemMaxUse=100M | |
| service systemd-journald restart | |
| Curl | |
| sudo apt install curl | |
| # посылка пост запроса: | |
| curl -X POST -H "Content-Type: application/json" --data '{"type":1, "value": 2.23}' http://10.109.161:217:3050/api/v1/cm_shipments/create | |
| или | |
| curl -X POST http://localhost:9292/orders.json -H "Content-Type: application/json" -d '{"signal": "new", "type": "videocomfort"}' | |
| # http запрос из файла с параметром (в файл curl.sh заносим): | |
| curl --request POST \ | |
| --insecure \ | |
| --url https://ali.aliway.ru/api/v1/cainiao/get-logistics-orders \ | |
| --header 'authorization: Token 3cad50dd411713296687238630c12f7b11f5ec02' \ | |
| --header 'content-type: application/json' \ | |
| --data "{ | |
| \"order_id\" : $1 | |
| }" | python3 -m json.tool | |
| # затем вызываем | |
| ./curl.sh 5016126748872939 | |
| Git | |
| sudo apt install git | |
| git rm --cached file.txt --Удалить файл ранее добавленный git add, но оставить на диске | |
| git restore --staged file.txt -- Восстановить в текущем коммите файл, изменения сохранить на диске | |
| --Первый способ удаления удаленного коммита | |
| git reset --hard HEAD\^ --Удалить последний локальный commit (в ZSH - HEAD\^) | |
| git push origin -f --Удалить последний коммит в удаленном репозитории после удаления локального коммита | |
| --После reset hard изменения можно восстановить локально: | |
| git reflog show --смотрим историю коммитов | |
| git reset HEAD@{2} --восстанавливаем историю до нужного коммита | |
| --Второй способ более гуманный | |
| git reset cc4b63b --пред. коммит из git log | |
| git stash --необязательно | |
| git push -f origin release/9.6.0 --оказалось необязательно | |
| git stash pop --тоже. Дополнительно удалить удаленный PR | |
| --Переименовать последний локальный commit | |
| git commit --amend -m "MVX-15771 Convert WB DCS stickers from SVG to PNG" | |
| --Добавить новые изменения в последний коммит | |
| git commit --amend --no-edit | |
| git push -f origin TCMP-2595 | |
| --сохранить текущие изменения в черновике: | |
| git stash | |
| --после завершения работы с другой веткой, переключаемся обратно и восстанавливаем изменения | |
| git apply | |
| --удалить изменения в черновике | |
| git pop | |
| --список черновиков | |
| git stash list | |
| --изменения в каждом черновике | |
| git stash show -p 3 | |
| -- удалить изменения в черновике | |
| git stash drop 1 | |
| --Добавить коммит из другой ветки | |
| git checkout BRANCH-123 | |
| git log --смотрим хэш нужного коммита | |
| git checkout master | |
| git cherry-pick <сохраненный хэш> | |
| git push | |
| --MERGE из мастера в другую ветку | |
| git checkout master | |
| git pull | |
| git checkout BRANCH-123 | |
| git merge master | |
| git push --если нет конфликтов | |
| --Копировать измененные файлы GIT в архив или отдельную папку: | |
| zip modified-files.zip $(git ls-files --modified) | |
| cp $(git ls-files --modified) ~/tmp | |
| --Восстановить измененные файлы | |
| git restore $(git ls-files --modified | grep rake) | |
| -- Применить измененным файлам GIT rubocop | |
| rubocop $(git ls-files --modified | grep .rb) -a | |
| 1) git checkout -b 'Ветка' 'Ветка от какой отпочковываешься' | |
| 2) хуки в папке .git/hooks с примерами | |
| 3) в папке objects: git show b3 (папка) и + имя объекта = покажет имя объекта. | |
| 4) -m в git commit игнорирует запуск редактора, имя коммита пишется прямо в консоли | |
| 5) -a в git commit делает команду git add всех файлов. | |
| 6) git commit --amend - откатывает коммит через резет и делает новый коммит. --no-edit - не меняет название коммита. История сохраняется. | |
| 7) git reset - перемещает ветку, на которую указывает HEAD. Сбрасывает изменения из staged area (которую добавляется git add) обратно в директорию. | |
| 8) git reset --hard - удаляет последний коммит из индекса. | |
| 9) git reset --soft - удаляет последний коммит из индекса, но сохраняет изменения в staged area. | |
| 10) git show 'хэш коммита' - показывает изменения коммита | |
| 11) git rebase master - подгягивает последние изменения master в текущий бранч | |
| 12) плюсы git merge feature - простота, сохраняет полную историю и хронолгич.порядок, поддерживает контекст ветки. Минус - история загрязняется коммитами слияния, отладка git bisect сложнее. | |
| 13) плюсы rebase - чистая история коммитов, проще манипуляции с коммитами. Минусы - больше работы, опасно исползовать в общих ветках из-за force. | |
| 14) слияние всех локальных новых коммитов 20 шт за день - гит резет софт и все изменения останутся в staged директори. А потом уже пуш с форсом или без в один коммит. | |
| 15) при конфликте оставляем HEAD. Копируем hash своего нижнего коммита, который в нижней строке конфликата. Идем в директорию и смотрим разницу git show 'хэш коммита'. Решаем и оставляем в конфликте нужное. | |
| 16) git rebase -i HEAD~2 склеить два последних коммита в один с использование опиции squash. pick squash (squash удаляет все коммиты сковошом и сливает в коммит который помечен пиком). Вместо git reset --soft HEAD~1 и нового коммита. | |
| 17) git rebase -i HEAD~2 с использование опции edit. Внести изменения в старый (препоследний) коммит. Вместо первого пик пишем edit. git add ., git rebasr --continue. | |
| 18) git revert HEAD~2. Откатить два последних коммита. Вместо git reset и пуша с форсом. | |
| 19) git reflog или git log -g. Выведет лог действий, в котором нужно будет найти удаленные изменения и вернуть их в нужно место. | |
| 20) git reset --hard master@{"15 minutes ago"} откатит изменения ветки мастер на 15 мин. назад. | |
| 21) git fsck --full (проверяет внутренню базу данных на целостность. Будут показаны все объекты, недостижимые из других объектов). | |
| --bisect. Для поиска проблемного коммита (когда их много), который внес проблему в код. | |
| 22) git bisect start HEAD 353f3F - запускает умный бинарный поиск проблемного коммита между указанными точками. Делает примерно тоже самое как гит чекаут для поиска проблемы в интерфейсе, но делает это по оптимизированноу алгоритму | |
| 23) git bisect good - значит коммит нормальный, в которым мы находимся. | |
| 24) git bisect bad - продолжает поиск дальше. | |
| 25) git bisect reset - остановим работу bisect. | |
| --stash | |
| сохраняет изменения в отдельном хранилище | |
| 26) git stash apply. Вернутся в код, но не удалены из хранилища | |
| 27) git stash drop - удаляет последние изменения и не возвращает в код. | |
| 28) git stash clear - чистит stash | |
| 29) git diff показывает разницу между коммитами, либо по названию веток, либо по хэшам. | |
| 30) git blame 'названия файла' - кто что сделал по файлу. | |
| воркфлоу (советы) | |
| - одна задача - один коммит | |
| - записывайте в тексте коммита ссылку на задачу | |
| - оставляет в тексте коммита подсказки коллегам о крит. изменениях (запуск рэйка, изменения env и т.д.) | |
| - храните историю плоской | |
| - не оставляйте мусор | |
| OhMyZsh | |
| sudo apt install zsh | |
| sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" | |
| RabbitMq | |
| --clearing | |
| rabbitmqctl stop_app | |
| rabbitmqctl reset # Be sure you really want to do this! | |
| rabbitmqctl start_app | |
| -- list queues | |
| rabbitmqctl list_queues | |
| --enable managment | |
| rabbitmq-plugins enable rabbitmq_management | |
| --show queue content | |
| rabbitmqadmin get queue='o7.orchestrator.signals' | |
| Дабл командер | |
| sudo apt install doublecmd-qt | |
| Posgresql | |
| sudo apt-get install postgresql | |
| sudo apt-get install libpq-dev | |
| sudo su - postgres /*переключили на юзера по умолчанию | |
| postgres=# \password /*смена пароля postgres из psql | |
| sudo -u postgres createuser filonov /* создали юзера filonov | |
| ALTER USER CREATEDB to filonov | |
| ALTER USER SUPERUSER to filonov | |
| \conninfo /*информация о сессии в psql | |
| CREATE DATABASE test_database; | |
| CREATE USER test_user WITH password 'qwerty'; | |
| GRANT ALL ON DATABASE test_database TO test_user; | |
| pg_config --version | |
| psql --version | |
| select version(); | |
| \d /* список таблиц, объектов | |
| \d table_name /* описание таблицы | |
| \dn /* список существующих схем | |
| \l /* список баз данных | |
| \c dbname /* переключиться на базу данных | |
| CREATE SCHEMA bookings; /* создание схемы | |
| SET search_path TO bookings; /* переключение на схему | |
| /etc/init.d/postgresql restart /*перезагрузка БД из терминала под юзером postgres | |
| create table subs (id integer, name varchar(100)); | |
| ALTER TABLE subs ADD CONSTRAINT subs_id_pk PRIMARY KEY (id); | |
| ALTER TABLE subs_histories ADD CONSTRAINT subs_fk FOREIGN KEY (subs_id) REFERENCES subs(id); | |
| ON DELETE CASCADE; | |
| create table subs_histories (subs_id integer, sbst_id integer); | |
| --удаление postgress | |
| sudo apt-get --purge remove pgadmin3 | |
| sudo apt-get --purge remove postgresql\* | |
| --как вариант, не пробовал | |
| sudo apt-get remove --purge postgresql-9.1 | |
| sudo rm -r /etc/postgresql/ | |
| sudo rm -r /etc/postgresql-common/ | |
| sudo rm -r /var/lib/postgresql/ | |
| sudo userdel -r postgres | |
| sudo groupdel postgres | |
| --остановка postgresql на локальной машине | |
| service postgresql stop | |
| service postgresql start | |
| --зайти в постгрес, установленный в докере с локальлной машины | |
| psql -h localhost -p 5432 -U postgres | |
| psql -U neptun -d postgres -h 127.0.0.1 -W --другим юзером | |
| Docker | |
| sudo apt update && sudo apt upgrade | |
| -- команды установки с сайта докера | |
| newgrp docker | |
| sudo usermod -aG docker "${USER}" //или sudo usermod -aG docker $USER | |
| sudo chmod 666 /var/run/docker.sock // если ошибка про docker.sock: | |
| service docker restart | |
| --запуск докеров в статусе exited | |
| docker start $(docker ps -a -q --filter "status=exited") | |
| --клонирование докеров из проекта (/docker-compose.yml) | |
| sudo docker-compose up -d | |
| Отдельный инстанс убунту в докере | |
| docker pull ubuntu:latest | |
| docker run -itd ubuntu | |
| docker ps -a /* список контейнеров | |
| docker images -a /* все образы включая ID образа | |
| docker rmi $(docker images -a -q) -f /* удалить все образы | |
| docker rmi Image1 Image2 /* удалить образы по ID | |
| docker image prune /* удалить все промежуточные имэйджы | |
| docker system prune -a -f /* удалить все кроме запущенных контейнеров и их имэйджей | |
| // показатель детально занимаемое место | |
| docker system df -v | |
| docker stop $(docker ps -a -q) /* остановить контейнеры | |
| docker container rm $(docker ps -a -l -q) /* удалить последний контейнер | |
| docker rm $(docker ps -a -q) /* удалить все контейнеры | |
| docker exec -it xenodochial_hugle /bin/bash | |
| внутри образа: | |
| sudo apt-get update | |
| sudo apt-get dist-upgrade | |
| commit: docker commit tender_elion ubuntu-18-updated:v18_04 | |
| apt-get install -y nodejs /* установка nodejs | |
| apt-get install ruby-dev /* установка ruby | |
| gem install bundler | |
| gem install rails -v 5.2.3 | |
| --login in registry: | |
| docker login -u filonov -p YOURTOKENHERE git.ottoruss.ru:5005/docker/general | |
| --копировать файлы из докера | |
| sudo docker cp 9e03def7f230:/billing/stackprof.dump ~/stackprof.dump | |
| postgresql: | |
| docker pull postgres | |
| --предварительно стоим в папке posgres проекта нептун | |
| docker build -t postgres:1.0 . | |
| --создаем контейнер | |
| docker container run --name postgres -p 5432:5432/tcp -d -e POSTGRES_PASSWORD=password -it postgres:1.0 | |
| --стартуем | |
| docker start postgres | |
| --коннектимся по необходимости | |
| docker exec -it postgres bash | |
| -- вариант запуска контейнера 11092022 | |
| docker run --name postgresql -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -p 5432:5432 -v /data:/var/lib/postgresql/data -d postgres | |
| -- Копируем файл (ключ) id_rsa в запущенный докер f3f35d2ee77c в папку /orchestrator | |
| sudo docker cp ~/.ssh/id_rsa f3f35d2ee77c:/orchestrator | |
| SSH server | |
| sudo apt-get install openssh-server | |
| sudo service ssh restart | |
| Rvm (https://github.com/rvm/ubuntu_rvm) | |
| sudo apt-get install software-properties-common | |
| sudo apt-add-repository -y ppa:rael-gc/rvm | |
| sudo apt-get update | |
| sudo apt-get install rvm | |
| sudo usermod -G rvm username | |
| At terminal window, click Edit > Profile Preferences, click on Title and Command tab and check Run command as login shell. | |
| rvm list known /* Посмотреть возможные версии | |
| rvm install ruby | |
| rvm use --default 3.0.2 | |
| man rvm | |
| --if not working with zsh: | |
| echo "source /usr/local/rvm/scripts/rvm" >> ~/.zshrc | |
| -- как то помогли команды обновления rvm после ругания на gpg2: | |
| command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - | |
| command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - | |
| curl -L get.rvm.io | bash -s stable | |
| --обновление существующего RVM: | |
| rvm get stable | |
| --перед этим полезно удалить все: | |
| sudo rvm cleanup all | |
| ------------------ | |
| RubyMine | |
| sudo snap install rubymine --classic | |
| NodeJs | |
| sudo apt-get install nodejs | |
| Redis server | |
| sudo apt install redis-server | |
| sudo systemctl start redis-server /* запустить | |
| sudo systemctl enable redis-server /* добавить в автозагрузку | |
| /* поставить maxmemory = 512mb в sudo atom /etc/redis/redis.conf | |
| /* maxmemory_policy allkeys_lfu | |
| redis-cli /* управляющий терминал. командыЖ | |
| ping | |
| set test value | |
| keys * | |
| flushall | |
| -- запустить redis из докера: | |
| docker pull redis | |
| docker run --name my_redis -d redis | |
| -- запустить самый мал. образ в докере: | |
| docker pull redis:4-alpine | |
| docker container run --name redis -p 6379:6379/tcp -itd redis:4-alpine | |
| Создание SSH ключа для GitLab | |
| ssh-keygen -t ed25519 -C "filonovia@gmail.com" | |
| xclip -sel clip < ~/ifilonov_ssh_key.pub /* копируем в буфер | |
| Graylog | |
| --Тестовая команды из командой строки: | |
| echo -n '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }' | nc -w0 -u ogr-log.ottoruss.ru 12201 | |
| -- С помощью curl | |
| curl -X POST -H 'Content-Type: application/json' -d '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }' 'http://graylog.example.com:12201/gelf' | |
| -- По TCP | |
| echo -n -e '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }'"\0" | nc -w0 graylog.example.com 12202 | |
| UDP | |
| --проверка коннекта по UDP: | |
| nc -z -v -u ogr-log.ottoruss.ru 12201 | |
| Kubernetis | |
| kubectl cluster-info --информация о кластере | |
| kubectl get configmaps --namespace=movex --получить информацию о сущ. конфигах | |
| kubectl get configmap global --namespace movex -o yaml > global_cf.yaml --скопировать сущ. конфиг в файл | |
| kubectl apply -f cfg.yml --namespace movex --создать свой конфиг | |
| kubectl apply -f k8s.yml --применить деплой | |
| kubectl get pods --namespace=movex | grep external --посмотреть статус запущенного деплоя | |
| --посмотреть логи запущенного деплоя: | |
| kubectl logs -f external-stickers-98476fc59-2c92r external-stickers --namespace=movex | |
| --зайти в баш на нужный под деплоя: | |
| kubectl exec -it external-stickers-7bff4cc865-kvnxx external-stickers -- /bin/bash --namespace=movex | |
| --перезапустить деплой после смены конфигов | |
| kubectl rollout restart -f k8s.yml | |
| -- Удалить деплоймент. Этаже команда останавливает под | |
| kubectl delete deployment imarket-auth --namespace=movex | |
| -- Удалить под. Но, создается новый | |
| kubectl delete pod imarket-auth-9d9b69fb5-7pb6b | |
| -- сменить нэймспейс | |
| kubectl config set-context --current --namespace=blade1 | |
| -- Node and npm (from https://phoenixnap.com/kb/update-node-js-version) | |
| sudo apt update | |
| curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash | |
| source ~/.bashrc | |
| nvm --version | |
| nvm ls | |
| nvm ls-remote | |
| nvm install [version.number] | |
| MYSQL | |
| --disable/enable local server | |
| sudo systemctl disable mysql | |
| sudo systemctl enable mysql | |
| --Войти в локальную базу | |
| sudo mysql -u root | |
| --Создать юзера | |
| CREATE USER 'portal'@'localhost' IDENTIFIED BY 'portal'; | |
| --Сменить пароль | |
| ALTER USER user IDENTIFIED BY 'auth_string'; | |
| --Выдать привелегии (все) | |
| GRANT ALL PRIVILEGES ON *.* TO portal@localhost; | |
| --Cписок юзеров | |
| SELECT user,host FROM mysql.user; | |
| --Создать базу | |
| CREATE DATABASE cloud_cas_production; | |
| --Показать список валидаций пароля | |
| SHOW VARIABLES LIKE 'validate_password%'; | |
| --Изменение валидации пароля | |
| SET GLOBAL validate_password.length = 6; | |
| SIEGE | |
| siege -c50 -t60S --content-type "application/json" 'http://domain.com/path/to/json.php POST {"ids": ["1","2","3"]}' | |
| -- Кол-во строк в файлах rb | |
| find . -name '*.rb' | xargs wc -l |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Обновление библиотек до установке руби в докер:
apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn