เรียนคำสั่ง Linux เบื้องต้นสำหรับ Cloud และ DevOps
รวบรวมคำสั่ง Linux/Unix จากประสบการณ์จริงที่คิดว่าผู้ที่ทำงานด้าน cloud, DevOps หรือแม้แต่ developer ทุกคนควรรู้
สวัสดีครับทุกคน 🙏 ผมกำลังเริ่มทำ Facebook Page และ YouTube Channel ซึ่งจะแชร์เรื่อง cloud, infrastructure as code (IaC), automation/DevOps, programming, generative AI และอื่น ๆ ตามอารมณ์ 😅
และตั้งใจจะทำวิดีโอสอนพื้นฐาน(ยัน advanced)ฟรีตั้งแต่ AWS ไล่มา Git, Linux, networking, Terraform, Docker, Kubernetes, Python, Go, etc. ไม่ครบไม่เลิกทำ 😂
รบกวนทุกคนกด Follow/Subscribe ไว้ทุกช่องทางเลยนะครับ 🙏
- 💙 Facebook: Nopnithi Tech
- ❤️ YouTube: Nopnithi Tech
- 💙 LinkedIn: Nopnithi (Game) Khaokaew
การจัดการ File และ Directory บน Linux
การดู Current Working Directory
pwd
- ใช้ดูว่า terminal กำลังทำงานอยู่ที่ path ไหนหรือใน directory อะไร
ตัวอย่าง: การใช้ pwd
เพื่อเช็ค Path
pwd
จะได้
/Users/nopnithi
การอ่าน File
ls
- ใช้ list ข้อมูลที่อยู่ใน directory ปัจจุบัน
ตัวอย่าง 1: การใช้ ls
เพื่อ List ข้อมูลใน Directory
ls
จะได้ (ขึ้นอยู่กับไฟล์ใน directory ของเรา)
test1.txt test2.txt test3.txt test14.txt
ตัวอย่าง 2: การใช้ ls -l
เพื่อ List ข้อมูลใน Directory พร้อมรายละเอียด
ls -l
จะได้
total 32
-rw-r--r-- 1 nopnithi staff 0 May 24 21:55 test1.txt
-rw-r--r-- 1 nopnithi staff 0 May 24 21:55 test2.txt
-rw-r--r-- 1 nopnithi staff 30 May 25 22:27 test3.txt
-rw-r--r-- 1 nopnithi staff 248 May 25 22:14 test4.txt
- Column 3 คือ owner ของไฟล์ซึ่งในตัวอย่างนี้คือ nopnithi (user)
- Column 4 คือ group ของ owner
- Column 5 คือ ขนาดของไฟล์ (bytes)
- Column 6 คือ วันและเวลาที่ไฟล์มีการเปลี่ยนแปลงล่าสุด
- Column 7 คือ ชื่อไฟล์
cat
- ใช้เพื่อแสดงเนื้อหาภายในไฟล์
- เช่น อ่านไฟล์
/etc/ssh/ssh_config
ตัวอย่าง: การใช้ cat
เพื่อแสดงเนื้อหาในไฟล์
cat /etc/ssh/ssh_config
จะได้
<output omitted>
# Site-wide defaults for some commonly used options. For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
# Host *
# ForwardAgent no
# ForwardX11 no
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
# Port 22
<output omitted>
การเขียน File
touch
- ใช้เพื่อสร้างไฟล์เปล่า
ตัวอย่าง 1: การใช้ touch
เพื่อสร้างไฟล์ file.txt
touch file.txt
เช็คด้วยคำสั่ง ls
จะได้
file.txt
ตัวอย่าง 2: การใช้ touch
เพื่อสร้างไฟล์ (หลายไฟล์)
touch file1.txt file2.txt file3.txt
เช็คด้วยคำสั่ง ls
จะได้
file1.txt file2.txt file3.txt
echo
- ใช้เพื่อสร้างไฟล์พร้อมข้อความ
- ที่จริง
echo
ใช้เพื่อ print ข้อความใน terminal - แต่เราใช้คู่กับ
>
เพื่อ redirect ข้อความไปเขียนไว้ในไฟล์ text
ตัวอย่าง 1: การใช้ echo
เพื่อสร้างไฟล์ใหม่พร้อมข้อความ
- สร้างไฟล์และเขียนข้อความภายในไฟล์ (ถ้าใช้คำสั่งนี้สร้างไฟล์ที่มีอยู่แล้วจะเป็นการ overwrite)
- เช่น สร้างไฟล์
nopnithi.txt
และเขียนข้อความHello Nopnithi
echo "Hello Nopnithi" > nopnithi.txt
เช็คด้วยคำสั่ง cat nopnithi.txt
จะได้
Hello Nopnithi
ตัวอย่าง 2: การใช้ echo
เพื่อเขียนข้อความต่อจากไฟล์เดิม
- ในกรณีที่ไฟล์
nopnithi.txt
มีอยู่แล้ว จะเป็นการเขียนต่อ - หากไม่มีไฟล์ จะเป็นการสร้างไฟล์ใหม่พร้อมข้อความ
- เช่น เพิ่มข้อความ
Goodbye Nopnithi
เข้าไปที่ไฟล์nopnithi.txt
echo "Goodbye Nopnithi" >> nopnithi.txt
เช็คด้วยคำสั่ง cat nopnithi.txt
จะได้
Hello Nopnithi
Goodbye Nopnithi
nano
- คือ text editor บน Linux
- สามารถใช้เพื่อสร้างไฟล์ใหม่และเขียนข้อความลงไปในไฟล์
- หากมีไฟล์อยู่แล้วจะเป็นการเปิดไฟล์เพื่อแก้ไข
ตัวอย่าง: การใช้ nano
เพื่อสร้างไฟล์พร้อมข้อความ
- สร้างไฟล์
basic-linux.txt
- บน text editor สามารถเขียนข้อความที่ต้องการลงไปได้เลย
nano basic-linux.txt
Nano จะถูกเปิดขึ้นและสามารถเขียนข้อความที่ต้องการลงไปในไฟล์ได้
UW PICO 5.09 File: basic-linux.txt
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text^T To Spell
เช็คด้วยคำสั่ง ls
จะได้
basic-linux.txt
ด้วยคำสั่ง cat basic-linux.txt
จะได้
basic linux for cloud engineers
การแก้ไขข้อความใน File
nano
- ใช้เพื่อแก้ไขข้อความภายในไฟล์
- เช่น แก้ไขข้อความภายใน
basic-linux.txt
ตัวอย่าง: การใช้ nano
เพื่อแก้ไขข้อความในไฟล์
nano basic-linux.txt
แก้ไขข้อความ basic linux for cloud engineers
เป็น basic linux for everyone
UW PICO 5.09 File: basic-linux.txt
basic linux for everyone
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text^T To Spell
เช็คด้วยคำสั่ง cat basic-linux.txt
จะได้
basic linux for everyone
การ Replace ข้อความใน File
sed
- ใช้คำสั่ง
sed -ie 's/<oldtext>/<newtext>/g' <file-name>
เพื่อ replace ข้อความในไฟล์
ตัวอย่าง: การใช้ sed
เพื่อ Replace ข้อความในไฟล์
- เช่น replace คำว่า
Nopnithi
เป็นCloud Engineers
ในไฟล์nopnithi.txt
sed -ie 's/Nopnithi/Cloud Engineers/g' nopnithi.txt
เช็คด้วยคำสั่ง cat nopnithi.txt
จะได้
Hello Cloud Engineers
Goodbye Cloud Engineers
การสร้าง Directory
mkdir
- ใช้เพื่อสร้าง directory
ตัวอย่าง 1: การใช้ mkdir
เพื่อสร้าง Directory
- สร้าง directory
basic-linux
mkdir basic-linux
เช็คด้วยคำสั่ง ls
จะได้
basic-linux
ตัวอย่าง 2: การใช้ mkdir
เพื่อสร้าง Directory (หลาย Directory)
- สร้าง directory
basic-linux1
และbasic-linux
mkdir basic-linux1 basic-linux2
เช็คด้วยคำสั่ง ls
จะได้
basic-linux1 basic-linux2
การลบ File และ Directory
rm
- ใช้เพื่อลบไฟล์
ตัวอย่าง: การใช้ rm
เพื่อลบไฟล์
- เช่น ลบไฟล์
nopnithi.txt
rm nopnithi.txt
rm -rf
- ใช้เพื่อลบ directory
- จะเป็นการลบไฟล์ทั้งหมดใน directory ด้วย
ตัวอย่าง: การใช้ rm -rf
เพื่อลบ Directory และไฟล์ข้างใน
rm -rf basic-linux
การเปลี่ยน Directory
cd
- ใช้เพื่อเปลี่ยน working directory
ตัวอย่าง 1: เข้าไปที่ basic-linux1
cd basic-linux1
ตัวอย่าง 2: ถอยออกมาจาก basic-linux1
cd ..
ตัวอย่าง 3: เปลี่ยน directory ไปที่ path /etc/ssh/
cd /etc/ssh/
เช็คด้วย pwd
จะได้
/etc/ssh/
การ Copy File และ Directory
cp
- ใช้เพื่อคัดลอกไฟล์
ตัวอย่าง 1: คัดลอกไฟล์
- คัดลอกไฟล์
basic-linux.txt
ไปที่ไฟล์new-basic-linux.txt
cp basic-linux.txt new-basic-linux.txt
เช็คด้วยคำสั่ง cat new-basic-linux.txt
จะได้
Hello Cloud Engineers
Goodbye Cloud Engineers
จะได้ข้อความเหมือนกับไฟล์ basic-linux.txt
ตัวอย่าง 2: คัลลอกไฟล์ไปที่ directory
- คัดลอกไฟล์
file1.txt
ไปที่ directory ชื่อbasic-linux1
pathname/Users/nopnithi/basic-linux1
cp file1.txt /Users/nopnithi/basic-linux1
เช็คด้วยคำสั่ง ls
ที่ pathname Users/nopnithi/basic-linux1
file1.txt
การย้าย File และ Directory
mv
- ใช้เพื่อย้ายไฟล์ไปที่ directory อื่น
ตัวอย่าง: ย้ายไฟล์ไปที่ Directory
- ย้ายไฟล์
file1.txt
ที่ directory ไปที่basic-linux1
directorybasic-linux2
mv file1.txt /Users/nopnithi/basic-linux2
เช็คด้วยคำสั่ง ls
ที่ pathname /Users/nopnithi/basic-linux2
file1.txt
การค้นหา File
find
- ใช้คำสั่ง
find / -option <file-name>
เพื่อค้นหาไฟล์ - การใช้ option
-name
ใช้ค้นหาไฟล์ด้วยชื่อไฟล์-user
ใช้ค้นหาไฟล์ด้วยชื่อเจ้าของไฟล์-group
ใช้ค้นหาไฟล์ด้วยชื่อกลุ่ม
ตัวอย่าง: ค้นหาไฟล์ชื่อ file1
find / -name file1
จะได้
/nopnithi/file1
/nopnithi/basic-linux2/file1
grep
- ใช้เพื่อค้นหาข้อความภายในไฟล์
- เราสามารถใช้ regular expression กับคำสั่ง
grep
ได้
ตัวอย่าง: ค้นหาบรรทัดที่มีคำว่า yes ที่อยู่ใน /etc/ssh/ssh_config
grep yes /etc/ssh/ssh_config
จะได้
# PasswordAuthentication yes
# CheckHostIP yes
การเปลี่ยนชื่อ File
mv
- ใช้เพื่อเปลี่ยนชื่อไฟล์
ตัวอย่าง: เปลี่ยนชื่อไฟล์จาก hello.txt
เป็น hello-world.txt
mv hello.txt hello-world.txt
เช็คด้วยคำสั่ง ls จะได้
hello-world.txt
การจัดการ User และ Group บน Linux
ชนิดของ User
- Root คือ administrator user
- System User คือ user ที่สร้างจาก software หรือ application
- Normal User คือ user ที่ถูกสร้างโดย root user
การเช็ค User
whoami
- ใช้เพื่อเช็ค user ที่เรา logged in
ตัวอย่าง: เช็ค user
whoami
จะแสดง user nopnithi
ที่ใช้ logged in
nopnithi
การสร้าง User
useradd
- ใช้เพื่อสร้าง user
ตัวอย่าง 1: สร้าง user ชื่อ john
useradd john
ตัวอย่าง 2: สร้าง user เข้าไปที่ group
- สร้าง user เข้าไปที่
group1
และgroup2
- ต้องเป็นการสร้าง user ใหม่
- ต้องมี group1 และ group2 อยู่แล้ว
useradd -G group1,group2 jane
การลบ User
userdel
- ใช้เพื่อลบ user
ตัวอย่าง: ลบ user john
userdel john
การสร้าง Group
groupadd
- ใช้เพื่อสร้าง group
ตัวอย่าง: สร้าง group group3
groupadd group3
การลบ Group
groupdel
- ใช้ลบ group
ตัวอย่าง: ลบ group group3
groupdel group3
การเปลี่ยน Group ของ User
usermod
- ใช้เพื่อเปลี่ยน settings ของ existing users
ตัวอย่าง: เพิ่ม john เข้าไปอยู่ใน group group1
usermod -g group1 john
การจัดการ Network บน Linux
การดูชื่อ Hostname
hostname
- ใช้เพื่อดูชื่อของ hostname (ชื่อของ server)
ตัวอย่าง: ดูชื่อ hostname
hostname
จะได้
nopnithi-server-1
การตรวจสอบการเชื่อมต่อ Network
ping
- ใช้ตรวจสอบการเชื่อมต่อระหว่าง server กับ internet หรือ network อื่น
- ใช้คำสั่ง
ping
ตามด้วยชื่อโดเมนหรือ IP address - By default, บน Linux/MAC ต้องกด
Ctrl+C
เพื่อหยุดการ ping
ตัวอย่าง: เช็คการเชื่อมต่อกับ Google.com
ping google.com
หากสามารถเชื่อมต่อกับปลายทางได้ จะได้ output ตามนี้
PING google.com (142.251.10.138) 56(84) bytes of data.
64 bytes from sd-in-f138.1e100.net (142.251.10.138): icmp_seq=1 ttl=115 time=0.992 ms
64 bytes from sd-in-f138.1e100.net (142.251.10.138): icmp_seq=2 ttl=115 time=1.07 ms
64 bytes from sd-in-f138.1e100.net (142.251.10.138): icmp_seq=3 ttl=115 time=1.15 ms
^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.992/1.072/1.154/0.071 ms
แต่ถ้าไม่ได้
PING 1.2.3.4 (1.2.3.4): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
^C
--- 1.2.3.4 ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss
- บางครั้ง network ถึงกันแต่ไม่ได้ เป็นเพราะปลายทางไม่ได้เปิด/บล็อค ICMP ไว้
การ Download Package/Software ด้วย Link Address
wget
- ใช้เพื่อ download package หรือ software ด้วย link address
ตัวอย่าง: Download ไฟล์ติดตั้ง apache tomcat
- Download ไฟล์ติดตั้ง apache tomcat ด้วย link
https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.63/bin/apache-tomcat-9.0.63.tar.gz
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.63/bin/apache-tomcat-9.0.63.tar.gz
จะได้
--2022-06-04 09:39:15-- https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.63/bin/apache-tomcat-9.0.63.tar.gz
Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11576445 (11M) [application/x-gzip]
Saving to: ‘apache-tomcat-9.0.63.tar.gz’
apache-tomcat-9.0.63.tar.gz 100%[==========================================>] 11.04M --.-KB/s in 0.07s
2022-06-04 09:39:16 (154 MB/s) - ‘apache-tomcat-9.0.63.tar.gz’ saved [11576445/11576445]
เช็คด้วยคำสั่ง ls
จะเห็นว่าเราได้ download package สำหรับไฟล์ติดตั้ง apache tomcat มาเรียบร้อยแล้ว
apache-tomcat-9.0.63.tar.gz
การแสดง IP Address ของ server
ifconfig
- ใช้เพื่อแสดง IP address ของ server
ตัวอย่าง: เช็ค IP address ของ server
ifconfig
จะได้รายละเอียดของ IP address ของ server ซึ่ง IP address ของ server ที่ใช้ใน lab นี้คือ 10.4.0.27
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.4.0.27 netmask 255.255.255.255 broadcast 10.4.0.27
inet6 fe80::4001:aff:fe04:1b prefixlen 64 scopeid 0x20<link>
ether 42:01:0a:04:00:1b txqueuelen 1000 (Ethernet)
RX packets 8838 bytes 150172084 (143.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4546 bytes 386143 (377.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ip address หรือ ip addr
- ใช้เพื่อแสดง IP address ของ server ได้เช่นเดียวกับคำสั่ง
ifconfig
ตัวอย่าง: เช็ค IP address ของ server
ip address
จะได้
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:0a:04:00:1b brd ff:ff:ff:ff:ff:ff
inet 10.4.0.27/32 brd 10.4.0.27 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::4001:aff:fe04:1b/64 scope link
valid_lft forever preferred_lft forever
การเชื่อมต่อ Remote Host และเช็ค Port Status
telnet
- ใช้ telnet protocol เชื่อมต่อเข้าไปที่ remote host
- ปัจจุบันไม่แนะนำให้ใช้ในการ remote เพราะไม่ปลอดภัย (ควรใช้ SSH แทน)
- และยังสามารถใช้เพื่อเช็ค port status ว่าเปิดใช้อยู่หรือไม่
ตัวอย่าง: telnet ไปที่ 10.1.1.1 port 22
telnet 10.1.1.1 22
output แสดงให้เห็นว่า server สามารถเชื่อมต่อไปยัง server 10.4.0.9
ได้ด้วย port 22
Trying 10.1.1.1...
Connected to 10.1.1.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.6
หากไม่ได้จะค้างประมาณนี้ (เปลี่ยนเป็น port 443 ซึ่ง server ไม่ได้เปิดไว้)
❯ telnet 10.1.1.1 443
Trying 10.1.1.1...
การเข้าถึง Application (HTTP Request) ด้วย URL
curl
- ใช้เพื่อเช็คการเข้าถึง application จาก application layer หรือ HTTP
- เป็นการส่ง HTTP request ไปยังปลายทาง
- ใช้คำสั่ง
curl
ตามด้วย url
ตัวอย่าง: เช็คการเข้าถึงเว็บไซต์ Google.com
curl https://www.google.com
จะได้ HTML และ javascript จากหน้าเว็บไซต์ https://www.google.com
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="th"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script nonce="TGyCm2qmLRFQjfxbxVo8qg">(function(){window.google={kEI:'N0elYo3lHfDu4-EP9LS4kAY',kEXPI:'0,1302536,56873,1710,4349,206,2414,2390,2316,383,246,5,1354,4013,1123753,1197790,380701,16111,17447,1954,9286,17572,4858,1362,283,9007,3027,2817,14766,4997,13228,3847,10623,22740,6674,1279,2742,149,1103,840,1983,3,211,4100,3514,606,2023,1733,43,521,6342,8328,3227,2845,7,17450,11625,4695,4465,13142,3,346,230,6460,148,13975,4,1528,2304,1237,5802,6344,18729,2658,7356,13659,4437,16786,652,5169,2536,4094,4052,3,3541,1,42154,2,14022,14116,11623,5679,1021,2380,2719,18278,2,6,7736,4568,6253,23424,830,422,5835,12137,2831,4332,21,6068,1395,445,2,2,1,10789,13036,10962,6582,627,172,3043,8729,2908,2331,5010,3421,2,6,12955,5706,3466,53,554,23,6317,202,345,1279,1663,1,1108,4576,209,1496,420,1491,2804,1787,6739,1309,1295,2,546,2542,1331,195,644,353,2847,807,1758,2698,46,963,1089,4,246,1576,636,287,289,49,623,465,522,2,122,4,505,115,26,820,1686,861,1482,169,34,71,147,439,1015,7,1,200,11,603,488,729,323,145,944,703,5401399,2729,673,4,52,5995368,2804423,3311,141,795,19735,1,1,346,6,182,6,20730295,3219996,4042142,1964,2935,159,1358,7812,4409,2395,159,393,458,491,225,1965,1497,932716',kBL:'4YM4'};google.sn='webhp';google.kHL='th';})();(function(){
var f=this||self;var h,k=[];function l(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||h}function m(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b}
function n(a,b,c,d,g){var e="";c||-1!==b.search("&ei=")||(e="&ei="+l(d),-1===b.search("&lei=")&&(d=m(d))&&(e+="&lei="+d));d="";!c&&f._cshid&&-1===b.search("&cshid=")&&"slh"!==a&&(d="&cshid="+f._cshid);c=c||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+e+"&zx="+Date.now()+d;/^http:/i.test(c)&&"https:"===window.location.protocol&&(google.ml&&google.ml(Error("a"),!1,{src:c,glmm:1}),c="");return c};h=google.kEI;google.getEI=l;google.getLEI=m;google.ml=function(){return null};google.log=function(a,b,c,d,g){if(c=n(a,b,c,d,g)){a=new Image;var e=k.length;k[e]=a;a.onerror=a.onload=a.onabort=function(){delete k[e]};a.src=c}};google.logUrl=n;}).call(this);(function(){
google.y={};google.sy=[];google.x=function(a,b){if(a)var c=a.id;else{do c=Math.random();while(google.y[c])}google.y[c]=[a,b];return!1};google.sx=function(a){google.sy.push(a)};google.lm=[];google.plm=function(a){google.lm.push.apply(google.lm,a)};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};google.bx=!1;google.lx=function(){};}).call(this);google.f={};(function(){
document.documentElement.addEventListener("submit",function(b){var a;if(a=b.target){var c=a.getAttribute("data-submitfalse");a="1"===c||"q"===c&&!a.elements.q.value?!0:!1}else a=!1;a&&(b.preventDefault(),b.stopPropagation())},!0);document.documentElement.addEventListener("click",function(b){var a;a:{for(a=b.target;a&&a!==document.documentElement;a=a.parentElement)if("A"===a.tagName){a="1"===a.getAttribute("data-nohref");break a}a=!1}a&&b.preventDefault()},!0);}).call(this);
<output omitted>
เนื้อหาที่เราจะอัพเดทเพิ่มให้ในภายหลัง
- การจัดการ System และ Process บน Linux
- การจัดการ Service บน Linux
- การจัดการ Package บน Linux
อย่าลืมนะครับ รบกวนทุกคนกด Follow/Subscribe ไว้ทุกช่องทางเลยนะครับ 🙏
- 💙 Facebook: Nopnithi Tech
- ❤️ YouTube: Nopnithi Tech
- 💙 LinkedIn: Nopnithi (Game) Khaokaew