Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Интересные команды при работе с Linux

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На открытие данного топика подвинуло желание как то сконцентрировать в одном месте всевозможные интересные команды при работе и администрировании линукс. Зная на собственном опыте, что иногда нужно решить какую нибудь задачу, и можно биться часами и не у кого спросить, а потом случайно натыкаешся где нибудь в интернете на одну строчку и видишь хм а вот оно то что я искал.
 
Настоятельная просьба всем кто будет постить
0. Не превращаем топик в список всех команд! Постим только самое интересное!

1. Обязательно толковое обьяснение что делает команда.(если у команды много ключей необязательно описывать все, достаточно самые употребляемые на ваш взгляд)
2. Желательно если есть возможность пару различных вариаций на данную команду.
3. Желательно добавлять Live пример а не только /xxx/yyy
4. Так как первый пост можно редактировать то наверное лучшим решением наверное будет его редактирование и соответственно по темам.
5. Небольшие скрипты также приветствуются - обязательно с коментами.
6. Всегда приветствуются интересные мысли и предложения по организации топика.
 
На правах зачинателя топика начну с более легкого (что успел насобирать)

 
Определение железа из командной строки в Linux

lspci Показывает информацию о материнской плате и слотах расширения pci.    
lsdev Выводит информацию об устройствах (DMA, IRQ, IO ports).    
cat /proc/cpuinfo Информация о процессоре (cpu info)--показывает содержимое файла cpuinfo. Заметьте, что все файлы в каталоге /proc -- это не настоящие файлы, а просто удобная форма доступа к системной информации.    
cat /proc/interrupts Список используемых прерываний. Может потребоваться для просмотра перед установкой нового оборудования.    
smartctl -a /dev/hda; hdparm -i /dev/hda Узнать информацию о жестком диске (вместо /dev/hda может быть /dev/hdb, /dev/hdc и т.д.)

Определение системной информации  из командной строки в Linux

dmesg При запуске системы ядро печатает длинную последовательность сообщений, эти сообщения информируют состоянии ядра (например, об объеме доступной памяти) и внешних устройствах, обнаруженных в системе. Эта информация необходима при диагностике проблем с аппаратными устройствами или их конфигурацией, а также при определении наименований устройств системы, соответствующих оборудованию (например, возможно, что ваша сетевая карта обнаружена как устройство ne0 или ne1. Обычно при загрузке эти сообщения прокручиваются на экране слишком быстро, чтобы извлечь из них какую-либо пользу, однако команда dmesg(8) позволяет их просмотреть    
xdpyinfo Эта программа дает общую информацию об оконной системе. Версию, релиз Х, загруженные модули и расширения, разрешение экрана, глубину цвета, количество и параметры "экранов" клиент-сервера, а также еще кое-какую информацию.    
xvinfo Программа выдает всю поднаготную об используемом драйвере видеокарты, ее параметрах с текущими значениями и пределами изменения.    
uname -a Выводит информацию о системе -версию,релиз кернела,Сетевое имя системы,Тип процессора,тип платформы и операционной системы.    
cat /etc/issue показывает какой дистрибутив Вы используете    
uptime узнать, сколько времени прошло с момента последнего запуска системы    
echo "GMT = `date +%s` seconds since 1970" сколько времени в секундах прошло с начала "эры" Юникс    
fdisk -l Показывает информацию о  хардиске а также информацию о партициях    
service --status-all Для проверки текущего состояния служб.    
chkconfig --list | more Для того, чтобы получить список запущенных/остановленных служб на всех уровнях выполнения.    
last Показывает список пользователей, входивших в Вашу систему в последнее время. Действительно неплохая идея - проверять этот список в качестве меры предосторожности в Вашей системе.    
sar Просмотр информации о системной активности, представленной в файле (/var/log/sarxx где xx номер текущего дня).  sar может показать много вариантов системной информации, включая статистику загруженности процессора, статистику ввода/вывода, и статистику сетевого траффика за текущий день и (обычно) за несколько предыдущих.    
free Выдает информацию о памяти и swap    
vmstat Выводит информацию использовании памяти, процессора, областях swap и т.п.    
procinfo Информация о системе

Определение процессов  и информации о них из командной строки в Linux

ps без параметров выводит список процессов, запущенных в данной сессии (т.е. в том же окне, что и ps).    
ps -u пользователь выводит список всех процессов указанного пользователя.    
top программа, позволяющая оперативно отслеживать, какие процессы запущены в системе и какие из них потребляют больше всего процессорного времени.

А это наверное самое интересное  
Трики и трюки командной строки в линуксе при работе с фаилами

Все что касается размера - обьема - занимаемого места файлами на дисковом пространстве.
df -h Показывает обьем занимаемого места на ваших хардисках    
du -sh; du -sh /home/username Показывает обьем занимаемого места конкретной директории    
find . -maxdepth 1 -type d -print | xargs du -sh | sort -rn Позволяет увидеть размер всех директорий в данном каталоге    
find . -maxdepth 1 -type d -exec du -sk {} \; | sort -rn То же, но быстрее и короче    
:>file То же, что и cat /dev/null > file, но короче. "Обнуляет" файл. Особенно полезно для чистки логов. Может использоваться вместо touch file для создания новых файлов.    
egrep -v "^#|^[:blank:]*$" file Просмотр файла без комментариев и пустых строк. Особенно удобно для просмотра конфигов.    
egrep -v "^#|^$" file Более простой вариант предыдущей команды, если у вас нет пустых строк, состоящих из пробельных символов, или они вас не беспокоят.

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

find . -type f -exec chmod 644 {} \;    find /home/username/test -type f -exec chmod 644 {} \; изменяем права доступа на все файлы  Файл - чтение запись.    
find . -type d -exec chmod 755 {} \;    find /home/username/test -type d -exec chmod 755 {} \; изменяем права доступа на все  папки.  Каталог - выполнение

Команды для форматирования вывода:

command |grep word покажет только строки вывода от command содержащие слово word    
command |less остановит вывод при достижении нижней границы экрана  и продолжит по строкам при нажатии Enter    
command |cat заставит команды ограничивающие вывод до размера экрана (на пример man) продолжать после достижения нижней строки    
command |tac будет сортировать строки вывода от command в обратном порядке    
command > out направит вывод от command в файл или устройство out    
command >> out добавит вывод от command в файл out

Определение сетевой информации  из командной строки в Linux

netstat -lp --inet Показывает  информацию о сетевых сервисах

netstat -p --inet Показывает  активные соединения из/в системе

lsof -i   Команда lsof, которая показывает все открытые файлы, с опцией -i показывает сетевые соединения вместе с процессами к которым они относятся:

Интересовало

  • поиск фаилов принадлежащих специфическому  юзеру и перевод их  "chown"  нa другого
    изменение владельца файлов и каталогов. ooptimum
    find . -uid 0 -exec chown 500 {} \; изменяем UID 0 на UID 500 везде, где найдем

  • перевод имен файлов и директорий в определенном каталоге в нижний регистр
    for x in *; do mv "$x" "`echo $x | tr [A-Z] [a-z]`"; done собственно, что просили

  • удаление пропусков в именах файлов и директорий и подстановка  нижней черты ,,_,, в определенном каталоге
    замена пробелов в именах файлов и каталогов на символ подчеркивания. ooptimum
    for x in *; do mv "$x" `echo $x | sed -e 's/ /_/g'`; done собственно, что просили    
    for x in *; do mv "$x" ${x// /_}; done то же, чистый bash

     
    Cсылки

  • Секреты командной строки - очень много интересных и полезных для работы команд и примеров.
  • Операционные системы Unix/Linux: начало работы - для новобранцев
     
    posted by Raredemon, revised by ooptimum

  • Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 13:48 05-03-2005 | Исправлено: Raredemon, 11:33 29-03-2005
    Raredemon



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Borgia

    Цитата:
    dmesg  

    с маленькой добавкой "dmesg|less" будет легче читать.
    Вставлю свои пять копеек:
    netstat -a показывает какие процессы какие порты слушают и подключения к ним.

    А че это новая мода все писать через кучу пустых строк? Может как зачинатель хоть нормально шапку оформишь?

    ----------
    Designed for Windows XP.
    Powered by Gentoo!
    Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

    Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 21:45 05-03-2005
    eugrus



    UNIX-like Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Думаю что это тоже довольно востребованно
     
    Команды для форматирования вывода:
     
    command |grep word покажет только строки вывода от command содержащие слово word    
    coomand |less остановит вывод при достижении нижней границы экрана  и продолжит по строкам при нажатии Enter    
    command |cat заставит команды ограничивающие вывод до размера экрана (на пример man) продолжать после достижения нижней строки    
    command > out направит вывод от command в файл или устройство out

    Всего записей: 5470 | Зарегистр. 17-06-2004 | Отправлено: 22:04 05-03-2005 | Исправлено: eugrus, 22:05 05-03-2005
    Borgia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Raredemon
     

    Цитата:
    А че это новая мода все писать через кучу пустых строк? Может как зачинатель хоть нормально шапку оформишь?
     

    Честно не знаю как это делать  подскажите как сделать шапку и  чтоб каждый мог добавлять в первый пост

    Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 23:04 05-03-2005
    Raredemon



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    eugrus

    Цитата:
    command > out : направит вывод от command в файл или устройство out

    Ну тогда бы уж дописал что
    command >> out : добавит свой вывод в существующий файл.
     


    ----------
    Designed for Windows XP.
    Powered by Gentoo!
    Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

    Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 23:06 05-03-2005
    Demetrio



    uid=0
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Шапка готова

    Всего записей: 9967 | Зарегистр. 29-05-2002 | Отправлено: 23:07 05-03-2005
    Raredemon



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Demetrio
    Ага
     
    Добавлено:
    такое оформление шапки подойдет?

    ----------
    Designed for Windows XP.
    Powered by Gentoo!
    Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

    Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 23:47 05-03-2005 | Исправлено: Raredemon, 00:04 06-03-2005
    Borgia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Raredemon
     
    Спасибо просто великолепно.
     
    eugrus
    Спасибо за подсказку будем стараться

    Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 00:24 06-03-2005 | Исправлено: Borgia, 00:37 06-03-2005
    eugrus



    UNIX-like Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    я так не смогу

    http://i.ru-board.com/codes.html

    Всего записей: 5470 | Зарегистр. 17-06-2004 | Отправлено: 00:26 06-03-2005
    Borgia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    # удалление пропусков в именах файлов и директорий и подстановка  нижней черты ,,_,, в определенной директории  

     
    Требуется Perl
     
    ------------------------------------------
    #!/usr/bin/perl -w
    # nospace /this/dir /that/dir /those/too
     
    use File::Find;
    use strict;
    die "usage: nospace dir[s]\n" unless @ARGV;
     
    my %ext;
     
    find(\&remspaces, @ARGV);
     
    sub remspaces {
    return if ($_ eq '.');
    return if ($_ eq '..');
    (my $new = $_) =~ tr/a-zA-Z0-9_.-/_/c;
    my $duplicate = ($new ne $_ and -e $new);
    my $try = $new;
     
    $ext{"$File::Find::dir/$try"}++ if $duplicate;
     
    while (my $count = $ext{"$File::Find::dir/$new"}++) {
    (my $with_num = $new) =~ s/(?=\.|$)/_$count/;
    $new = $with_num, last if not -e $with_num;
    }
     
    $ext{"$File::Find::dir/$try"}-- if $duplicate;
     
    rename $_ => $new
    or warn "can't rename $_ to $new: $!";
    }
    -----------------------------------------------
     
    сохраняем то что между линиями в фаил с именем ,,nospace,, делаем его запускаемым, а дальше так : ./nospace /путь/к/директории  Warning Не работает с рускими именами  
     
    Рs как не пробовал его запихнуть в таблицу по человечески не получается с форматированием

    Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 19:03 06-03-2005
    ooptimum



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Borgia
    И никакого перла (c)
     
    Добавлено:
    Кстати, подумалось глядучи на шапку, что если файл занимает больше одного экрана, то вместо
    Код:
    cat file|less
    следует использовать просто
    Код:
    less file
    .

    Всего записей: 2896 | Зарегистр. 30-05-2002 | Отправлено: 21:17 06-03-2005
    Borgia



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ooptimum
    Ты гений!!!!
    В поддиректориях он тоже делает ? и если не трудно для чаиника, как мне прописать чтоб он вначале переместился в нужную директорию  или указать нужную директорию?

    Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 22:17 06-03-2005 | Исправлено: Borgia, 22:32 06-03-2005
    ooptimum



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Borgia
    Я просто уже очень давно работаю в командной строке.
     
    Кстати, я подумал, что нет смысла постить команды каждый раз новым постом и потом добавлять их в шапку. Поэтому я подобавлял там немного. Кое-что поправил, особенно то, что касалось команды find. В частности я стараюсь избегать использования xargs, если это возможно.
     
    Надо подумать над выделением изменений.
     
    Поправь вопросы. В частности постарайся не использовать слово "директория". Используй "каталог", что короче и более распространено в последнее время. Я там добавил комментарии маленьким шрифтом, где считал, что вопрос задан не совсем понятным языком и нуждается в исправлении.
     
    Добавлено:

    Цитата:
    как мне прописать чтоб он вначале переместился в нужную директорию  или указать нужную директорию?

    Используй "/path/to/*" вместо "*" у for.

    Всего записей: 2896 | Зарегистр. 30-05-2002 | Отправлено: 22:38 06-03-2005 | Исправлено: ooptimum, 01:43 07-03-2005
    ooptimum



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Я там еще добавил вариант замены пробелов на подчеркивания, на этот раз без sed'а, только чистый bash.

    Всего записей: 2896 | Зарегистр. 30-05-2002 | Отправлено: 17:38 07-03-2005
    danx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А вот кто мне может сказать, как написать скриптик, который выполняет всего лишь 4 команды:
    aaaaa param1 param2
    bbbbb param2 param3
    cccccc  param4
    ddddd param4
     
    здесь команды aaaaa, bbbbb, ccccc и ddddd - это имена скриптов или выполнимых программ в Unix.
     
    Только загвоздка в том, что команда aaaaa порождает новый шелл, а все остальные три - экспортируют кучу переменных оокружения.
     
    Скажу сразу: засунуть все 4 строчки в sh-скрипт не получится, потому как при его запуске выполнится первая строчка и родится новый шелл. (А потом написав exit мы выполним остальные 3 команды, но это будет бесмыссленно).

    Всего записей: 38 | Зарегистр. 19-05-2004 | Отправлено: 00:30 08-03-2005
    ooptimum



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Borgia
    Насчет рекурсивной замены пробелов на символ подчеркивания пока придумался только такой скрипт:

    Код:
     
    #!/bin/sh
     
    OLDIFS=$IFS
    IFS=$'\n'
     
    for x in `find . -name "* *"`
    do
        IFS=$OLDIFS
        mv "$x" ${x// /_}
    done
     

    Всего записей: 2896 | Зарегистр. 30-05-2002 | Отправлено: 04:48 08-03-2005
    Yuki2003



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    "обнулить" размер файла
    head -c 0 > ./имя_файла

    Всего записей: 1077 | Зарегистр. 10-07-2003 | Отправлено: 01:50 09-03-2005
    Kokoc

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Для "обнуления" файла подойдет также команда
    echo -ne >file
     
    danx
    Не твой ли случай (man bash):

    Цитата:
     

    .  filename [arguments]
    source filename [arguments]

     
    Read and execute commands from filename in the current  shell  environment  
    and return the exit status of the last command  executed  from  filename.  
     

    Всего записей: 793 | Зарегистр. 06-06-2002 | Отправлено: 15:26 11-03-2005
    ooptimum



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Yuki2003, Kokoc
    Может вы можете предложить что-то короче `:>file` для его "обнуления"? Зачем варианты? Или просто шапку не читаем?

    Всего записей: 2896 | Зарегистр. 30-05-2002 | Отправлено: 21:41 11-03-2005
    Yuki2003



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kokoc
    Твой вариант - это обнуление без кавычек, в прямом смысле оно не всегда требуется, и если не требуется, то мой вариант имхо быстрей по времени выполнения команды.
     
    ooptimumпрочел шапку еще раз, не понял что ты имел в виду

    Всего записей: 1077 | Зарегистр. 10-07-2003 | Отправлено: 22:09 13-03-2005 | Исправлено: Yuki2003, 22:10 13-03-2005
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3

    Компьютерный форум Ru.Board » Операционные системы » UNIX » Интересные команды при работе с Linux


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru