- Basic Operations
1.1. File Operations
1.2. Text Operations
1.3. Directory Operations
1.4. SSH, System Info & Network Operations
1.5. Process Monitoring Operations - Basic Shell Programming
2.1. Variables
2.2. Array
2.3. String Substitution
2.4. Functions
2.5. Conditionals
2.6. Loops - Tricks
- Debugging
แแแแพแแแแแถแแแแแแ แถแแขแแแธแแแแแแแแถแ variable แแแแปแแแถแแแแกแพแแแแแแแทแแธแขแแแธแแฝแแ แแแแแทแแแพแขแแแแ
แแแแพแ variable แแแแแถแแแแแพแแแแแแแถแแแแแแแแพ echo $VARIABLE_NAME แ
exportแงแแถแ แแแแ
$ export
AWS_HOME=/Users/adnanadnan/.aws
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LESS=-R$ echo $AWS_HOME
/Users/adnanadnan/.awswhatis แแแแแถแแแแแแ แถแแแแแแแถแแแแแแแแแธ แแถแแแแแแถ แแถแแแแแแถ, แแแแนแแทแแแแถแแแ, แแแแแถแแแ , แแปแแแถแแแทแ , แแแแแแแถแแแแแแแ แ
whatis somethingแงแแถแ แแแแ
$ whatis bash
bash (1) - GNU Bourne-Again SHell$ whatis uname
uname (1) - print system information
uname (2) - get name and information about current kernelwhereis แแแแแถแแแขแแปแแแแแแแแแแแแแแแแแฏแแแถแ แแทแ แแแแแแแถแแแแแแแแแแแแถแแแแกแพแแแแแพแแแแถแแแแ แแแแปแแแแแแแแแแแแแแแแแแแแแแทแ
whereis nameแงแแถแ แแแแ
$ whereis php
/usr/bin/phpwhich แแแแแถแแแขแแปแแแแแแแแแแแแแธแแถแแแแถแแแแแแแแแถแ variable แแแแทแแแ แ แแถแแนแแแแแ แถแแแแแแแแธแแถแแแแแแแถแแแแแแแแแถแแขแแปแแแแแแถแแแพแ
which program_name แงแแถแ แแแ:
$ which php
/c/xampp/php/phpแแถแแแแแถแแแแแแขแถแแขแแแแแแแแแแถแแแ แแพแขแแแแแแแแแแ แถแ window แ
| cat | chmod | chown | cp | diff | file | find | gunzip | gzcat | gzip | head |
| lpq | lpr | lprm | ls | more | mv | rm | tail | touch |
แแถแแพแแแแแพแแถแแ แแแพแแแ แแแแปแ UNIX แฌ Linuxแ
- แแแแแถแแแแแแ แถแ แขแแแแ แแพแขแแแแแแ
- แแแแแถแแแ แแแแแขแแแแแแฏแแแถแ
- แแแแแถแแแแแแ แผแแขแแแแแแฏแแแถแ
- แแแแแถแแแแแแแพแแขแแแแแแฏแแแถแแแแแธ
cat filename
cat file1 file2
cat file1 file2 > newcombinedfile
cat < file1 > file2 #copy file1 to file2chmod แแแแแแแธแแถแแแ "change mode" แแแแขแแปแแแแถแแฑแแแขแแแแขแถแ แแแแผแแแแผแแฏแแแถแ read write แฌ execute แแพแฏแแแถแแแทแแแแฏแแแถแแ แแแแแถแแแแแแแแถแแแแแขแทแแแแแขแแแแขแถแ แขแถแแแแแปแ แแแแแถแแแแแแแแแถแ แ
chmod -options filenamechown แแแแแแแธแแถแแแ "change owner" แแแแขแแปแแแแถแแฑแแแขแแแแขแถแ แแแแผแแแแ แถแแแแแแแแทแแแแทแแพแฏแแแถแแฌแแแฏแแแถแแแถแแฝแแแถแ แแแแแแแผแแแถแแแแแแแแถ user แฌ groupแ แแถแแแแแพแแแแถแแแแถแแ แแแพแแแบแขแแปแแแแถแแแธ user แแฝแแแ group แแฝแแแแแแพแแแแธแแถแแแทแแแแทแ แผแแแแแแแพแแแแถแแแแแแ
chown -options user:group filenameแแแแแถแแแ แแแแแฏแแแถแแแธแแแแแแแแฝแแแ แแแแแแแแถแแฝแแแแแแแแแแ
cp filename1 filename2filename1 แแแแผแแแแแถแแธแแถแแแแฝแแแแแแแฏแแแถแ แแทแ filename2 แแถแแธแแถแแแแฝแแแถแแแแแแแแฏแแแถแแแแแแแแขแแแแ
แแแ
แแแแแแ
แ
แแแแแถแแแแแแแแแแแฏแแแถแ แแทแแแแแ แถแแแแแแธแแธแแถแแแปแแแแแถแแแฏแแแถแแ
diff filename1 filename2แแแแแถแแแแแแแแแแแแแแฏแแแถแแ
file filenameแงแแถแ แแแแ
$ file index.html
index.html: HTML document, ASCII textแแแแแถแแแแแแแแแแฏแแแถแแแทแแแธแแถแแแแถแแฝแแ
find directory options patternแงแแถแ แแแแ
$ find . -name README.md
$ find /home/user1 -name '*.png'แแแแแถแแแแแแแถแฏแแแถแแแแแแถแแแแแแฝแแแแ gzip แ
gunzip filenameแขแแปแแแแถแแฑแแแขแแแแแพแแฏแแแถแ gzipped แแแแแทแแ แถแแแถแ แแแถแ gunzip แ
gzcat filenameแแแแแถแแแแแแแฝแแฏแแแถแแ
gzip filenameแแแแแถแแแแแแ แถแแขแแแแแ แกแ แแแแแถแแแแแแผแแแแแปแแฏแแแถแแ
head filenameแแทแแทแแแแแพแแแแแแแแแแแ แถแแแถแแฝแแแ
lpqแงแแถแ แแแแ
$ lpq
Rank Owner Job File(s) Total Size
active adnanad 59 demo 399360 bytes
1st adnanad 60 (stdin) 0 bytesแแแแแถแแแแแแ แถแแแแแแแแฏแแแถแแ
lpr filenameแแแแแถแแแแปแแขแแแธแแฝแแแธแแแแแแแแแแ แถแแแถแแฝแแแแแ
lprm jobnumberแแแแแถแแแแแแ แถแแฏแแแถแแแถแแแแแธแ ls แแถแแแแแแพแแแถแ
แแแพแ -l แแแแ แถแแแแแแแถแแฏแแแถแแแธ แแแ แ แแแ
แถแแแแแแแแทแแแแท แแทแแแแแแแแแแ
แปแแแแแแแ -a แแแแแถแแแแแแ แถแแแแแแธแฏแแแถแ แแทแแแแแ แถแแฏแแแถแแแแแแทแแแแแผแแแถแแแแแ แถแแ แแแแแถแแแแแแแแถแแแแแขแทแแแแแขแแแแขแถแ
แขแถแแแแแปแ แแแแแถแแแแแแแแแถแ แ
ls optionแงแแถแ แแแแ
$ ls -la rwxr-xr-x 33 adnan staff 1122 Mar 27 18:44 . drwxrwxrwx 60 adnan staff 2040 Mar 21 15:06 .. -rw-r--r--@ 1 adnan staff 14340 Mar 23 15:05 .DS_Store -rw-r--r-- 1 adnan staff 157 Mar 25 18:08 .bumpversion.cfg -rw-r--r-- 1 adnan staff 6515 Mar 25 18:08 .config.ini -rw-r--r-- 1 adnan staff 5805 Mar 27 18:44 .config.override.ini drwxr-xr-x 17 adnan staff 578 Mar 27 23:36 .git -rwxr-xr-x 1 adnan staff 2702 Mar 25 18:08 .gitignore
แแแแแถแแแแแแ แถแแแแแแแแแแผแแแแฏแแแถแ (แแแแขแแแแขแถแ
แแแแทแแ
แปแแแแแแแแแแแแแพ space แฌแ
แปแ
q แแพแแแแธแแแแ
แแ)แ
more filenameแแแแแถแแแแแแถแแแแแแผแแแธแแถแแแฏแแแถแแแ แแแแแแแแแแแแแฝแแแแแ
mv filename1 filename2filename1 แแแแผแแแแแถแแธแแถแแแแฝแแแแแแแฏแแแถแ แแทแ filename2 แแถแแธแแถแแแแฝแแแถแแแแแแแแฏแแแถแแแแแแแแขแแแแ
แแแแแแถแแแแแแผแแแ
แ
แแถแแแขแถแ แแแแพแแแแแถแแแแแแแแแแฏแแแถแแแแแแแ
mv old_name new_nameแแแแแถแแแแปแแ
แแแฏแแแถแแ แแถแแแแแพแแแแถแแ command แแแแแ
แแพแแแฏแแแถแแแแแแแฑแแแขแแแแแผแแแแ แปแแ
rm: directory: is a directory
แแพแแแแธแแปแแแแฏแแแถแแขแแแแแแแผแแแแแพ -r แแแแแนแแแปแแขแแแแแแแทแแแปแ(recursive)แ แแแแแพแแแแแแแขแแแแขแถแ
แแแแพ -f แแแแแถแแแแแแแ(force) แฑแแแแปแแแแแแแแถแแแถแแแแแแถแแแแถแแฝแแ
rm filenameแแแแแถแแแแแแ แถแแแแแแแแแแฏแแแถแแ
แแแฝแ แกแ แแแแแถแแแ
แปแแแแแแแ -f แแพแแแแธแแแแ แถแแแทแแแแแแแแแแแแแแ
แแแแฏแแแถแแแแแ
tail filenameแแถแแแแแแพแแฏแแแถแแแแแธ แแทแแแถแแแแแถแแแแแแผแแแแแแแแถแแแฏแแแถแแแแแแขแแแแ แแแแแทแแแพแแถแแทแแแถแแแถแแแแแแแแฏแแแถแแแถแแฝแแแ แแถแแนแแแแแผแแแถแแแแแแพแแกแพแแ
touch filenameแงแแถแ แแแ:
$ touch trick.md| awk | cut | echo | egrep | fgrep | fmt | grep | nl | sed | sort |
| tr | uniq | wc |
awk แแบแแถแแถแแแแแแแแถ command แแแแแถแแแแแแแแแแแแแปแแแแแแถแแแแแแแแแถแแฏแแแถแแขแแแแแแ แแถแแแแพแแแถแแแพแฏแแแถแแแถแแแแผแแแถแแแแแแถแแแ แแถแแแแแถแแแพแแแถแแแแพแ
แแแแแแแแแแแแพแแแแธแแแแแแแถแแ แแถแแถแแถแแแแแแแแถแแแแแแแแถ awk
awk '/search_pattern/ { action_to_take_if_pattern_matches; }' file_to_parseแขแแแแขแถแ
แแแแแแผแฏแแแถแ /etc/passwd. แแแแแถแแทแแแแแแแแแแผแแแแฏแแแถแแแแแแถแแ
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
แฅแกแผแแแพแแแถแแแแแ username แแธแฏแแแถแแแฝแแแแแ -F แแแแแถแแแแแแแแแแแแแ แแแแปแแแแแธแแแ :. { print $1 } แแแแแถแแแแแแ แถแแแถแแแแแแแแแแถแแแแแแแแแแแผแแ
awk -F':' '{ print $1 }' /etc/passwdแแแแแถแแแแธแแถแแแแแพแแแถแแแถแแแแแแถแแถแแแพแขแแแแแนแแแแฝแแแถแแแแแแแแแผแ แแถแแแแแแแ
root
daemon
bin
sys
sync
แแแแแถแแแแแแแแถแแแแแขแทแแแถแแแแแพแแแแถแแ awk แขแแแแขแถแ
แขแถแแแแแปแ แแแแแถแแแแแแแแแถแ แ
แแถแแแปแแแแแแแแถแแฝแแแแแปแแฏแแแถแแ
example.txt
red riding hood went to the park to playแแพแแแแธแแแแ แถแแแฝแแแแแธแข แง แแทแ แฉ แแแแแถแแแแแแแถแแปแ
cut -d " " -f2,7,9 example.txtriding park playแแแแ แถแแขแแแแแแแฝแแแแแแถแแ
แแแแ แถแ "Hello World"
echo Hello WorldHello Worldแแแแ แถแ "Hello World" แ แปแแแแแแถแแแแแแธแแแแปแแแฝแแแถแแแแ
echo -ne "Hello\nWorld\n"Hello
Worldแแแแ แถแแขแแแแแแแถแแแแแถแแแแแแแถแแแแแถแ - แแถแแแแทแแแแแแ (alias 'grep -E')
example.txt
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.แแแแ แถแแขแแแแแแแแแแถแแแแแแแถแแแถแแแ "Lorem" แฌ "dolor" แแแแปแแฏแแแถแ
egrep '(Lorem|dolor)' example.txt
or
grep -E '(Lorem|dolor)' example.txtLorem ipsum
dolor sit amet,
et dolore magna
duo dolores et ea
sanctus est Lorem
ipsum dolor sitแแแแ แถแแขแแแแแแแแแแถแแแแแแแถแแแแแถแ - แแถแแแแแผแแแแแแแแถแ FIXED (alias 'grep -F')
example.txt
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
foo (Lorem|dolor)
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.แแแแแแแแขแแแแ '(Lorem|dolor)' แแแแปแแฏแแแถแ example.txt
fgrep '(Lorem|dolor)' example.txt
or
grep -F '(Lorem|dolor)' example.txtfoo (Lorem|dolor) แแแแแแแขแแแแแแถแแแแแถแแ
แงแแถแ แแแ: example.txt (1 line)
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.แแแแ แถแแขแแแแแแแแแแถแแแแแแแถแ แขแ แแถแแแแแแแปแแฏแแแถแ example
cat example.txt | fmt -w 20Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.แแแแแแแถแแแแแแแปแแขแแแแแแฏแแแถแแแฝแ แขแแแแขแถแ แแแแพแแแแถแแ grep แแพแแแแธแแแแแแแแแถแแนแแแแแ แถแแแแแแแแแถแแฝแแ
grep pattern filenameแงแแถแ แแแแ
$ grep admin /etc/passwd
_kadmin_admin:*:218:-2:Kerberos Admin Service:/var/empty:/usr/bin/false
_kadmin_changepw:*:219:-2:Kerberos Change Password Service:/var/empty:/usr/bin/false
_krb_kadmin:*:231:-2:Open Directory Kerberos Admin Service:/var/empty:/usr/bin/falseแขแแแแขแถแ
แแแแพแแถแแแแแแแแแฏแแแถแแแแแแแแแแแพแแแแแแถแแแแแแแแแแพแแแแถแแ -iแ แ
แแแแ -r แแถแขแถแ
แแแแแแแแแแแแแฏแแแถแแแถแแแขแแแแแแแแแทแแแ
แแแแปแแแแฏแแแถแแแแแขแแแแแถแแแแแแแ แงแแถแ แแแแ
$ grep -r admin /etc/แ
แแแแ -w แแแแแถแแแแแแแแแแแแแถแแแแแแปแแแแแแ แแแแแถแแแแแแแแถแแแแแขแทแแแถแแแแแพแแแแถแแ grep แขแแแแขแถแ
แขแถแแแแแปแ แแแแแถแแแแแแแแแถแ แ
แแถแ แแแฝแแแแแแถแแแขแแแแแแแแแปแแฏแแแถแแแฝแแ
example.txt
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.*แแพแแแแธแแแแ แถแแ แแแฝแแแแแแแแแถแแแขแแแแแแแแแปแ example.txt *
nl -s". " example.txt 1. Lorem ipsum
2. dolor sit amet,
3. consetetur
4. sadipscing elitr,
5. sed diam nonumy
6. eirmod tempor
7. invidunt ut labore
8. et dolore magna
9. aliquyam erat, sed
10. diam voluptua. At
11. vero eos et
12. accusam et justo
13. duo dolores et ea
14. rebum. Stet clita
15. kasd gubergren,
16. no sea takimata
17. sanctus est Lorem
18. ipsum dolor sit
19. amet.แแแแแแแแแแแขแแแแแแแแแแแแถแแแแแแแถแแแแถแแแแแแแขแแแแแ
example.txt
Hello This is a Test 1 2 3 4แแแแฝแแแแแแ แแแแแแถ(space) แแถแแฝแแแ แถแแแแแถ(-)
sed 's/ /-/g' example.txtHello-This-is-a-Test-1-2-3-4แแแแฝแแแแแแแแแแแถแแแขแแแแแแขแแแแ "d"
sed 's/[0-9]/d/g' example.txtHello This is a Test d d d dแแแแแแแแแแถแแแขแแแแแแขแแแแแแถแแแแแถแแ
example.txt
f
b
c
g
a
e
dsort example.txt
sort example.txta
b
c
d
e
f
gแแแแแแแแแแถแแแขแแแแแแขแแแแแแแแ แแแแแแแแแปแแฏแแแถแ example.txt
sort example.txt | sort -Rb
f
a
c
d
g
eแแแแแแฌแแปแแขแแแแ
example.txt
Hello World Foo Bar Baz!แแแแแแแแแแแขแแแแแแผแ แแถแแแขแแแแ แแถแขแแแแแแ
cat example.txt | tr 'a-z' 'A-Z' HELLO WORLD FOO BAR BAZ!แแแแแแแแแแแถแแถแแแขแแแแ แแถแ แปแแแแแแถแแแแแแธ
cat example.txt | tr ' ' '\n'Hello
World
Foo
Bar
Baz!แแถแแแถแแแแฌแแปแแ แแแแฝแแแถแแขแแแแแแแแแ
example.txt
a
a
b
a
b
c
d
cแแแแ แถแแขแแแแแแแแแแถแแแแแฝแแแ example.txt (แแแแผแแขแแแแแแแผแแแแแแแแแแแถแแแแแถแแแแถแแปแแแทแ แแพแแทแแแผแ แแแแแแถแแทแแขแถแ แแแแ แถแแขแแแแแแแถแแแแแฝแแแแแแ)
sort example.txt | uniqa
b
c
dแแแแ แถแแขแแแแแแแแแแแแถแแแแธแแฝแแ แแทแแ แแแฝแแแแแแถแแแแแพแแแแแปแแแฝแแแแแแถแแแแถแแฝแแแแแถ
sort example.txt | uniq -c 3 a
2 b
2 c
1 dแแแแ แถแแแแแถแแแขแแแแ แแแฝแแแแแแถแแ แแถแแแ แแทแแแแแแแแแแแแถแแแแแปแแฏแแแถแแ
wc filenameแงแแถแ แแแแ
$ wc demo.txt
7459 15915 398400 demo.txt7459 แ
แแแฝแแแแแแถแแ 15915 แ
แแแฝแแแถแแแ แแทแ 398400 แแแแแแแ
| cd | mkdir | pwd |
แขแแแแขแถแ แแแแถแแแแแแผแแแธแแธแแถแแแแฝแแแ แแธแแแถแแแแแแแแแแแแแแแแพ
$ cdแแแแถแแแแแแผแแขแแแแแธแแธแแถแแแแพแแแ
แแธแแถแแ dirname แแถแแธแแถแแแขแแแแแแแผแแแ
cd dirnameแแแแแพแแแแแแแธ
mkdir dirnameแขแแแแขแถแ แแแแแพแแแแแแแธแ แแแพแแแแแปแแแถแแแแแแถแแแแแแแแแแปแแแแแแแขแแแแแแแทแแแ
mkdir 1stDirectory 2ndDirectory 3rdDirectoryแขแแแแขแถแ แแแแแพแแแแแแแธแแ แแพแแแแแแขแแแแแทแแแแแทแแแ แ แงแแถแ แแแ แขแแแแ แแแแแแแพแแแ 'project1' แแแแปแ '/samples/bash/projects/' แแแแขแแแแแถแแแแแทแแแ แแแแแแแแแแ
mkdir /samples/bash/projects/project1แแแแพแแแแแแขแแแแแแแแพแแแแแแทแแแถแแแแแแแแแแแแ แแถแแนแแแแแแพแแแแแแแฑแแแขแแแ
แแแแแถแแแแแแถแแแแธแแถแแแแ แแ แปแแแแแแแแแแขแแแแแแแทแแแ แ
pwd| bg | cal | date | df | dig | du | fg | finger | jobs | last |
| man | passwd | ping | ps | quota | scp | ssh | top | uname | uptime |
| w | wget | whoami | whois |
แแแแแธแแถแแแแแแแแฌแแถแแแถแแแแแแถแแแแแพแแแถแแแ แแถแแแแแแ แแถแแแแขแถแแแแแแพแแแถแแแถแแแถแแแถแแแแแพแแแถแแแ แแถแแแแแแแ
แแแแ แถแแแแแแทแแทแแแแแแแแแแ
แแแแ แถแแแแแแแ แแทแแแแแแแ แแ แปแแแแแแ
แแแแ แถแแแทแแแแแแแแถแแแแแพแแแแถแแ แแธแ
แแแแ แถแแแแแแแถแแแแแแ DNS
dig domainแแแแ แถแแแทแแแแแแแแถแแแแแพแแแแถแแแแธแแแแฏแแแถแแฌแแแแถแแ แแแแแถแแแแแแแแถแแแแแขแทแแแถแแแแแพแแแแถแแ แขแแแแขแถแ แขแถแแแแแปแ แแแแแถแแแแแแแแแถแ แ
du [option] [filename|directory]แแแแแพแแแแแแแแ
-h(human readable) แแแแ แถแแแแแแแแแทแแแถ แแธแกแผแแแแ (kilobytes - K) แแแ แแแถแแแแแแถแ (Megabytes - M) แแทแ แแธแ แแแถแแแแแแถแ (Gigabytes - G)-s(supress or summarize) แแแแ แถแแแทแแแแแแแแแปแแแธแแแแแแฏแแแถแ แแทแ แแแถแแแถแแแแแแแแถแแแแแแ
แงแแถแ แแแแ
du -sh pictures
1.4M picturesแแถแแแแแผแแแถแแแถแแแแแธแแแแแ แแแแแแถแแแปแแ
แแแแ แถแแแแแแแถแแขแแแธแขแแแแแแแพแแแแถแแ user แ
finger usernameแแแแ แถแแแแแแธแแถแแแถแแแทแแ แแแฝแแแแแแแแปแแแแแพแแแ แแถแแแแแแแ
แแแแ แถแแแทแแแแแแแ แแแฝแแแถแแ แผแแแแแพแแแแถแแแแแแแขแแแแแแแพแแแแถแแ user
last yourUsernameแแแแ แถแแแแแแ แแแแถแแแแแแถแแแแถแแแแแแแแถแแแแแถแแแแแแถแแแ
man commandแขแแปแแแแถแแฑแแแขแแแแแแแปแแแแแพแแแแถแแแขแถแ แแแแผแแแแแแแแแถแแ
Ping host แแทแแแแแ แถแแแแแแแ
ping hostแแแแ แถแแแแแแแทแแธแแแแปแแแแแพแแแถแ
ps -u yourusernameแแแแ แถแแแแแแแถแแแแแขแทแแแธแแแแแธแแธแแฝแแแแแแแแแพแแแแถแแ flag
ps -efแแแแ แถแแแถแแธแแแแแแขแแแ
quota -vแแแแแแฏแแแถแแแแถแแแแถแแแธแแแแแพแแแแถแแแแทแแแแถแแแธแแแแแแถแ แแแแถแแฌแแแถแแแแถแแแธแแแธแแแแแถแแธแ แแแแถแแแธแแ
แ แแแแแแธแแแถแแแธแแแแแพแแแแถแแแแ แแแถแแแธแแแแแแถแแธแ แแแแถแ
scp source_file user@host:directory/target_fileแ แแแแแแธแแแถแแแธแแแแแแถแแธแ แแแแถแแแแแถแแแแธแแแแแพแแแแถแแ
scp user@host:directory/source_file target_file
scp -r user@host:directory/source_folder target_folderแแถแแแแแแถแแแแแถแแแแแแพแแแแแแแ -P แแแแขแถแ
แแแแพแแแแถแแแแแแแถแแแแแแถแแแแแแพแแแแถแแ Port แแถแแฝแแแถแ
scp -P port user@host:directory/source_file target_fileshh (SSH client) แแบแแถแแแแแแทแแธแแฝแแแแแแถแแแ แผแแแแแพแแแแถแแแแทแแแแแพแแแถแแแถแแแแแแถแแ แแถแแแแแถแแแธแแแแแแถแแธแ แแแแถแแ
ssh user@hostแแถแแแแแแถแแแแแถแแแแแแพแแแแแแแ -p แแแแขแถแ
แแแแพแแแแถแแแแแแแถแแแแแแถแแแแแแพแแแแถแแ Port แแถแแฝแแแถแ
ssh -p port user@hostแแแแ แถแแแธแแแแพแแแถแแแ แแ แปแแแแแแแแแแแขแแแ
แแแแ แถแแแธแแแแแแถแ kernel
uname -aแแแแ แถแแแธแแแแแแแถแแ แแ แปแแแแแแแแแแพแแแแถแแแแปแแแแแผแแแ
แแแแ แถแแแแแถแแแแขแถแ แ แผแแแแแพแแแแถแแแแถแ
แแแแแถแแแแถแแแแฏแแแถแ
wget fileแแแแ แถแแแธแแแแแแขแแแแแแแแแแปแแแแแพแแแแถแแแแ แแ แปแแแแแแ
แแแแ แถแแแแแแแถแแแแ แถแแ domain
whois domain| kill | killall | & | nohup |
แแแแแแแแถแแแแแพแแแถแแแถแแฝแแแแ ID
kill PIDแแแแแแแแถแแแแแพแแแถแแแถแแฝแแแแแแแแแ
killall processnameแแแแแถ & แแถแแแแแแถแแแแแแถแแแแแแแแแแแแแแ
command &nohup แแแแธแแถแแแ "No Hang Up" แขแแปแแแแถแแฑแแแขแแแแแแแแถแฌแแแแพแแแถแ script แแถแแฝแแแแแขแแแแแถแแแแแแแแถแแนแแแแแพแแแถแแแ แผแแแแแแธแขแแแแแถแแ แถแแ แแแแแแแแ
nohup commandแแแแถแแแแถแแแแแพแแแถแแแแแแแแแแแแแแแแแถ & แแพแแแแธแแแแแพแแแถแแแแแพแแแถแแแถแแแแแแ
nohup command &แแแแแถแแแแแแผแแแแแขแแแแแนแแแแแผแแแแแแแแถ script แแแแผแแแถแแแแ แ
แแถ shebang แ แแแแแถแแ script แแแแแถแขแถแ
แแถแแแแแแแแถแแแแแพแ script แแแแแทแแ
แแแถแ
แแแแแพแแแแถแแ sh, bash, python, php etc แแ
แแถแแแพแแแแแปแแแแแถแแแแแแแแแ
แแพแแแแธแแแแพแแถแแแแแแถแแแแกแพแแ
#!/usr/bin/env bashแแถแแแแแแพแแขแแแแแ แแแแปแ bash แแบแแแแแแแแนแแแถแแถแแแแแแแแแ แแถแแทแแแถแแแแแแแแแทแแแแแแแแ แขแแแแแแแปแแแแแแปแแขแถแ แแถแแแแแแฝแขแแแแแ แขแแแแแทแแ แถแแแถแ แแแแแแถแแแแแแแแขแแแแแแแแแถแแแแแแแแแแแแแแแแ แแถ แแถแแนแแแแแแพแแแแแแแแฝแแฏแแ
แงแแถแ แแแแ
str="hello world"แแถแแแพแแแแแถแแถแแแแแแพแแขแแแ str แแแแแถแแแแแแ "hello world"แ แแแแปแแแถแแแแแแแแแพแแแแถแแแขแแแแแแแถแแแแแแถแแแแแแแถ $ แแ
แแถแแแพแแขแแแแแถแแถแแแแแแ
แ
แงแแถแ แแแแ
echo $str # hello worldแแถแแแแผแ แแถแแถแแถแแแแแแแแบแแถแ array แแผแ แแแแถแ Array แแฝแแแพแแแถแแแนแแ แพแแแถแขแถแ แแแแปแแแแแแแแถแ แแแพแแแแแปแแขแแแแแแแฝแแแแแแถแแถแแแแ แแแทแแขแถแ แแแแแแแถแแกแพแแ Array แแ แแแแปแ bash แแแ แถแแแแแแพแแแธ index แแธแแผแแแแ แแถแแแแแแแแแแแถแแทแแธแแแแแพแ array แแแแปแ bash แ
แงแแถแ แแแแ
array[0]=val
array[1]=val
array[2]=val
array=([2]=val [0]=val [1]=val)
array=(val val val)แแพแแแแธแแแแ แถแแแแแแแแแแทแแแ index แแถแแฝแแขแแแแขแถแ แแแแพแแแแถแแแแผแ แแถแแแแแแแแแ
${array[i]} # where i is the indexแแแแแทแแแพแขแแแแแทแแแถแแแนแแแธแ แแแฝแแแถแแป array แฌแแทแแแนแแแถแแถแแแแแแพแแแแแแถแ array แแแแพแ แแแฝแแแแแถแแแแแ index แแธแแผแแแแฌแแแแแแ แแพแแแแธแแถแแแแแแแแแแแแปแ array แแแแแแพแแแแแทแแแแแถแแแแแแแแ index แขแแแแขแถแ แแแแพแแถแแแทแแธแแถแแแแแแแ
${#array[@]}Bash แแแแแแถแแแแแแแถแแแแแแแแแแแแแแทแแแแแฝแแ แแแฝแแ แแถแแแแแแแแแแแถแงแแถแ แแแแ
${varname:-word} # if varname exists and isn't null, return its value; otherwise return word
${varname:=word} # if varname exists and isn't null, return its value; otherwise set it word and then return its value
${varname:+word} # if varname exists and isn't null, return word; otherwise return null
${varname:offset:length} # performs substring expansion. It returns the substring of $varname starting at offset and up to length charactersแแพแแแแธแแทแแทแแแ syntax แแแแแแแแ แแแแแแแ string
${variable#pattern} # if the pattern matches the beginning of the variable's value, delete the shortest part that matches and return the rest
${variable##pattern} # if the pattern matches the beginning of the variable's value, delete the longest part that matches and return the rest
${variable%pattern} # if the pattern matches the end of the variable's value, delete the shortest part that matches and return the rest
${variable%%pattern} # if the pattern matches the end of the variable's value, delete the longest part that matches and return the rest
${variable/pattern/string} # the longest match to pattern in variable is replaced by string. Only the first match is replaced
${variable//pattern/string} # the longest match to pattern in variable is replaced by string. All matches are replaced
${#varname} # returns the length of the value of the variable as a character stringแแผแ แแแแถแแ แแนแแแถแแถแแแ แขแแแแขแถแ แแแแพแแแแถแแแแปแแแถแ (function) แแพแแแแธแแแแ แแแแถแแแแปแแแถแแแแแฝแแแแแปแแแถแแขแแปแแแแแแ แแถแแแถแแแแแแแแ แแถแแแแแแพแแแปแแแถแ (function) แแบแแแแถแแแแแแแแแ แแแแแแแปแแแถแ { แแผแแแถแแแถแ }แ แแถแแ แ แแแแแแพแแแแถแแแแปแแแถแแแแแแแแถแแแแแ แ แแแแแแแแแแแถแ
function name() {
shell commands
}แงแแถแ แแแแ
#!/bin/bash
function hello {
echo world!
}
hello
function say {
echo $1
}
say "hello world!"แแแแขแแแแแแแถแแแแแ แ
แแแแแแแปแแแถแแแถ hello แแแแแถแแนแแแแแ แถแแแแแแแ "world!"แ แแปแแแถแแแถแแแแธแแธแแแถแ hello แแทแ say แแแแถ function แแผแ
แแแแถแ แแถแแแปแแแแแถแแแแแแปแแแถแแแแแแบ function say แแถแแแแผแแแถแแแแถแแแถแแแแแแแแพแแแแธแแแแ
แแแแ แถแแแแแแแแแแแปแแแปแแแถแแแแแแแแแฝแแแถแแแแถแแแ
แแถแแแแแแแแแแแแแแแแแแแแ (Conditionals statement) แแแแปแ bash แแบแแแแแแแแ แแนแแแถแแถแแแแแแแ แแแแแแแแแแแแถแแ แแแพแแแแแแแแแผแ แแถแแแแแแแแผแแแแแถแแแแแปแแแบ if แแแแแทแแแพแแแแแแแแแแแแแแนแแแแแผแแแถแแนแแแแแพแแแถแแแทแ แแ แแแแแทแแแแแ แแแแปแแแแแฝแแแถแ
if [ expression ]; then
will execute only if expression is true
else
will execute if expression is false
fiแแแแแทแแแพแแถแแถแแแแแแแแแแแแ
แแแพแแแแแปแแแแแถแ แขแแแแขแถแ
แแแแพแแแแแแแแแแแแฝแแแแแ แ
แแถ case statementsแ
case expression in
pattern1 )
statements ;;
pattern2 )
statements ;;
...
esacแงแแถแ แแแแแแแแแแแแแแ
statement1 && statement2 # both statements are true
statement1 || statement2 # at least one of the statements is true
str1=str2 # str1 matches str2
str1!=str2 # str1 does not match str2
str1<str2 # str1 is less than str2
str1>str2 # str1 is greater than str2
-n str1 # str1 is not null (has length greater than 0)
-z str1 # str1 is null (has length 0)
-a file # file exists
-d file # file exists and is a directory
-e file # file exists; same -a
-f file # file exists and is a regular file (i.e., not a directory or other special type of file)
-r file # you have read permission
-s file # file exists and is not empty
-w file # you have write permission
-x file # you have execute permission on file, or directory search permission if it is a directory
-N file # file was modified since it was last read
-O file # you own file
-G file # file's group ID matches yours (or one of yours, if you are in multiple groups)
file1 -nt file2 # file1 is newer than file2
file1 -ot file2 # file1 is older than file2
-lt # less than
-le # less than or equal
-eq # equal
-ge # greater than or equal
-gt # greater than
-ne # not equalแแถแแแทแแแปแแแถแแแธแแแแแแแแแแปแ bash แแบ for, while แแทแ until แ
Different for Syntax:
for x := 1 to 10 do
begin
statements
end
for name [in list]
do
statements that can use $name
done
for (( initialisation ; ending condition ; update ))
do
statements...
donewhile Syntax:
while condition; do
statements
doneuntil Syntax:
until condition; do
statements
doneแแแแพแแแถแ nano ~/.bash_profile แแทแแแแแแแแแผแแ
แผแแแ
แแแแปแ editorแ
alias dockerlogin='ssh www-data@adnan.local -p2222' # add your alias in .bash_profileแแแแพแแแถแ nano ~/.bashrc แแทแแแแแแแแแผแแ
แผแแแ
แแแแปแ editorแ
export hotellogs="/workspace/hotel-api/storage/logs"แขแแแแขแถแ แแแแแถแแปแ path แแถแแแพแแถแแแแแแแแพแ
source ~/.bashrc
cd $hotellogsแขแแแแขแถแ แแแแแแแแ แแถแแแแถแแแแแแถแแธแแปแแแแถแแแแแ แปแ แแแแแถ "แแแแฝแแกแพแแแพ" แแ แแพแแแแถแแ แปแ แฌแแแแพแแแแแถแงแแถแแแธแแแแขแถแ แแแแแแแแ แแถแแแแถแแแแแแถแ แถแแแแถแแ
!!แแถแแแแแแถแแฝแแ
แแแฝแแขแถแ
errro แแบแแถแแแแผแแแถแ sudo แแพแแแแธแแแแแถแแถแแแแแทแแแแแทแแแแแถแแฏแแแทแแแแทแ แขแแแแขแถแ
แแแแพแแแแถแแแแผแ
แแถแแแแแแแแแแแถแแ
sudo !!แขแแแแแฝแแแแแแแผแแแถแแแแแแ mkdir somedir แแ
แแถ sudo mkdir somedir แแแแแถแแแแแแนแแแแแแทแแแแแทแแแแแถแแฏแแแทแแแแทแ
แแถแแแแแแ script แแแแปแ bash แฑแแแแถแแแถแแแถแแขแถแแแถแแแแแแถแแแแแแถแแแแทแแแแขแถแแแแแแถแ comment แแแแแแถแแแแแแแแ
function finish {
# your cleanup here. e.g. kill any forked processes
jobs -p | xargs kill
}
trap finish EXITแแแแขแแแแแแแพ export FOO = BAR แขแแแแแแแแขแแแแแแแผแแแ export แแถแแแ
แผแแแ
shell แแทแ shell แแผแแแแแแถแแแแแแแแแแแแแแแแแถแแแแแ แถแแแแแแแแแแแแแแ
export แ
แผแ ~/.bash_profile แแแแขแแแแ แ
แขแแแแแถแแฝแแแทแแแแแนแแแแแผแแแแแปแ shell แแแแ
echo export FOO=BAR >> ~/.bash_profileแขแแแแแถแแแแแฝแแแแแปแแแถแแ
แผแแแ
แแแแพแแแแถแแ script แแแแแถแแแแแแพแแแแแปแแแแฏแแแถแ bin แแแแปแแแแแแแแพแแแแ mkdir ~/bin แแแแแแแแแแ script แแถแแแขแแแแแแแแแทแแแแแปแแแแแแแแถแขแถแ
แแถแแแทแแแแทแแแแพแแแแถแแแแแแแแแแแถแแแขแแแ
แแแแแทแแแพแขแแแแแทแแขแถแ
แ
แผแแแแแพแแแแถแแแแถแ แขแแแแขแถแ
แแแแพแแแแถแแแแผแแแถแแแแแแแแแแแถแแแ
แแแแปแ ~/.bash_profile แแทแแแแแแถแแแแแแแแพ command source ~/.bash_profile แ
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fiแขแแแแขแถแ
debug แแแแปแ bash script แแแแแแแ
แผแแแแแแพแแแแแแแแแแถแแ
แแแแปแ bash commandแ แงแแถแ แแแ -n แแถแแนแแแทแแแแแพแแแถแแแถแแแแแแถแแ แแทแแแทแแทแแแ syntax แแแ errorแ -vecho commands แแปแแแแแพแแแถแ commandแ -x echo commands แแแแแถแแแแธ command-line แแถแแแแแพแแแถแแ
bash -n scriptname
bash -v scriptname
bash -x scriptname- แแถแแแถแแแแแธแแแแ แถ How to
- แแแแพ pull request แแพแแทแแแถแแแแแแแแแแแ How to
- แแแแแแแแแแถแ
