Linux - zacisco/notes GitHub Wiki

Linux

База

Горячие клавиши и немного команд

  1. CTRL + Z - остановить процесс
  2. CTRL + C - убить процесс
  3. ps - показать запущенные процессы
  4. fg - вернуться к предыдущему процессу (который мы могли остановить после нажатия ctrl + z)
  5. ls -la (a показывает скрытые директории)
  6. pwd - показать текущую директорию

Cоздание, копирование, перенос, переименование, стерание файлов

  1. Выводит содержимое файла в консоль
root@example:~# cat readme.txt
  1. Выводит содержимое файла с возможностью пролистывать вверх/вниз.(Чтобы выйти из режима просматривания нажмите q)
root@example:~# more readme.txt
  1. Позволяет осуществить поиск по ключевым словам в содержимом файла и провалиться в него. (Чтобы выйти из режима просматривания нажмите q)
root@example:~# less readme.txt
  1. "Ткнуть в файл". Если данного файла нет, то создать его; если есть, то обновить время создания. Работает только с файлами.
root@example:~# touch readme.txt
  1. Копирует файл, при этом можно указать куда.
root@example:~# cp readme.txt ~/Desktop
  1. Отобразить файлы в текущей директории
root@example:~# ls -l
  1. Копирование по аналогии с удалением.

-v показывает процесс.В данном конкретном примере будет показывать процесс копирования.

root@example:~# cp file?.txt ~/Desktop -v
  1. Удаление файла. Сначала "что", потом "где".
root@example:~# rm ~/Desktop/*
  1. Создаёт директорию
root@example:~# mkdir Dir3/Dir5

Вывод информации/утилитные команды

  1. Выводит текущее время
root@example:~# uptime
  1. Выводит название ОС

-a выводит более подробную информацию

root@example:~# uname -a
  1. Выводит информацию о процессоре
root@example:~# lscpu
  1. Очистит экран
root@example:~# clear
  1. Выведет на экран то что мы наберём на клавиатуре
root@example:~# echo
  1. Поиск команд в $PATH по ключевым словам

В данном случае найдёт все команды, которые содержат "time"

root@example:~# man -k time
  1. Показывает где лежит файл
root@example:~# whereis uptime
  1. Также ищет файл
root@example:~# locate readme.txt

Bash

Text formatting

man page/help for bash scripts

Parse command line args

Delete history

Simple

for h in $(seq $from $to); do history -d $from; done

Script

Del function from-to and del command call
histdel() {
  for h in $(seq $1 $2); do
    history -d $1
  done
  history -d $(history 1 | awk '{print $1}')
}
Del N last entries with Del func
histdeln() {
  # Get the current history number
  n=$(history 1 | awk '{print $1}')

  # Call histdel with the appropriate range
  histdel $(( $n - $1 )) $(( $n - 1 ))
}

Clean history (w/o duplicates)

Option 1:

add in .bashrc

shopt -s histappend
export HISTCONTROL=ignoreboth:erasedups
export PROMPT_COMMAND="history -n; history -w; history -c; history -r"
tac "$HISTFILE" | awk '!x[$0]++' > /tmp/tmpfile && tac /tmp/tmpfile > "$HISTFILE"
rm /tmp/tmpfile

SED (поиск и замена)

Замены с ENV

Заменяем $TITLE на значение env переменной TITLE и $URL на значение URL с экранированием

sed -i 's@\$TITLE@'"$TITLE"'@' _file_ и sed -i 's@\$URL@'"${URL//\//\/}"'@' _file_

или в одной команде

sed -i 's@\$TITLE@'"$TITLE"'@; s@\$URL@'"${URL//\//\/}"'@' _file_

Замены в файлах с тегами

one line file

sed -i -e 's/<TAG>.*<\/TAG>//g' FILE

multiline

sed -i '/<TAG>/,/<\/TAG>/d' FILE - delete with TAGs

sed -i '/<TAG>/,/<\/TAG>/{//!d}' FILE - delete without TAGs


Troubleshooting

  1. Переключение раскладки в TTY.

SSH

Generating private auth key

ssh-keygen

params:

-m PEM - base64 encoding key (optional)
-t _algo_ - rsa/dsa/ecdsa/ed25519
-b _size_ - bits for priv key with algos: rsa/dsa/ecdsa
-C _text_ - comment for key
-f _path_ - path where save key with filename
-N _passphrase_ - password for priv key (optional)
⚠️ **GitHub.com Fallback** ⚠️