- Operators
- Redirection
- Special variables
- Variable expansion
- Quoting and grouping
- if, for, select, while, until, case
- test or [ … ]
- Prompt escapes ($PS1)
- echo escapes
- date tokens
- printf tokens
- ls -l file identifiers
- Filenames wildcards (glob)
- case wildcards
- trap/kill/killall signals
- Exit codes
- Color codes (ANSI)
- Regex metacharacters
- Regex flavors
- Printable ASCII characters (ISO-8859-1) - text
- Printable ASCII characters (ISO-8859-1) - image
- Copy-paste friendly commands
- Command line shortcuts (set -o emacs)
- Toolbox
Note: This document was translated from portuguese to english by Luiz Miguel Axcar.
1. Operators
| Arithmetic Operators | |
|---|---|
+ |
Addition |
- |
Subtraction |
* |
Multiplication |
/ |
Division |
% |
Modulo |
** |
Exponentiation |
| Attribution Operators | |
= |
Attribute some value to a variable |
+= |
Increase a variable with a constant |
-= |
Decrease a variable with a constant |
*= |
Multiply the variable by a constant |
/= |
Divide a variable by a constant |
%= |
Remainder of division by a constant |
++ |
Increase 1 to the variable value |
-- |
Decrease 1 from the variable value |
| Comparison Operators | |
== |
Equals |
!= |
Not equals to (different) |
> |
Greater than |
>= |
Greater than or equal to |
< |
Less than |
<= |
Less than or equal to |
| Logical Operators | |
&& |
Logical AND |
|| |
Logical OR |
| Bitwise Operators | |
<< |
Left-shift |
>> |
Right-shift |
& |
Bitwise AND |
| |
Bitwise OR |
^ |
Bitwise Exclusive OR (XOR) |
~ |
Bitwise NOT (complement) |
! |
NOT |
| Bitwise Operators (attribution) | |
<<= |
Left-shift |
>>= |
Right-shift |
&= |
Bitwise AND |
|= |
Bitwise OR |
^= |
Bitwise Exclusive OR (XOR) |
2. Redirection
| Operator | Action |
|---|---|
< |
Redirect the standard input (STDIN) |
> |
Redirect the standard output (STDOUT) |
2> |
Redirect the error output (STDERR) |
>> |
Redirect the standard output, appending |
2>> |
Redirect the error output, appending |
| |
Connects the standard output with standard input of another command |
2>&1 |
Connects the error output with standard output |
>&2 |
Connects the standard output with error output |
>&- |
Closes the standard output |
2>&- |
Closes the error output |
3<>file |
Connects the file descriptor 3 to file 'file' |
<<FIM |
Feeds the standard input (Here Document) |
<<-FIM |
Feeds the standard input, striping TABs |
<(cmd) |
The output of command 'cmd' is a file: diff <(cmd1) <(cmd2) |
>(cmd) |
The input of command 'cmd' is a file: tar cf >(bzip2 -c >file.tbz) $dir |
3. Special variables
| Variable | Positioning parameters |
|---|---|
$0 |
Parameter #0 (name of command or function) |
$1 |
Parameter #1 (from command line or function) |
... |
Parameter #N ... |
$9 |
Parameter #9 (from command line or function) |
${10} |
Parameter #10 (from command line or function) |
... |
Parameter #NN ... |
$# |
Total number of parameters from command line or function |
$* |
All the parameters, in a single string |
$@ |
All the parameters, in many protected strings |
| Variable | Misc |
$$ |
PID of current process (or script) |
$! |
PID of last job in background |
$_ |
Last argument of last executed command |
$? |
Error code of last executed command |
4. Variable expansion
| Syntax | Conditional Expansion |
|---|---|
${var:-text} |
If var is undefined, returns 'text' |
${var:=text} |
If var is undefined, set as 'text' |
${var:?text} |
If var is undefined, returns error message 'text' |
${var:+text} |
If var is defined, returns 'text', else return empty |
| Syntax | String expansion |
${var} |
Is the same of $var, but not ambiguous |
${#var} |
Return the string length |
${!var} |
Executes the content of $var (like 'eval \$$var') |
${!text*} |
Return the names of variables starting with 'text' |
${var:N} |
Return the text from position 'N' |
${var:N:len} |
Return 'len' chars from position 'N' |
${var#text} |
Cut 'text' from beginning of string |
${var##text} |
Cut 'text' from beginning of string (*greedy) |
${var%text} |
Cut 'text' from end of string |
${var%%text} |
Cut 'text' from end of string (*greedy) |
${var/text/new} |
Replace 'text' by 'new', once |
${var//text/new} |
Replace 'text' by 'new', all |
${var/#text/new} |
If string starts with 'text', replace 'text' by 'new' |
${var/%text/new} |
If string ends with 'text', replace 'text' by 'new' |
${var^} |
Uppercase the first character |
${var^^} |
Uppercase all the characters |
${var,} |
Lowercase the first character |
${var,,} |
Lowercase all the characters |
${var~} |
Reverse the case of the first character |
${var~~} |
Reverse the case of all the characters |
5. Quoting and grouping
| Syntax | Description | Example |
|---|---|---|
"..." |
Protects a string, but parse $, \ and ` as special chars | "abc" |
'...' |
Protects a string completely (no special chars recognized) | 'abc' |
$'...' |
Protects a string completely, but interprets \n, \t, \a, etc | $'abc\n' |
`...` |
Execute commands in a subshell, returning the result | `ls` |
{...} |
Group commands | { ls ; } |
(...) |
Execute commands in a subshell | ( ls ) |
$(...) |
Execute commands in a subshell, returning the result | $( ls ) |
((...)) |
Test an arithmetic operation, returning 0 or 1 | ((5 > 3)) |
$((...)) |
Return the result of a arithmetic operation | $((5+3)) |
[...] |
Test an arithmetic expression, returning 0 or 1 (alias of command 'test') | [ 5 -gt 3 ] |
[[...]] |
Test an expression, returning 0 or 1 (&& and || are allowed) | [[ 5 > 3 ]] |
6. if, for, select, while, until, case
| if | for / select |
|---|---|
if COMMAND then ... elif COMMAND then ... else ... fi |
for VAR in LIST
do
...
done
or:
for ((exp1;exp2;exp3))
|
| while / until | case |
while COMMAND
do
...
done
|
case $VAR in
txt1) ... ;;
txt2) ... ;;
txtN) ... ;;
*) ... ;;
esac
|
7. test or [ … ]
| Numeric comparison | |
|---|---|
-lt |
Less Than |
-gt |
Greater than |
-le |
Less than or Equal to |
-ge |
Greater than or Equal to |
-eq |
Equals |
-ne |
Not Equal to (different) |
| String comparison | |
= |
Equals |
!= |
Not Equal to (different) |
-n |
Not NULL |
-z |
Is NULL |
| Logical Operators | |
! |
Logical NOT |
-a |
Logical AND |
-o |
Logical OR |
| Testing files | |
-b |
Is a block device |
-c |
Is a char device |
-d |
Is a directory |
-e |
File exists |
-f |
Is a regular file |
-g |
SGID bit is switched on |
-G |
Current user is in the file's group |
-k |
Sticky-bit is switched on |
-L |
File is a symlink |
-O |
Current user owns the file |
-p |
File is a named pipe |
-r |
File has read permission |
-s |
File size is greater than zero |
-S |
File is a socket |
-t |
File descriptor N is a terminal |
-u |
SUID bit is switched on |
-w |
File has write permission |
-x |
File has execution permission |
-nt |
File is Newer Than |
-ot |
File is Older Than |
-ef |
File is the same - Equal File |
8. Prompt escapes ($PS1)
| Escape | Reminder | Expands to... |
|---|---|---|
| \a | Alert | Alert (beep) |
| \d | Date | Date in format "Week-day Month Day" (Sat Jan 15) |
| \e | Escape | Esc character |
| \h | Hostname | Hostname without the domain (dhcp11) |
| \H | Hostname | Full hostname (dhcp11.company) |
| \j | Jobs | Number of active jobs |
| \l | Tty | Name of current terminal (ttyp1) |
| \n | Newline | New Line |
| \r | Return | Carriage return |
| \s | Shell | Shell name (basename $0) |
| \t | Time | Time in 24 hours format HH:MM:SS |
| \T | Time | Time in 12 hours format HH:MM:SS |
| \@ | At | Time in 12 hours format HH:MM am/pm |
| \A | At | Time in 24 hours format HH:MM |
| \u | User | Current user login |
| \v | Version | Bash Version (2.00) |
| \V | Version | Bash Version + Subversion (2.00.0) |
| \w | Working Dir | Full working dir ($PWD) |
| \W | Working Dir | Last working dir (basename $PWD) |
| \! | History | Number of current command in history |
| \# | Number | Number of current command |
| \$ | ID | Show "#" if user is root, and "$" in case of a regular user |
| \nnn | Octal | Char which Octal value is nnn |
| \\ | Backslash | Backslash \ literal |
| \[ | Escapes | Start a escape sequence (color codes) |
| \] | Escapes | Finish a escape sequence |
9. echo escapes
| Escape | Reminder | Description |
|---|---|---|
| \a | Alert | Alert (beep) |
| \b | Backspace | Backspace character |
| \c | EOS | Ends the string |
| \e | Escape | Esc character |
| \f | Form feed | Form Feed |
| \n | Newline | Newline |
| \r | Return | Carriage Return |
| \t | Tab | Tab |
| \v | Vtab | Vertical Tab |
| \\ | Backslash | Backslash |
| \nnn | Octal | Character whose octal code is nn |
| \xnn | Hexa | Character whose hexadecimal code is nn |
10. date tokens
| Format | Description |
|---|---|
%a |
Day of the week - abbreviated name (Sun..Sat) |
%A |
Day of the week - full name (Sunday..Saturday) |
%b |
Month name - abbreviated (Jan..Dec) |
%B |
Month name - full (January..December) |
%c |
Locale's date and time (Thu 05 May 2011 11:41:41 AM EST) |
%y |
Year (two digits) |
%Y |
Year (four digits) |
%m |
Month (01..12) |
%d |
Day (01..31) |
%j |
Day of year (001..366) |
%H |
Hours (00..23) |
%M |
Minutes (00..59) |
%S |
Seconds (00..60) |
%s |
Seconds since 00:00:00, Jan 1, 1970 (Unix time) |
%% |
A literal % |
%t |
A TAB |
%n |
A newline |
11. printf tokens
| Format | Description |
|---|---|
%d |
Integer number |
%o |
Octal number |
%x |
Hexadecimal Number (a-f) |
%X |
Hexadecimal Number (A-F) |
%f |
Float number |
%e |
Scientific notation x.xxxx e nnn. float, double (e+1) |
%E |
Same as %e, but with an upper-case E in the printed format |
%s |
String |
12. ls -l file identifiers
| Letter | Reminder | File types (First char) |
|---|---|---|
| - | - | Regular file |
| d | Directory | Directory |
| l | Link | Symbolic link |
| b | Block | Block Device (Hard drives) |
| c | Char | Character device (serial modem) |
| s | Socket | Mapped socket in a file (processes communication) |
| p | Pipe | FIFO or Named Pipe (processes communication) |
| Letter | Reminder | File permission (next nine chars) |
| - | - | Deactivated |
| r | Read | Read Permission |
| w | Write | Write permission |
| x | eXecute | Execution permission (or directory access) |
| X | eXecute | Directory access only |
| s | Set ID | User/group for execution (SUID, SGID) - permission 'x' activated |
| S | Set ID | User/group for execution (SUID, SGID) - permission 'x' deactivated |
| t | sTicky | Users delete his own files only - permission 'x' activated |
| T | sTicky | Users delete his own files only - permission 'x' deactivated |
13. Filenames wildcards (glob)
| Wildcard | Matches... | Example |
|---|---|---|
* |
Anything | *.txt |
? |
Any char | file-??.zip |
[...] |
Any char in the group | [Ff]ile.txt |
[^...] |
Any char, except those in the group | [^A-Z]*.txt |
{...} |
Any text, comma separated | file.{txt,html} |
14. case wildcards
| Wildcard | Matches... | Example |
|---|---|---|
* |
Anything | *.txt) echo ;; |
? |
Any char | file-??.zip) echo ;; |
[...] |
Any char in the group | [0-9]) echo ;; |
[^...] |
Any char, except those in the group | [^0-9]) echo ;; |
...|... |
Ant text, pipe separated | txt|html) echo ;; |
15. trap/kill/killall signals
| # | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac |
|---|---|---|---|---|---|---|---|
| 1 | HUP | HUP | HUP | HUP | HUP | HUP | HUP |
| 2 | INT | INT | INT | INT | INT | INT | INT |
| 3 | QUIT | QUIT | QUIT | QUIT | QUIT | QUIT | QUIT |
| 4 | ILL | ILL | ILL | ILL | ILL | ILL | ILL |
| 5 | TRAP | TRAP | TRAP | TRAP | TRAP | TRAP | TRAP |
| 6 | ABRT | ABRT | IOT | LOST | ABRT | ABRT | ABRT |
| 7 | BUS | EMT | EMT | EMT | EMT | EMT | EMT |
| 8 | FPE | FPE | FPE | FPE | FPE | FPE | FPE |
| 9 | KILL | KILL | KILL | KILL | KILL | KILL | KILL |
| 10 | USR1 | BUS | BUS | BUS | BUS | BUS | BUS |
| 11 | SEGV | SEGV | SEGV | SEGV | SEGV | SEGV | SEGV |
| 12 | USR2 | SYS | SYS | SYS | SYS | SYS | SYS |
| # | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac |
| 13 | PIPE | PIPE | PIPE | PIPE | PIPE | PIPE | PIPE |
| 14 | ALRM | ALRM | ALRM | ALRM | ALRM | ALRM | ALRM |
| 15 | TERM | TERM | TERM | TERM | TERM | TERM | TERM |
| 16 | - | URG | USR1 | URG | USR1 | USR1 | URG |
| 17 | CHLD | STOP | USR2 | STOP | USR2 | USR2 | STOP |
| 18 | CONT | TSTP | CHLD | TSTP | CHLD | CHLD | TSTP |
| 19 | STOP | CONT | PWR | CONT | PWR | PWR | CONT |
| 20 | TSTP | CHLD | WINCH | CHLD | VTALRM | WINCH | CHLD |
| 21 | TTIN | TTIN | URG | TTIN | PROF | URG | TTIN |
| 22 | TTOU | TTOU | IO | TTOU | IO | IO | TTOU |
| 23 | URG | IO | STOP | IO | WINCH | STOP | IO |
| 24 | XCPU | XCPU | TSTP | XCPU | STOP | TSTP | XCPU |
| # | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac |
| 25 | XFSZ | XFSZ | CONT | XFSZ | TSTP | CONT | XFSZ |
| 26 | VTALRM | VTALRM | TTIN | - | CONT | TTIN | VTALRM |
| 27 | PROF | PROF | TTOU | MSG | TTIN | TTOU | PROF |
| 28 | WINCH | WINCH | VTALRM | WINCH | TTOU | VTALRM | WINCH |
| 29 | IO | LOST | PROF | PWR | URG | PROF | INFO |
| 30 | PWR | USR1 | XCPU | USR1 | LOST | XCPU | USR1 |
| 31 | SYS | USR2 | XFSZ | USR2 | - | XFSZ | USR2 |
| 32 | - | - | - | PROF | - | WAITING | - |
| 33 | - | - | - | DANGER | - | LWP | - |
| 34 | - | - | - | VTALRM | - | FREEZE | - |
| 35 | - | - | - | MIGRATE | - | THAW | - |
| 36 | - | - | - | PRE | - | CANCEL | - |
| 37 | - | - | - | - | - | LOST | - |
How you can get this list: trap -l, kill -l or killall -l
See also: man 7 signal
16. Exit codes
| Code | Meaning | Example |
|---|---|---|
| 0 | No errors | echo |
| 1 | Catchall for most common errors | echo $((1/0)) |
| 2 | Misuse of shell builtins | - |
| 126 | Command cannot be executed (no permission) | touch a ; ./a |
| 127 | Command not found | echooo |
| 128 | Invalid argument to exit | exit 1.0 |
| 128+n | 128 + exit code which was killed | kill -9 $PPID #exit 137 |
| 130 | Script terminated by Ctrl+C (128 + 2) | - |
| 255 | 'exit' parameter not between 0 and 255 | exit -1 |
17. Color codes (ANSI)
| Color | Letter | Background |
|---|---|---|
| Black | 30 | 40 |
| Red | 31 | 41 |
| Green | 32 | 42 |
| Yellow | 33 | 43 |
| Blue | 34 | 44 |
| Pink | 35 | 45 |
| Cyan | 36 | 46 |
| White | 37 | 47 |
| Attribute | Value | |
| Reset | 0 | |
| Bold | 1 | |
| Underline | 4 | |
| Blinking | 5 | |
| Reverse | 7 | |
| Examples: ESC [ <N>;<N> m | ||
| Regular text (Turn color off) | ESC[m |
|
| Bold | ESC[1m |
|
| Yellow | ESC[33;1m |
|
| Blue background, gray letter | ESC[44;37m |
|
| Blinking red | ESC[31;5m |
|
| On the command line | ||
echo -e '\e[33;1m yellow \e[m' |
||
echo -e '\033[33;1m yellow \033[m' |
||

18. Regex metacharacters
| Meta | Name | Description |
|---|---|---|
| . | Dot | Matches exactly one char (any char) |
| [] | List | Matches any char in the group |
| [^] | Negated list | Matches any char, except those in the group |
| ? | Optional | Matches the preceding item zero or one time |
| * | Star | Matches the preceding item zero or more times |
| + | Plus | Matches the preceding item one or more times |
| {,} | Repeat | Matches the preceding item between m and n times {m,n} |
| ^ | Caret | Matches the start of the line |
| $ | Dollar | Matches the end of the line |
| \b | Boundary | Matches the word boundary |
| \ | Escape | Escapes a metacharacter, taking off its power |
| | | OR | Alternatives (use inside a group) |
| () | Group | Group slices of expression, nesting is allowed |
| \1 | Backreference | Returns group #1 contents |
| \2 | Backreference | Returns group #2 contents (until \9) |
| .* | Catchall | Matches everything, even nothing |
| ?? | Lazy Optional | Like regular Optional, but not greedy |
| *? | Lazy Star | Like regular Star, but not greedy |
| +? | Lazy Plus | Like regular Plus, but not greedy |
| {}? | Lazy Repeat | Like regular Repeat, but not greedy |
19. Regex flavors
| Program | Opt | Plus | Repeat | Boundary | OR | Group |
|---|---|---|---|---|---|---|
| awk | ? | + | - | - | | | () |
| ed | \? | \+ | \{,\} | \b | \| | \(\) |
| egrep | ? | + | {,} | \b | | | () |
| emacs | ? | + | - | \b | \| | \(\) |
| expect | ? | + | - | - | | | () |
| find | ? | + | - | \b | \| | \(\) |
| gawk | ? | + | {,} | \<\> | | | () |
| grep | \? | \+ | \{,\} | \b | \| | \(\) |
| mawk | ? | + | - | - | | | () |
| perl | ? | + | {,} | \b | | | () |
| php | ? | + | {,} | \b | | | () |
| python | ? | + | {,} | \b | | | () |
| sed | \? | \+ | \{,\} | \<\> | \| | \(\) |
| vim | \= | \+ | \{,} | \<\> | \| | \(\) |
20. Printable ASCII characters (ISO-8859-1) - text
32 64 @ 96 ` 162 ¢ 194 Â 226 â
33 ! 65 A 97 a 163 £ 195 Ã 227 ã
34 " 66 B 98 b 164 ¤ 196 Ä 228 ä
35 # 67 C 99 c 165 ¥ 197 Å 229 å
36 $ 68 D 100 d 166 ¦ 198 Æ 230 æ
37 % 69 E 101 e 167 § 199 Ç 231 ç
38 & 70 F 102 f 168 ¨ 200 È 232 è
39 ' 71 G 103 g 169 © 201 É 233 é
40 ( 72 H 104 h 170 ª 202 Ê 234 ê
41 ) 73 I 105 i 171 « 203 Ë 235 ë
42 * 74 J 106 j 172 ¬ 204 Ì 236 ì
43 + 75 K 107 k 173 205 Í 237 í
44 , 76 L 108 l 174 ® 206 Î 238 î
45 - 77 M 109 m 175 ¯ 207 Ï 239 ï
46 . 78 N 110 n 176 ° 208 Ð 240 ð
47 / 79 O 111 o 177 ± 209 Ñ 241 ñ
48 0 80 P 112 p 178 ² 210 Ò 242 ò
49 1 81 Q 113 q 179 ³ 211 Ó 243 ó
50 2 82 R 114 r 180 ´ 212 Ô 244 ô
51 3 83 S 115 s 181 µ 213 Õ 245 õ
52 4 84 T 116 t 182 ¶ 214 Ö 246 ö
53 5 85 U 117 u 183 · 215 × 247 ÷
54 6 86 V 118 v 184 ¸ 216 Ø 248 ø
55 7 87 W 119 w 185 ¹ 217 Ù 249 ù
56 8 88 X 120 x 186 º 218 Ú 250 ú
57 9 89 Y 121 y 187 » 219 Û 251 û
58 : 90 Z 122 z 188 ¼ 220 Ü 252 ü
59 ; 91 [ 123 { 189 ½ 221 Ý 253 ý
60 < 92 \ 124 | 190 ¾ 222 Þ 254 þ
61 = 93 ] 125 } 191 ¿ 223 ß 255 ÿ
62 > 94 ^ 126 ~ 192 À 224 à
63 ? 95 _ 161 ¡ 193 Á 225 á
21. Printable ASCII characters (ISO-8859-1) - image

22. Copy-paste friendly commands
| Conditions with IF |
|---|
if [ -f "$file" ]; then echo 'File found'; fi |
if [ ! -d "$dir" ]; then echo 'Directory not found'; fi |
if [ $i -gt 5 ]; then echo 'Greater than 5'; else echo 'Lesser than 5'; fi |
if [ $i -ge 5 -a $i -le 10 ]; then echo 'Between 5 and 10, inclusive'; fi |
if [ $i -eq 5 ]; then echo '=5'; elif [ $i -gt 5 ]; then echo '>5'; else echo '<5'; fi |
if [ "$USER" = 'root' ]; then echo 'Hello root'; fi |
if grep -qs 'root' /etc/passwd; then echo 'User found'; fi |
| Conditions with AND (&&) and OR (||) |
[ -f "$file" ] && echo 'File found' |
[ -d "$dir" ] || echo 'Directory not found' |
grep -qs 'root' /etc/passwd && echo 'User found' |
cd "$dir" && rm "$file" && touch "$file" && echo 'done!' |
[ "$1" ] && param=$1 || param='default value' |
[ "$1" ] && param=${1:-default value} |
[ "$1" ] || { echo "Usage: $0 parameter" ; exit 1 ; } |
| Adds 1 to variable $i |
i=$(expr $i + 1) |
i=$((i+1)) |
let i=i+1 |
let i+=1 |
let i++ |
| Loop from 1 to 10 |
for i in 1 2 3 4 5 6 7 8 9 10; do echo $i; done |
for i in $(seq 10); do echo $i; done |
for ((i=1;i<=10;i++)); do echo $i; done |
i=1 ; while [ $i -le 10 ]; do echo $i ; i=$((i+1)) ; done |
i=1 ; until [ $i -gt 10 ]; do echo $i ; i=$((i+1)) ; done |
| Loop reading lines from a file or command output |
cat /etc/passwd | while read LINE; do echo "$LINE"; done |
grep 'root' /etc/passwd | while read LINE; do echo "$LINE"; done |
while read LINE; do echo "$LINE"; done < /etc/passwd |
while read LINE; do echo "$LINE"; done < <(grep 'root' /etc/passwd) |
| Wildcards for case command |
case "$dir" in /home/*) echo 'dir inside /home';; esac |
case "$user" in root|john|mary) echo "Hello $user";; *) echo "I don't know you.";; esac |
case "$var" in ?) echo '1 letter';; ??) echo '2 letters';; ??*) echo 'More than 2 letters';; esac |
case "$i" in [0-9]) echo '1 digit';; [0-9][0-9]) echo '2 digits';; esac |
| Dialog boxes |
dialog --calendar 'abc' 0 0 31 12 1999 |
dialog --checklist 'abc' 0 0 0 item1 'desc1' on item2 'desc2' off |
dialog --fselect /tmp 0 0 |
(echo 50; sleep 2; echo 100) | dialog --gauge 'abc' 8 40 0 |
dialog --infobox 'abc' 0 0 |
dialog --inputbox 'abc' 0 0 |
dialog --passwordbox 'abc' 0 0 |
dialog --menu 'abc' 0 0 0 item1 'desc1' item2 'desc2' |
dialog --msgbox 'abc' 8 40 |
dialog --radiolist 'abc' 0 0 0 item1 'desc1' on item2 'desc2' off |
dialog --tailbox /tmp/file.txt 0 0 |
dialog --textbox /tmp/file.txt 0 0 |
dialog --timebox 'abc' 0 0 23 59 00 |
dialog --yesno 'abc' 0 0 |
Hint 1: Dialog ... && echo 'You pressed OK/Yes' || echo 'You pressed Cancel/No' |
Hint 2: result=$(Dialog --stdout --BOXTYPE 'abc' ...) |
23. Command line shortcuts (set -o emacs)
| Shortcut | Description | Similar key |
|---|---|---|
| Ctrl+A | Move the cursor to the beginning of line | Home |
| Ctrl+B | Move the cursor one position left | ← |
| Ctrl+C | Send EOF() to the system | |
| Ctrl+D | Delete the char at right | Delete |
| Ctrl+E | Move the cursor to the end of line | End |
| Ctrl+F | Move the cursor one position at right | → |
| Ctrl+H | Delete the char at left | Backspace |
| Ctrl+I | Complete files and commands | Tab |
| Ctrl+J | Line break | Enter |
| Ctrl+K | Cut from cursor to the end of line | |
| Ctrl+L | Clear screen | |
| Ctrl+N | Next command | |
| Ctrl+P | Previous command | |
| Ctrl+Q | Unlock the shell (see Ctrl+S) | |
| Ctrl+R | Seek in the command history | |
| Ctrl+S | Lock the shell (see Ctrl+Q) | |
| Ctrl+T | Exchange two chars position | |
| Ctrl+U | Cut the whole line | |
| Ctrl+V | Insert a literal character | |
| Ctrl+W | Cut word at left | |
| Ctrl+X | Move the cursor to end/beginning of line (2x) | Home/End |
| Ctrl+Y | Paste the text |
24. Toolbox
| Command | Function | Useful options |
|---|---|---|
| cat | Show file contents | -n, -s |
| cut | Extract fields | -d -f, -c |
| date | Show date | -d, +'...' |
| diff | Compare files | -u, -Nr, -i, -w |
| echo | Show text | -e, -n |
| find | Find files | -name, -iname, -type f, -exec, -or |
| fmt | Format paragraph | -w, -u |
| grep | Search for text | -i, -v, -r, -qs, -n, -l, -w -x, -A -B -C |
| head | Show first lines | -n, -c |
| od | Show chars | -a, -c, -o, -x |
| paste | Merge files | -d, -s |
| printf | Show text | nothing |
| rev | Reverse text | nothing |
| sed | Edit text | -n, -f, s/this/that/, p, d, q, N |
| seq | Count numbers | -s, -f |
| sort | Sort text | -n, -f, -r, -k -t, -o |
| tac | Reverse file | nothing |
| tail | Show last lines | -n, -c, -f |
| tee | Save the stream | -a |
| tr | Transforms the text | -d, -s, A-Z a-z |
| uniq | Remove duplicated | -i, -d, -u |
| wc | Count letters | -c, -w, -l, -L |
| xargs | Manage arguments | -n, -i |
— EOF —