Существует очень простое решение этой проблемы. Вам просто нужно установить Ubuntu 14.04.1.
Я сделал это на древней машине с Ubuntu 14.04.1 , используя lubuntu-14.04.1-desktop-i386.iso.
Я думаю, что вы не следует загружать обновления во время установки (или лучше отключать сеть), и после первой загрузки просто используйте инструмент драйверов Ubuntu для установки NVIDIA 173.14.39. После перезагрузки вы можете полностью обновить свою систему до 14.04.4, и это не приведет к разрушению зависимостей NVIDIA.
Переход к этому драйверу дал мне небольшое увеличение производительности. Некоторые старые игры работают лучше (через PlayOnLinux), и он даже решил проблему с одной игрой. Видео также играет немного лучше (включая HTML5).
Просто не обновляйте свой дистрибутив выше 14.04:)
Вот ссылка, где я получил свой ISO:
]
Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16):
import subprocess
import re
print re.search('(\d+)% /', subprocess.Popen(["df"], stdout=subprocess.PIPE).communicate()[0]).group(1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
import re
p = subprocess.Popen(["df"], stdout=subprocess.PIPE)
for line in p.stdout:
usage = re.search('(\d+)% /', line.rstrip())
if usage != None:
print usage.group(1)
В принципе, он работает одинаково, просто он считывает вывод в отличие от вызова Popen.communicate(), который извлекает весь вывод за один раз.
awk очень хорошо подходит для этой задачи:
df | awk 'NR > 1 {print $5, $6;}'
говорит пропустить первую строку NR > 1, а затем на всех остальных строках распечатает 5-е и 6-е разделенные пробелы поля. Он дает:
65% /
1% /dev
1% /dev/shm
Демо-сайт не соответствует вашему описанию, извините. Хотя есть более простые способы сделать это, вот одна цепочка с добавлением tr, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR > 1 {print $5;}' | tr -d '%'
, и если вы только хотели его (например) / dev / shm then:
df | awk '/\/dev\/shm$/ {print $5;}' | tr -d '%'
или root:
df | awk '/\/$/ {print $5;}' | tr -d '%'
По умолчанию grep) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией --only-matching:
df -h | egrep --only-matching '[[:digit:]]+%' | tr -d '%'
Обратите внимание:
Синтаксис grep / egrep regexp немного отличается от синтаксиса regexp в стиле PERL, который вы опубликовали. Кроме того, существуют различия между синтаксисом regexp, поддерживаемым grep (называемым «POSIX basic regexp») и тем, который используется в egrep (расширенное регулярное выражение). Невозможно указать egrep для вывода определенного подвыражения для совпадения: будет распечатано все совпадение, включая знак %. Но вы можете разделить его на tr.Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16):
import subprocess
import re
print re.search('(\d+)% /', subprocess.Popen(["df"], stdout=subprocess.PIPE).communicate()[0]).group(1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
import re
p = subprocess.Popen(["df"], stdout=subprocess.PIPE)
for line in p.stdout:
usage = re.search('(\d+)% /', line.rstrip())
if usage != None:
print usage.group(1)
В принципе, он работает одинаково, просто он считывает вывод в отличие от вызова Popen.communicate(), который извлекает весь вывод за один раз.
awk очень хорошо подходит для этой задачи:
df | awk 'NR > 1 {print $5, $6;}'
говорит пропустить первую строку NR > 1, а затем на всех остальных строках распечатает 5-е и 6-е разделенные пробелы поля. Он дает:
65% /
1% /dev
1% /dev/shm
Демо-сайт не соответствует вашему описанию, извините. Хотя есть более простые способы сделать это, вот одна цепочка с добавлением tr, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR > 1 {print $5;}' | tr -d '%'
, и если вы только хотели его (например) / dev / shm then:
df | awk '/\/dev\/shm$/ {print $5;}' | tr -d '%'
или root:
df | awk '/\/$/ {print $5;}' | tr -d '%'
По умолчанию grep) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией --only-matching:
df -h | egrep --only-matching '[[:digit:]]+%' | tr -d '%'
Обратите внимание:
Синтаксис grep / egrep regexp немного отличается от синтаксиса regexp в стиле PERL, который вы опубликовали. Кроме того, существуют различия между синтаксисом regexp, поддерживаемым grep (называемым «POSIX basic regexp») и тем, который используется в egrep (расширенное регулярное выражение). Невозможно указать egrep для вывода определенного подвыражения для совпадения: будет распечатано все совпадение, включая знак %. Но вы можете разделить его на tr.Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16):
import subprocess
import re
print re.search('(\d+)% /', subprocess.Popen(["df"], stdout=subprocess.PIPE).communicate()[0]).group(1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
import re
p = subprocess.Popen(["df"], stdout=subprocess.PIPE)
for line in p.stdout:
usage = re.search('(\d+)% /', line.rstrip())
if usage != None:
print usage.group(1)
В принципе, он работает одинаково, просто он считывает вывод в отличие от вызова Popen.communicate(), который извлекает весь вывод за один раз.
awk очень хорошо подходит для этой задачи:
df | awk 'NR > 1 {print $5, $6;}'
говорит пропустить первую строку NR > 1, а затем на всех остальных строках распечатает 5-е и 6-е разделенные пробелы поля. Он дает:
65% /
1% /dev
1% /dev/shm
Демо-сайт не соответствует вашему описанию, извините. Хотя есть более простые способы сделать это, вот одна цепочка с добавлением tr, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR > 1 {print $5;}' | tr -d '%'
, и если вы только хотели его (например) / dev / shm then:
df | awk '/\/dev\/shm$/ {print $5;}' | tr -d '%'
или root:
df | awk '/\/$/ {print $5;}' | tr -d '%'
По умолчанию grep) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией --only-matching:
df -h | egrep --only-matching '[[:digit:]]+%' | tr -d '%'
Обратите внимание:
Синтаксис grep / egrep regexp немного отличается от синтаксиса regexp в стиле PERL, который вы опубликовали. Кроме того, существуют различия между синтаксисом regexp, поддерживаемым grep (называемым «POSIX basic regexp») и тем, который используется в egrep (расширенное регулярное выражение). Невозможно указать egrep для вывода определенного подвыражения для совпадения: будет распечатано все совпадение, включая знак %. Но вы можете разделить его на tr.Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16 ):
import subprocess import re print re.search ('(\ d +)% /', subprocess.Popen (["df"], stdout = subprocess.PIPE) .communicate ( ) [0]). Group (1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#! / usr / bin / env python # - * - кодирование: utf-8 - * - импорт подпроцесса import re p = subprocess.Popen (["df"], stdout = subprocess.PIPE) для строки в p .stdout: use = re.search ('(\ d +)% /', line.rstrip ()), если использование! = None: print use.group (1)
В основном это работает так же, как только он читает вывод по очереди в отличие от вызова Popen.communicate ()
, который извлекает весь вывод за один раз.
По умолчанию grep ) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией - only-matching
: [ ! d10]
df -h | egrep --only-matching '[[: digit:]] +%' | tr -d '%'
Обратите внимание:
%
. Но вы можете удалить его с помощью tr . awk очень хорошо подходит для этой задачи:
df | awk 'NR & gt; 1 {print $ 5, $ 6;} '
говорит пропустить первую строку NR & gt; 1
, а затем на всех остальных строках напечатайте 5-е и 6-е поля, разделенные пробелами. Это дает:
65% / 1% / dev 1% / dev / shm
Извините, демонстрационный сайт не соответствует вашему описанию. Хотя есть более простые способы сделать это, вот та же цепочка с добавлением tr
, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR & gt; 1 {print $ 5;} '| tr -d '%'
, и если вы только хотели его (например,) / dev / shm, то:
df | awk '/ \ / dev \ / shm $ / {print $ 5;}' | tr -d '%'
или корень:
df | awk '/ \ / $ / {print $ 5;}' | tr -d '%'
По умолчанию grep ) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией - only-matching
: [ ! d10]
df -h | egrep --only-matching '[[: digit:]] +%' | tr -d '%'
Обратите внимание:
%
. Но вы можете удалить его с помощью tr . awk очень хорошо подходит для этой задачи:
df | awk 'NR & gt; 1 {print $ 5, $ 6;} '
говорит пропустить первую строку NR & gt; 1
, а затем на всех остальных строках напечатайте 5-е и 6-е поля, разделенные пробелами. Это дает:
65% / 1% / dev 1% / dev / shm
Извините, демонстрационный сайт не соответствует вашему описанию. Хотя есть более простые способы сделать это, вот та же цепочка с добавлением tr
, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR & gt; 1 {print $ 5;} '| tr -d '%'
, и если вы только хотели его (например,) / dev / shm, то:
df | awk '/ \ / dev \ / shm $ / {print $ 5;}' | tr -d '%'
или корень:
df | awk '/ \ / $ / {print $ 5;}' | tr -d '%'
Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16 ):
import subprocess import re print re.search ('(\ d +)% /', subprocess.Popen (["df"], stdout = subprocess.PIPE) .communicate ( ) [0]). Group (1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#! / usr / bin / env python # - * - кодирование: utf-8 - * - импорт подпроцесса import re p = subprocess.Popen (["df"], stdout = subprocess.PIPE) для строки в p .stdout: use = re.search ('(\ d +)% /', line.rstrip ()), если использование! = None: print use.group (1)
В основном это работает так же, как только он читает вывод по очереди в отличие от вызова Popen.communicate ()
, который извлекает весь вывод за один раз.
По умолчанию grep ) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией - only-matching
: [ ! d10]
df -h | egrep --only-matching '[[: digit:]] +%' | tr -d '%'
Обратите внимание:
%
. Но вы можете удалить его с помощью tr . awk очень хорошо подходит для этой задачи:
df | awk 'NR & gt; 1 {print $ 5, $ 6;} '
говорит пропустить первую строку NR & gt; 1
, а затем на всех остальных строках напечатайте 5-е и 6-е поля, разделенные пробелами. Это дает:
65% / 1% / dev 1% / dev / shm
Извините, демонстрационный сайт не соответствует вашему описанию. Хотя есть более простые способы сделать это, вот та же цепочка с добавлением tr
, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR & gt; 1 {print $ 5;} '| tr -d '%'
, и если вы только хотели его (например,) / dev / shm, то:
df | awk '/ \ / dev \ / shm $ / {print $ 5;}' | tr -d '%'
или корень:
df | awk '/ \ / $ / {print $ 5;}' | tr -d '%'
Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16 ):
import subprocess import re print re.search ('(\ d +)% /', subprocess.Popen (["df"], stdout = subprocess.PIPE) .communicate ( ) [0]). Group (1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#! / usr / bin / env python # - * - кодирование: utf-8 - * - импорт подпроцесса import re p = subprocess.Popen (["df"], stdout = subprocess.PIPE) для строки в p .stdout: use = re.search ('(\ d +)% /', line.rstrip ()), если использование! = None: print use.group (1)
В основном это работает так же, как только он читает вывод по очереди в отличие от вызова Popen.communicate ()
, который извлекает весь вывод за один раз.
По умолчанию grep ) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией - only-matching
: [ ! d10]
df -h | egrep --only-matching '[[: digit:]] +%' | tr -d '%'
Обратите внимание:
%
. Но вы можете удалить его с помощью tr . awk очень хорошо подходит для этой задачи:
df | awk 'NR & gt; 1 {print $ 5, $ 6;} '
говорит пропустить первую строку NR & gt; 1
, а затем на всех остальных строках напечатайте 5-е и 6-е поля, разделенные пробелами. Это дает:
65% / 1% / dev 1% / dev / shm
Извините, демонстрационный сайт не соответствует вашему описанию. Хотя есть более простые способы сделать это, вот та же цепочка с добавлением tr
, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR & gt; 1 {print $ 5;} '| tr -d '%'
, и если вы только хотели его (например,) / dev / shm, то:
df | awk '/ \ / dev \ / shm $ / {print $ 5;}' | tr -d '%'
или корень:
df | awk '/ \ / $ / {print $ 5;}' | tr -d '%'
Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16 ):
import subprocess import re print re.search ('(\ d +)% /', subprocess.Popen (["df"], stdout = subprocess.PIPE) .communicate ( ) [0]). Group (1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#! / usr / bin / env python # - * - кодирование: utf-8 - * - импорт подпроцесса import re p = subprocess.Popen (["df"], stdout = subprocess.PIPE) для строки в p .stdout: use = re.search ('(\ d +)% /', line.rstrip ()), если использование! = None: print use.group (1)
В основном это работает так же, как только он читает вывод по очереди в отличие от вызова Popen.communicate ()
, который извлекает весь вывод за один раз.
По умолчанию grep ) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией - only-matching
: [ ! d10]
df -h | egrep --only-matching '[[: digit:]] +%' | tr -d '%'
Обратите внимание:
%
. Но вы можете удалить его с помощью tr . Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16 ):
import subprocess import re print re.search ('(\ d +)% /', subprocess.Popen (["df"], stdout = subprocess.PIPE) .communicate ( ) [0]). Group (1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#! / usr / bin / env python # - * - кодирование: utf-8 - * - импорт подпроцесса import re p = subprocess.Popen (["df"], stdout = subprocess.PIPE) для строки в p .stdout: use = re.search ('(\ d +)% /', line.rstrip ()), если использование! = None: print use.group (1)
В основном это работает так же, как только он читает вывод по очереди в отличие от вызова Popen.communicate ()
, который извлекает весь вывод за один раз.
awk очень хорошо подходит для этой задачи:
df | awk 'NR & gt; 1 {print $ 5, $ 6;} '
говорит пропустить первую строку NR & gt; 1
, а затем на всех остальных строках напечатайте 5-е и 6-е поля, разделенные пробелами. Это дает:
65% / 1% / dev 1% / dev / shm
Извините, демонстрационный сайт не соответствует вашему описанию. Хотя есть более простые способы сделать это, вот та же цепочка с добавлением tr
, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR & gt; 1 {print $ 5;} '| tr -d '%'
, и если вы только хотели его (например,) / dev / shm, то:
df | awk '/ \ / dev \ / shm $ / {print $ 5;}' | tr -d '%'
или корень:
df | awk '/ \ / $ / {print $ 5;}' | tr -d '%'
По умолчанию grep ) печатает всю строку, соответствующую регулярному выражению, но вы можете сказать ей распечатать только соответствующую строку с опцией - only-matching
: [ ! d10]
df -h | egrep --only-matching '[[: digit:]] +%' | tr -d '%'
Обратите внимание:
%
. Но вы можете удалить его с помощью tr . grep -P
может использовать синтаксис Perl-regexp (но он экспериментальный, поэтому, вероятно, не работает во всех случаях)
– JanC
20 October 2010 в 23:18
Просто для удовольствия вы можете использовать Python для извлечения использования диска.
В следующем фрагменте кода будет отображаться значение при первом вхождении шаблона (в вашем случае 16 ):
import subprocess import re print re.search ('(\ d +)% /', subprocess.Popen (["df"], stdout = subprocess.PIPE) .communicate ( ) [0]). Group (1)
Если вы хотите получить значения из каждой строки, более длинный код выполнит трюк:
#! / usr / bin / env python # - * - кодирование: utf-8 - * - импорт подпроцесса import re p = subprocess.Popen (["df"], stdout = subprocess.PIPE) для строки в p .stdout: use = re.search ('(\ d +)% /', line.rstrip ()), если использование! = None: print use.group (1)
В основном это работает так же, как только он читает вывод по очереди в отличие от вызова Popen.communicate ()
, который извлекает весь вывод за один раз.
awk очень хорошо подходит для этой задачи:
df | awk 'NR & gt; 1 {print $ 5, $ 6;} '
говорит пропустить первую строку NR & gt; 1
, а затем на всех остальных строках напечатайте 5-е и 6-е поля, разделенные пробелами. Это дает:
65% / 1% / dev 1% / dev / shm
Извините, демонстрационный сайт не соответствует вашему описанию. Хотя есть более простые способы сделать это, вот та же цепочка с добавлением tr
, поэтому у вас есть еще один инструмент в вашем поле:
df | awk 'NR & gt; 1 {print $ 5;} '| tr -d '%'
, и если вы только хотели его (например,) / dev / shm, то:
df | awk '/ \ / dev \ / shm $ / {print $ 5;}' | tr -d '%'
или корень:
df | awk '/ \ / $ / {print $ 5;}' | tr -d '%'
df | awk 'NR & gt; 1 {print $ 5, $ 6} '
– enzotib
20 October 2010 в 19:44