В данной заметке я буду собирать ряд команд, которые могу оказаться полезными и помочь вам в каждодневной работе. Пока команд будет мало, я буду публиковать их подряд. Но как только список достигнет определенного порога, я разобъю его на темы для того чтобы любую из команд Linux можно было найти в нужный момент.
Помните, что некоторые из команд потребуют установки дополнительного ПО в вашу систему.

Поиск файлов по содержимому grep -rl ’sample text’ /path_to_folder. Здесь sample text - это строка наличие которой проверяется в файлах. /path_to_folder - путь к директории, в которой надо произвести поиск.

Определение размера каталога Размер каталога du -hc /path_to_folder/.

Удаление файлов в каталоге по маске ls -R -a /path_to_folder/*.txt | grep ~$ | xargs rm -f.

Список файлов, используемых процессами Apache lsof | grep httpd.

Разбиение большого файла с именем file_name на части по 5 мегобайт split -b 5m file_name.
У команды есть опции относительно размера файла и именования частей. Чтобы склеить файл из нескольких с именами file_name1, file_name2, file_name3 надо выполнить cat file_name* > file_name.

Работа с процессами в командной строке

  • Указать после команды в консоли знак амперсанд (&) через пробел означает запустить команду в фоновом режиме (освободить терминал). Процесс будет выполняться, но консоль будет свободна для ввода новых команд
  • Команда jobs показывает команды, запущеные в фоне
  • Комбинация Ctrl+Z приостанавливает (делает паузу) активную задачу в консоли
  • Комбинация Ctrl+C прерывает (завершает) активную задачу
  • Команда bg 3 делает активным процесс номер 3, если он был  приостановлен
  • Команда fg 3 переводит процесс из фонового режима в активный
  • Команда kill 7383 позволяет прервать процесс с pid 7383. Но в данном виде процессу посылается сигнал корректного завершения. Если процесс повис то лучше воспользоваться kill -9 7383, которая убьет процесс так или иначе

MySQL

Сброс пароля root MySQL

  1. Останавливаем mysql
  2. mysqld_safe –skip-grant-tables –user=root &
  3. Запускаем клиентскую часть mysql -u root
  4. Меняем пароль запросом UPDATE mysql.user SET password=PASSWORD(’newpassword’) WHERE user=’root’;
  5. Обновляем привелегии запросом FLUSH PRIVILEGES;
  6. Выходим из консоли mysql командой exit
  7. Перезагружаем mysql

Перед skip-grant-tables стоит 2 минуса

SCP и SSH

Копирование с удаленной машины на локальную

$ scp user_name@server_name_or_IP:/path_to_folder_on_server /local_path

Копирование файла с локальной машины на удаленную

$ scp file_name user_name@server_name_or_IP:/path_to_folder_on_server

Копирование всех поддиректорий на удаленную машину (Можно копировать несколько папок разделив их пробелом)

$ scp –r local_folder user_name@server_name_or_IP:/path_to_folder_on_server

Копирование с одной удаленной машины на другую

$ scp user_name1@server_name1:/path1/ user_name2@server_name2:/path2/

Копирование файла только через ssh

$ cat ./archive.tar.gz | ssh user@server "cat > /path_on_server/archive.tar.gz"

Ссылки в Linux

Создание жесткой ссылки на файл

ln     /file_path/file_name    path/hard_link_name

Создание символьной ссылки на файл

ln   -s    /file_path/file_name    path/sym_link_name

Список команд сейчас мал. Но я буду постепенно пополнять его. если вы пользуетесь какими-либо интересными командами в своей работе, то присылайте их - опубликую.


6 Responses to “Сборник полезных команд Linux”

  1.  alex Says:

    вот еще достаточно часто (мной, по крайней мере) используемые команды

    find ./ -type f -exec chmod 664 {} \\; - В текущей директории рекурсивно сменить разрешения на все файлы
    find ./ -type d -exec chmod 775 {} \\; - В текущей директории рекурсивно сменить разрешения на все директории

  2.  alex Says:

    Перед установлением исходящего соединения ssh читает файл $HOME/.ssh/config. Этот файл содержит аргументы команды ssh, используемые при установлении соединения, это ускоряет ввод - да и просто удобно. Можно использовать его для создания «псевдонимов» (Alias) соединений.
    Скажем, часто нужно соединяться с сервером mops-serv. В файл ~$HOME/.ssh/config впишем следующие строки:
    Host ms
    Hostname mops-serv. (ну или ip адрес)
    Port 22
    User alex

    таким образом для соединения с mops-serv. вводим только
    ssh ms

  3.  Pascal Says:

    rm -R -f * - удаление всех файлов и папок внутри текущей папки

  4.  Игорь Тельменко Says:

    Информация об оборудовании. Например, cdrom /usr/sbin/hwinfo –cdrom

  5.  Nao Says:

    Вывести список файлов/директорий отсортированных по размеру:

    du -ma --max-depth=1 /path/ | sort -n

    (бывает полезно при поиске файлов/директорий которые занимают много места, опционально флаг -x чтобы ограничится одной файловой системой)

  6.  Игорь Тельменко Says:

    Если у Вашей машины нет доступа ssh к серверу (target_host), но есть у другой машины (host_posrednik), к которой у Вас есть доступ, то можно сделать так

    ssh -g -f -N -L 9999:target_host:22 user_posrednik@host_posrednik

    И затем соединяться

    ssh -p9999 target_user@127.0.0.1