Каков Ваш единственный самый любимый прием командной строки с помощью Bash? [закрытый]

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, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

156
задан 11 revs, 6 users 62% 5 October 2011 в 03:09
поделиться

98 ответов

Два из моего избранного:

1) Делают заполнение клавишей Tab нечувствительным к регистру (например, "CD/home/User" преобразовывает Вашу командную строку в: "CD/home/user", если последний существует и первый не делает. Можно включить его с "набором completion-ignore-case на" при подсказке или добавить, что это постоянно путем добавления "установило completion-ignore-case на" на .inputrc файл.

2) встроенная команда 'типа' похожа "который", но знающий о псевдонимах также. Например

$ type cdhome
cdhome is aliased to 'cd ~'
$ type bash
bash is /bin/bash
0
ответ дан kchoose2 23 November 2019 в 21:47
поделиться

Я всегда устанавливал свою подсказку по умолчанию на "username@hostname:/current/path/name/in/full>"

PS1='\u@\h:\w> '
export PS1

, Сохраняет много беспорядка, когда Вы имеете дело с большим количеством различных машин.

0
ответ дан dr-jan 23 November 2019 в 21:47
поделиться

При выполнении команды с большим выводом (как большое "делают") я хочу к не, только сохраните вывод, но также и посмотрите его:

делают установку 2> & 1 | кладут E.make

для первого удара
0
ответ дан Mark Greene 23 November 2019 в 21:47
поделиться

Пользовательское заполнение клавишей Tab (compgen и полный удар builtins)

заполнение клавишей Tab хорошо, но способность применить его к больше, чем просто именам файлов является большой. Я использовал его для создания пользовательских функций для расширения аргументов командам, которые я использую все время. Например, позволяет, говорят, что часто необходимо добавлять FQDN как аргумент команде (например, ping blah.really.long.domain.name.foo.com). Можно использовать compgen и завершиться для создания функции удара, которая читает/etc/hosts файл для результатов так все, что необходимо ввести, тогда:

ping blah.<tab>

и это отобразит все Ваши текущие опции соответствия.

Так в основном что-либо, что может возвратить список слов, может использоваться в качестве функции.

0
ответ дан Rock 23 November 2019 в 21:47
поделиться

Как быстрый калькулятор, скажите для вычислений процента:

$ date
Thu Sep 18 12:55:33 EDT 2008
$ answers=60
$ curl "http://stackoverflow.com/questions/68372/what-are-some-of-your-favorite-command-line-tricks-using-bash"  > tmp.html
$ words=`awk '/class="post-text"/ {s = s $0} \
> /<\/div>/ { gsub("<[^>]*>", "", s); print s; s = ""} \
> length(s) > 0 {s = s $0}' tmp.html \
> |  awk '{n = n + NF} END {print n}'`
$ answers=`awk '/([0-9]+) Answers/ {sub("<h2>", "", $1); print $1}' tmp.html`

и наконец:

$ echo $words words, $answers answers, $((words / $answers)) words per answer
4126 words, 60 answers, 68 words per answer
$

Не то, чтобы подразделение является усеченным, не округленный. Но часто это достаточно хорошо для быстрого вычисления.

0
ответ дан mbucciarelli 23 November 2019 в 21:47
поделиться

Как найти файлы, соответствующие тексту, с помощью функции find | grep -H В этом примере какой файл ruby ​​содержит строку перехода -

find. -name '* .rb' -exec grep -H jump {} \;

0
ответ дан 23 November 2019 в 21:47
поделиться

Только для Mac. Это просто, но, ЧЕЛОВЕК, я бы хотел знать об этом много лет назад.

open ./

Открывает текущий каталог в Finder. Вы также можете использовать его, чтобы открыть любой файл с его приложением по умолчанию. Также может использоваться для URL-адресов, но только если вы добавите к URL-адресу префикс http: // , что ограничивает его полезность для открытия случайных случайных сайтов.

0
ответ дан 23 November 2019 в 21:47
поделиться

./mylittlealgorithm < input.txt > output.txt

0
ответ дан 23 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: