Шпаргалка по Linux

Перенос файлов

Копирование файлов/папок с Windows на Linux с использованием Putty (PSCP.exe):

CMD:
:\Putty\>PSCE.exe file.txt pi@127.1.1.1:/path/to/copy/
Копирование папок:
:\Putty\>PSCE.exe -r folder pi@127.1.1.1:/path/to/copy/folder/

Копирование файлов/папок с Linux на Linux по ssh:

scp filefrom @:/path/to/dir/

Права, доступы, пользователи, группы

Задать права на файл,папку:

chmod -R 777 folder/name
#777 - (1+2+4=x+r+w=выполнение+чтение+запись)
#750 - права для владельца файла,папки(7)/группы(5)/прочих(0). - wrx-rx---

Изменить владельца файла, папки:

$ sudo chown -R user:group folder

Добавление пользователя в группу:

$ sudo usermod -a -G group user

Список групп

$ cat /etc/group

Список пользователей

$ cat /etc/passwd

Изменить/Задать пароль в bash:
Все пароли хранятся в зашифрованном (хеш) виде в /etc/shadow.

echo "testuser:12345" | chpasswd

Файлы

Поиск файлов

#find путь образец_для_поиска
$find . -name tes
------------------
$locate filename (or part filename)
------------------
$

Процессы

Отобразить процессы:

$ ps -elf 

или

$ top

Завершить процесс

$ kill pid (ppid - parrend pid)
$ или top + k - указать pid процесса 

Управление репозиториями

Добавить репозиторий

# В /etc/yum.repos.d/'название репозитория'.repo
-------------------------
[centos5osi386]
name= CentOS 5 packages for i386
baseurl=http://path_to_repo/centos_orig_repo/5/os/i386
enabled=1
gpgcheck=0
proxy=_none_
------------------------
$ sudo yum clean all

Виртуальное окружение

Добавление путей к файлам (напр. Java)

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.8.0/bin/javaws 1

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws

update-alternatives --install
sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0/bin/java

Выполнить команду от другого пользователя

# su - root -c "YOUR_COMMAND_HERE" -s /bin/sh

Добавление глобальных путей в Path

Под root:
1) echo 'pathmunge /new/directory' > /etc/profile.d/custompath.sh
2) chmod +x /etc/profile.d/custompath.sh
3) Для перезапуска профиля (применения новых путей) . /etc/profile (либо снова зайти в сеанс)

Порты

Список открытых портов

$ netstat -tunlp

Troubleshooting

1. Проблема с обновлением, скачиванием пакетов с репозиториев Ubuntu18.04

$ sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
$ sudo apt update && sudo apt upgrade