cd
คำสั่งเปลี่ยน directory เพื่อเข้าไปใน directory ต่างๆในระบบ
โค้ด:
kantaphong# cd /usr/X11R6/etc/rc.d
kantaphong#
cp
คำสั่งคัดลอกไฟล์ ทำสำเนาจากไฟล์เดิม เป็น ไฟล์ใหม่
โค้ด:
kantaphong# ls
000.evolibs.sh gdm.sh.sample xfs.sh xprint
kantaphong# cp gdm.sh.sample gdm.sh
kantaphong# ls
000.evolibs.sh gdm.sh gdm.sh.sample xfs.sh xprint
kantaphong#
clear
ทำความสะอาดหน้าจอ หรือ terminal cursor จะกลับไปรอรับคำสั่งที่บรรทัดแรก
df
ผมใช้ดูพื้นที่ของ harddisk ที่ถูกใช้งานไป และส่วนที่เหลืออยู่ , มักใช้ร่วมกับ option -m เพื่อให้แสดงผลพื้นที่เป็น Megabyte
โค้ด:
kantaphong# df -m
Filesystem 1M-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 247 205 22 90% /
devfs 0 0 0 100% /dev
/dev/ad0s1e 247 51 176 22% /tmp
/dev/ad0s1f 35244 9404 23020 29% /usr
/dev/ad0s1d 247 88 139 39% /var
dmesg
ใช้ดูข้อมูลการตรวจสอบระบบ ที่พบระหว่างการ boot เครื่อง สามารถดูได้จากไฟล์ /var/run/dmesg.boot เช่นกัน
โค้ด:
kantaphong# dmesg
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 6.0-STABLE #1: Tue Nov 15 11:15:23 ICT 2005
freedesktop@FreeDesktop.company.com:/usr/src/sys/i386/compile/MYKERNEL
ACPI APIC Table:
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(TM) XP 2200+ (1800.08-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x681 Stepping = 1
Features=0x383fbff
AMD Features=0xc0400800
real memory = 536854528 (511 MB)
avail memory = 516009984 (492 MB)
ioapic0: Changing APIC ID to 2
ioapic0 irqs 0-23 on motherboard
npx0: [FAST]
npx0: on motherboard
npx0: INT 16 interface
acpi0: on motherboard
acpi0: Power Button (fixed)
pci_link0: irq 11 on acpi0
pci_link1: irq 0 on acpi0
pci_link2: irq 0 on acpi0
pci_link3: irq 0 on acpi0
pci_link4: irq 10 on acpi0
pci_link5: irq 3 on acpi0
pci_link6: irq 5 on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <32-bit timer at 3.579545MHz> port 0xe408-0xe40b on acpi0
cpu0: on acpi0
..........
..........
..........
find
ค้นหาไฟล์ที่ต้องการ ประสิทธิภาพการค้นหาดีเยี่ยม ไม่เคยผิดหวัง โดยเฉพาะเมื่อใช้กับเครื่องหมาย / ซึ่งการค้นหา จะเริ่มต้นตั้งแต่ root directory จนบางครั้งต้องแปลกใจว่า ไฟล์ที่เราใช้ประจำ ทำไม่มันมีอยู่ในหลายที่จัง
โค้ด:
kantaphong# find / -name rc.conf
/usr/share/examples/etc/defaults/rc.conf
/usr/src/etc/defaults/rc.conf
/usr/src/release/picobsd/floppy.tree/etc/rc.conf
/var/cache/setup-tool-backends/backup/time/First/etc/rc.conf
/var/cache/setup-tool-backends/backup/time/1/etc/rc.conf
/stand/etc/defaults/rc.conf
/etc/defaults/rc.conf
/etc/rc.conf
ค้นหาไฟล์ที่เป็นเฉพาะ ไฟล์ pdf
โค้ด:
kantaphong# find / -name "*.pdf"
/usr/local/share/doc/cups/stp.pdf
/usr/local/share/doc/cups/sum.pdf
/usr/local/share/doc/cups/svd.pdf
/usr/local/share/doc/cups/translation.pdf
/usr/local/share/doc/libxml2/tutorial/xmltutorial.pdf
/usr/local/share/doc/libtasn1/libtasn1.pdf
/usr/local/share/doc/gimp-print/users-guide.pdf
....
ค้นหา directory ที่ชื่อ work เฉพาะที่อยู่ใน /usr/ports
type -d เป็นตัวบอกว่าให้หาไฟล์ที่ เป็นประเภท directoy
โค้ด:
kantaphong# find /usr/ports -type d -name work
/usr/ports/archivers/zip/work
/usr/ports/editors/openoffice-1.1/work
/usr/ports/java/javavmwrapper/work
/usr/ports/java/jdk14/work
/usr/ports/java/linux-sun-jdk14/work
/usr/ports/math/gnumeric/work
/usr/ports/x11-toolkits/open-motif/work
/usr/ports/x11-toolkits/py-gtk2/work
ifconfig
ผมใช้เพียงตรวจสอบดู ค่าของ lan card ว่ามีอะไรผิดปกติหรือไม่ เท่านั้น
โค้ด:
kantaphong# ifconfig
vr0: flags=8843 mtu 1500
inet 192.168.200.105 netmask 0xffffff00 broadcast 192.168.200.255
inet6 fe80::20c:6eff:fe81:4445%vr0 prefixlen 64 scopeid 0x1
ether 00:0c:6e:81:44:45
media: Ethernet autoselect (100baseTX )
status: active
plip0: flags=108810 mtu 1500
lo0: flags=8049 mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
kill
ใช้ยกเลิก process ที่มีปัญหา โดยต้องระบุ process id ซึ่งได้จากการใช้คำสั่ง ps
โค้ด:
kantaphong# ps -aux | grep gaim
freedesktop 1186 0.0 3.9 27312 20324 ?? S 7:56AM 0:04.34 gaim
freedesktop 1348 0.0 4.2 27344 21420 ?? S 7:56AM 0:07.22 gaim
kantaphong# kill -9 1186 1348
less
ผมมักใช้คำสั่งนี้ เพื่อดูรายละเอียดของแฟ้ม config หรือไฟล์ต่างๆ โดยที่ไม่ต้องกังวลว่าจะทำให้ไฟล์นั้นเสียหาย เพราะดูได้อย่างเดียว
โค้ด:
kantaphong# less gdm.sh
#!/bin/sh
# $FreeBSD: ports/x11/gdm/files/gdm.sh.in,v 1.5 2005/06/11 02:58:47 marcus Exp $
# PROVIDE: gdm
# REQUIRE: DAEMON
# KEYWORD: FreeBSD shutdown
gdm_enable=${gdm_enable-"NO"}
. /etc/rc.subr
name=gdm
rcvar=`set_rcvar`
command="/usr/X11R6/sbin/${name}"
pidfile="/var/run/${name}.pid"
procname="/usr/X11R6/sbin/gdm-binary"
load_rc_config ${name}
run_rc_command "$1"
ll
ดูรายชื่อแฟ้ม แบบขอดูรายละเอียด
และเรียกดูเรียงลำดับตามขนาดของไฟล์ (-Ss) และ ดูเข้าไปในแต่ละ directory (-R) ลองสั่ง ll -SsR | less ดูด้วยนะครับ
โค้ด:
kantaphong# ll
total 56
drwx------ 2 root wheel 512 Jul 18 09:54 .Trash-root
drwxrwxr-x 2 root operator 512 Jul 18 10:08 .snap
drwxr-xr-x 13 root wheel 512 Aug 11 14:49 X11R6
drwxr-xr-x 2 root wheel 7168 Jul 9 16:06 bin
drwxr-xr-x 3 root wheel 512 May 12 15:47 compat
drwxr-xr-x 2 root wheel 512 May 13 08:38 games
drwxr-xr-x 4 root wheel 512 May 13 16:14 home
drwxr-xr-x 46 root wheel 4608 May 13 08:37 include
drwxr-xr-x 4 root wheel 8704 May 8 17:26 lib
drwxr-xr-x 5 root wheel 512 May 8 14:00 libdata
drwxr-xr-x 5 root wheel 1536 May 13 08:40 libexec
drwxr-xr-x 23 root wheel 512 Jul 9 09:48 local
drwxr-xr-x 2 root wheel 512 Jun 16 16:01 obj
drwxr-xr-x 65 root wheel 1536 Aug 8 13:32 ports
drwxr-xr-x 2 root wheel 4608 May 13 08:37 sbin
drwxr-xr-x 27 root wheel 512 May 8 17:26 share
drwxr-xr-x 21 root wheel 1024 Jun 15 13:07 src
ls
ดูรายชื่อแฟ้ม แบบรวดเร็ว
โค้ด:
kantaphong# ls
.Trash-root compat lib obj src
.snap games libdata ports
X11R6 home libexec sbin
bin include local share
man
คำสั่งสำหรับ ดูรายละเอียดของคำสั่งต่างๆ ที่มีอยู่ใน FreeBSD เช่น man cp หรือแม้แต่คำสั่ง man man
โค้ด:
kantaphong# man cp
CP(1) FreeBSD General Commands Manual CP(1)
NAME
cp -- copy files
SYNOPSIS
cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] source_file target_file
cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] source_file ... target_directory
DESCRIPTION
In the first synopsis form, the cp utility copies the contents of the
source_file to the target_file. In the second synopsis form, the con-
tents of each named source_file is copied to the destination
target_directory. The names of the files themselves are not changed. If
cp detects an attempt to copy a file to itself, the copy will fail.
The following options are available:
-H If the -R option is specified, symbolic links on the command line
are followed. (Symbolic links encountered in the tree traversal
are not followed.)
man hier
เป็นคำสั่ง man ที่มีประโยชน์มากคำสั่งหนึ่ง เพราะจะทำให้เราเห็น ระบบ file systems ของ FreeBSD ว่าเขาออกแบบไว้อย่างไร
โค้ด:
kantaphong# man hier
HIER(7) FreeBSD Miscellaneous Information Manual HIER(7)
NAME
hier -- layout of file systems
DESCRIPTION
A sketch of the file system hierarchy.
/ root directory of the file system
/bin/ user utilities fundamental to both single-user and multi-user
environments
/boot/ programs and configuration files used during operating system
bootstrap
.......
mkdir
คำสั่งสำหรับ สร้าง directory ใหม่ ตามต้องการ
โค้ด:
kantaphong# cd /mnt
kantaphong# mkdir floppy
kantaphong# ls
floppy forest.gif
mv
คำสั่งสำหรับ เปลี่ยนชื่อ ไฟล์ หรือ คำสั่งสำหรับย้ายไฟล์ ไปยัง directory อื่น ใช้คำสั่ง mv ตามด้วยชื่อไฟล์ต้นทาง และ ตามด้วยชื่อไฟล์ใหม่ หรือ ชื่อไฟล์ปลายทาง
โค้ด:
kantaphong# ls
000.evolibs.sh gdm.sh xfs.sh xprint
kantaphong# mv gdm.sh gdm.sh.sample
kantaphong# ls
000.evolibs.sh gdm.sh.sample xfs.sh xprint
kantaphong#
passwd
คำสั่งสำหรับ เปลี่ยน passwd ถ้าเป็น user พิมพ์คำว่า passwd ได้เลย แต่ถ้าอยู่ในฐานะ root สามาถเปลี่ยน password ของ user แต่ละคนได้ ด้วยการพิมพ์คำสั่ง passwd แล้วตามด้วยชื่อ user ของคนที่ต้องการเปลี่ยน passwd
โค้ด:
kantaphong# passwd freedesktop
Changing local password for freedesktop
Old Password:
New Password:
Retype New Password:
kantaphong#
pciconf
วิธีการตรวจสอบ sound card รวมถึง card pci อื่นๆด้วย
โค้ด:
kantaphong# pciconf -lv
......
atapci0@pci0:17:1: class=0x01018a card=0x80a11043 chip=0x05711106 rev=0x06 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT82xxxx EIDE Controller (All VIA Chipsets)'
class = mass storage
subclass = ATA
pcm0@pci0:17:5: class=0x040100 card=0x80a11043 chip=0x30591106 rev=0x50 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT8233/33A/8235/8237 AC97 Enhanced Audio Controller'
class = multimedia
subclass = audio
vr0@pci0:18:0: class=0x020000 card=0x80a11043 chip=0x30651106 rev=0x74 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT6102 Rhine II PCI Fast Ethernet Controller'
class = network
subclass = ethernet
......
ping
ตรวจสอบการเชื่อมต่อ ระหว่างเครื่องคอมพิวเตอร์ ว่าการเขื่อมต่อเป็นปกติ หรือ มีปัหาอะไรบ้าง สามารถระบุเป็นชื่อเครื่อง หรือ ip-address หากระบุ options -c ตามด้วยจำนวน จะหมายถึงให้ตรวจสอบ ตามจำนวนที่ต้องการ
โค้ด:
kantaphong# ping -c3 www.google.co.th
PING www.l.google.com (66.102.7.99): 56 data bytes
64 bytes from 66.102.7.99: icmp_seq=0 ttl=238 time=212.755 ms
64 bytes from 66.102.7.99: icmp_seq=1 ttl=238 time=218.440 ms
64 bytes from 66.102.7.99: icmp_seq=2 ttl=238 time=215.220 ms
--- www.l.google.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 212.755/215.472/218.440/2.328 ms
kantaphong# ping -c3 66.102.7.99
PING 66.102.7.99 (66.102.7.99): 56 data bytes
64 bytes from 66.102.7.99: icmp_seq=0 ttl=238 time=219.953 ms
64 bytes from 66.102.7.99: icmp_seq=1 ttl=238 time=219.094 ms
64 bytes from 66.102.7.99: icmp_seq=2 ttl=238 time=216.648 ms
--- 66.102.7.99 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 216.648/218.565/219.953/1.400 ms
pkg_info
เพื่อดูว่าเราได้ลงโปรแกรมอะไร ไปบ้างในเครื่องของเรา และเพื่อให้สามารถดูได้ทีละหน้าจอ เราก็ส่งผลที่ได้จากคำสั่ง pkg_info ต่อไปยัง คำสั่ง less อีกที
โค้ด:
kantaphong# pkg_info | less
.........
esound-0.2.36 A sound library for enlightenment package
evolution-2.2.3_1 An integrated mail, calendar and address book distributed s
evolution-data-server-1.2.3_2 The data backends for the Evolution integrated mail/PIM sui
evolution-webcal-2.2.1 Webcal(endar) handler for gnome
expat-1.95.8_3 XML 1.0 parser written in C
fam-2.6.9_6 A file alteration monitor
ffmpeg-0.4.9.p1_3 Hyper fast realtime audio/video encoder/converter, streamin
fileroller-2.10.4,1 An archive manager for zip files, tar, etc
flac-1.1.2 Free lossless audio codec
fontconfig-2.2.3,1 An XML-based font configuration API for X Windows
freetype2-2.1.10_1 A free and portable TrueType font rendering engine
gail-1.8.5 An implementation of the ATK interfaces for GTK+ widgets
gaim-1.5.0 Multi-protocol instant messaging client
.........
ps
เพื่อดูว่ามี process อะไรบ้างที่ทำงานอยู่ในขณะนี้ และอาจระบุเฉพาะบาง process ผมมักใช้ค้นหาเฉพาะบาง process ที่ต้องการโดยการใช้ร่วมกับคำสั่ง grep
โค้ด:
kantaphong# ps -aux | grep httpd
root 453 0.0 0.7 5572 3368 ?? Ss 7:55AM 0:00.29 /usr/local/sbin/httpd
www 492 0.0 0.7 5572 3356 ?? I 7:55AM 0:00.00 /usr/local/sbin/httpd
www 493 0.0 0.7 5572 3356 ?? I 7:55AM 0:00.00 /usr/local/sbin/httpd
www 494 0.0 0.7 5572 3356 ?? I 7:55AM 0:00.00 /usr/local/sbin/httpd
www 495 0.0 0.7 5572 3356 ?? I 7:55AM 0:00.00 /usr/local/sbin/httpd
www 496 0.0 0.7 5572 3356 ?? I 7:55AM 0:00.00 /usr/local/sbin/httpd
kantaphong# ps -aux | grep gaim
freedesktop 1186 0.0 3.9 27312 20324 ?? S 7:56AM 0:04.34 gaim
freedesktop 1348 0.0 4.2 27344 21420 ?? S 7:56AM 0:07.22 gaim
pwd
ดู directory ปัจจุบัน เพื่อตรวจสอบว่า ขณะนี้เราอยู่ใน directoy อะไร
โค้ด:
kantaphong# pwd
/usr/X11R6/share/gnome
rm
คำสั่ง ลบไฟล์ ที่ต้องการลบ หากระบุ option -r จะเป็นการลบ directoy และ ไฟล์ภายใน directory นั้นทั้งหมด
โค้ด:
kantaphong# ls
floppy forest.gif
kantaphong# rm forest.gif
kantaphong# ls
floppy
kantaphong# rm -r floppy
kantaphong#
su
คำสั่ง ขอเปลี่ยนสถานะจาก user ธรรมดา เป็น root เพื่อใช้สิทธิของ root ในการทำงานต่างๆ
โค้ด:
% su
Password:
kantaphong#
ถ้าใส่ password ถูกต้อง และ user คนนั้นมีสิทธิในการเปลี่ยนเป็น root ได้ ก็จะเข้าสู่สถานะของ root ทันที ถ้าต้องการออกจากสถานะ root ให้พิมพ์ exit
โค้ด:
kantaphong# exit
exit
%
swapinfo
คำสั่ง เพื่อตรวจสอบ พื้นที่ swap ในเครื่องเรา (ด้วยความอนุเคราะห์จาก อ.msczope)
โค้ด:
% swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 1022888 0 1022888 0%
top
ใช้ดู process ของ cpu ดู memory ที่ใช้งานอยู่ ดู uptime ของระบบ เวลาออกจากการดู ให้กด q
โค้ด:
kantaphong# top
last pid: 2988; load averages: 0.09, 0.11, 0.08 up 0+02:24:04 10:18:54
93 processes: 1 running, 92 sleeping
CPU states: 11.7% user, 0.0% nice, 2.3% system, 0.8% interrupt, 85.2% idle
Mem: 124M Active, 75M Inact, 66M Wired, 12K Cache, 60M Buf, 228M Free
Swap: 999M Total, 999M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
519 root 96 0 105M 103M select 2:22 0.54% 0.54% Xorg
1052 freedesktop 96 0 19028K 14492K select 0:08 0.15% 0.15% wnck-applet
977 freedesktop 96 0 12760K 9856K select 0:08 0.05% 0.05% metacity
520 root 96 0 1276K 756K select 0:04 0.05% 0.05% moused
2540 freedesktop 20 0 27260K 22600K kserel 1:29 0.00% 0.00% gedit
2488 freedesktop 20 0 55780K 48068K kserel 0:40 0.00% 0.00% epiphany-bin
2609 freedesktop 20 0 22904K 17084K kserel 0:14 0.00% 0.00% gnome-terminal
1092 freedesktop 96 0 18828K 13252K select 0:08 0.00% 0.00% mixer_applet2
1348 freedesktop 20 0 27348K 21424K kserel 0:05 0.00% 0.00% gaim
uptime
แสดงระยะเวลาทั้งหมดที่เปิดเครื่อง หรือ เปิดบริการ server มา
โค้ด:
kantaphong# uptime
8:27AM up 32 day(s), 1 user, load averages: 0.00, 0.04, 0.08
vmstat
เป็นคำสั่งเพื่อ ตรวจ memory และ processor (ด้วยความอนุเคราะห์จาก อ.msczope)
โค้ด:
kantaphong# vmstat -c 10
procs memory page disks faults cpu
r b w avm fre flt re pi po fr sr ad0 cd0 in sy cs us sy id
2 1 0 515108 32088 289 1 0 0 285 5 0 0 372 1368 516 7 2 91
1 1 0 515108 32088 4 0 0 0 3 0 0 0 342 896 383 2 3 95
2 1 0 515108 32088 0 0 0 0 0 0 0 0 415 1602 615 4 2 95
0 1 0 515108 32088 0 0 0 0 0 0 0 0 385 1175 496 3 2 95
0 1 0 515108 32088 0 0 0 0 0 0 0 0 334 794 368 2 2 96
1 1 0 515108 32088 0 0 0 0 0 0 0 0 410 1627 624 2 2 95
1 1 0 515108 32088 2 0 0 0 0 0 0 0 497 2280 921 4 4 92
0 1 0 515108 32088 0 0 0 0 0 0 0 0 337 844 380 0 4 96
0 1 0 515108 32088 0 0 0 0 0 0 0 0 335 774 361 1 2 98
0 1 0 515108 32088 0 0 0 0 0 0 0 0 337 800 376 2 2 97
เมื่อ r > 0 สถานะภาพขณะนั้นมีปัญหา processor overload
เมื่อ b > 0 ปัญหาเกิดจาก I/O เช่น harddisk ช้าเกินไป
เมื่อ w > 0 แสดงว่า หน่วยความจำไม่เพียงพอ และ swap น้อยเกินไป
อ้างอิง Testing your Firewall ( Jacek Artymiak Building Firewalls with OpenBSD and PF ) p. 254
whereis
คำสั่งนี้ใช้บ่อยมากครับ โดยเฉพาะช่วงจะติดตั้ง โปรแกรมใหม่ๆ ผ่าน ports เพราะหลายๆครั้งจำไม่ได้ว่า โปรแกรมที่จะติดตั้ง อยู่ใน ports ไหน ก็จะใช้คำสั่งนี้หาก่อนเลย เมื่อพบแล้วก็เข้าไปติดตั้งใน ports นั้นๆอีกที หรือถ้าเคยติดตั้งโปรแกรมนั้นมาแล้ว เขาก็จะระบุคำสั่งที่จะเรียกใช้งานมาให้ด้วย
โค้ด:
kantaphong# whereis gdm
gdm: /usr/X11R6/man/man1/gdm.1.gz /usr/ports/x11/gdm
kantaphong# whereis gimp
gimp: /usr/X11R6/bin/gimp /usr/X11R6/man/man1/gimp.1.gz /usr/ports/graphics/gimp
kantaphong# whereis gftp
gftp: /usr/X11R6/bin/gftp /usr/X11R6/man/man1/gftp.1.gz /usr/ports/ftp/gftp
kantaphong# whereis apache2
apache2: /usr/ports/www/apache2
kantaphong# whereis openwebmail
openwebmail: /usr/ports/mail/openwebmail
kantaphong#
Bookmarks