Showing posts with label unix basic. Show all posts
Showing posts with label unix basic. Show all posts

Friday, July 2, 2010

FreeBSD : sh notes

commands


ใน FreeBSD บางครั้ง การ redirection standard output ไปยังแฟ้ม และ เรายัง redirect standard error ไปยัง standard output อีก ซึ่ง ก็หมายถึงว่า ไปที่เดียวกันนั่นแหละ ก็โครงสร้างง่ายๆ

.... > /dev/null 2>&1


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

บันทึกความจำไว้ สำหรับคนที่ชอบ sh(1) programming

Tuesday, April 13, 2010

handy-innovati-craft: นวัตหัตถกำ

ก็เอาสองคำมาปนปน รวม กันไป
ก็เพียงอยากจะบอกว่า บางที อันที่ว่าร้ายๆนั้น มันก็มีส่วนดีอยู่ อย่างเช่นว่า forward e-mail ที่ส่งมาก่อกวนสม่ำเสมอนั้นไซร้ อ่านผ่านๆบ้าง บางทีได้ของดีไม่รู้ตัว

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

ชอบใจม้าก มาก เลยพยายามเจาะรู แต่ไม่ได้รูกลมๆหรอก เป็นรอยมีดทิ่มเจาะเข้าไป เป็นแผลยาวๆ รอบๆขวด calpisco นั่นหละ

เนี่ย กำลังร้อนๆ ก็ได้ไอเดียนี้แหละ พ่นน้ำเป็นละอองฝอยเล็กๆใส่อากาศร้อนๆนั้นเข้า เม็ดฝอยน้ำ มันก็ดูดซับความร้อน จากอากาศร้อนนั้น แล้วก่อให้เกิดความแตกต่างของอุณหภูมิในอากาศรอบข้างขึ้นเล็กน้อย มวลอากาศรอบข้าง ซึ่งร้อนกว่า ก็จะเคลื่อนตัวเข้ามา เรียกว่า หุบเข้าหา ว่างั้นเต้อะ

ผลน่ะหรือ ก็เกิดลมเล็กๆพัดกระจายรอบบริเวณสิ่งประดิษฐ์อันใหม่นี้เข้าน่ะซี

แล้วทีนี้ พอลมพัดผ่านละอองน้ำเข้า มันก็กลายเป็นลมไม่ร้อนถึงลมเย็นปานกลางไป หนักเข้า ก็เป็นลมเย็นสบายไปเท่านั้นเอง

นี่แหละ นวัตตกรรม บวกกับ หัตถกรรม รวมกันแล้ว มันไม่ใหม่นัก แต่ไม่เก่าด้วยว่าอาศัยฝีมือเข้าช่วย เลยกลายเป็น นวัต หัตถ กำ ไปด้วยประการฉะนี้

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

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

พ่อคนตัดไม้ก็รีบรับทันที ไม่รีรอว่าสาวงามนี่แหละ ภรรยาตน

เทวดา ดูจะเคืองเพราะเสียสาวงามไปรึเปล่าไม่ทราบได้ แต่ตอว่าคนตัดไม้ว่าขี้ฉ้อ โกหก ไม่ซื่อ...ฯลฯ

พรเอกของเราก็ว่า ตัวเขาก็จน ถ้าเทวดาเอาภรรยาคนเดิมมาให้ ที่สุด ก็คงต้องแถมสาวงามให้อีก ๒ คนเป็นแน่ ผลที่สุดแล้วเขาคงต้องทำงานหนักเพื่อหาเลี้ยงภรรยาทั้งสาม ซึ่งไปไปมามา ก็คงไม่แคล้วมานั่งร้องไห้รบกวนเทวดาท่านอีกจนได้ #%$@!**&... etc ฯลฯ ดังนี้แล้ว เขาเลยตัดใจ รีบๆรับเอาสาวงามคนแรกนี่แหละ จะได้มีภรรยาคนเดียวดังเดิม

เทวดาก็เห็นดีด้วย แล้วยกสาวงมงามนางนั้นให้กับคนตัดไม้ไป

ในหนังสือเขาสรุปเอาว่า อันว่าผู้ชายถ้าจะโกหกนั้น มีเหตุผลประกอบสาระพัด ดังเรื่องที่เล่ามาข้างต้นนี้

อ้าว ได้ไง เพราะที่เคยอ่านเจอใน forward e-mail นั้นมันเอาผู้หญิงมาเล่านี่นา แล้วสรุปว่า อันว่าผู้หญิงที่โกหกนั้น หล่อนมีเหตุผลมากมายนักในอันที่จะทำให้การกระทำของหล่อนนั้น สมบูรณ์ ครบถ้วน ferpect ไม่มีที่ติ

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

ลป. ถ่ายรูปในมือถือไว้แล้ว แต่เอาออกจากมือถือไม่ได้ เลยยังไม่สามารถแสดงให้เห็นถึงภูมิปัญญาแก้ร้อนของ มะไฟ ได้ จะพึ่งเทวดา (ร้องไห้ นั่นแหละน่อ) ก็เกรงใจ อีกประการ ก็ไม่แน่ใจว่า เทวดา ท่านจะแถมอย่างอื่น มาให้ด้วยหรือเปล่า


แก้ไขคำผิด จาก springler เป็น sprinkler แหม งานอย่างนี้ ไม่อยากรบกวนเทวดาท่านให้ต้องรำคาญ ก็แค่ใช้คำสั่ง
# look sprin

เท่านั้นเอง ก็รู้ทันทีว่า ที่เราเขียนไปน่ะ ผิด และนี่คือ unix basic จาก FreeBSD

Tuesday, April 14, 2009

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

เรื่องของ FreeBSD ตั้งแต่ง่ายๆไป จนถึงการใช้งาน FreeBSD เป็นฐานรองรับ hardware เพื่อทำหน้าที่เป็น servers และงานอื่นๆในที่สุด ใจความในตอนนี้ ถอดจาก FreeBSD Handbook บทที่ ๓ Shell โดยแต่งเรื่องราวเสริมขึ้นบ้าง
วันนี้, ๒๕ เม.ย ๒๕๕๒ , เพิ่มส่วนของ chsh ให้



Shell

งานประจำวันทั่วไปใน FreeBSD กระทำผ่าน คำสั่งทางแป้นพิมพ์ ที่เรียกว่า shell งานหลักของ shell คือรับคำสั่งทางช่องทางรับ แล้วก็ดำเนินงานตามคำสั่งนั้น shell ทั้งหลาย มีฟังก์ชั่นภายในที่ช่วยงานประจำวัน เช่น การจัดการแฟ้มเอกสาร การป้องกันการเขียนทับแฟ้มเอกสาร การแก้ไขคำสั่ง, ชุดคำสั่ง, และ ตัวแปรสภาพแวดล้อม FreeBSD ให้ชุดของ shell มากับระบบแล้ว เช่น sh หรือ Bourn shell, tcsh หรือ c shell ที่ได้รับการปรับปรุง shell อื่นๆอีกหลายตัว ท่านสามารถหาเอามาใช้ได้จาก ports เช่น z sh และ bash

แล้วท่านใช้ shell อะไรเป็นประจำ คำตอบ ก็ขึ้นอยู่กับว่า ท่านชอบของท่านอย่างไร ท่านก็ใช้อันนั้น ถ้าท่านเป็นคนเขียนโปรแกรมด้วย ภาษา C ท่านอาจจะชอบ shell ที่มีโครงสร้างคล้ายๆกัน เช่น tcsh ถ้าท่านมาจาก Linux หรือใหม่กับ unix ท่านอาจจะชอบ bash ก็ได้ ประเด็นอยู่ที่ว่า แต่ละ shell มีคุณสมบัติโดดเด่นจำเพาะตัว ที่อาจเหมาะ หรือ ไม่เหมาะกับสภาพแวดล้อมการทำงานของท่าน

หนึ่งในคุณสมบัติทั่วๆไปของ shell ก็คือ การช่วยเติมชื่อแฟ้มให้เต็ม โดยการเขียนชื่อแฟ้มด้วย ๓ หรือ ๔ ตัวแรก ท่านสามารถเขียนส่วนที่เหลือได้โดยง่าย เพียงแค่ กัดปุ่ม Tab ตัวอย่างเช่น ท่านมีแฟ้ม ๒ แฟ้มชื่อ foobar และ foo.bar ต้องการจะลบแฟ้ม foo.bar ดังนั้น ท่านเพียงแต่พิมพ์ที่แป้นพิมพ์ ดังนี้
rm fo[Tab] . [Tab]
shell ก็จะพิมพ์ออกมาให้เห็นดังนี้ rm foo[BEEP].bar เมื่อ [BEEP] คือเสียงจาก console ซึ่ง shell แจ้งให้เราทราบว่า ไม่สามารถเลือกชื่อแฟ้มได้ เพราะมีอยู่ ๒ แฟ้มคือ foobar และ foo.bar ที่เริ่มต้นด้วย fo แต่สามารถทำได้แค่ foo เท่านั้น ซึ่ง ถ้าเราพิมพ์ . ลงไป แล้วตามด้วยปุ่ม Tab อีกครั้งหนึ่ง shell ก็สามารถบอกได้ว่า ชื่อแฟ้มที่ท่านต้องการ คือ foo.bar และแสดงผลให้ท่านทราบทางช่องทางแสดงผล ทันที

อีกตัวอย่างหนึ่ง ของการใช้งาน shell คือการใช้ environment variable ตัวแปรนี้ คือ คู่ของ ตัวแปร/ค่า ที่เก็บไว้ในพื้นที่ของ shell พื้นที่นี้ สามารถอ่านได้จากโปรแกรมใดใด ที่ shell เรียกใช้ และมีค่าตั้งต้นต่างๆ ของโปรแกรม ตารางนี้ แสดงบางส่วนของตัวแปร และความหมายที่มี
ตัวแปร                   คำบรรยาย หรือ ความหมาย

USER ชื่อ ของผู้ที่ เข้ามาใช้งานในขณะนี้
PATH ชื่อของสารบบ ที่แยกกันด้วย : ที่ใช้สำหรับค้นหาโปรแกรม
DISPLAY ชื่อของ network ที่ภาคแสดงผลของ X11 ใช้งาน ถ้ามี
SHELL shell ปัจจุบัน
TERM ชื่อ ของ terminal ที่ผู้ใช้ ใช้งาน มีไว้สำหรับคำนวณหา ความสามารถของ terminal
TERMCAP ช่องทางในฐานข้อมูลของ การหา Esc code ของ terminal เพื่อทำฟังก์ชั่นบางอย่าง
OSTYPE ชนิดของระบบปฏิบัติการ , ตัวอย่างเช่น FreeBSD.
MACHTYPE สถาปัตยกรรม ของ หน่วยประมวลผลกลาง ที่ระบบกำลังทำงานอยู่
EDITOR ชื่อของ editor ที่ผู้ใช้ ใช้งาน.
PAGER ชื่อของ pager ที่ผู้ใช้ ใช้งาน
MANPATH รายชื่อของ สารบบ ที่แยกกันด้วย : เพื่อใช้สำหรับค้นหา หน้าช่วยเหลือ

การกำหนดค่าของตัวแปร environment นั้นต่างกันไปในแต่ละ shell ตัวอย่างเช่น ใน shell ที่ทำงานคล้ายกับภาษา C เช่น tcsh และ csh ท่านสามารถใช้คำสั่ง setenv เพื่อกำนหนดค่าตัวแปร แต่ภายใต้ Bourne shell เช่น sh และ bash ท่านต้องใช้ export เพื่อกำหนดค่าตัวแปร ตัวอย่างเช่น เพื่อกำหนดค่าตัวแปรของ EDITOR ใน tcsh และ csh ท่านต้องใช้คำสั่งผ่านแป้นพิมพ์ดังนี้ ในกรณี ที่ท่านประสงค์จะกำหนดใหม่ ให้มีค่าเป็น /usr/local/bin/emacs
% setenv EDITOR /usr/local/bin/emacs

และ ภายใต้ Bourne shell
% export EDITOR="/usr/local/bin/emacs"

shell ถือเอาว่า อักขระหลายตัว เป็น meta-characters ซึ่งแทนข้อมูลพิเศษบางตัว อย่างที่เรารู้ๆก็ได้แก่ * ซึ่งแทนจำนวนอักขระตั้งแต่ ๐ หรือมากกว่า ในชื่อแฟ้ม แลส่วนมากแล้ว ใช้กับชื่อแฟ้มนั่นแหละ ยกตัวอย่างเช่น ท่านเพียงแค่พิมพ์ * ลงไป ก็เท่ากับสั่ง ls เพราะ shell จะนำแฟ้มทุกแฟ้ม มา และแสดงทางช่องทางแสดงผล

เพื่อป้องกัน shell จากการ แทนค่า เราสามารถทำให้ อักขระพิเศษ เหล่านี้ หนีออก, escaped, ไปได้ ด้วยการใช้ \ นำหน้าอักขระพิเศษ เหล่านั้น ลองดูซิ สั่ง echo $TERM ยังผลให้ทราบว่า terminal ของท่าน กำหนดค่าตั้งต้นต่างๆไว้เช่นไร แต่ขณะเดียวกัน ถ้าท่านสั่ง echo \$TERM ท่านก็จะเห็นตัวหนังสือ $TERM ตรงๆจริงๆ


การเปลี่ยน shell
วิธีง่ายๆ คือใช้คำสั่ง chsh การวิ่ง chsh จะนำท่านเข้าสู่ editor ที่ถูกระบุโดยตัวแปรสิ่งแวดล้อม $EDITOR ซึ่งถ้าเราไม่ได้กำหนดไว้ เขาก็จะกำหนดให้เป็น vi โดยปริยาย แล้วก็เปลี่ยนบรรทัด Shell: เอาตามใจ

คำสั่งนี้มี option ให้ท่านสามารถกำหนด shell ที่ท่านต้องการได้โดยตรง โดยมิพักต้องเข้าไปใช้บริการของ $EDITOR แต่อย่างใด ง่ายๆ ตรงๆ
# chsh -s shell

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

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 อีกครั้งตามที่ได้บอกไว้ก่อนหน้านี้

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

Thursday, March 26, 2009

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

เรื่องของ FreeBSD ตั้งแต่ง่ายๆไป จนถึงการใช้งาน FreeBSD เป็นฐานรองรับ hardware เพื่อทำหน้าที่เป็น servers และงานอื่นๆในที่สุด ใจความในตอนนี้ ถอดจาก FreeBSD Handbook บทที่ ๓ Virtual consoles and Terminals โดยแต่งเรื่องราวเสริมขึ้นบ้าง
FreeBSD สามารถใช้งานได้หลายลักษณะ หนึ่งในนั้นคืออันที่เรียกว่า พิมพ์คำสั่งตรงๆลงไปยัง text terminal และ ความสามารถทั้งหลาย ทั้งปวงของ FreeBSD กระทำผ่านนิ้วมือของท่าน ได้ด้วยวิธีนี้ ในตอนนี้ ใคร่ขอแนะนำ ให้ท่านรู้จักว่า อะไรคือ terminals และ อะไรคือ consoles และ ท่านสามารถใช้งานทั้ง ๒ แบบนี้ อย่างไร
๗ โมงครึ่ง ของอีกวันแล้ว ขอพักก่อน แป้บน่ะ
กินเถอะ แม่


Console
ถ้าท่านยังไม่ตั้งให้ FreeBSD เริ่มทำงานในกราฟโหมด ระบบ จะนำท่านมาสู่ login prompt เมื่อท่านเปิดเครื่อง และท่านจะพบกับสิ่งที่คล้ายๆกันนี้
Additional ABI support:.
Local package initialization:.
Additional TCP options:.

Fri Mar 27 01:23:45 ICT 2009

FreeBSD/i386 (jotawski.lampoon.org) (ttyv0)

login:

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

FreeBSD/i386 (jotawski.lampoon.org) (ttyv0)


ซึ่งมีข้อมูลเล็กๆน้อยเกี่ยวกับระบบที่ท่านเพิ่งจะเปิดใช้งานอยู่ นั่นคือ ท่านกำลังมองดู ``FreeBSD'' console ที่วิ่งบนสถาปัติยกรรมของ หน่วยประมวลผล ตระกูล Intel ในจำพวก x86 หรือเทียบเท่า ชื่อของเครื่องนี้ (unix ทุกเครื่อง มีชื่อ) คือ jotawski.lampoon.org และขณะนี้ ท่าน กำลัง จ้อง มองดู console ของระบบ ของเขาล่ะ -- terminal ที่เรียกว่า ttyv0

และที่สุด บรรทัดสุดท้าย ซึ่งจะเป็นอย่างนี้เสมอ คือ

login:

นี่เป็นส่วนที่ท่านได้รับการคาดหวังว่า ท่านจะกรอก ``username'' เพื่อเข้าสู่ FreeBSD ซึ่งจะได้รับการบอกเล่า ในลำดับถัดไป

เข้าใช้งาน FreeBSD
ฟรีบีเอ้สดี เป็นระบบหลายโปรเซส หลายผู้ใช้งาน นี่เป็นการบรรยาย แบบทั่วไป กับระบบที่ สามารถใช้งานได้หลายคน และ สามารถ วิ่งโปรแกรมได้ ครั้งล่ะ หลายๆโปรแกรม พร้อมๆกัน ในเครื่องเดียว

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

ภายหลังจากที่ ฟรีบีเอ้สดี บู้ตเครื่อง และจบงานเริ่มต้นแล้ว มันก็จะนำเสนอท่านด้วย prompt และถามหาชื่อที่ถูกต้อง

login:

เพื่อเป็นการยกตัวอย่างในที่นี้ สมมติว่า ชื่อ ของท่านคือ taparow ก็ให้ท่าน กรอก taparow ไปที่ prompt นี้ แล้วตามด้วยการกดปุ่ม Enter ซึ่งท่านควรจะได้รับ การสนองตอบ ด้วย การบอกให้ท่านกรอก ระหัสลับ

login: taparow
Password:

ก็ให้ท่าน กรอก ระหัสลับ ของ taparow ไป และกัดปุ่ม Enterโดยที่ไม่ต้องกังวลว่าจะมีผู้อ่าน หรือ เห็น ระหัสลับ ของท่านได้ เพราะ มันจะไม่แสดงออกมา ทางหน้าจอภาพ ก็พอจะบอก ให้ท่าน สบายใจได้ในขณะนี้ว่า มันทำไปดังนั้น ด้วยเหตุผล เพื่อ ความปลอดภัย ของระบบ

ถ้าท่านใส่ระหัสลับได้ถูกต้อง ท่านสมควรได้รับการนำเข้าสู่ ระบบปฏิบัติการ FreeBSD และ พร้อมที่จะ ทดลองใช้ คำสั่งต่างๆประดามีได้ ตามปราถนา

ท่านควรจะเห็น MOTD หรือ ข่าวประจำวัน ตามด้วย prompt (อาจจะเป็นอักขระ # $ หรือ % ตามแต่กรณี) ซึ่งบ่งบอกว่า ท่าน ได้เข้าสู่ระบบปฏิบัติการ FreeBSD เรียบร้อยแล้ว

การทำงานหลาย Consoles
การใช้งานโปรแกรม unix ใน console เดียวนั้นก็ดีอยู่หรอก แต่ ฟรีบีเอ้สดี นั้น สามารถที่จะ วิ่งได้ หลายๆโปรแกรม พร้อมๆกัน การมี console เดียวขณะที่ สามารถ สั่งงาน ได้อีกนั้น ดูจะเป็น การสูญเปล่าไป ในเมื่อระบบปฏิบัติการ เช่น FreeBSD นั้น สามารถวิ่ง ได้หลายๆโปรแกรม พร้อมๆกัน และ นี่เอง ที่ ``virtual consoles'' สามารถช่วยได้มาก

FreeBSD นั้นสามารถ ปรับแต่ง ให้ท่านใช้ virtual console ได้มากเท่าที่ต้องการได้ ท่านสามารถ กระโดด ไปมา ระหว่างแต่ละ console ได้โดยง่าย เพียงแค่ กดปุ่ม สองสามปุ่ม บนแป้นพิมพ์ของท่านเท่านั้น แต่ละ console ก็จะมี ช่องทางผลลัพธ์ เป็นของ ของตัวของตัวไป ฟรีบีเอ้สดี จะรับผิดชอบ ในการสลับ สับหลีก คู่แป้นพิมพ์จอภาพ สำหรับแต่ละ console ที่ท่านใช้งานได้อย่างถูกต้อง

ป่มพิเศษ ที่สงวนไว้สำหรับงานนี้โดย FreeBSD เป็นการจำเพาะ ท่านสามารถใช้ปุ่ม Alt F1, Alt F2 ถึง Alt F8 เพื่อสลับไปมา ระหว่าง virtual console ใน FreeBSD

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

แฟ้ม /etc/ttys
FreeBSD ได้รับการปรับให้ เริ่มต้นเมื่อเปิดเครื่อง สามารถมี 8 virtual consoles อันนี้ ไม่ใช่การติดตั้งกับตัวเครื่องมา แต่ ท่าน สามารถ ปรับ ระบบของท่าน เอาเองได้ ตามใจชอบว่า จะให้มี น้อย หรือ มาก เท่าไรก็ได้ จำนวน และ การกำหนดค่าต่างๆ ของ virtual consoles สามารถปรับ ได้จากแฟ้ม /etc/ttys

ท่านสามารถใช้แฟ้ม /etc/ttys ปรับ virtual consoles ของ FreeBSD ซึ่งแต่ละบรรทัด ที่ไม่ได้ comment ไว้ (บรรทัดที่ไม่ได้ขึ้นต้นด้วย #) มีการกำหนดค่าตั้งต้น สำหรับ terminal เดี่ยว หรือ virtual console แฟ้มที่ให้มากับระบบปฏิบัติการ FreeBSD นี้ ได้รับการปรับแต่ง ให้มี 9 virtual consoles และ ให้เริ่มทำงาน เพียง 8 อัน ก็ประดาบรรทัด ที่เริ่มต้นด้วย ttyv: นั่นเอง
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
สำหรับ รายละเอียดของแต่ละ column ในแฟ้มนี้ รวมทั้ง options ต่างๆ ที่ท่านสามารถเลือก เพื่อกำหนดสิ่งต่างๆ ใน virtual console ได้เอง นั้น กรุณาอ่าน หน้าคู่มือ ttys(5)
หมายเหตุมะไฟ ตารางนี้ แต่ละบรรทัด มี ๕ สดมภ์ แต่ละ สดมภ์ คั่นด้วย space ถ้าสดมภ์ใดมี space อยู่ให้ใช้ " ปิดหัว ท้าย สดมภ์นั้น

Single User Mode Console
ความลับของ single user mode console ท่านสามารถหาอ่านดูได้จากเรื่องของ init process ที่จะนำเสนอต่อไป สิ่งที่สำคัญที่จะทราบไว้ก็คือ ท่านสามารถมี และใช้ console ได้เพียง 1 console เท่านั้น เมื่อท่านวิ่ง FreeBSD ใน single user mode ไม่มี virtual console ให้ท่านใช้ การกำหนด หรือ ปรับแต่ง console ใน single user mode สามารถกระทำได้ผ่านแฟ้ม /etc/ttys เช่นกัน โดยมองหาบรรทัดที่เริ่มด้วยคำ console
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure

อย่างที่บอกไว้ตรง comment ของรายละเอียดข้างบนของ console ถ้าเราเปลี่ยนจาก secure เป็น insecure เมื่อ FreeBSD เข้าสู่ single user mode มันจะถามหา ระหัสลับ ของ root ซึ่งจะทำให้ท่านวุ่นวายเอาได้

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

Thursday, March 12, 2009

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


สารบบคำอธิบายของสารบบ หรือ ความหมายในสารบบ
/mnt/สารบบว่างๆ สำหรับงานของผู้บริหารระบบใช้งาน กับระบบแฟ้มอื่นๆ
/proc/ระบบแฟ้มที่กำลังดำเนินการ กรุณาดู procfs(5) และ mount_procfs(8)
/rescue/โปรแกรมสำหรับกู้ระบบยามฉุกเฉิน กรุณาดู rescue(8)
/root/บ้านของ root
/sbin/โปรแกรมระบบ และ โปรแกรมอรรถประโยชน์ ที่เป็นพื้นฐานทั้งในสภาวะ ผู้ใช้งานคนเดียว และ ผู้ใช้งานหลายคน
/tmp/แฟ้มชั่วคราวต่างๆ สิ่งที่อยู่ในนี้ , /tmp, ไม่สามารถเก็บไว้ได้ จะถูกลบทิ้งเสมอ เมื่อเครื่องบูตใหม่ และ ระบบแฟ้ม ที่เกี่ยวโยงกับหน่วยความจำ จะถูกแขวน ไว้ที่นี่เสมอ กรุณาดู rc.conf(5) และ /etc/fstab และ mdmfs(8)
/usr/อรรถประโยชน์ และ โปรแกรม ของผู้ใช้งาน จะอยู่ที่นี่
/var/แฟ้ม log ทั่วไป แฟ้มชั่วคราวอื่นๆ แฟ้มเขียนอ่านระยะเวลาสั้นๆ ระบบแฟ้ม ที่เกี่ยวโยงกับหน่วยความจำ ก็มักจะแขวนไว้ที่นี่ด้วย ซึ่งสามารถกำหนดให้ แขวน หรือ วางไว้โดยอัตโนมัติ ทุกครั้งไปด้วยตัวแปร varmfs ในแฟ้ม rc.conf(5)

อนึ่ง สำหรับรายละเอียดของ สารบบ ที่ไม่ได้แปลจากต้นฉบับ ไว้ ณ ที่นี้ ไม่ว่าจะเป็น ตอนนี้, 2, 1 คงต้องรบกวนให้ ไปศึกษาเอาเองจาก hier(7) ซึ่งจะมีมากกว่า โดยเฉพาะอย่างยิ่ง สนธยามาเยือน /usr/local, /usr/ports, /usr/src

ทั้ง ๓ ตอน ที่เพียรทำออกมานี้ ส่วนหนึ่ง เกิดจากการพยายามแก้ปัญหาการจัดรูปแบบหน้าใน blog แต่อีกส่วนหนึ่ง ก็นึกถึงความจริงที่ว่า หาก ซอย แบ่ง ให้เพื่อนๆ พี่ๆ น้องๆ ได้ทยอยอ่าน น่าจะเข้าใจเรื่องราวได้ ง่ายกว่า การอ่านรวดเดียว

ก็หวังว่า คงได้ประโยชน์บ้างพอสมควร

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

ขอยกยอดมาต่อเอาวันละหน่อยน่ะ บอกตรงๆ แก้ปัญหาการจัดหน้าไม่ได้น่ะ คิกคิก แต่ อย่างน้อยได้คำไทยสำหรับ directory แล้วล่ะว่าคือ สารบบ ได้จาก ราชบัณฑิตยสถาน นั่นแหละครับ
สารบบคำอธิบายของสารบบ หรือ ความหมายในสารบบ
/etc/แฟ้มการจัดระบบ ของ ระบบปฏิบัติการ และ สคริปต่างๆ
/etc/defaults/แฟ้มการจัดระบบ ของ ระบบปฏิบัติการ ที่เรียกใช้โดยไม่เปลี่ยนแปลง กรุณาดู rc(8)
/etc/mail/แฟ้มการจัดระบบของ ผู้จัดการส่งจดหมาย ดู sendmail(8).
/etc/namedb/แฟ้มการจัดระบบของ named กรุณาดู named(8)
/etc/periodic/สคริป ที่วิ่งประจำเป็นระยะๆ เช่น ทุกวัน ทุกสัปดาห์ โดยโปรแกรม cron(8) กรุณาดู periodic(8)
/etc/ppp/แฟ้มการจัดระบบของโปรแกรม ppp กรุณาดู ppp(8)

ยังมีต่อน่ะครับ

Wednesday, March 11, 2009

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

ขอยกยอดมาต่ออีกวัน จากวันก่อนเอาน่ะครับ โครงสร้างพื้นฐานของ สาระบบแฟ้มเอกสาร เท่าที่เห็นสมควรนำเสนอ มีดังนี้



สาระบบแฟ้มคำอธิบายของสารบบ หรือ ความหมายในสารบบ
/สาระบบแฟ้มตั้งต้นของ ระบบแฟ้ม ของระบบปฏิบัติการ.
/bin/อรรถประโยชน์ต่างๆของผู้ใช้ ที่เป็นพื้นฐาน ในสภาวะ ผู้ใช้คนเดียว และ ผู้ใช้หลายคน
/boot/โปรแกรม และ แฟ้มการจัดระบบ ซึ่งเรียกใช้งาน ระหว่าง ระบบปฏิบัติการ อยู่ในช่วงตั้งต้น
/boot/defaults/แฟ้มที่ใช้งานโดยตรง ระหว่างที่ระบบปฏิบัติการตั้งต้นทำงาน กรุณาดู loader.conf(5)
/dev/แฟ้ม ที่เป็น อุปกรณ์ต่างๆ กรุณาดู intro(4)

ไปต่อกันข้างบนดีกว่าน่ะครับ

Tuesday, March 3, 2009

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

เรื่องราวตอนนี้ และที่ใกล้เคียงกันนี้ ถอดเอาสาระจาก unix basic ใน hand book ของ freebsd ละครับ

ระหว่างนี้ ไปอ่านอาหารด่วน ก่อนน่ะ พักสักแป้บหนึ่ง
ตะวันรอน


๙ มีนาคม ๒๕๕๒ เช้า บนโต้ะอาหาร จากร้านริมถนน ด้วย Free WiFi, เชียงราย
มาต่อกันเถอะ พักนานพอแล้ว
แต่ ยังหาคำไทยที่เหมาะๆกับฝรั่ง directory ไม่ได้ mount ก็ยังหาไม่ได้ น่ะ อย่าเพิ่งต่อว่ากัน หาได้ถูกใจเมื่อไร จะแก้ไขให้ ทันที รับรอง

โครงสร้างสาระบบแฟ้มเอกสาร

สาระบบแฟ้มเอกสารที่จัดเป็นลำดับชั้นนั้นเป็นพื้นฐานที่จะทำให้เข้าใจภาพโดยรวมของระบบได้อย่างดี concept สำคัญที่ต้องรับรู้ไว้ก็คือ สาระบบแฟ้มเอกสาร root หรือ / สาระบแฟ้มเอกสารนี้ เป็น สิ่งแรก ที่ได้รับการแขวน หรือ เกี่ยว หรือ วางไว้ ในช่วงเวลาของการบูต และ มันมีระบบพื้นฐานที่จำเป็นเพื่อใช้เตรียมการสำหรับปฏิบัติการในระดับ การทำงานพร้อมกันหลายคน สาระบบแฟ้มเอกสาร root นี้ ยังเป็นจุดสำหรับการแขวน หรือ เกี่ยว หรือ วางไว้ ของระบบแฟ้ม อื่นๆ ระหว่างการเปลี่ยนช่วงไปสู่การปฏิบัติการในระดับ การทำงานพร้อมกันหลายคน

จุดสำหรับการแขวน หรือ เกี่ยว หรือ วางไว้นี้ เป็น สาระบบแฟ้มเอกสาร ที่ ระบบแฟ้มอื่นๆ สามารถต่อเชื่อมกับ ระบบแฟ้มกำเนิด ได้ ซึ่งปกติคือระบบแฟ้ม root จุดสำหรับการแขวน หรือ เกี่ยว หรือ วางไว้ จะรวมทั้ง /usr, /var, /tmp, /mnt, /cdrom สาระบบแฟ้มเอกสารเหล่านี้ มักถูกอ้างอิงถึง จาก บรรทัดต่างๆของแฟ้ม /etc/fstab แฟ้มนี้ ก็มีเพียงตารางของระบบแฟ้มต่างๆ กับ จุดสำหรับการแขวน หรือ เกี่ยว หรือ วางไว้เพื่อให้ระบบอ้างถึงได้ และ ส่วนใหญ่ของระบบแฟ้มใน /etc/fstab นั้นจะได้รับการวางไว้โดยอัติโนมัติในช่วงการบูตจากแฟ้ม rc(8) เว้นแต่ว่าจะมี อ้อปชั่นnoauto ในบรรทัดนั้น

คำที่ยังหาไม่ถูกใจได้
สาระบบแฟ้มเอกสาร directory
การแขวน หรือ เกี่ยว หรือ วางไว้ mount
ระบบแฟ้ม file system
ต่อเชื่อมกับ grafted

ไปต่อข้างบนกันดีกว่า เน้าะ

View My Stats