Задать вопрос
Ответы пользователя по тегу Linux
  • Что происходит когда вводишь в терминал unix звездочку (*)?

    @abcd0x00
    Если оболочка встречает символ *, то она воспринимает его как символ шаблона.
    Если это символ шаблона, то она берёт символы вокруг него, составляя шаблон.
    Когда шаблон составлен, она берёт все имена из текущей директории по порядку и сравнивает с этим шаблоном.
    Все имена, которые совпали с шаблоном, вставляются через пробел вместо шаблона.
    А потом всё это дело выполняется.

    Это пример
    [guest@localhost t]$ ls
    [guest@localhost t]$ touch cat
    [guest@localhost t]$ echo hello >file.txt
    [guest@localhost t]$ ll
    итого 4
    -rw-rw-r--. 1 guest guest 0 дек 30 11:32 cat
    -rw-rw-r--. 1 guest guest 6 дек 30 11:32 file.txt
    [guest@localhost t]$ *
    hello
    [guest@localhost t]$
    Ответ написан
    Комментировать
  • Отчего может не работать звездочка в bash?

    @abcd0x00
    Вообще, поведение звёздочки можно менять через настройки bash'а. Но в данном случае, там какой-то глюк с вводом, к bash'у не имеет отношения.
    Ответ написан
    Комментировать
  • Как в linux с помощью bash скрипта взять в переменные значения параметров из конфиг файла?

    @abcd0x00
    Надо просто написать функцию, которая принимает номер записи в потоке ввода, из которой нужно взять значение.
    Потом просто делаешь
    text=`cat file.conf`
    val1=`echo "$text" | select_value 1`
    val2=`echo "$text" | select_value 2`


    А то, что тебе советуют source, - это неправильно: во-первых, будут перекрываться существующие переменные, а во-вторых, там может быть какой-нибудь не такой код.
    Ответ написан
    Комментировать
  • Как удалить файлы из папки?

    @abcd0x00
    [guest@localhost ~]$ find /tmp -maxdepth 1 -type f -printf "%TY %p\n" | awk '$1 >= 2014{print "rm -f " $2}'
    rm -f /tmp/.ktorrent_kde4_1000.lock
    rm -f /tmp/.XauthFnlUja
    rm -f /tmp/winstone152624632382939548.jar
    rm -f /tmp/akuma8236603350544705032jar
    rm -f /tmp/jna3326402736412458495jar
    rm -f /tmp/.X0-lock
    [guest@localhost ~]$

    Дальше по каналу этот вывод подаёшь на sh.
    Ответ написан
    Комментировать
  • Как сравнить 2 числа на bash?

    @abcd0x00
    [guest@localhost ~]$ a=1
    [guest@localhost ~]$ b=2
    [guest@localhost ~]$ c=3
    [guest@localhost ~]$ 
    [guest@localhost ~]$ [ $((a + b)) -eq $c ]
    [guest@localhost ~]$ echo $?
    0
    [guest@localhost ~]$ [ $((a + b)) -lt $c ]
    [guest@localhost ~]$ echo $?
    1
    [guest@localhost ~]$ [ $((a + b - 1)) -lt $c ]
    [guest@localhost ~]$ echo $?
    0
    [guest@localhost ~]$ [ $((a + b)) -gt $c ]
    [guest@localhost ~]$ echo $?
    1
    [guest@localhost ~]$ [ $((a + b + 1)) -gt $c ]
    [guest@localhost ~]$ echo $?
    0
    [guest@localhost ~]$
    Ответ написан
    Комментировать
  • Как принимает recv?

    @abcd0x00
    Вообще, там есть средства для проверки сокета на активность. Можно поставить временной порог для отличия частей одной записи от разных записей. Но теоретически это ненадёжно.

    Так что используй TLV
    https://en.wikipedia.org/wiki/Type-length-value
    Ответ написан
    Комментировать
  • Подробная информация о запущенных процессах в linux?

    @abcd0x00
    Все описано в
    man ps

    Что значит время 00:00:00?


    cputime     TIME      cumulative CPU time, "[DD-]hh:mm:ss" format.
                          (alias time).
    Ответ написан
    Комментировать
  • Как лучше организовать электронную библиотеку?

    @abcd0x00
    Форматы совершенно разные, от pdf и djvu до fb2, т.е. естественно будет база данных с описанием и т.п.

    Форматы не имеют значения, так как название формата каждой книги будет храниться в базе данных.
    Там у тебя как бы получается две таблицы: одна описывает книгу, другая - адрес и способ хранения. И эти две таблицы связаны в одну базу данных по общему полю.
    Ответ написан
    Комментировать
  • Библиотека для чтения директорий?

    @abcd0x00
    Системный вызов stat() даёт структуру, в которой указаны все свойства.

    man stat.h

    The  following  symbolic names for the values of type mode_t shall also
    be defined.
    
    File type:
    
    S_IFMT Type of file.
    
    S_IFBLK
           Block special.
    
    S_IFCHR
           Character special.
    
    S_IFIFO
           FIFO special.
    
    S_IFREG
           Regular.
    
    S_IFDIR
           Directory.
    ...
    
    The following macros shall be provided to test whether a file is of the
    specified  type.  The  value  m  supplied to the macros is the value of
    st_mode from a stat structure.  The macro shall evaluate to a  non-zero
    value if the test is true; 0 if the test is false.
    
    S_ISBLK(m)
           Test for a block special file.
    
    S_ISCHR(m)
           Test for a character special file.
    
    S_ISDIR(m)
           Test for a directory.
    
    S_ISFIFO(m)
           Test for a pipe or FIFO special file.
    
    S_ISREG(m)
           Test for a regular file.
    
    S_ISLNK(m)
           Test for a symbolic link.
    
    S_ISSOCK(m)
           Test for a socket.
    Ответ написан
    Комментировать
  • Как надёжно увеличить размер root в linux?

    @abcd0x00
    У меня музыка, видео, игры, виртуалки вынесены на отдельные логические разделы, которые монтируются в /mnt при загрузке, а туда уже ведут символические ссылки на директории.
    Так можно высвобождать место, не перезагружаясь.
    Ответ написан
    Комментировать
  • Как выдернуть адрес сайта (linux) из html?

    @abcd0x00
    В два прохода: сначала готовим ссылки, потом выделяем.
    Для текста выше, записанного в file.html
    [guest@localhost tmp]$ cat "file.html" | sed 's/"http/\n&/g' | sed -n 's/^"\(http[^"]*\)".*/\1/p'
    http://tasteofcountry.com
    https://s3.amazonaws.com/tsm-images/logos/footer/204-light.png?id=78
    http://tasteofcountry.com/shocking-country-music-splits/
    http://tasteofcountry.com/reba-mcentire-narvel-blackstock-relationship-timeline/
    http://screencrush.com/official-batman-vs-superman-plot-synopsis/?footer
    http://wac.450f.edgecastcdn.net/80450F/screencrush.com/files/2015/07/batman-vs-superman-300.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://popcrush.com/stars-who-were-born-rich/?footer
    http://wac.450f.edgecastcdn.net/80450F/popcrush.com/files/2015/04/born-rich-300.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://diffuser.fm/offensive-band-names/?footer
    http://wac.450f.edgecastcdn.net/80450F/diffuser.fm/files/2015/03/offensive-band-names.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://comicsalliance.com/comic-book-movie-behind-the-scenes-pictures/?footer
    http://wac.450f.edgecastcdn.net/80450F/comicsalliance.com/files/2015/05/behind-the-scenes-300.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://tasteofcountry.com/you-think-you-know-country-taylor-swift/?footer
    http://wac.450f.edgecastcdn.net/80450F/tasteofcountry.com/files/2014/08/taylor-swift-sexy.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    [guest@localhost tmp]$
    Ответ написан
    Комментировать
  • Где найти лог-файл в Linux?

    @abcd0x00
    Общий алгоритм поиска файла программы:
    1) Найти по времени изменения содержимого файла в окрестности 5 минут.
    find -type f -mmin -5

    2) Найти файлы, открытые программой:
    В одном окне
    tail -f /etc/passwd
    В другом окне
    lsof | grep '^tail'
    Ответ написан
    Комментировать
  • Как с помощью sed удалить все строки в текстовом файле, начиная с определенной (например, с 5-й)?

    @abcd0x00
    [guest@localhost ~]$ cat /etc/passwd | sed '4q'
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    [guest@localhost ~]$
    Ответ написан
    Комментировать
  • Как заменить, используя sed?

    @abcd0x00
    sed '
    1 { h; s/^\(.\).*$/\1/; x; }
    H
    s/^\(.\).*$/\1/
    x
    s/^\(.\)../\1/
    '
    Ответ написан
    Комментировать
  • Как запомнить первое значение команды 'find'?

    @abcd0x00
    [user@host ~]$ f=`find -type f -print -quit`
    [user@host ~]$ echo $f
    ./tmp/.swp
    [user@host ~]$
    Ответ написан
    Комментировать
  • Как разбить строку на переменные bash?

    @abcd0x00
    s="protocol1:///protocol2:example.com"
    
    s="${s##*/}"
    p="${s%:*}"
    e="${s#*:}"
    
    echo "<$p><$e>"
    Ответ написан
    Комментировать
  • Что то с моей головой или с ssh?

    @abcd0x00
    Как-то тоже мучался очень долго с ssh, всё переделывал с начала раз сто.
    Оказалось, что проблема в правах на директорию .ssh. Причём это вещь не простая, а регулируемая новыми настройками, поэтому в старой документации может и не встречаться необходимость их соблюдения.

    man sshd_config
    StrictModes
                 Specifies whether sshd(8) should check file modes and ownership
                 of the user's files and home directory before accepting login.
                 This is normally desirable because novices sometimes accidentally
                 leave their directory or files world-writable.  The default is
                 “yes”.  Note that this does not apply to ChrootDirectory, whose
                 permissions and ownership are checked unconditionally.


    Когда проблемы с ssh, знай, что есть режим отладки как для клиента, так и для сервера. Там можно проследить всё до мельчайших подробностей.

    Запусти сервер (sshd) с ключом -d (повторяя до трёх раз), и он будет выдавать инфу, куда доходит клиент.
    Ответ написан
    4 комментария
  • Bash: возможна ли такая манипуляция в одну команду?

    @abcd0x00
    cat /etc/passwd | tee x - -
    Ответ написан
    Комментировать