В данной заметке я буду собирать ряд команд, которые могу оказаться полезными и помочь вам в каждодневной работе. Пока команд будет мало, я буду публиковать их подряд. Но как только список достигнет определенного порога, я разобъю его на темы для того чтобы любую из команд 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
- Останавливаем mysql
- mysqld_safe –skip-grant-tables –user=root &
- Запускаем клиентскую часть mysql -u root
- Меняем пароль запросом UPDATE mysql.user SET password=PASSWORD(’newpassword’) WHERE user=’root’;
- Обновляем привелегии запросом FLUSH PRIVILEGES;
- Выходим из консоли mysql командой exit
- Перезагружаем 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
Список команд сейчас мал. Но я буду постепенно пополнять его. если вы пользуетесь какими-либо интересными командами в своей работе, то присылайте их - опубликую.
вот еще достаточно часто (мной, по крайней мере) используемые команды
find ./ -type f -exec chmod 664 {} \\; - В текущей директории рекурсивно сменить разрешения на все файлы
find ./ -type d -exec chmod 775 {} \\; - В текущей директории рекурсивно сменить разрешения на все директории
Перед установлением исходящего соединения 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
rm -R -f * - удаление всех файлов и папок внутри текущей папки
Информация об оборудовании. Например, cdrom /usr/sbin/hwinfo –cdrom
Вывести список файлов/директорий отсортированных по размеру:
(бывает полезно при поиске файлов/директорий которые занимают много места, опционально флаг -x чтобы ограничится одной файловой системой)
Если у Вашей машины нет доступа ssh к серверу (target_host), но есть у другой машины (host_posrednik), к которой у Вас есть доступ, то можно сделать так
И затем соединяться