NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
< что-либо> | вид | uniq-c | вид-n
даст Вам количество всех различных случаев < что-либо>.
Часто, awk, sed, или сокращение помогают с парсингом данных в < что-либо>.
И этот является ключевым для меня на самом деле:
-o vi
/Allan
набораПри навигации между двумя отдельными каталогами и копировании файлов назад и вперед, я делаю это:
cd /some/where/long
src=`pwd`
cd /other/where/long
dest=`pwd`
cp $src/foo $dest
command completion will work by expanding the variable, so you can use tab completion to specify a file you're working with.
удар может перенаправить к и от сокетов TCP/IP./dev/tcp/и/dev/udp.
Некоторые люди думают, что это - проблема безопасности, но это - то, для чего безопасность уровня ОС как тюрьма X Соляриса.
, Поскольку Will Robertson отмечает, подсказка изменения, чтобы сделать, материал... печатает команду # для! nn Определяют имя терминала Xterm. Если это - старый Xterm, который не осуществляет сниффинг трафика для установки, это - заголовок.
У меня есть различная типографская коррекция ошибок в псевдонимах
alias mkae=make
alias mroe=less
Используя псевдоним может быть экономящий время
alias myDir = "cd /this/is/a/long/directory; pwd"
Едва ли неясный, но одна из функций I абсолютно любовь является заполнением клавишей Tab.
Действительно полезный, когда Вы перемещаетесь по канавке вся структура поддерева, или когда Вы используете, некоторые затеняют, или долгая команда!
Устраните дублирующиеся строки из Списка файла
#sort -u filename > filename.new
все строки, которые не соответствуют условию
#grep -v ajsk filename
, Это не обязательно конкретный Bash (но эй ни один не ls -thor
:))
Некоторый другой полезный cmds:
prtdiag, psrinfo, prtconf - больше информации здесь и здесь (размещает в моем блоге).
Самые легкие нажатия клавиш для меня для "последнего аргумента последней команды"! $
echo what the heck?
what the heck?
echo !$
heck?
Простая вещь сделать, когда Вы понимаете Вас просто, ввела неправильную строку, поражен Ctrl+C; если Вы хотите сохранить строку, но должны выполнить что-то еще сначала, начать новую строку с наклонной черты влево - \, то Ctrl+C. Строка останется в Вашей истории.
Как расширение CTRL-r для поиска назад можно автоматически заполнить текущий вход с историей при привязке 'history-search-backward'. Я обычно связываю его с тем же ключом, что это находится в tcsh: ESC-p. Можно сделать это путем помещения следующей строки в .inputrc файл:
"\M-p": history-search-backward
, Например, если Вы ранее выполнились, 'делают some_really_painfully_long_target', можно ввести:
> make <ESC p>
и это даст Вам
> make some_really_painfully_long_target
Мне нравится всплеск, раскрашивают мои подсказки:
export PS1="\[\033[07;31m\] \h \[\033[47;30m\] \W \[\033[00;31m\] \$ \[\e[m\]"
я боюсь, что у меня нет снимка экрана для того, на что это похоже, но он, как предполагается, что-то как (все на одной строке):
[RED BACK WHITE TEXT] Computer name
[BLACK BACK WHITE TEXT] Working Directory
[WHITE BACK RED TEXT] $
Настраивают согласно тому, что Вам нравится видеть :)
Ну, это может быть немного вне темы, но если бы Вы - пользователь Emacs, я сказал бы, что "emacs" является самым мощным приемом... перед Вами downvote это, испытайте "оболочку M-x", в emacs экземпляре... Вы получаете оболочку внутри emacs и имеете всю власть emacs наряду с питанием оболочки (существуют некоторые ограничения, такие как открытие другого emacs в нем, но в большинстве случаев это намного более мощно, чем подсказка удара ванили).
Ctrl + L будет обычно очищать экран. Работы от подсказки Bash (очевидно), и в GDB и много других подсказок.
Используя историю substiution символы !#
, чтобы получить доступ к текущей командной строке, в сочетании с ^
, $
, и т.д.
, Например, переместить файл из пути со "старый -" префикс:
mv file-with-long-name-typed-with-tab-completion.txt old-!#^
Удалите все кроме важный файл :
# shopt -s extglob
# rm -rf !(important-file)
то же в zsh:
# rm -rf *~important-file
Bevore я знал, что должен был переместить важные файлы в другой словарь, удалить все и положить обратно важное снова.
Необходимо быть в состоянии вставить следующее в окно терминала удара.
цветовая палитра ANSI Дисплея:
e="\033["
for f in 0 7 `seq 6`; do
no="" bo=""
for b in n 7 0 `seq 6`; do
co="3$f"; p=" "
[ $b = n ] || { co="$co;4$b";p=""; }
no="${no}${e}${co}m ${p}${co} ${e}0m"
bo="${bo}${e}1;${co}m ${p}1;${co} ${e}0m"
done
echo -e "$no\n$bo"
done
256 цветных демонстраций:
yes "$(seq 232 255;seq 254 -1 233)" |
while read i; do printf "\x1b[48;5;${i}m\n"; sleep .01; done
!
< первые несколько символов команды> выполнят последнюю команду, которая соответствует.
Пример:
!b
будет работать, "создают любой-O-p-t-i - на" !.
, будет работать ./a.out
, Он работает лучше всего с долгими и повторяющимися командами, как компиляция, сборка, выполнитесь и т.д. Это сохранило меня sooo много времени при кодировании и тестировании.
$_
(долларовое подчеркивание): последнее слово от предыдущей команды. Подобный !$
кроме него не помещает его замену в Вашу историю как !$
делает.
Похоже на .NET за последние несколько лет немного улучшилось в этом отношении. Похоже, что объект System.Xml.XmlConvert предназначен для удовлетворения целого класса потребностей, возникающих в этом контексте. Следующие функции, по-видимому, предназначены специально для гибкого и совместимого со стандартами преобразования адресов DateTime. в основном использование Control-Z
и fg
, особенно если я занимаюсь разработкой в терминале. Если у меня открыт emacs и мне нужно скомпилировать, развернуть и т. Д. Я просто Control-Z
приостановлю emacs, сделаю то, что мне нужно, и fg
, чтобы вернуть его. Это сохраняет все буферы Emacs в целости и делает их намного проще, чем перезапускает все, что я делаю.
http://www.commandlinefu.com тоже отличный сайт.
Я узнал на нем довольно полезные вещи, например:
sudo !!
или
mount | column -t
Вставить последний параметр предыдущей строки
ALT - . самая полезная комбинация клавиш, попробуйте и убедитесь, почему никто об этом не знает.
Нажимайте ее снова и снова, чтобы выбрать более старые последние параметры.
Замечательно, когда вы хотите сделать что-то еще с тем, чем вы пользовались всего минуту назад.
alias .. = 'cd ..'
Поэтому при переходе к резервному копированию каталога просто используйте ..
Расширение фигурных скобок:
Очень полезно при запуске ./configure
с большим количеством опций:
./configure --{prefix=/usr,mandir=/usr/man,{,sh}libdir=/usr/lib64,\
enable-{gpl,pthreads,bzlib,lib{faad{,bin},mp3lame,schroedinger,speex,theora,vorbis,xvid,x264},\
pic,shared,postproc,avfilter{-lavf,}},disable-static}
Это буквально мои настройки configure для ffmpeg. Без скобок это 409 символов.
Или, еще лучше:
echo "I can count to a thousand!" ...{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}...
Поиск дубликатов файлов
Он будет рекурсивно вычислять контрольные суммы из текущего каталога и возвращать имена файлов всех идентичных результатов контрольных сумм:
find ./ -type f -print0 | xargs -0 -n1 md5sum | sort -k 1,32 | uniq -w 32 -d --all-repeated=separate | sed -e 's/^[0-9a-f]*\ *//;'
Вы, конечно, можете изменить путь.
Возможно, поместите его в функцию или псевдоним и передайте целевой путь в качестве параметра.
SSH-туннель:
ssh -fNR 1234:localhost:22 root@123.123.123.123
Это предотвращает меньше (меньше больше) от очистки экрана в конце файла:
export LESS="-X"
sudo !!
Выполнения последняя команда с правами администратора.
На Mac OS X,
ESC .
циклически повторится через недавние аргументы на месте. Это: нажатие и выпуск ESC
, затем нажмите и выпуск .
(ключ периода). На Ubuntu я думаю, что это ALT+.
.
можно сделать это несколько раз, для возвращения через все недавние аргументы. Это отчасти похоже CTRL + R , но для аргументов только. Это также намного более безопасно, чем !!
или $!
, начиная с Вас видят , что Вы собираетесь получить перед фактическим выполнением команды.