Bash
while
+ sleep
:
while true
do
echo "Hi"
sleep 1
done
Вот то же самое как краткая острота (Из комментариев ниже):
while sleep 1; do echo "Hi"; done
Использование ;
разделить команды и использование sleep 1
для while
тест, так как это всегда возвращает true. Можно поместить больше команд в цикл - просто разделяют их с ;
Это расширяется несколько на !!
прием упоминается в этом ответе. Существует на самом деле набор связанных с историей команд, которые имеют тенденцию быть забытыми о (люди склонны наносить удар, 100 раз вместо этого ища команду, они знают, что ввели).
history
команда покажет список недавно команд выполнения с указателем события налево!N
заменит командой, связанной с указателем события N
!-N
займет место N
th новая команда; например. !-1
заменит новой командой, !-2
второе новое, и т.д.!!
сокращение от !-1
, быстро заменять последней командой!string
заменит новой командой, которая начинается string
!?string?
заменит новой командой, которая содержит string
Указатели Word могут быть прибавлены к a !
команда истории для изменения результатов. Двоеточие разделяет событие и указатели слова, например. !!:0
. Указатель события !!
может быть сокращен до просто !
при использовании указателя слова, таким образом, !!:0
эквивалентно !:0
.
!:0
получит команду, которая выполнялась!:1
получит первый аргумент (и !:2
второе, и т.д.)!:2-3
получит вторые и третьи аргументы!:^
другой путь состоит в том, чтобы получить первый аргумент. !:$
получит последнее!:*
получит все аргументы (но не команда)Модификаторы могут также быть добавлены к a !
команда истории, каждый снабженный префиксом двоеточием. Любое число может быть сложено на (например. !:t:r:p
).
h
- Строка до основного имени файлаt
- Только основное имя файлаr
- Строка до расширения файлаe
- Только расширение файлаs/search/replacement
- Замените первое вхождение search
с replacement
gs/search/replacement
- Замените все случаи search
с replacement
Я люблю зажимать столько материала, сколько я могу в свой PS1. Некоторые полезные вещи помнить:
\e[s
и \e[u
сохраните и не сохраните позицию курсора соответственно. Я использую это для создания 'информационной панели' наверху экрана, несколько строк долго, которые могут соответствовать большему количеству материала. Пример:
PS1='\[\e[s\e[7m\e[1;1H\]\w\n\t \j / \! / \#\[\e[u\e[0m\e[33;1m\][\u@\h \[\e[34m\]\W]\[\e[0m\]\$ '
Объединение с alias clear='echo -e "\e[2J\n"'
.Попробовать!
Кроме того, PROMPT_COMMAND
переменная определяет команду для выполнения перед PS1 каждый раз.
Другой bg
команда. Если Вы забываете помещать &
в конце команды просто нажмите ^Z и тип bg
, и это работает в фоновом режиме.
bg
, когда я имею программу, работающую в фоновом режиме, и случайно нажимаю fg
Я не знаю, как продвинуть его назад :D
– phunehehe
11.08.2010, 10:15
PS1
таким образом, я поместил большую часть материала, который я хочу в свою экранную нижнюю строку...
– Josh
14.12.2010, 18:01
удар - вставляет заключительный параметр предыдущей строки
высокий звук-. самое полезное сочетание клавиш когда-либо, попробуйте его и посмотрите, по некоторым причинам никто не знает об этом.
нажмите его снова и снова для выбора более старых последних параметров.
большой, когда Вы хотите сделать что-то больше к аргументу/файлу, что Вы использовали только момент назад.
alt
-.
это перейдет к предыдущей команде и вытянет последний аргумент от него. Таким образом, если Вы хотите последний аргумент от три команды назад, просто совершили нападки alt
-.
три раза. Согласованный
– clee
20.08.2010, 23:09
yank-last-arg
команда readline, таким образом, это должно работать с любой программой, связанной против readline, не просто Bash или ZSH.
– James Sneeringer
05.10.2011, 19:58
Мой фаворит
man 7 ascii
Простой и настолько очень полезный.
Oct Dec Hex Char Oct Dec Hex Char
────────────────────────────────────────────────────────────────────────
000 0 00 NUL '\0' (null character) 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F
007 7 07 BEL '\a' (bell) 107 71 47 G
010 8 08 BS '\b' (backspace) 110 72 48 H
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
012 10 0A LF '\n' (new line) 112 74 4A J
013 11 0B VT '\v' (vertical tab) 113 75 4B K
014 12 0C FF '\f' (form feed) 114 76 4C L
015 13 0D CR '\r' (carriage ret) 115 77 4D M
016 14 0E SO (shift out) 116 78 4E N
017 15 0F SI (shift in) 117 79 4F O
020 16 10 DLE (data link escape) 120 80 50 P
021 17 11 DC1 (device control 1) 121 81 51 Q
022 18 12 DC2 (device control 2) 122 82 52 R
023 19 13 DC3 (device control 3) 123 83 53 S
024 20 14 DC4 (device control 4) 124 84 54 T
025 21 15 NAK (negative ack.) 125 85 55 U
026 22 16 SYN (synchronous idle) 126 86 56 V
027 23 17 ETB (end of trans. blk) 127 87 57 W
030 24 18 CAN (cancel) 130 88 58 X
031 25 19 EM (end of medium) 131 89 59 Y
032 26 1A SUB (substitute) 132 90 5A Z
033 27 1B ESC (escape) 133 91 5B [
034 28 1C FS (file separator) 134 92 5C \ '\\'
035 29 1D GS (group separator) 135 93 5D ]
036 30 1E RS (record separator) 136 94 5E ^
037 31 1F US (unit separator) 137 95 5F _
040 32 20 SPACE 140 96 60 `
041 33 21 ! 141 97 61 a
042 34 22 " 142 98 62 b
043 35 23 # 143 99 63 c
044 36 24 $ 144 100 64 d
045 37 25 % 145 101 65 e
046 38 26 & 146 102 66 f
047 39 27 ' 147 103 67 g
050 40 28 ( 150 104 68 h
051 41 29 ) 151 105 69 i
052 42 2A * 152 106 6A j
053 43 2B + 153 107 6B k
054 44 2C , 154 108 6C l
055 45 2D - 155 109 6D m
056 46 2E . 156 110 6E n
057 47 2F / 157 111 6F o
060 48 30 0 160 112 70 p
061 49 31 1 161 113 71 q
062 50 32 2 162 114 72 r
063 51 33 3 163 115 73 s
064 52 34 4 164 116 74 t
065 53 35 5 165 117 75 u
066 54 36 6 166 118 76 v
067 55 37 7 167 119 77 w
070 56 38 8 170 120 78 x
071 57 39 9 171 121 79 y
072 58 3A : 172 122 7A z
073 59 3B ; 173 123 7B {
074 60 3C < 174 124 7C |
075 61 3D = 175 125 7D }
076 62 3E > 176 126 7E ~
077 63 3F ? 177 127 7F DEL
Взгляните на этот веб-сайт commandlinefu.com.
Можно также взглянуть на эти четыре статьи Peteris Krumins на его блоге
ascii
программа также полезна. Помимо печати таблицы, это позволяет Вам запросить для одного или нескольких отдельных символов.
– Matthew Flaschen
15.08.2010, 08:24
Не уверенный, если это рассчитывает как "прием", но люди, кажутся очень не знающий о стандарте readline горячие клавиши. Из конкретного использования в оболочках:
Ctrl+L
соответствует символу FormFeed ascii. Это будет обычно перерисовывать экран в текстовых приложениях с экранным окном (например, энергия, меньше, мГц, и т.д.). Хороший, если экран был "загрязнен" некоторым выводом из другой программы.
– hlovdal
18.03.2011, 00:13
Ctrl+W
сокращать одно слово назад, Alt+F
продвигаться одно слово, Alt+B
пойти одно слово назад в строке. Мне нравится Ctrl+Y
и Shift+Insert
потому что у Вас может быть две скопированных строки. Один с Ctrl+U
(вставьте его с Ctrl+Y
) и в то же время можно скопировать другое слово (выберите строку) вставка с (Shift+Insert
).
–
24.02.2012, 21:26
CTRL+R в Bash для поиска/активации ранее выполняемых команд (содержание ~/.bash_history).
Это часто чрезвычайно полезно. Выполнение этого псевдонима подаст PWD по HTTP (индексированному) на порте 8000:
alias webserver="python -m SimpleHTTPServer"
И потому что я работаю, делают все время, и spaz и вводят слишком быстро, эти псевдонимы являются, вероятно, моим наиболее используемым (серьезно):
alias maek=make
alias mkae=make
alias meak=make
alias amka=make
alias akme=make
И вероятно моя наиболее часто используемая часть Bash является простым сценарием, который я называю загрузкой. Я использую его для блитирования любого вида содержания к моему Linode, и это копирует получающийся URL HTTP в мой буфер обмена (щелчок средней кнопкой). Очень полезный для вставки материала людям в IRC:
scp -r $* $user@$host:public_html && {
URL="http://$host/~$user/$(basename $1)"
echo "$URL"
xselection -replace PRIMARY "$URL"
}
Просто пара. Я могу отправить намного больше позже, должен возвратиться к работе!
alias mk=make
Быстрее ввести и менее вероятно понять превратно. Или скомпилируйте от своего редактора, использующего горячую клавишу...
– Lars Haugseth
13.08.2010, 08:29
alias m=make
, или даже m=make -j6
или подобный - кроме я уже использую alias m=mutt
☺
– jmtd
10.05.2011, 15:54
diff
вывод двух команд, не создавая временный файл вручную (удар):
diff <(ls dir1) <(ls dir2)
comm
поскольку это берет файлы только, но в большом количестве случаев это - трата inodes.
– Marcin
05.05.2011, 17:11
Довольно основной, но люди, кажется, не знают, возвраты Вы к предыдущему dir:
cd -
cd
(без аргумента), который берет Вас к Вашему корневому каталогу.
– Mei
04.02.2012, 01:57
Расширение фигурной скобки является механизмом, которым могут быть сгенерированы произвольные строки.
Это позволяет Вам заменять утомительные строки как:
mv loong/and/complex/file/name loong/and/complex/file/name.bacukup
с более коротким экземпляром
mv loong/and/complex/file/name{,backup}
некоторое другое использование
# to display the diff between /etc/rc.conf and /etc/rc.conf.pacsave
diff /etc/rc.conf{,.pacsave}
# to list files in both /usr/share and /usr/local/share
ls /usr/{,local}/share
Арифметическое расширение:
Арифметическое расширение позволяет оценку арифметического выражения и замену результата. Формат для арифметического расширения:
$((expression))
Выражение рассматривают, как будто это было в двойных кавычках, но двойную кавычку в круглых скобках не рассматривают особенно. Все маркеры в выражении подвергаются расширению параметра, представляют расширение в виде строки, управляют заменой и заключают удаление в кавычки. Могут быть вложены арифметические расширения.
$ a=1
$ b=2
$ echo $(( a+(b*2) ))
5
foo[123]
это расширится в foo1 foo2 foo3
, но они должны быть именами файлов для работы в этом случае
– Michael Mrozek♦
23.09.2010, 17:31
Это обычно находится в моем сценарии запуска (.bashrc, .profile, безотносительно)
shopt
совершенство, проверьте комментарии:
shopt -s cdspell # try to correct typos in path
shopt -s dotglob # include dotfiles in path expansion
shopt -s hostcomplete # try to autocomplete hostnames
Псевдоним, которые сохраняют нажатия клавиш: mkdir
и cd
в него:
mkcd () { mkdir -p "$@" && cd "$@"; }
И наконец, что не менее важно, я разочаровался в запоминании синтаксиса tar, таким образом:
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
mkcd
только то, что я называю идентификатор md
. Однако использование "$" как аргумент CD не имеет никакого смысла, так как Вы не можете CD больше чем к одному единственному каталогу. "$" будет работать на mkdir, но затем Вы обрабатываете аргументы по-другому в пользу mkdir и CD, таким образом, я предложил бы md () { mkdir -p "$1"; cd "$1" }
– hlovdal
18.03.2011, 00:20
Две функции удара, которые сохраняют меня много нажатий клавиш.
Сделайте автоматически ls после каждого успешного CD:
function cd {
builtin cd "$@" && ls
}
Поднимитесь n уровни:
# Usage .. [n]
function .. (){
local arg=${1:-1};
local dir=""
while [ $arg -gt 0 ]; do
dir="../$dir"
arg=$(($arg - 1));
done
cd $dir #>&/dev/null
}
builtin foo
обойти наличие функции, определяемой cd
; Я использовал chdir
в моих функциях. Удобный
– Michael Mrozek♦
11.08.2010, 16:39
cd() { builtin cd -- "$@" && { [ "$PS1" = "" ] || ls -hrt --color; }; }
– jmtd
10.05.2011, 17:27
Так как я являюсь обычно промежуточным в командную строку прежде, чем желать искать (CTRL-R в ударе), у меня есть следующее в моем .bashrc
bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward
Это означает, что, если я ввожу CD затем, нажимают/вниз, я вижу все опции, к которым у меня есть cd'd. В основном я использую это для часто используемых директоров как "CD w", и я заканчиваю тем, что прошел все рабочие области, я использую партии.
Одной вещью, которая сохраняет меня много времени, являются команды pushd/popd. Эти парни позволяют Вам создать стопку каталогов и уменьшить ввод много:
/foobar/ > pushd /src/whatever/foo/test
/foobar/src/whatever/foo/test > make run
/foobar/src/whatever/foo/test > popd
/foobar/ > make
setopt autopushd
и все изменения каталога продвинут автоматически прибытие
– Michael Mrozek♦
23.09.2010, 17:34
screen
команда. Это в основном сохраняет Вашу сессию командной строки для того, когда Вы возвращаетесь. Это - вид терминального менеджера, как менеджер окон. Тот путь, на единственном терминальном сеансе, у Вас может быть несколько продолжений виртуальных терминалов. Это очень прохладно.
Если Вы используете screen
, эта функция оболочки (помещает его в .bashrc
) чрезвычайно полезно:
function scr {
if screen -ls | grep -q Main; then
# reattach to Main:
screen -xr Main
else
# name session "Main":
screen -S Main
fi
}
после ввода scr
, это проверит, существует ли Ваша основная сессия и присоединит к нему. Иначе это создаст его.
Если необходимо отредактировать особенно долгую командную строку в ударе
^X^E (Ctrl-X Ctrl-E)
откроет его в редакторе ($EDITOR).
В zsh можно получить то же поведение путем добавления этого к .zshrc:
autoload edit-command-line
zle -N edit-command-line
bindkey '^X^e' edit-command-line
alias s='sudo'
alias r='rake' # i'm a ruby developer
alias ..='cd ..' # although with autocd feature for zsh this comes packed.
Одно из моего избранного, когда я забываю s
:
$ s !! # last command with super user priviledges
bindkey -s '\e[12~' "sudo !!\n"
обязывать (в этом случае) F2 выполнять ту команду. У меня есть та привязка, поэтому когда я выполняю что-то и вижу, "Вы забыли 'sudo', дурак" сообщение об ошибке, я могу просто нанести удар в F2 в раздражение
– Michael Mrozek♦
10.08.2010, 22:50
Если команда берет вход stdin, можно считать вход из файла с <filename
. Это может появиться где угодно в команде, таким образом, эти строки эквивалентны:
cat filename
cat <filename
<filename cat
Это особенно полезно для grep, поскольку он позволяет Вам помещать выражение в конце строки, таким образом, можно быстро изменить grep, управляют этим путем подбрасывания ударом, не будучи должен прокрутить оставленный закончить имя файла:
<filename grep 'expression'
<input foo | bar | baz >output
, это не работает, при попытке смешаться в некоторых примитивах цикличного выполнения оболочки как while
или for
в середине. Таким образом, я сдался и просто поместил его в конец согласно конвенции.
– jmtd
10.05.2011, 16:07
Можно использовать CDPATH
настраивать каталог, эквивалентный из PATH
; при попытке cd foo
и существует нет foo
в текущем каталоге оболочка будет регистрировать каждый из каталогов CDPATH
поиск foo
в них и переключателе к первому это находит:
export CDPATH="/usr"
cd bin # switches to 'bin' if there is one in the current directory, or /usr/bin otherwise
vi `which scriptname`
Поскольку, когда Вы не знаете, где что-то живет, и Вы не заботитесь также.
which
автоматически, таким образом, vi =scriptname
– Michael Mrozek♦
10.08.2010, 22:58
$(scriptname)
– Patrick
16.10.2010, 11:20
Амперсанд. Это помещает Вашу команду в фоновом режиме, таким образом, можно продолжить вводить.
$> sudo updatedb &
При работе вперед, и через некоторое время Вы видите:
[1] 17403
И Ваш процесс сделан! Большой для вещей, где Вы не должны ожидать их для завершения.
&!
к фону задание и отрицают его от оболочки!
– unperson325680
15.03.2011, 13:01
nohup
выполняет это.
– Nathan Osman
06.05.2011, 09:37
Заполнение клавишей Tab. Как плохо это высосало бы, если бы необходимо было вывести все символы каждого пути?
rm -fr /
. Так да заполнение клавишей Tab довольно жизненно важно...
– Eimantas
21.08.2010, 07:58
ls /usr/lib/game-d*/rott*
– jmtd
10.05.2011, 16:08
Umount служат смонтированное устройство:
mount /media/whatever
...
u!mo
!mo
расширяется до последней команды, которая запустилась с mo
(по крайней мере, в ударе). Иногда каждый делает mv
в середине, таким образом, u!m
не будет работать как часто.
У меня есть это в моем .bashrc
#shortcut for CTRL+C and CTRL+V
alias c-c='xclip -sel clip'
alias c-v='xclip -o -sel clip'
function find-all() {
python -c "import re
import sys
for i in re.findall('$1', sys.stdin.read()):
if type(i) == type(''):
print i
else:
print i[0]"
}
И когда я имею исходный код HTML в буфере обмена и хочу найти все ссылки, я использую
c-v | find-all 'href="([^"]*)"' | c-c
И у меня есть все URL в буфере обмена
У меня также есть эта функция
function lsq(){
ls -lh $@ | tr -s ' ' | cut -d' ' -f5,8
}
которые отображают размер (человекочитаемое) и имя файла.
alias temp='cat /proc/acpi/thermal_zone/THRM/temperature'
этот псевдоним для выставочной температуры
function separate() {
python -c "import sys,re; print '$1'.join(re.split('\s*', sys.stdin.read().strip()))";
}
с этой функцией я могу вычислить продукт или сумму аргументов.
alias sum='separate + | bc'
alias product='separate * | bc'
function split-join() {
python -c "import sys,re; print '$2'.join(re.split('$1', sys.stdin.read().strip()))";
}
Это - полезная функция, которые разделяют стандартный вход, разделенный regex, и затем присоединяются к результату.
function factorial() {
seq -s* $1 | bc
}
функция факториала
function wiki() { dig +short txt $1.wp.dg.cx; }
Этот функциональный дисплей текст Wiki по DNS
У меня также есть три цвета funcions
function blue() {
echo -e "\x1b[34m\x1b[1m"$@"\x1b[0m";
}
function green() {
echo -e "\x1b[32m\x1b[1m"$@"\x1b[0m";
}
function red() {
echo -e "\x1b[31m\x1b[1m"$@"\x1b[0m";
}
function md5check() {
test `md5sum $2 | cut -d' ' -f1` = "$1" && green [OK] || red [FAIL]
}
Эта функция проверяет хеш файла md5.
это покажет сообщение об ошибке для данного кода
function strerror() { python -c "import os; print os.strerror($1)"; }
Можно распечатать все сообщения с
alias all-errors='for i in `seq 131`; do echo -n "$i: "; strerror $i; done'
Другой полезный прием ZSH:
Рассматривайте вывод команды как файл:
emacs =(hg cat -r 100 somefile)
Это открывает старую версию Подвижно прослеженного файла в emacs для выделенного синтаксисом просмотра. Без этого я должен был бы бездельничать с hg revert
, hg archive
, или явно отправьте hg cat
вывод во временный файл.
Конечно, это работает с любой программой, которая открывает файлы и любую программу, которая печатает к стандартному выводу.
ZSH-определенной функцией являются суффиксные псевдонимы, установленные путем предоставления alias
-s
флаг:
alias -s ext=program
Если данное расширение имеет суффиксный псевдоним, можно выполнить файл с тем расширением непосредственно, и ZSH запустит данную программу и передаст имя файла как аргумент. Таким образом, если вышеупомянутый псевдоним в действительности, эти строки эквивалентны:
/path/to/foo.ext
program /path/to/foo.ext
Одну из моих самых любимых функций ZSH называют каталогами. Можно экспортировать переменную с именем со значением, которое указывает на определенный путь:
export foo=/usr/bin
Теперь можно использовать ~foo
в команде для обращения к /usr/bin
:
cd ~foo
~foo/ls
cat ~foo/filename
Посмотрите этот вопрос.
Когда Вы работаете ps ax | grep string
:
[steve@sage-arch ~]$ ps ax | grep 'openbox'
3363 ? Ss 0:00 /usr/bin/openbox
3382 ? Ss 0:00 /usr/bin/ssh-agent -- /usr/bin/openbox-session
3386 ? S 0:00 /bin/sh /usr/bin/openbox-session
3388 ? S 0:00 /bin/sh /usr/bin/openbox-session
3389 ? S 0:00 /bin/sh /usr/bin/openbox-session
3390 ? S 0:00 /bin/sh /usr/bin/openbox-session
5100 pts/0 S+ 0:00 grep openbox
последняя строка, содержащая grep
немного раздражающие somethings
Можно избавить себя от этого путем выполнения ps ax | grep '[s]tring'
:
[steve@sage-arch ~]$ ps ax | grep '[o]penbox'
3363 ? Ss 0:00 /usr/bin/openbox
3382 ? Ss 0:00 /usr/bin/ssh-agent -- /usr/bin/openbox-session
3386 ? S 0:00 /bin/sh /usr/bin/openbox-session
3388 ? S 0:00 /bin/sh /usr/bin/openbox-session
3389 ? S 0:00 /bin/sh /usr/bin/openbox-session
3390 ? S 0:00 /bin/sh /usr/bin/openbox-session
обновление: или просто выполненный pgrep string
'[o]penbox'
). Скобки будут работать как своего рода шарик, поэтому если будет openbox в Вашем каталоге (скажите, что Вы находитесь в /usr/bin
) удар будет просто использовать openbox, который предотвратит прием grep.
– Rich Homolka
21.10.2010, 22:58
Пустая команда :
как в
while :; do :; done
Расширение фигурной скобки в сочетании с для циклов:
for c in {1..3}; do :; done
!
оператор и срывающие операторы ||
и &&
[ -d /tmp/dir ] || mkdir /tmp/dir
if ! ping 34.41.34.1; then :; fi
использование sub оболочки вместо поп/нажатия (пригождается в сценариях),
~$ ( cd /tmp; echo $PWD )
/tmp
~$
отчасти, что - команда type
~$ type type
type is a shell builtin
~$ type ls
ls is aliased to `ls --color=auto'
~$ f(){ :; }
~$ type f
f is a function
f ()
{
:
}
также очень хороший: здесь-строки
~$ cat <<<"here $PWD"
here /home/yourname
~$
и мой фаворит: перенаправление в списке команд
{ w; ps; ls /tmp; } 2>/dev/null |less
Если Вы - быстрая машинистка, они пригождаются:
alias grpe='grep --color=tty'
alias gpre='grep --color=tty'
alias rgep='grep --color=tty'
alias gerp='grep --color=tty'
Этот макрос помогает Вам вычислить общие количества столбца вывода: размеры файла, байты, пакеты, все, что необходимо сделать, указывают столбец, который Вы хотите добавить:
total ()
{
if [ x$1 = x ]; then set `echo 1`; fi
awk "{total += \$$1} END {print total}"
}
Вы используете его как это, например, без аргументов, это добавляет общее количество первого столбца:
du | total
При обеспечении аргумента он суммирует тот столбец, например, это дает Вам общее количество байтов, используемых всеми файлами C# в/tmp:
ls -l /tmp/*cs | total 5
Иногда Ваша консоль испорчена, потому что Вы случайно просмотрели двоичный файл (кошка/bin/ls, например), можно восстановить терминал с этой функцией оболочки:
restaura ()
{
perl -e 'print "\e)B";'
}
Мне нравится, когда мой ls использует символы, чтобы отличить класс файлов и также скрыть файлы резервных копий, сгенерированные моим редактором (конец файлов резервных копий с ~ символом):
alias ls='ls -FB'
!-#
также. Я действительно использую!string
для выполнения последней команды, которая запускается со строки, но я обычно полный вкладкой она сначала (zsh) для проверки я выполняю правильную вещь – Michael Mrozek♦ 16.12.2010, 20:42!N
будет работать команда..." является описанием, слишком узким; на самом деле,!N
будет заменен командой...; и так далее для всех описаний в ответе. Более корректные и вводные намного более полезные возможности! Например, упомянутыйsudo !!
. – imz -- Ivan Zakharyaschev 16.03.2011, 03:34bash
; в Emacs для просматривания истории входных команд и значений (для M-x или других значений чтения) каждый использует Meta-R вместо этого (Meta-R также используется вeshell
в Emacs). Таким образом, я часто порчу их. – imz -- Ivan Zakharyaschev 16.03.2011, 03:45