Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
echo $SHELL
/bin/bash
bc
bc 1.06.95
...
calc
C-style arbitrary precision calculator (version 2.12.4.4)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; 2^3
8
;
Самое страшное, что может случиться из-за этого — это придётся 15-20 секунд потратить на ручное слияние одновременных исправлений от двух разных людей в одном блоке.
Чтобы заменить все нахождения подстроки в одном или нескольких файлах
$ cat file | sed 's/first/second/g'
$ man sed
Имхо, удобнее sed дёргать.
$ cat file | sed 's/first/second/g'
cat излишен.$ sed 's/first/second/g' fileСогласен. Только cat излишен.угу, а в связке с find вообще убойная сила
find ./ -name '*.txt' -type f -exec sed -i '.bak' 's/first/second/g' {} \;
sed -i --follow-symlinks 's/first/second/g' files*Выучите основы Баша. Просто возьмите и напечатайте man bash в терминале и хотя бы просмотрите его; он довольно просто читается и он не очень большой. Другие шеллы тоже могут быть хороши, но Баш – мощная программа и Баш всегда под рукой (использование исключительно zsh, fish и т.д., которые наверняка круто выглядят на Вашем ноуте во многом Вас ограничивает, например Вы не сможете использовать возможности этих шеллов на уже существующем сервере).
Выучите хотя бы один консольный редактор текста. Идеально Vim (vi), ведь у него нет конкурентов, когда вам нужно быстренько что-то подправить (даже если Вы постоянно сидите на Emacs/какой-нибудь тяжелой IDE или на каком-нибудь модном хипстерском редакторе)
-- iostat, sysstat, sar, glances, iftop ++ atop -- slurm ++ speedometer -- 7z ++ xz ++ pxz, pigz, pbzip2 - многопоточные компрессоры, на многопроцессорных системах творят магию моментально. совместимы с их однопоточными предшественниками xz, gz, bzip2

~$ m4
The program 'm4' is currently not installed. You can install it by typing:
sudo apt-get install m4
~$ pv
The program 'pv' is currently not installed. You can install it by typing:
sudo apt-get install pv
The GNU Core Utilities are the basic file, shell and text manipulation utilities of the GNU operating system.(отсюда)
These are the core utilities which are expected to exist on every operating system.
% getent passwd valdikss
valdikss:x:1000:100::/home/valdikss:/usr/bin/zsh% getent group nonexistent || groupadd nonexistentgetmntent (3). Это функция библиотеки, но утилиту из неё сделать несложно. Больше не придётся грепать/парсить руками fstab/mtab.Чтобы заменить все нахождения подстроки в одном или нескольких файлах:
perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt
… Например, alt-. бежит по предыдущим аргументам команды, а alt-* расширяет глоб.??Тут и в источнике почему-то ошиблись (2 раза). Разбор манов вот о чём говорит:
Например, alt-. вставляет последний аргумент предыдущей команды, а ctrl-x * разворачивает глоб.
...For example **alt-.** inserts last argument of previous command, and **ctrl-x *** [expands a glob](...)(правда, проверить не на чем). Тут, если совсем точно, то «ctrl-x *» надо ещё настроить в ~/.inputrc (по первой ссылке).
watch ps xw
Кто-то заметил проблему длинных строк, она решабельна, но тогда скорее всего сломается git diff, поэтому пока что советую в редакторе, в котором вы редактируете маркдаун включить перенос строк.
Кстати, почему на Хабре до сих пор нет маркдауна? Местная разметка — убогий отстой. OMG, Emoji тут тоже не поддерживаются
rand=$(jot -r 1 1 100); wget -qO- http://shortiki.com/export/api.php\?format\=json\&type\=top\&amount\=100 | jq ".[$rand].content" | say --voice=Milena -i
Например не упомянуто, что некорректно логиниться от root, лучше вообще иметь пользователя root с пустым паролем и запретить логин с пустым паролем. А права суперпользователя наследовать через su/sudo — это современная практика.
function taocl() {
curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README-ru.md |
pandoc -f markdown -t html -s |
xmllint --format --recover --dropdtd --html --xpath "(html/body/ul/li[count(p)>0])[$RANDOM mod last()+1]" - 2>/dev/null |
html2text -utf8 |
fmt -80
}cat json.json | python -mjson.tool
cat /proc/`pidof someapp`/environ | tr '\0' '\n'
numfmt --to=iec-i ...
ctrl-u для того, что бы удалить команду полностью
ctrl-k для того, чтобы прыгнуть к концу строкиПо умолчанию у bash-а эмаксовские keybindings, ctrl+u удаляет до начала строки, ctrl-k удаляет до конца строки, а прыгнуть к концу строки — ctrl+e.
Идеально Vim (vi), ведь у него нет конкурентов, когда вам нужно быстренько что-то подправить (даже если Вы постоянно сидите на Emacs...Не хочу разводить holy war, но справедливости ради стоит отметить, что так было лет 20 назад. На текущий момент даже GNU Emacs довольно лёгкий (по сравнению с джавовскими ide), консольная версия стартует моментально и для быстрого редактирования одной строчки подходит не хуже vim-а, который сейчас наворотили так, что весит он побольше многих Emacs-ов. К тому же GNU Emacs-ом мир не ограничивается, openbsd-шный mg ещё легче.
Искусство командной строки