/tmp
и /var
каталоги - те, в которые много системных программ пишут много и зависят от того, чтобы быть записываемым. Уменьшение записей к этим каталогам или конфигурирование Linux для монтирования этих каталогов на внешних устройствах хранения, которые заменимы, в противоположность на борту флэш-памяти, имели бы большое значение для выполнения цели.
/home
и раздел подкачки нужно рассматривать тот же путь.
rsyslogd
, значение по умолчанию syslogd в Debian и многих Debian-полученных дистрибутивах, имеет возможность не записать журналы в диск, но поставить их по сетевому соединению и только записать им в устройство хранения данных, если внутренний буфер становится полным. Реализация этого (который я пытаюсь выяснить, как в настоящее время делать хорошим способом) могла устранить много записей флэш-памяти.
Кроме того, Вы хотите смонтировать свои файловые системы с noatime
опция, которая препятствует тому, чтобы Linux обновил время доступа на каждом файле, которого Вы касаетесь. Это может также устранить много записей и ускорить производительность. Я думаю, что существует также параметр ядра, который управляет временным интервалом между автоматическим Linux sync
звонить. Если Ваша система не ожидает испытывать внезапные перебои в питании, Вы могли бы установить это на более высокое значение, чем значение по умолчанию 5 секунд (я думаю).
Можно использовать фигурные скобки ({}
), но несколько другим способом. В фигурных скобках, prefix{x,y,z...}suffix
, расширится для помещения каждой разделенной от запятой части между prefix
и suffix
:
$ mv {,new_}file.txt
Это расширится до mv file.txt new_file.txt
. Можно также сделать это с числом или обозначить буквами диапазоны, {a..d}
расширится до a b c d
, {1..4}
расширится до 1 2 3 4
. Можно использовать только один или другой в уровне фигурных скобок, но можно вложить:
$ echo {a,c,{1..3}}
a c 1 2 3
Для больше о расширении фигурной скобки, посмотрите этот вопрос: расширение фигурной скобки другие команды помимо mkdir?
Можно определить функцию редактирования, которая копирует предыдущее слово под курсором.
copy_preceding_word () {
local prefix suffix word
prefix="${READLINE_LINE:0:$READLINE_POINT}"
suffix="${READLINE_LINE:$READLINE_POINT}"
if [[ $prefix =~ ([^[:space:]]+)[[:space:]]+[^[:space:]]*$ ]]; then
word=${BASH_REMATCH[1]}
READLINE_LINE="$prefix$word$suffix"
((READLINE_POINT += ${#word}))
fi
}
bind -x '"\e\C-_": copy_preceding_word'
У меня в ~/.inputrc
:
"\ej": "!#:$\e^"
!#
- это текущая строка, $
- это последнее слово, а \e^
- это история-расширение
.