Более старая информация: Debian Jessie x64 KDE (когда это было еще «тестирование»)
Эти команды работают для меня:
$ wget -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
# dpkg --add-architecture i386
# aptitude update
# dpkg -i skype-install.deb
# aptitude install -f libc6:i386 libc6:i386 libgcc1:i386 libqt4-dbus:i386\
libqt4-network:i386 libqt4-xml:i386 libqtcore4:i386 libqtgui4:i386\
libqtwebkit4:i386 libstdc++6:i386 libx11-6:i386 libxext6:i386 libxss1:i386\
libxv1:i386 libssl1.0.0:i386 libpulse0:i386 libasound2-plugins:i386
Некоторые из вышеперечисленных пакетов зависят друг от друга, поэтому это немного избыточно, но в любом случае это то, что skype-install.deb
утверждает как отсутствующие зависимости в моей системе.
Обновленная информация: Debian Jessie x64 (который является «стабильным» atm)
Более простой и общий набор команд, который работает для KDE наверняка, но должен работать для любой среды:
$ wget -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
# dpkg --add-architecture i386
# aptitude update
# gdebi skype-install.deb
Дополнительную информацию можно найти на вики-странице debian .
-121--47847-
for d in /*/
do [ -d "$d" ] || break
f=$d/docs/doc1.txt
mkdir -p -- "${f%/*}"
touch -- "$f"
done
Я думаю, что это соответствует вашим целям. Может, мне чего-то не хватает.
Иначе можно:
set -- /*/
[ -d "$1" ] &&
printf 'd=$%d
mkdir -p -- "$d/docs" &&
touch -- "$d/docs/doc1.txt"
' $(seq "$#") | sh -s -- "$@"
Или:
set -- /*/
while [ -d "$1" ]
do mkdir -p -- "$1"/docs
touch -- "$1"/docs/doc1.txt
shift ; done
-121--78167-
Возможно, да и нет.
Да, вероятно, вы можете загрузить образ (или что-либо, что выполняется в системе для этого) - просто загрузите «необработанные» данные /dev/mtdblock *
. В большинстве случаев вы получите изображение SquashFS , которое вы сможете монтировать и исследовать локально.
Нет, вы не собираетесь получать исходный код таким образом, за исключением любого (обычно shell) сценария. Значительная часть данных, которые вы получите, будут скомпилированы (и почти наверняка удалены ) двоичные файлы.
Это означает, что если вы хотите увидеть, как работает загрузка на уровне init , вы получите то, что хотите. Если вы хотите исходный код для программного обеспечения, которое работает в системе, вам не повезло (если он не пришел с аппаратным обеспечением, которое, конечно, должно быть). Если вы действительно хотите источники, спросите поставщика системы - они должны дать вам исходный код, в противном случае они нарушают GPL (что используется для большинства программного обеспечения, работающего на Linux boxen в наши дни) - см. GPL Нарушения страницы для получения более подробной информации и списка судебных исков. Это, конечно, относится только к лицензионному программному обеспечению GPL (или аналогичным образом) - если вы находитесь после их проприетарного программного обеспечения, вам, скорее всего, не повезло, хотя иногда можно убедить их предоставить вам некоторый доступ к нему.
Позвольте мне попробовать точку что-то простое.
1.
Если мы уже можем пройти через каталог деревьев, следующая вещь - поиск в текущем каталоге для посещения. Это зависит от того, какой стиль синтаксиса шаблона мы хотим поддерживать. Regex - это совершенно другое. Может быть, мы удовлетворены встроенной грамматической грамматикой оболочки. Тогда это сделает.
for i in * ; do for p in <patterns> ; do
if [[ $i == $p ]]
...
fi
done ; done
2.
Для анализа командной линии BASH имеет встроенные Hotopts, обратитесь к руководству.
3.
Для массивов см. Руководство.
Я не знаю, как выделить день в календаре года cal -y
только регулярными выражениями, но причина, по которой ваш пример не работал для однозначных дат , заключается в том, что $ (дата +% е)
добавляет космос к
Это будет работать:
cal | grep --color -EC6 "\b$(date +%e | sed "s/ //g")"
-121--291798- С socat
на сервере:
socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000
По умолчанию socat
прослушивает порт TCP 8001 на любом IPv4 или IPv6 адресе (если поддерживается) на компьютере. Вы можете ограничить его IPv4/6, заменив tcp-listen
на tcp4-listen
или tcp6-listen
, или на определенный локальный адрес, добавив , bind = that-address
.
Для подключения сокета, к которому выполняется прокси, можно использовать любой адрес вместо localhost
и заменить tcp
на tcp4
или tcp6
, если требуется ограничить разрешение адреса IPv4 или IPv6 адресами.
Обратите внимание, что для сервера, прослушивающего порт 8000, подключение будет отображаться как исходящее от прокси (в случае localhost
, то есть localhost
), а не от исходного клиента. Необходимо использовать DNAT-подходы (но которые требуют привилегий суперпользователя), чтобы сервер мог определить, кто является клиентом.
Грязное решение выглядит следующим образом:
boolRememberNext=0
rememberString=""
for arg in $*; do
if [ ${boolRememberNext} -eq 1 ]; then
rememberString="${rememberString} ${arg}"
fi
if [ "${arg}" = "-name" ]; then
boolRememberNext=1
else
boolRememberNext=0
fi
done
echo ${rememberString} | while read filemask; do
unquotedFile=$(echo "$filemask" | tr -d "'")
ls -R1 ~/homedir/ | grep ":" | cut -d: -f1 | while read dir; do
ls ${dir}/unquotedFile
done
done
Почему оно грязное?
Что можно сделать для улучшения решения?
Вы можете хранить промежуточные результаты в локальных var, улучшить обработку специальных символов и проверить синтаксис.
Можно также выполнить ls ~/homedir/*
и добавить звездочку к пути поиска, пока файлы не будут найдены. Разбор всех файлов с помощью какого-либо фильтра (awk?). Проверьте найденные файлы, что они являются файлами, а не каталогами.