Каков Ваш единственный самый любимый прием командной строки с помощью 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 ответов

< что-либо> | вид | uniq-c | вид-n

даст Вам количество всех различных случаев < что-либо>.

Часто, awk, sed, или сокращение помогают с парсингом данных в < что-либо>.

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

И этот является ключевым для меня на самом деле:

-o vi

/Allan

набора
1
ответ дан Allan Wind 23 November 2019 в 21:47
поделиться

При навигации между двумя отдельными каталогами и копировании файлов назад и вперед, я делаю это:

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.
1
ответ дан Leonard 23 November 2019 в 21:47
поделиться

удар может перенаправить к и от сокетов TCP/IP./dev/tcp/и/dev/udp.

Некоторые люди думают, что это - проблема безопасности, но это - то, для чего безопасность уровня ОС как тюрьма X Соляриса.

, Поскольку Will Robertson отмечает, подсказка изменения, чтобы сделать, материал... печатает команду # для! nn Определяют имя терминала Xterm. Если это - старый Xterm, который не осуществляет сниффинг трафика для установки, это - заголовок.

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

У меня есть различная типографская коррекция ошибок в псевдонимах

alias mkae=make

alias mroe=less
2
ответ дан 2 revs, 2 users 62% 23 November 2019 в 21:47
поделиться

Используя псевдоним может быть экономящий время

alias myDir = "cd /this/is/a/long/directory; pwd"
2
ответ дан Epitaph 23 November 2019 в 21:47
поделиться

CTRL+D выходит из оболочки.

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

Едва ли неясный, но одна из функций I абсолютно любовь является заполнением клавишей Tab.
Действительно полезный, когда Вы перемещаетесь по канавке вся структура поддерева, или когда Вы используете, некоторые затеняют, или долгая команда!

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

Устраните дублирующиеся строки из Списка файла

#sort -u filename > filename.new

все строки, которые не соответствуют условию

#grep -v ajsk filename

, Это не обязательно конкретный Bash (но эй ни один не ls -thor:))

Некоторый другой полезный cmds:

prtdiag, psrinfo, prtconf - больше информации здесь и здесь (размещает в моем блоге).

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

Самые легкие нажатия клавиш для меня для "последнего аргумента последней команды"! $

echo what the heck?

what the heck?

echo !$

heck?
2
ответ дан Leonard 23 November 2019 в 21:47
поделиться

Простая вещь сделать, когда Вы понимаете Вас просто, ввела неправильную строку, поражен Ctrl+C; если Вы хотите сохранить строку, но должны выполнить что-то еще сначала, начать новую строку с наклонной черты влево - \, то Ctrl+C. Строка останется в Вашей истории.

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

Как расширение 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

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

Мне нравится всплеск, раскрашивают мои подсказки:

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] $

Настраивают согласно тому, что Вам нравится видеть :)

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

Ну, это может быть немного вне темы, но если бы Вы - пользователь Emacs, я сказал бы, что "emacs" является самым мощным приемом... перед Вами downvote это, испытайте "оболочку M-x", в emacs экземпляре... Вы получаете оболочку внутри emacs и имеете всю власть emacs наряду с питанием оболочки (существуют некоторые ограничения, такие как открытие другого emacs в нем, но в большинстве случаев это намного более мощно, чем подсказка удара ванили).

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

Ctrl + L будет обычно очищать экран. Работы от подсказки Bash (очевидно), и в GDB и много других подсказок.

4
ответ дан 2 revs, 2 users 67% 23 November 2019 в 21:47
поделиться

Используя историю substiution символы !#, чтобы получить доступ к текущей командной строке, в сочетании с ^, $, и т.д.

, Например, переместить файл из пути со "старый -" префикс:

mv file-with-long-name-typed-with-tab-completion.txt old-!#^

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

Удалите все кроме важный файл :

# shopt -s extglob
# rm -rf !(important-file)

то же в zsh:

# rm -rf *~important-file

Bevore я знал, что должен был переместить важные файлы в другой словарь, удалить все и положить обратно важное снова.

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

Необходимо быть в состоянии вставить следующее в окно терминала удара.

цветовая палитра 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
4
ответ дан 2 revs 23 November 2019 в 21:47
поделиться

! < первые несколько символов команды> выполнят последнюю команду, которая соответствует.

Пример:

!b будет работать, "создают любой-O-p-t-i - на" !., будет работать ./a.out

, Он работает лучше всего с долгими и повторяющимися командами, как компиляция, сборка, выполнитесь и т.д. Это сохранило меня sooo много времени при кодировании и тестировании.

6
ответ дан 2 revs, 2 users 70% 23 November 2019 в 21:47
поделиться

$_ (долларовое подчеркивание): последнее слово от предыдущей команды. Подобный !$ кроме него не помещает его замену в Вашу историю как !$ делает.

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

Похоже на .NET за последние несколько лет немного улучшилось в этом отношении. Похоже, что объект System.Xml.XmlConvert предназначен для удовлетворения целого класса потребностей, возникающих в этом контексте. Следующие функции, по-видимому, предназначены специально для гибкого и совместимого со стандартами преобразования адресов DateTime. в основном использование Control-Z и fg , особенно если я занимаюсь разработкой в ​​терминале. Если у меня открыт emacs и мне нужно скомпилировать, развернуть и т. Д. Я просто Control-Z приостановлю emacs, сделаю то, что мне нужно, и fg , чтобы вернуть его. Это сохраняет все буферы Emacs в целости и делает их намного проще, чем перезапускает все, что я делаю.

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

http://www.commandlinefu.com тоже отличный сайт.

Я узнал на нем довольно полезные вещи, например:

sudo !!

или

mount | column -t
4
ответ дан 23 November 2019 в 21:47
поделиться

Вставить последний параметр предыдущей строки

ALT - . самая полезная комбинация клавиш, попробуйте и убедитесь, почему никто об этом не знает.

Нажимайте ее снова и снова, чтобы выбрать более старые последние параметры.

Замечательно, когда вы хотите сделать что-то еще с тем, чем вы пользовались всего минуту назад.

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

alias .. = 'cd ..'

Поэтому при переходе к резервному копированию каталога просто используйте ..

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

Расширение фигурных скобок:

Очень полезно при запуске ./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}...
3
ответ дан 23 November 2019 в 21:47
поделиться

Поиск дубликатов файлов

Он будет рекурсивно вычислять контрольные суммы из текущего каталога и возвращать имена файлов всех идентичных результатов контрольных сумм:

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]*\ *//;'

Вы, конечно, можете изменить путь.
Возможно, поместите его в функцию или псевдоним и передайте целевой путь в качестве параметра.

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

SSH-туннель:

ssh -fNR 1234:localhost:22 root@123.123.123.123
2
ответ дан 23 November 2019 в 21:47
поделиться

Это предотвращает меньше (меньше больше) от очистки экрана в конце файла:

export LESS="-X"
1
ответ дан 2 revs, 2 users 78% 23 November 2019 в 21:47
поделиться
sudo !!

Выполнения последняя команда с правами администратора.

1
ответ дан 2 revs, 2 users 80% 23 November 2019 в 21:47
поделиться

На Mac OS X,

ESC .

циклически повторится через недавние аргументы на месте. Это: нажатие и выпуск ESC, затем нажмите и выпуск . (ключ периода). На Ubuntu я думаю, что это ALT+..

можно сделать это несколько раз, для возвращения через все недавние аргументы. Это отчасти похоже CTRL + R , но для аргументов только. Это также намного более безопасно, чем !! или $!, начиная с Вас видят , что Вы собираетесь получить перед фактическим выполнением команды.

1
ответ дан 2 revs, 2 users 71% 23 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

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