Верьте или нет, моя проблема с Soft Keyboard была решена, когда я обнаружил, что анимация Activity может отключить Soft Keyboard. Когда вы вызываете намерение с помощью
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
и
overridePendingTransition(0, 0);
, оно может скрыть программную клавиатуру, и нет способа показать это.
Просмотрите дерево каталогов и распечатайте пути к любым файлам, которые соответствуют регулярному выражению:
find . -exec grep -l -e 'myregex' {} \; >> outfile.txt
Вызов редактора по умолчанию (Nano / ViM)
(работает в большинстве систем Unix, включая Mac OS X) Редактор по умолчанию - это ваш Переменная среды " EDITOR " установлен в. например: экспорт РЕДАКТОР = / usr / bin / pico , что является находится по адресу ~ / .profile в Mac OS X.
Ctrl+x Ctrl+e
Список всех работающих сетевых подключений (включая приложение, которому они принадлежат).
lsof -i -nP
Очистить историю поиска Терминала (Еще один из моих любимых)
history -c
Я считаю commandlinefu.com отличным ресурсом для различных рецептов сценариев оболочки.
# Run the last command as root
sudo !!
# Rapidly invoke an editor to write a long, complex, or tricky command
ctrl-x ctrl-e
# Execute a command at a given time
echo "ls -l" | at midnight
# output your microphone to a remote computer's speaker
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
Что-то вроде отступления, но вы может получить PowerShell в Windows. Он действительно мощный и может делать много вещей типа * nix. Одно интересное отличие состоит в том, что вы работаете с объектами .net вместо текста, что может быть полезно, если вы используете конвейер для фильтрации и т. Д.
В качестве альтернативы, если вам не нужна интеграция .NET, установите Cygwin в окне Windows. (И добавьте его каталог в ПУТЬ Windows.)
Grep (попробуйте Windows Grep )
sed (попробуйте Sed для Windows)
На самом деле, есть отличный набор действительно полезных портов Команды * nix доступны на http://gnuwin32.sourceforge.net/ . Если у вас есть фон * nix и теперь вы используете окна, вам, вероятно, стоит их проверить.
При решении проблем на неисправных Linux-компьютерах наиболее распространенной последовательностью клавиш, которую я набираю в конце, является alt + sysrq REISUB
Было бы лучше, если бы вы держали при себе шпаргалку ... не существует единой команды, которую можно было бы назвать наиболее полезной. Если важная команда делает вашу работу полезной и мощной
Edit , вам нужны мощные сценарии оболочки? сценарии оболочки - это программы. Разберитесь с основами, используйте отдельные команды, и вы получите так называемый мощный сценарий. Тот, который служит вашим потребностям, силен, иначе он бесполезен. Было бы лучше, если бы вы упомянули проблему и спросили, как ее решить.
Способ поиска (в нескольких) плохо отформатированных файлах журнала, в которых строка поиска может быть найдена на "осиротевшей" следующей строке. Например, чтобы при поиске id = 110375 отображать как 1-ю, так и объединенные 3-ю и 4-ю строки:
[2008-11-08 07:07:01] [INFO] ...; id = 110375; ...
[2008-11-08 07:07:02] [INFO] ...; id = 238998; ...
[2008-11-08 07:07:03] [ERROR] ... caught exception
...; id = 110375; ...
[2008-11-08 07:07:05] [INFO] ...; id = 800612; ...
Думаю, должны быть лучшие решения ( да, добавьте их ...! ), чем следующая конкатенация двух строк с использованием sed
перед фактическим запуском grep
:
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: `basename $0` id"
echo "Searches all myproject's logs for the given id"
exit -1
fi
# When finding "caught exception" then append the next line into the pattern
# space bij using "N", and next replace the newline with a colon and a space
# to ensure a single line starting with a timestamp, to allow for sorting
# the output of multiple files:
ls -rt /var/www/rails/myproject/shared/log/production.* \
| xargs cat | sed '/caught exception$/N;s/\n/: /g' \
| grep "id = $1" | sort
... для yield:
[2008-11-08 07:07:01] [INFO] ...; id = 110375; ...
[2008-11-08 07:07:03] [ERROR] ... caught exception: ...; id = 110375; ...
На самом деле, более общее решение добавит все (возможно, несколько) строк, которые не начинаются с некоторой [отметки времени] предыдущей строки. Кто угодно? Конечно, необязательно использовать sed
.
Сила этих инструментов (grep find, awk, sed) заключается в их универсальности, поэтому приводить конкретный случай кажется совершенно бесполезным.
man - самая мощная команда, потому что тогда вы может понять, что вы вводите, вместо того, чтобы слепо копировать вставку из переполнения стека.
Примеры приветствуются, но для этого уже есть темы. Я чаще всего использую:
grep something_to_find * -R
, который можно заменить на ack и
find | xargs
find с результатами, передаваемыми в xargs, может быть очень мощным
Ваша оболочка - это самый мощный инструмент, который у вас есть
Наличие такого уровня знаний оболочки позволяет вам делать огромные объемы в командной строке без необходимости записывать информацию через временные текстовые файлы, копировать / вставлять и т. д., а также использовать огромное количество служебных программ, которые разрешить нарезку / разрезание данных.
Unix Power Tools многое из этого покажет. Каждый раз, открывая свой экземпляр, я нахожу что-то новое.
Некоторые из вас могут не согласиться со мной, но, тем не менее, есть о чем поговорить. Если вы изучите gawk (а также другие варианты) полностью, вы можете пропустить обучение и использование grep / sed / wc / cut / paste и некоторых других инструментов * nix. все, что вам нужно, - это один хороший инструмент, чтобы справиться с работой многих вместе взятых.
Много возможностей Unix проистекает из его способности манипулировать текстовыми файлами и фильтровать данные. Конечно, вы можете получить все эти команды для Windows. Они просто не встроены в ОС, как в Unix.
и возможность связывать команды вместе с конвейерами и т. Д. Это может создавать чрезвычайно мощные отдельные строки команд из простых функций.
Для параллельного запуска нескольких процессов без чрезмерной перегрузки машины (в многопроцессорной архитектуре):
NP=`cat /proc/cpuinfo | grep processor | wc -l`
#your loop here
if [ `jobs | wc -l` -gt $NP ];
then
wait
fi
launch_your_task_in_background&
#finish your loop here
Тот факт, что вы можете использовать -name и -iname несколько раз в команде find, был глазом открывалка для меня.
[findplaysong.sh]
#!/bin/bash
cd ~
echo Matched...
find /home/musicuser/Music/ -type f -iname "*$1*" -iname "*$2*" -exec echo {} \;
echo Sleeping 5 seconds
sleep 5
find /home/musicuser/Music/ -type f -iname "*$1*" -iname "*$2*" -exec mplayer {} \;
exit
] Если что-то работает на одном сервере, но не работает на другом, следующее позволяет вам сравнить все связанные библиотеки:
export MYLIST=`ldd amule | awk ' { print $3; }'`; for a in $MYLIST; do cksum $a; done
Сравните этот список со списком между машинами, и вы сможете быстро выявить различия.
Поиск PID без отображения самого grep
export CUPSPID=`ps -ef | grep cups | grep -v grep | awk '{print $2;}'`
Команда tr является наиболее недооцененной командой в Unix:
#Convert all input to upper case
ls | tr a-z A-Z
#take the output and put into a single line
ls | tr "\n" " "
#get rid of all numbers
ls -lt | tr -d 0-9
Если вы допустили опечатку в длинной команде, вы можете повторно запустить команду с заменой (в bash) :
mkdir ~/aewseomeDirectory
вы можете увидеть, что слово "awesome" написано неправильно, вы можете ввести следующее, чтобы повторно запустить команду с исправленной опечаткой
^aew^awe
, она затем выведет то, что она заменила (mkdir ~ / aweseomeDirectory
) и запускает команду. (не забудьте отменить урон, нанесенный неправильной командой!)
^aew^awe
, она затем выведет то, что она заменила (mkdir ~ / aweseomeDirectory
), и запустит команду. (не забудьте отменить урон, нанесенный неправильной командой!)
^aew^awe
, она затем выведет то, что она заменила (mkdir ~ / aweseomeDirectory
), и запустит команду. (не забудьте отменить урон, нанесенный неправильной командой!)
Мне больше всего нравится команда lsof.
«lsof» может использоваться для вывода списка открытых файловых дескрипторов, сокетов и каналов. Я считаю это чрезвычайно полезным при попытке выяснить, какие процессы и какие порты / файлы использовали на моей машине.
Пример: список всех интернет-соединений без разрешения имени хоста и без преобразования имени порта в порт.
lsof -i -nP
Я так часто этим пользуюсь, что мне на самом деле стыдно. Удалите пробелы из всех имен файлов и замените их подчеркиванием:
[removepaces.sh]
#!/bin/bash
find . -type f -name "* *" | while read file
do
mv "$file" "${file// /_}"
done
for card in `seq 1 8` ;do
for ts in `seq 1 31` ; do
echo $card $ts >>/etc/tuni.cfg;
done
done
was better than writing the silly 248 lines of config by hand.
Neded to drop some leftover tables that all were prefixed with 'tmp'
for table in `echo show tables | mysql quotiadb |grep ^tmp` ; do
echo drop table $table
done
Review the output, rerun the loop and pipe it to mysql
Как выйти из VI
: wq
Сохраняет файл и завершает несчастье.
Альтернатива ": wq
" - " : x
", чтобы сохранить и закрыть редактор vi.