Showing posts with label command. Show all posts
Showing posts with label command. Show all posts

Thursday, August 6, 2009

ไกลปืนเที่ยง: FreeBSD ---> command(3) (ต่อ)

ขอต่อจากตอนที่แล้วน่ะครับcommandsไม่อยากให้เลขตอนมันมากโดยไม่จำเป็น เลย เพียงแค่ เพิ่ม (ต่อ) ต่อท้าย เพราะอีกแง่มุมหนึ่ง ก็เป็นเรื่องต่อเนื่องจากตอนก่อน

mkdir

อันคำสั่งนี้ ที่ยกมานำเสนอ เป็นที่รู้จักคุ้นเคยกันดีอยู่แล้ว แต่ ที่ใคร่จะชี้ให้เห็นในคราวนี้ ก็เปน command options ต่างๆที่อาจจะแปลก ใหม่ สำหรับบางท่านเท่านั้น

คำสั่งนี้ จะ สร้าง สาระบบแฟ้ม ที่มีชื่อตามระบุไว้ตามลำดับไป ด้วย permission 'rwxrwxrwx' ที่จะถูกปรับแต่งทีหลังด้วยค่าของ umask ในกรณีที่ไม่กำหนด permission ให้กับคำสั่ง อนึ่ง ผู้ใช้ ต้องมี write permission ใน parent directory เพื่อใช้งานคำสั่งนี้

path สำหรับคำสั่ง ในกรณีที่ท่านต้องเรียกใช้งานจาก shell คือ /bin/mkdir

ไวยากรณ์คำสั่งคือ

mkdir [-pv] [-m mode]   directory_name ...

ที่ใคร่ขออนุญาตชี้แนะ ในกรณีนี้ คือ command option -p ซึ่งอนุญาตให้เราสร้าง directory ได้จาก ส่วนประกอบ ที่ แม้จะยังไม่ได้สร้างขึ้นมา ตัวอย่างเช่น ~/public_html/erp/config ซึ่งโดยปกติแล้ว การที่จะสร้าง config มาได้นั้น ต้องมี ~/public_html และ ~/pubcli_html/erp มาก่อน แต่กับ option นี้ สามารถ สร้างได้เลยในคราวเดียว แม้ส่วนที่ยังไม่สร้าง ก็จะสร้างให้ด้วย

command option   -m  mode นั้น ก็ไม่ยากแก่การคาดเดา เป็นการกำหนด permission mode แรกเริ่มให้ แทนที่จะใช้ 0755 ตามที่ระบบกำหนดให้เท่านั้นเอง

ไหนไหนก็ไหนไหน, ภาษาอังกฤษจากเพื่อนๆเธอบอกว่า แวแวอีส เอะ แวแว ก็มาจาก where where is a where where ตรงๆแหละ, ก็บอกแล้ว คำสั่งที่ตรงข้ามก็ได้แก่ rmdir(1) และคู่ ของคำสั่งนี้ก็คือ chdir(1)

ในการใช้งาน FreeBSD นั้น พี่พี่ท่าน สมควรได้ สัมผัส กับคำสั่งนี้ และ คู่ ของเขาอยู่มากกว่า ก็ขอยกมาให้ทราบไว้ก่อน รับรอง แค่การเตรียมการ ก่อนการใช้งาน GRASS ก็ได้ใช้แล้ว

อีก ๒ คำสั่ง ที่สมควรรับทราบไว้ ได้แก่ chmod(1) เอาไว้เปลี่ยน permission mode กับ chown(1) เอาไว้เปลี่ยนเจ้าของ เปลี่ยนกลุ่ม

แหม ซีงิต จริง ทำได้ยังงี้ก็ ...

มะไฟ เล็งเห็นแล้วว่า คำสั่งในชุดแรกที่ยกมานั้น ต้องได้ใช้งานแน่แน่ จึงคัดสรรค์มาเป็นพิเศษ มานำเสนอก่อนอื่น ต่อไป จะเป็นเรื่องที่เกี่ยวข้องกับ FreeBSD จริงๆซะที

Fri Aug 7 11:33:25 ICT 2009

Wednesday, August 5, 2009

ไกลปืนเที่ยง: FreeBSD ---> command(3)

ต้องขออภัยเพื่อนผองน้องพี่ ชาว FreeBSD ที่ห่างหายไปนาน

เรื่องที่นำเสนอวันนี้ เป็นคำสั่งที่จำเป็น สำหรับการใช้งานทั่วไปcommands รวมทั้ง command options ที่สมควรกำหนดไว้ก่อนเลย เพราะ FreeBSD นั้นทำงานในลักษณะของ multi users, multi programming ผลที่นึกไม่ถึงอาจเกิดขึ้น ตัวอย่างพื้นๆ คือการลบแฟ้ม เมื่อกดแป้นพิมพ์ Enter แล้ว ก็เป็นอันเลิกคิดที่จะ กู้แฟ้มนั้นกลับคืนมา ทั้งนี้ เพราะไม่มีทางทราบได้เลยว่า process ไหน ที่มาจับจอง inode ที่ว่างลงไปจากการที่เรา ลบแฟ้ม ทิ้ง การกำหนด -i , interactive option, เพื่อให้ผู้ใช้ สามารถหยุดยั้งคิดได้ จึงสมควรอยู่

อ้อ ขอทึกทักเอาว่า พี่พี่ต่างก็ใช้ csh , C shell, น่ะครับ สำหรับพี่พี่ที่ใช้ shell อื่นก็คงไม่มีปัญหา เพราะคงเข้าใจเรื่อง shell ที่ใช้ได้ดีพอควรแล้ว จะไม่ขอเขียนเรื่องของ shell ในนี้หละ

interactive mode

เพื่อให้เข้าใจว่า interactive mode นั้นเป็นอย่างไร อันดับแรก ก็ขอยกคำสั่ง ลบแฟ้ม มาให้ทราบก่อน ซึ่งเขามีรูปแบบ หรือ ไวยากรณ์คำสั่งแรกเริ่ม ดังนี้ ดูเอา จำเอาเน้าะ

rm filename

ก็อย่างที่เรียนให้ทราบแต่แรกแล้วว่า พอกด Enter ปุ้บ filename ก็หายวั้บไปเลย ซึ่งเราไม่ต้องการเช่นนั้น อย่างน้อย เราขอมีเวลายั้งคิดสักนิดหนึ่งก่อน เพราะ อาจเป็นไปได้ที่ ชื่อแฟ้ม มันใกล้เคียงกัน หรือสะดกชื่อแฟ้มผิดไป เช่น อยากลบแฟ้ม imid แต่ดันไปลบ imod ซึ่งสำคัญกว่า ถ้าใช้ interactive mode ก็จะเห็นข้อความที่จอ
remove imod ?
ขึ้นมา ก็ทำให้ทราบว่า เรากำลังจะลบสิ่งสำคัญออกไปน่ะ ยังดีกว่า พอกด Enter แล้วก็ ลบออกไปเลย ในกรณีนี้ ให้ตอบ n ไป แล้วกลับไปลบ imid ออกแทน

ใน interactive mode รูปแบบคำสั่งจะเป็นอีกอย่าง แบบนี้น่ะ

rm  -i   filename

กลุ่มคำสั่ง ที่ มะไฟ แนะให้ใช้งานใน interactive mode ก็มี rm ลบแฟ้ม, cp สำเนาแฟ้ม, mv โยกย้ายแฟ้ม

rm  -i   filename
cp  -i  src   dst
mv  -i  src   dst

alias

จากแนวคิดในเรื่อง interactive mode ทำให้เราต้อง เพิ่มการกดแป้นพิมพ์ ไปอีก ๓ เคาะ ไปเสียทุกครั้ง นับว่า ไม่สะดวกเลย แต่ csh เขามี facility ที่อำนวยความสะดวกให้ เรียกว่า alias ซึ่งเราสั่งซะทีเดียว ครั้งต่อไปที่เราเรียก ไม่ว่าจะเป็น rm mv หรือ cp ก็เท่ากับเราเรียก
rm -i
mv -i
cp -i

รูปแบบก็ง่ายๆ

alias rm    rm -i
alias cp    cp -i
alias mv    mv -i

~/.cshrc

การใช้บริการ alias ก็นับว่าสะดวกขึ้นมาก แต่ว่า เสียอยู่ว่า เราต้องมานั่งสั่งไปซะทุกครั้ง ที่ login เข้ามาทำงานนี่ซี บางทีที่ลืม ก็ทำเอาแย่ไปน่ะ

วิธีแก้ ก็มี โดยเอาคำสั่ง ที่แน่ใจ ว่า ต้องใช้งาน ทุกครั้งที่ login เข้ามาทำงาน นั้น อย่างของเราครั้งนี้ ก็พวก alias ทั้งหลาย ไว้ในแฟ้ม ~/.cshrc

แล้วเราจะแน่ใจยังไงว่า มันเป็นยังงั้นจริงๆ ?

วิธีตรวจสอบก็ง่ายๆ

alias

เท่านั้นเอง

ทำตามนี้ไปก่อนน่ะ มันเป็น ทริค สำหรับ เพิ่มข้อความ ทีละบรรทัด ต่อท้ายเอกสาร โดยไม่ต้องเรียก editor

% echo  alias  cp     cp  -i  >>  ~/.cshrc
% echo  alias  rm     rm  -i  >>  ~/.cshrc
% echo  alias  mv     mv  -i  >>  ~/.cshrc

แล้วก็ยังไม่ต้อง logout น่ะ แต่ให้สั่ง

% source  ~/.cshrc

แล้วลองสั่ง alias ดูซี อ้ออ้ออ้อ คงไม่เห็นความแตกต่าง ถ้าพี่ท่านทำ alias cp cp -i กับคณะ ไว้ก่อนหน้านี้แล้ว ถ้าเป็นยังงั้น ก็ให้สั่ง unalias ทั้งสามคำสั่งนั้นไปซะ ก่อนที่จะสั่ง source ดั่งว่า

/usr/share/skel/dot.cshrc

ดูเหมือนว่า จะมีประโยชน์ แต่ก็กับเราคนเดียวแหละน่อ จะให้ดี ให้มันเป็นยังงี้ทุกครั้ง ที่ เพิ่มผู้ใช้งานใหม่ เข้ามาในระบบเลยดีกว่า โดยไปแก้ที่แฟ้ม /usr/share/skel/dot.cshrc นี้เลย เพราะหน้าที่ของแฟ้มนี้คือ แปลงร่างเป็นแฟ้ม ~/.cshrc ให้กับผู้ใช้ในระบบนั่นเอง ที่เหลือ คงไม่ต้องแนะอะไรมาก สำหรับ แอ้ด เมืองมิน ที่เฉลียวฉลาด

ตั้งใจ จะเขียนเรื่องคำสั่งสักหลายๆคำสั่ง แต่พอเริ่มลงมือเข้า มันก็ลากไปเอง และ ไม่อยากให้ สายตาพี่พี่ล้า เลยต้องขอ น่ะ ขอยอ

ยอมีตั่ง
Wed Aug 5 17:42:19 ICT 2009

Wednesday, June 3, 2009

ไกลปืนเที่ยง: FreeBSD ---> commands(2)

คำสั่ง FreeBSD สำหรับใช้ในงาน ไกลปืนเที่ยง รอบนี้ จะเกี่ยวข้องกับ อะไร ก็ขอได้โปรดติดตามดูกันต่อไป

เรามาต่อกัน ต่อไปน่ะ ช่วงแรกที่ต่อเติมเรื่อง การจัดวรรคตอน อาจจะไม่สบายตานัก ก็ ขออภัย

เรื่องของอะไรในตอนนี้ เป็นคำสั่งของ FreeBSD จริงๆน่ะครับ

whatis(1) ครับ, แล้วก็ ไม่ต้องตอบน่ะ ว่า ดิ้สอีดอะบุ้ค, ใช้งานง่ายครับ คือแค่อยากรู้ว่า คำสั่งนี้ คืออะไร จะมีมั้ย มีพวกเกี่ยวข้องรึเปล่า ก็ สั่งเลย

# whatis command
ลองดูก็ได้นี่
# whatis whatis

ผลลัพธ์น่ะหรือ ก็วานไปอ่าน man 1 whatis ต่อไปด้วย รวมทั้งคำอื่นๆ ที่พบด้วยจะดี

[] ~% whatis whatis
apropos(1), whatis(1) - search the whatis database
makewhatis(1) - create whatis database

ในชุดของ whatis นี้ อยากให้รู้เพิ่มอีกสัก ๑ คำ คือ

whatis whereis

แล้วก็ ตามไปดูต่ออีกสักคำ ที่ต่อเนื่อง สืบเนื่องจาก whereis นั่นคือ locate น่ะ

เนื้อแท้แล้ว คำสั่งที่แนะนำในตอนนี้ ก็ยังคงเกี่ยวข้องกับ ชายคนนั้น, man, อยู่นั้นเอง แต่เป็น man -k เพียงแต่ว่า มันจะลากไปหาเรื่องทั่วไป เรื่องทั่วๆไป ที่เป็นเรื่องจำเพาะของการบริหารระบบ, system administration ไปในที่(เกือบ)สุด

ตานี้ เราก็จะได้รู้จักกันเสียทีว่า อะไร คือ อะไร ไหนไหน ก็ ไหนไหน (แก้จาก อยู่ที่ไหน น่ะ รู้สึกว่า wherewhere is a wherewhere ที่รู้มาจากที่อื่น จะเข้ากับเรื่องได้ดี เลย ขอแก้ซะ แต่ก็เสียดายข้อความเดิม เลยไม่ตัดทิ้งซะงั้นแหละ) และ ไผ คือ ไผ



ลองดูด้วยน่ะ

whereis whereis

Monday, April 6, 2009

ไกลปืนเที่ยง: FreeBSD --> commands(1)

จาก คำสั่งแรก ที่แนะนำไป หลายท่านคงสับสนเอามากมากcommandsว่าทำไมจึงแนะให้ออกจากระบบ เป็นการเรียนรู้ครั้งแรก

เหตุผลง่ายๆพื้นๆคือ ต้องการให้ท่าน ช่วยตัวเองเป็น เพราะท่านที่เริ่มจากไม่รู้อะไรนั้น สิ่งแรก ที่ควรรู้คือ unix เขามีวิธีให้ผู้ใช้ ช่วยตัวเอง อยู่โดยยังไม่ต้องไปพึ่งคนอื่น ซึ่งก็อาศัยเหตุนี้ ปัจจัยนี้แล เป็นผลให้ได้ข้อสรุปว่า เมื่อท่านเริ่มจากศูนย์ คำสั่งแรก ที่ช่วยท่านได้ คือการให้ออกจากระบบไปก่อน เรื่องราวอื่นๆ ไปศึกษาเอาจากหนังสือหนังหาข้างนอกได้ ทั้งนี้เพราะ unix โดยเฉพาะ FreeBSD นั้น เป็นระบบปฏิบัติการสำหรับหลายผู้ใช้ การที่เรามานั่งเปิดหนังสือคาหน้าจอ โดยนานนาน เคาะแป้นพิมพ์ทีนั้น นับว่าเป็นการ ใช้งานอย่างไม่คุ้มค่า เลยทีเดียว นอกเหนือไปจาก เป็นการ ปิดโอกาส หรือถึงขั้น ขัดขวางการทำงานของผู้อื่น

หวังว่า คงเข้าใจ และได้รับการให้อภัย จากเพื่อนรักนักอ่านโดยทั่วกัน

ในเหตุผลที่ยกมานั้น มิได้หมายความว่า การศึกษาคู่มือแบบ on line จะเป็นไปไม่ได้ สามารถดำเนินการได้อยู่ จึงใคร่ขอให้ท่านผู้เริ่มต้น ได้เริ่มศึกษาเอาเอง จากเครื่องของท่าน ในขณะนี้

คำสั่งที่ว่านี้คือ man

% man name

เมื่อ name คือหัวข้อที่เราตั้งใจจะศึกษา ไม่มียกเว้นแม้กระทั่งคำสั่ง man ด้วยเช่นกัน ลองดูน่ะ

% man man

นี่เป็นคำสั่งที่ ๒ ที่ผมขอแนะนำให้ท่านศึกษาโดยละเอียด เพราะ จะช่วยแก้ปัญหา การทำงาน ของท่านได้เป็นอย่างดี จากคำสั่งนี้ ท่านจะพบข้อความคล้ายๆกับที่ผมยกมาให้ดู ดังนี้

MAN(1) FreeBSD General Commands Manual MAN(1)

NAME
man -- format and display the on-line manual pages

SYNOPSIS
man [-adfhkotw] [-m arch[:machine]] [-p string] [-M path] [-P pager]
[-S list] [section] name ...

DESCRIPTION

ขอให้สังเกตุที่มุมบนซ้ายให้ดี จะมีคำว่า MAN(1) อยู่ MAN คือหัวข้อของหน้าคู่มือ ที่ท่านกำลังศึกษา (1) คือ section ของหน้าคู่มือของคำสั่งที่ท่านกำลังศึกษา เบื้องต้น ให้จำไว้ก่อน

คำแนะนำเพิ่มเติมก็คือ ขอให้ศึกษาโครงสร้างของ รายละเอียด ที่อธิบายในแต่ละหัวข้อๆ ของแต่ละคำสั่งนั้นๆ, ที่ยกมาข้างบนก็ได้แก่ SYNOPSIS และ DESCRIPTION, โดยเฉพาะ SEE ALSO หรือ EXAMPLE ถ้ามี

อ้อ หากที่กล่าวมา ท่านยังไม่พบ ท่านสามารเลื่อนไป หน้าถัดไป ได้ด้วยการเคาะ space bar เบาๆทีหนึ่งจนพบ ขณะเดียวกัน ท่านสามารถใช้ปุ่ม PgUp/PgDn เพื่อ เลื่อนย้อนกลับไป หรือ เลื่อนไปข้างหน้า ถ้าพบว่า ยังอยากอ่านข้อความ ที่อ่านผ่านไปนั้นแล้ว อีกครั้งหนึ่ง

ในย่อหน้าก่อนนี้ ได้บอกให้ทราบถึง section ก็ขออธิบายเพิ่มพอได้ความย่อย่อว่า หน้าคู่มือ นี้เขาแบ่ง คำสั่ง ออกเป็นกลุ่มๆ เช่น สำหรับผู้ใช้ทั่วไป สำหรับการเขียนโปรแกม สำหรับผู้จัดการระบบ เป็นต้น เขาแยกออกจากกันด้วยตัวเลข เช่น (1) ก็หมายถึงคำสั่งที่ผู้ใช้ สามารถเรียกใช้ได้ทุกคน

แล้วเราจะทราบได้อย่างไรว่า แต่ละ section นั้นมีเรื่อง หรือ คำสั่งกลุ่มใดอยู่บ้าง และที่สุดคือ มีกี่ section กันแน่ คำตอบ ท่านสามารถหาได้จาก

% man 1 intro

ขอให้อ่านให้ละเอียด หน้านี้ ไม่มากนัก จากนั้น ให้แทนเลข 1 ด้วยเลขลำดับถัดไป จนกระทั่งถึง section สุดท้าย ก็คงพอให้ทุกท่าน ได้สาระมาบ้าง จากคำสั่งที่ ๒ นี้

ก่อนจาก ขอให้เพื่อนรักนักอ่าน ศึกษาเรื่องของ C shell และ Born shell ให้ละเอียด จากหน้าคู่มือ

% man csh
% man sh

ขอร้องให้ท่านสละเวลาตรงนี้ให้มากมาก ไม่ใช่ สักนิด ล่ะครับนาวากุศลธรรม เชียงแสน แต่ให้ศึกษาให้กระจ่างเถิด การใช้ชีวิตในโลกของ FreeBSD ของท่านจะสดใสราบรื่น อาจจะถึงขั้นร่ำรวย มีเงินไหลมาเทมาเลยก็ว่าได้

ขอถวายความดีจากข้อเขียนนี้ แด่พระสยามเทวาธิราช เนื่องในวันจักรี

Sunday, April 5, 2009

ไกลปืนเที่ยง: FreeBSD --> commands

จาก commandsไกลปืนเที่ยง: FreeBSD --> simply freebsd ทำให้ทราบว่า ท่านต้องได้รับอนุญาตให้เข้ามาใช้งานด้วยการ login ก่อน และในตอนแรกนี้ ใคร่ขอแนะนำคำสั่งแรก ให้กับท่าน

คำสั่งนี้ มีค่ายิ่ง มีประโยชน์อย่างยิ่ง เพราะมันช่วยให้ท่าน หยุด หรือ ออก จากสภาวะแวดล้อมที่สลับซับซ้อนได้ คำสังที่ว่า คือ

% logout

ผลก็คือ มันทำให้ท่านต้องออกจากการใช้งาน หากท่านประสงค์จะเข้ามาใช้งานอีก ท่านก็ต้อง login อีกครั้งตามที่ได้บอกไว้ก่อนหน้านี้

ขอจบคำสั่งแรกไว้เพียงเท่านี้ก่อน

View My Stats