การเขียน shell script บน Android แบบไม่ต้องใช้ chmod

การเขียน shell script
การเขียน shell script

เคยมีนักศึกษาสายไอที ถามมา
เพราะสายอื่นเค้าคงไม่ถามแบบนี้หลอก
คำถาม “มีสมาร์ทโฟน เอามาทำอะไรได้บ้าง
แล้วก็คิดได้ว่า โทรศัพท์ที่เค้ามีเป็น android os
สามารถติดตั้ง app เพิ่ม จาก Google play store ได้
งั้นตอบว่า “ใช้เขียน shell script ได้ ลองดูนะ
ไม่ต้องกังวลเรื่อง root ด้วย เพราะไม่จำเป็นต้องทำ
แนะนำว่าต้องโหลดแอพ ดังต่อไปนี้
1. Terminal Emulator
2. Droidedit Free
3. ES File Explorer File Manager
4. Palapa Web Server
อันที่จริง ใช้แอพในข้อ 1 เป็นหลัก
ที่เหลือแนะนำว่า Developer ควรมีไว้ในเครื่อง

ขั้นตอนการเขียน shell script
บน Android แบบไม่ต้องใช้ chmod
1. โหลดแอพ Terminal Emulator
เพื่อเข้าไปจัดการกับ Script ผ่าน Shell บน Android
2. โหลดแอพ Droidedit Free
เพื่อเป็นอีดิเตอร์สำหรับเขียน Script บน Android
เพราะโหลดมาแก้ไข และ Save as ได้
3. สำรวจห้องที่จะเก็บ shell script
โดยใช้เครื่องมือ คือ Terminal Emulator
หรือ ES File Explorer File Manager ก็ได้
เข้าไปดูห้อง /mnt/sdcard
พบว่ามีห้องเก็บข้อมูลมากมาย
อาทิ ห้อง /mnt/sdcard/pws
ที่สร้างจากแอพ Palapa Web Server
4. เขียน Shell script บนแอพ Droidedit Free
แล้ว Save as ชื่อ test1 วางไว้ในห้อง /mnt/sdcard

#!/system/bin/sh
read x
echo $x

5. ใช้ Terminal Emulator สั่ง execute shell script
โดยไม่ต้องใช้คำสั่ง chmod
เพราะใช้ไม่ได้และไม่จำเป็นต้องใช้
หากต้องการใช้ shell script ให้มีคำว่า sh นำหน้า
เช่น $sh test1

6. ตัวอย่าง รับค่าจากแป้นพิมพ์มาทดสอบ

#!/system/bin/sh
read x
echo $x
if [ “$x” == “1” ]
then
echo “one”
elif [ “$x” == “2” ]
then
echo “two”
else
echo “-”
fi

อธิบาย script ว่า
ถ้า execute แล้วเค้าหยุดถาม
หากกรอกเลข 1 จะพิมพคำว่า one ออกมา
หากกรอกเลข 2 จะพิมพคำว่า two ออกมา
หากกรอกอย่างอื่น จะพิมพคำว่า – ออกมา

ผมก็สาวกวินโดว์ที่สนใจ Linux shell ของ Ubuntu บน windows 10

win10 : update 1511
win10 : update 1511

[ที่มา]
ช่วงปลายเดือนมิถุนายน 2559 มีโอกาสรู้จักกับ WSL
WSL = Windiws Subsystem for Linux
ซึ่งออกแบบให้เป็นเผ่าพันธุ์เดียวกับ Windows
ไม่ใช่ Linux ที่ทำงานบน VM หรือพัฒนาให้วางบน Windows แบบ Cygwin
แต่เป็น shell ที่พัฒนาใน windows ซึ่งทำงานได้เร็วกว่าเผ่าอื่นแน่นอน
และ Windows ไม่ได้ออกแบบให้ใช้ Linux shell ได้เต็มที่เหมือนตัวเต็ม
เพียงแต่ใช้คำสั่งต่าง ๆ แบบ Linux ได้บน Windows เท่านั้น
โดย Linux ตัวนี้คือ Bash ที่พัฒนาจาก Ubuntu
ไม่สนับสนุน GUI Desktops หรือ Application
https://msdn.microsoft.com/en-us/commandline/wsl/faq

win10 : update and security
win10 : update and security

[การใช้ WSL]
ถ้าจะใช้ WSL ต้องติดตั้ง Windows 10 Anniversary
(version 1608) แต่ยังไม่เปิดทั่วไป
ปัจจุบันเปิดให้สมัครเข้าโครงการ Windows Insider เพื่อเข้าร่วมทดลองใช้
ก็จะได้ใช้รุ่น Insider Preview Build 14316
แต่เครื่องที่ผมใช้อยู่ขณะนี้ลง Windows 10 November Update
(version 1511 build 10586 – major) มี license
ในอนาคต ถ้าไปใช้ Anniversary หรือเข้าร่วม Insider ก็คงได้ใช้ WSL ต้องรอก่อน
เพราะ WSL ยังเป็นรุ่นทดสอบบน Insider Preview
ถ้า Windows 10 Anniversary เปิดจำหน่าย License คงได้ upgrade ต่อไป
แต่ ณ วันนี้ Windows 10 รุ่น 1608 ยังไม่เปิดอัพเดทอย่างเป็นทางการ
https://en.wikipedia.org/wiki/Windows_10_version_history#Windows_10_Anniversary_Update_.28Version_1607.29

win10 : windows features
win10 : windows features

[License]
เครื่องที่ใช้อยู่มี License เป็น Windows 10 home version 1511
และยังไม่ถึงเวลาที่ microsoft จะเปิดให้อัพเดทเป็น 1608
เพราะรุ่น 1608 ที่เผยแพร่อยู่ เป็นรุ่นที่ต้องเข้าโครงการ Insider preview
มีข่าวเมื่อ 29 มิ.ย.59 ว่า microsoft จะเปิดให้ update
เป็น Windows 10 Anniversary Update – Major ตั้งแต่ 2 ส.ค.59
หมายความว่ารออีก 1 เดือนจึงจะได้ใช้รุ่น 1608 และก็จะได้ใช้ WSL อย่างเป็นทางการ
https://blogs.windows.com/windowsexperience/2016/06/29/windows-10-anniversary-update-available-august-2/

ตรวจดูเครื่องบริการอีกครั้ง ว่ามีอะไรผิดปกติหรือไม่

ใน access.log พบพฤติกรรมลองของมหาศาล
ใน access.log พบพฤติกรรมลองของมหาศาล

กิจกรรม monitor ว่าอุปกรณ์ทำงานควบถ้วนดีหรือไม่
เป็นกิจกรรม check ตามวงจรเดมมิ่ง เพราะ plan กับ do ทำแล้ว
แต่การตรวจสอบต้องทำทุกวัน เพราะเป็นงานบริการ
หากพบปัญหาก็ต้องเกิด action
ถ้าจะให้ดี do ก็ต้องมี innovation ควบคู่ไปด้วย
เพื่อพัฒนาให้ระบบมีความปลอดภัย หรือรองรับความเสี่ยง

15 ต.ค.57 วันนี้ .. เพื่อนร่วมงาน แจ้งว่า มีการเข้าระบบมากผิดปกติ
เมื่อตรวจ log จาก firewall
ลองตรวจดูก็เห็นว่ามีการเข้ามามากมายมหาศาลจริง
แต่ทั้งหมดจะถูกปฏิเสธไปแล้ว ไม่ว่าจะเข้ามาผ่านบริการใด
ส่วนที่อนุญาตให้ส่งอีเมล ก็ไม่มีหลุดไปถึงคนแปลกหน้าสักราย
ส่วน LDAP ก็ถือว่าเข้ามาตรวจกันปกติ เพราะระบบมีไว้ให้ตรวจ

Last login: Fri Sep 05 2014 16:29:22 +0700
# last ดูว่านอกจากเรามีใครเข้าไปรึเปล่า
root     pts/1        node-nuo.pool-11 Wed Oct 15 22:23   still logged in
wtmp begins Wed Oct 15 22:23:42 2014
# cd /var/log
# ls -ot
# tail –line 200 maillog ดู 200 บรรทัดล่าสุด
# cat maillog | grep delivery ดูว่าระบบส่งไปได้ ไปถึงใครบ้าง
# cat maillog | grep 107.150 ดูว่า ip นี้ทำอะไรไปบ้าง
# cat maillog | grep authentication ดูว่าเบอร์ไหนแอบเข้ามาลองระบบบ้าง
# cat messages | grep DNS พบเข้ามาลองเครื่องผ่าน sshd มหาศาล
# cd /var/log/httpd
# cat access_log | grep 103.22 พบว่ามีเครื่องมากมายเข้ามาลองของกับ /myadmin เยอะมาก
# netstat -na | grep EST ดูว่ามีใครกำลังเชื่อมต่ออยู่
# cat /etc/hosts.deny ดูว่าเคยกำหนด ip อะไรที่ถูก block ไปบ้าง โดยใช้ portmap

หลักกิโลแห่งความทรงจำของลีนุกซ์

หลักกิโลแห่งความทรงจำของลีนุกซ์
(Memorable linux milestones)

20 years of linux
20 years of linux

1991 (2534) นายไลนัส ทอร์วัลด์ส (Linus Torvalds) ได้เขียนข้อความส่งเข้าไปใน News group ว่าสวัสดีทุกคนที่นั่น และเริ่มปล่อย Linux code แบ่งปันแก่นักพัฒนาชาวโลก

1992 (2535) Linux ลิขสิทธิ์แบบ GPL (GNU General Public License) เป็นจุดเปลี่ยนสำคัญที่ทำให้ Linux ประสบความสำเร็จ

1993 (2536) Slackware เป็น Linux ตัวแรกที่ถูกพัฒนาสำหรับเผยแพร่ที่ประสบความสำเร็จ

1996 (2539) นายไลนัส ทอร์วัลด์สไปพิพิธภัณฑ์สัตว์น้ำ เป็นจุดที่ทำให้เลือกนกเพนกวินเป็นตัวนำโชค (Mascot)

1998 (2541) ยักใหญ่ด้านเทคโนโลยีเริ่มประกาศสนับสนุนระบบปฏิบัติการลีนุกซ์

1999 (2542) Redhat เข้าสู่สาธารณะ

2003 (2546) IBM ทำให้ Linux มีชื่อเสียง โดยประชาสัมพันธ์ระหว่างแข่งขัน Superbowl

2005 (2548) นายไลนัส ทอร์วัลด์สปรากฎขึ้นปก Businessweek และเรื่องราวความสำเร็จของ Linux

2007 (2550) มูลนิธิ Linux ถูกก่อตั้งเพื่อสนับสนุน ป้องกัน และกำหนดมาตรฐาน

2010 (2553) Android OS เป็น Linux ที่ใช้งานบน smartphone และกำลังไต่ขึ้นไปครองตลาด

2011 (2554) ครบปีที่ 20 ของ Linux พบว่ามีพลังขับเคลื่อนโลก ถูกใช้ในซุปเปอร์คอมพิวเตอร์ ตลาดหลักทรัพทย์ โทรศัพท์ เอทีเอ็ม บันทึกสุขภาพ

http://mashable.com/2011/04/06/linux-20-anniversary/

เตรียมบทเรียนสอนนักศึกษาเรียนรู้การใช้งาน linux

linux server
linux server

การสอนนักศึกษาเข้าใช้ linux ผ่าน secure shell
เตรียมการ โดยผมเข้าในฐานะ root
1.1 สร้าง user name ของแต่ละคนผ่าน #useradd
1.2 เปลี่ยนรหัสผ่านให้กับแต่ละคน หลังสร้าง user name แล้ว
1.3 สร้าง folder ในห้อง html ตาม user name
1.4 กำหนด owner ให้แต่ละ folder ตาม user name
1.5 chmod เป็น 777 จะได้เข้าถึงผ่าน url ได้

การใช้งาน โดยนักศึกษาเข้าใช้ในฐานะ user
2.1 ให้นักศึกษา download putty และ filezilla
2.2 ให้เข้า linux ผ่าน putty และเรียนรู้การเข้าไปใช้งานระบบ
มีบทเรียนคำสั่งที่ http://www.thaiall.com/isinthai
2.3 สร้างแฟ้ม index.html ของตนเอง
มีแนวทางการเขียนเว็บเพจที่ http://www.thaiall.com/html
2.4 ส่งแฟ้ม index.html เข้า linux ผ่าน ftps
2.5 เรียก index.html ผ่าน url ของแต่ละคน

http://www.putty.org/ [putty.exe]
https://filezilla-project.org/download.php
http://downloads.sourceforge.net/project/filezilla/FileZilla_Client/3.7.3/FileZilla_3.7.3_win32-setup.exe

Hirens 15.2 บน USB Flash Drive

6 ม.ค.57 มีโอกาสติดตั้งโปรแกรม Hirens 15.2 บน USB Flash Drive ขนาด 4 GB
ทำให้มี USB Flash Drive ที่มีความสามารถ 2 ประการ
1. บูทเครื่องคอมพิวเตอร์ เพื่อใช้งานระบบปฎิบัติการ 3 ระบบ
คือ Windows xp, DOS on Windows 98 และ Linux ของ PartedMagic.com
2. การเรียกใช้โปรแกรมต่าง ๆ เพื่อจัดการระบบได้จำนวนมากมาย
เรียกโดยตรงไม่ต้องบูทเข้าระบบปฏิบัติการตามข้อแรก
http://en.wikipedia.org/wiki/Hiren%27s_BootCD

Hirens Download
Hirens Download

ขั้นตอนการใส่ Hirens ลงไปใน USB Flash Drive

1. สั่ง Format : USB Flash Drive เป็น Fat32
– เลือก Disk
– เลือก Fat32
– กด Start
http://www.hirensbootcd.org/files/USBFormat.zip

usb flash drive format
usb flash drive format

2. สั่ง Install : Grub 4 DOS เพื่อทำ Boot Loader
ในระดับ MBR (Master Boot Record) ทั้ง Disk
– เลือก Disk (เลือกให้ถูกตัวนะครับ ระวังด้วย)
– เลือก Part List เป็น Whole Disk (MBR)
– กด install
http://www.hirensbootcd.org/files/grub4dos.zip

grub4dos installer
grub4dos installer

3. คัดลอกโปรแกรมต่าง ๆ ลงไปใน Handy drive
+ http://www.hirensbootcd.org/usb-booting/
+ ftp://mirror.kku.ac.th/hbcd/
3.1 คัดลอกแฟ้ม หลังคลาย .zip แล้ว ลงไป USB Flash Drive
3.2 คัดลอกแฟ้ม grldr จากห้อง /HBCD ไปไว้ในห้อง root [สำคัญมาก ต้องทำเอง]
เพื่อให้บูทและเข้าระบบปฏิบัติการที่อยู่ใน USB Flash Drive มิเช่นนั้นจะบูทไม่ขึ้น
แฟ้ม grldr เป็นโปรแกรม grub loader สำหรับเริ่มต้นระบบ boot
แม้บูทไม่ได้ แต่ก็เป็นที่รวมโปรแกรมเหมือน flash drive ทั่วไป
โดยเรียกโปรแกรม /HBCDMenu.cmd เพื่อแสดงรายชื่อโปรแกรม

การทดสอบ Linux ของ Partedmagic.com ในการเชื่อมต่อ
– connect ผ่าน wi-fi ที่บ้านได้
– connect ผ่าน UTP ในห้อง Lab ขอ ip จาก DHCP ได้

บทเรียนการใช้ Terminal emulator

30 พ.ย.56 ทำ tutorial ให้นักศึกษาได้เรียนรู้
ด้วยการใช้กล้องวีดีโอบันทึกจอภาพของ tabletpc โดยตรง
ไม่ได้ใช้ capture screen เหมือนบน desktop
เพราะครั้งนี้ screen อยู่บน tabletpc

รายละเอียดเพิ่มเติม
1. จับจอภาพของโปรแกรม Terminal emulator
2. กำหนด font size เป็น 20pt
3. ไม่ได้ใช้หลอดไฟช่วย แต่เปิดจอ LCD ด้านขวา
4. กำหนดแสงของจอภาพต่ำสุด และผู้บรรยายนั่งด้านซ้าย
5. กล้อง Sanyo Xacti VPC-CG65GX
http://camera.manualsonline.com/manuals/mfg/sanyo/vpc-cg65.html

รายละเอียดในคลิ๊ป ที่เปิดใน LCD เป็นแนวในการบรรยาย
https://www.facebook.com/thaiall/posts/10152034454772272

การใช้ terminal emulator app บน samsung tab 10.1

การใช้ terminal emulator app บน samsung tab 10.1
การสำรวจเครื่องครั้งนี้ มีการดำเนินการ 2 ส่วน
1. การสำรวจระบบ android linux
2. การจัดการแฟ้ม และสารบบ

http://www.thaiall.com/android
โดยใช้คำสั่งต่าง ๆ เรียงลำดับก่อนหลังดังนี้
[1. การสำรวจระบบ android linux]
1. pwd ดูว่าปัจจุบันอยู่ใน folder อะไร พบว่าอยู่ใน /
2. id ดูชื่อ และรหัสตนเอง พบว่าตนเองชื่อ app_125 มี id คือ 10125
3. df ดูว่าในเรื่องมีพื้นที่เท่าใด
4. env ดูข้อมูลสาพแวดล้อม
5. ps ดูว่ามี process อะไรประมวลผลอยู่
6. netstat ดูว่าเปิด port อะไร และติดต่อไปข้างนอกอยู่หรือเปล่า
7. netcfg ดูว่าเชื่อมต่อออกไปใช้ ip อะไร
8. ls ดูรายชื่อแฟ้ม
9. du ดูขนาดแต่ละ folder ทั้งหมด
10. ping www.facebook.com ดูว่าเชื่อมต่อกับ fb ได้ความเร็วกลับมาเท่าใด
11. date ดูว่ากี่โมง และวันที่เท่าใด
12. mount ดูว่ามีอุปกรณ์อะไรเชื่อมต่อไว้บ้าง เช่น sdcard
13. top ดูว่า process อะไรใช้ทรัพยากรมาก
[2. การจัดการแฟ้ม และสารบบ]
1. cd เพื่อย้ายตำแหน่งไปยัง app_HOME
2. du / > a เพื่อสร้างแฟ้มชื่อ a
3. ls -al เพื่อแสดงรายชื่อ และขนาดของแฟ้ม
4. tail a เพื่อดูส่วนหางของแฟ้ม เพียง 10 บรรทัดทุดท้าย
5. mkdir x เพื่อสร้าง folder ชื่อ x
6. mv a x เพื่อย้ายแฟ้ม a ไปใน x
7. cd x เพื่อเข้าห้อง x
8. cp a b เพื่อคัดลอกแฟ้ม a เป็น b
9. find เพื่อแสดงรายชื่อแฟ้ม หรือ find a หรือ find c
10. find > c เพื่อนำชื่อแฟ้มไปสร้างเป็นแฟ้ม c
11. vi c เพื่อแก้ไขแฟ้ม c
12. cd .. เพื่อออกจากห้อง x
13. rm x/* เพื่อลบทุกแฟ้มในห้อง x
14. rmdir x เพื่อลบห้อง x
15. ls -al เพื่อแสดงรายชื่อ และขนาดของแฟ้ม

คลิ๊ปการใช้งาน ที่ http://www.thaiall.com/blog/burin/5647/

การทดสอบ telnet เข้า virtualbox : mint 13

การทดสอบ telnet เข้า virtualbox : mint 13

linux mint 13
linux mint 13

เตรียม Linux mint 13 ขนาด 1.3 GB ใน .ova
import ลงบน oracle virtual box
หลังเปิดขึ้นเรียบร้อยแล้ว ดำเนินการดังนี้
1. เชื่อม Lan Card เป็น Network bridge
2. config network adapter1 เป็น bridge
3. เข้าระบบด้วย user: nation password: nationuniversity
4. เข้า Konsole
5. $su เป็น super user
6. #apt-get install telnetd สั่งติดตั้ง telnet
7. #ifconfig ดูหมายเลข IP
8. ใช้ telnet เข้า virtualbox

ในเครื่องที่ใช้อยู่ ทีแรก start ไม่ขึ้น เพราะทรัพยากรไม่พอ
แก้ไขโดยลดจอเหลือ 800 * 600
ปิด antivirus และโปรแกรมอื่น ๆ .. ก็ใช้ได้

การทำ Shared Folders ของ Debian กับ VirtualBox

share folders
share folders

29 พ.ย.55 ในกรณีต้องการ share folders จาก host ที่เป็น windows ไปให้เครื่อง guest ที่เป็น Debian ใน Oracle VirtualBox  มีขั้นตอนดังนี้

http://mirror1.ku.ac.th/debian-cd/6.0.5-live/i386/iso-hybrid/

1.1 เข้า Debian ใน VirtualBox
https://www.virtualbox.org/manual/ch04.html
1.2 menubar, Applications, Accessories, Terminal
$su
#apt-get update
#apt-get upgrade
#apt-get install make gcc
#uname -a
#apt-get install linux-headers-2.6.32-5-686
1.3 เตรียมพร้อมกับการ share และการติดตั้ง
#cd /media/cdrom/
แล้ว share folder ผ่าน menubar, Device, Share Folders
1.4 สั่งประมวลผล script จาก cd ที่มาจาก Install guest additions
#sh ./VBoxLinuxAdditions.run
แล้ว restart
จะพบว่ามีการทำ automount ใน /media/..
ตรวจด้วยคำสั่ง #mount
1.5 หากจะเข้าใช้งาน ต้องเปลี่ยน group ของ user เป็น vboxsf
แล้ว restart จึงจะเข้า folder ที่ share มาจากระบบ Windows เพื่อใช้งานได้