# Info/Users/Files/Lines

### <span style="color: rgb(53, 152, 219);">INFO</span>

##### Очистить файл истории

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

##### Удаление содержимого файла через VIM

```ruby
ggdG
```

##### Запуск программы как фоновый процесс

```ruby
nohup <program> &
```

**Перевод программы в активный процесс**

```ruby
fg %1
```

**Поиск и Удаление Процесса**

```ruby
ps -ef | grep <program>
kill <PID>
```

##### Список служб в автозагрузке Linux

```ruby
sudo systemctl list-unit-files | grep enabled
```

##### Версия Linux и Версия ядра

```ruby
lsb_release -a
uname -a
cat /etc/os-release
cat /etc/redhat-release
```

##### Версия графического интерфейса

```ruby
printenv XDG_CURRENT_DESKTOP
```

### <span style="color: rgb(53, 152, 219);">USERS</span>

##### Переключиться на пользователя

```ruby
su - username
```

##### Запуск команды под root

```ruby
sudo sh -c '<command>'
```

##### Запуск команды от другого пользователя

```ruby
su -l <user> -c '<command>'
```

##### Завершение PID другого пользователя

```ruby
# Определяем TTY нужного user-а (pts/0)
w
# Определяем PID нужного user-а
ps -ft pts/0
# Убиваем процесс
sudo kill -9 PID
```

### <span style="color: rgb(53, 152, 219);">FILES</span>

##### Вывод последних 10 строк файла

```ruby
tail -n 10 /var/log/syslog
```

##### Ожидать появления новых данных и выводить

```ruby
tail -f /var/log/syslog
```

##### Размер всех папок внутри текущей (включая скрытые файлы)

```ruby
sudo du -sh ./* | sort -h
find -maxdepth 1 -exec du -sh "{}" \; | sort -h
```

##### Показать подключённые диски

```ruby
lsblk
```

##### Создать пустой файл

```ruby
sudo touch file01
```

##### Копирование нескольких файлов в 1 каталог

```ruby
cp file01 file02 fileN /Folder01
```

##### Копирование содержимого текущей папки в др.папку

**\[без учета скрытых файлов\]**

```ruby
cp -a * /folder/
```

##### Поиск файлов

```ruby
find /home -name "file01.txt"
```

##### Удаление файлов по маске

```ruby
find /home/ -type f -name "*.log" -delete
```

##### Удалить содержимое (очистить) файл

```ruby
:> file01
# либо
cp /dev/null file01
```

##### Создание символической ссылки

```ruby
ln -s /path/folder /path/link
```

##### Изменение даты создания файла

```ruby
sudo touch -t 200905230000.00 file01
```

##### Копирование Прав/Доступов папки-Folder1 папке-Folder2

```ruby
sudo chown -R --reference= /path/to/folder1 /path/to/folder2
```

### <span style="color: rgb(53, 152, 219);">LINES</span>

##### Добавить строку в конец файла

```ruby
echo "some_text" >> patch_to_file
```

```ruby
sudo sh -c "echo 'some_text' >> patch_to_ file"
```

##### Вставить строку text перед 3-ей строкой файла

```ruby
sed -i '3itext' file
```

##### Удалить все паттерны text в файле

```ruby
sed 's/text//g' file
```

##### Найти и заменить строку text1 на text2 в файле

```ruby
sed -i 's/text1/text2/g' file
```

##### Удалить строку text1 в файле

```ruby
sed -i '/text1/d' file
```

##### Вставить/ Удалить комментарий (#) строки text в файле

```ruby
 # Добавить комментарий
sed -i '/text/s/^/#/g' file

# Удалить комментарий
sed -i '/text/s/^#//g' file
```

##### В файле file вывести строки без пробела ( ) и комментария (#) в начале

```ruby
sudo grep -v '^[[:space:]]*#' file
```

##### Вставить строку text в начало/конец файла

```ruby
# Вставить text в начало
sed -i '1s/^/text\n/' file

# Вставить text в конец
sed -i '$a\text' file
```

##### Удалить строку text в файле

```ruby
sed -i '/text/d' file
```

##### Вставить перенос на новую строку (\\n) в файле

```ruby
sed -i 's/text1/\n text2/g' file
```

##### Вывести строки которые содержат/ не содержат слово text

```ruby
#  Содержат text
sed -n '/text/p' file

#  Не содержат text
sed -e '/^text/d' file
```

##### Добавить в конец файла &lt;code&gt;

```ruby
tee -a file << EOF
code
EOF
```

##### Заменить содержимое файла на &lt;code&gt;

```ruby
tee file << EOF
code
EOF
```

##### Вывести содержимое файлов в папке с разделителями

```ruby
find . -type f \
  -exec grep -Il . {} \; \
  -exec sh -c '
    printf "\n%60s\nФАЙЛ: %s\n%60s\n" "" "$1" "" | tr " " "="
    cat "$1"
  ' _ {} \;
```