Command Line พื้นฐานบน Ubuntu
March 18, 2014
Tags : Ubuntu , Command Line พื้นฐาน , Command Line Ubuntu
สวัสดีทุกท่าน วันนี้ผมได้รวบรวมคำสั่ง command line พื้นฐาน ที่ใช้งานบ่อยๆ สำหรับ Ubuntu มือใหม่ มาฝาก และส่วนตัวก็ให้เป็นแหล่งอ้างอิงด้วย เพราะเริ่มแรก ตอนที่ได้จับ Ubuntu ใหม่ๆ แทบต้องนั่งเปิด SheetCheat แทบทุกครั้ง ตอนหลังก็เริ่มจะจำคำสั่งได้บ้างแล้ว ก็เลยทำมาเป็นบทความซะเลย
แสดงข้อมูลของระบบและ Kernel
uname -i
ใช้สำหรับแสดงรายละเอียดทั้งหมดของระบบ
df
ใช้สำหรับแสดงจำนวนพื้นที่ฮาดดิสท์
df -h
ใช้สำหรับแสดงจำนวนพื้นที่ฮาดดิสท์ โดยใช้หน่วย megabytes และ gigabytes
free
แสดงข้อมูล จำนวน memory ที่ใช้
top
โชว์รายละเอียดทั้งหมด โปรเซสที่กำลังทำงาน cpu ram อื่นๆ (กด q เพื่อออก)
lsb_release -a
แสดงรายละเอียด linux ที่ใช้ เวอร์ชั่น และ โค๊ดเนม
การจัดการ Process
ps aux
แสดง process ที่กำลังทำงานอยู่
ps aux | grep firefox
แสดงรายละเอียดโปรเซสของ firefox grep คือ regular expression โดยค้นหาโปรเซสชื่อ firefox
kill -9 pid
ปิดโปรเซส ตามไอดีที่ระบุ (ไอดีดูได้จาก ps aux)
killall name
ปิดโปรเซสของโปรแกรม name
การจัดการโฟลเดอร์
cd
คำสั่งเปลี่ยน directory
cd /
เปลี่ยน directory ไปที่ root
pwd
ใช้สำหรับแสดง directory ปัจจุบัน
cp
ใช้สำหรับก็อปปี้ ไฟล์/โฟลเดอร์
mkdir
ใช้สำหรับสร้างโฟลเดอร์
rmdir folder1
ลบโฟลเดอร์ folder1 (เฉพาะfolder ที่ไม่มีไฟล์ข้างใน)
rm -R folder1
ลบโฟลเดอร์ folder1 และไฟล์ข้างในทั้งหมด
การจัดการไฟล์
touch file1.txt
สร้างไฟล์ file1.txt
file file1
แสดงนามสกุลของ file1
cat file1.txt
แสดงรายละเอียดข้างใน file1.txt
less file1.txt
เหมือนคำสั่ง cat แต่ต่างกันที่ สามารถเลื่อน scroll bar ได้
cp file1 file2
ก็อปปี้ file1 และสร้าง file2
rm file1
ลบ file1
ls Option
ใช้สำหรับ แสดงรายชื่อไฟล์และโฟลเดอร์
ls
โชว์ไฟล์และโฟลเดอร์
ls -a
โชว์ไฟล์และโฟลเดอร์รวม hidden files ด้วย
ls -l
โชว์ลิสท์แบบยาว มีรายละเอียด permission รวมอยู่ด้วย
ls -s
โชว์ลิสท์โดยเรียง จากขนาดของไฟล์และโฟลเดอร์
ls -t
เรียงตามวันที่แก้ไขล่าสุด
ls -1
โชว์ลิสท์รายชื่อ โดยเรียงบรรทัดละ 1 ชื่อ
ls --color
แสดงรายชื่อ แบบมีไฮไลท์สี
การจัดการ Package
sudo apt-get update
ทำการ update รายชื่อpackage ใน lists (เหมือนกับการ check update)
sudo apt-get upgrade
ทำการ upgrade โปรแกรม ที่มีเวอร์ชั่นใหม่ ให้อัพเดท
sudo apt-get install packagename
ติดตั้งโปรแกรม
sudo apt-get -f install
สำหรับแก้ไข package ที่มีปัญหา กรณีเกิด “unmet dependences”
sudo apt-get remove name
ลบ package ชื่อname
sudo apt-get purge name
เหมือนกับ remove แต่จะลบ ไฟล์คอนฟิคด้วย
sudo add-apt-repository ppa:name
เพิ่ม repository (ต้องลง python-software-properties ก่อน)
การจัดการ File Permission
chmod 775 file1
เปลี่ยนโหมดไฟล์เป็น 775
chmod 777 folder1
เปลี่ยน folder1 เป็น 777
chown user:group file1
เปลี่ยนสิทธิ์การเข้าถึงของ file1
อื่นๆ
ifconfig
แสดงรายละเอียด network
nautilus
sudo nautilus
ใช้สำหรับเปิด file manager (sudo เพื่อเปิดในฐานะ root)
wget url_file
ดาวน์โหลดไฟล์ ตามที่ระบุใน url_file
curl url_file
ดาวน์โหลดไฟล์ ตามที่ระบุใน url_file (แตกต่างจาก wget เล็กน้อย)
หลายคนเมื่อได้ทำการติดตั้งโปรแกรมหรือ packet ต่างๆลงไปใน ubuntu server แต่เกิดความผิดพลาดในการติดตั้ง ทำให้ต้องการที่จะลบโปรแกรมออก แต่ไม่รู้จะลบออกยังไง ผมมีวิธีการดังนี้ครับ
การถอดถอนโปรแกรมจาก Ubuntu server ด้วย command line สามารถทำได้ดังนี้
1. สามารถลบการติดตั้งแบบธรรมดาด้วยคำสั่ง
sudo apt-get remove ชื่อโปรแกรมที่ต้องการเอาออก เช่นผมต้องการลบ phpmyadmin แบบธรรมดา
sudo apt-get remove phpmyadmin
การลบแบบนี้จะยังคงค่าในระบบให้เหลือไว้ครับ เช่นค่าจำพวกคอนฟิกต่างๆ
2. การลบแบบให้หมดจดด้วยคำสั่ง
sudo apt-get --purge remove phpmyadmin
เป็นการถอดโปรแกรมที่ต้องการถอดทั้งหมดครับ
3. apt-get autoremove
ตัวนี้จะเป็นการถอดถอนโปรแกรมที่มีในเครื่องทั้งหมดเลยครับ ไม่ว่าจะเป็น office , Desktop (ในกรณีที่มีการติดตั้ง Desktop ไว้) แน่นอนว่าเกลี้ยงเลยครับ ข้อนี้ไม่แนะนำให้ใช้ครับ เนื่องจากมันจะ Uninstall program ทั้งหมดในเครื่องครับ
ใน Ubuntu เวลาเรา install อะไรก็แล้วแต่ผ่าน synaptic หรือ apt-get ไฟล์ตัวติดตั้งจะถูกโหลดมาเก็บไว้ที่ /var/cache/apt/archives ก่อน พอลงเสร็จไฟล์เหล่านั้นก็จะยังอยู่ที่เดิมไม่หายไปไหน เป็นการลดเวลาดาวน์โหลด หากเราจะติดตั้งใหม่อีกครั้ง แต่มันก็กินพื้นที่ hard disk ไปมากโขอยู่เหมือนกัน
ถ้าอยากได้พื้นที่ hard disk ส่วนนั้นคืน ก็ทำได้ด้วยคำสั่ง
sudo apt-get clean
หรือ
sudo apt-get autoclean
autoclean จะลบเฉพาะตัวติดตั้งที่เป็นเวอร์ชันเก่าเท่านั้น ส่วน clean หมายถึงลบหมดเลย เช่น ถ้าใน aptitude cache มี vlc-0.9.2-11.deb กับ vlc-0.9.2-13.deb คำสั่งแรกจะลบทั้งสองตัวเลย แต่คำสั่งที่สองจะลบแค่ vlc-0.9.2-11.deb เท่านั้น
บางที apt-get clean ไปแล้วก็ยังรู้สึกว่าพื้นที่ hard disk หายไปอยู่ดี อาจจะเป็นเพราะว่าเวลาอัพเดต kernel ใหม่ๆ Ubuntu จะไม่ลบ kernel เก่าให้
วิธีลบให้ทำตามนี้นะครับ
เปิดเทอร์มินัล พิมพ์ uname -r จำตัวเลขที่ได้นี้ไว้
เปิด Synaptic (System > Administration > Synaptic package manager)
กดปุ่ม search ด้านบน หาด้วยคำว่า kernel
เลื่อนลงมาหาแพคเกจที่มีชื่อว่า
linux-headers-2.6.xx.xx linux-image-2.6.xx.xx linux-resticted-modules-2.6.xx.xx linux-ubuntu-modules-2.6.xx.xx
ลองดูว่ามีตัวไหนที่ installed อยู่แต่มีเลขไม่ตรงกับเลขที่ได้จากข้อ 1 บ้าง (แพคเกจที่ installed จะมีสี่เหลี่ยมสีเขียวอยู่ข้างหน้า)
ถ้ามีก็คลิกขวาที่แพคเกจนั้น เลือก Mark for complete removal แล้ว apply โลด
ข้อควรระวัง : อย่าลบตัวที่มีเลขตรงกับเลขที่ได้จากข้อ 1 เพราะนั่นคือ kernel ปัจจุบันที่ใช้อยู่ ลบแล้วลบเลย ไม่มีโอกาสแก้ตัว format ลงใหม่อย่างเดียว
ที่จริงยังมีอีกคำสั่งหนึ่งที่น่าสนใจ คือ
sudo apt-get autoremove
เป็นการตรวจสอบและลบ package ที่ installed อยู่แต่ไม่ได้จำเป็นแล้ว เช่น พวก dependency ของโปรแกรมต่างๆที่เรา uninstall ออกไป บางทีพวก dependency นี้ไม่ได้ถูกลบออกไปด้วย แต่ autoremove นี่ใช้ต้องดูหน่อย ก่อนจะกด Y ยืนยันลบ บางทีอาจมีการเช็คผิดพลาดได้ อย่างไรก็ดีจากประสบการณ์ผมยังไม่เคยเจอข้อผิดพลาดนะ
เริ่มการติดตั้ง NOIP ด้วยคำสั่งดังต่อไปนี้
cd /usr/local/src/
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make install
กด 0 เพื่อเลือก eth0 แล้วกด Enter
ใส่ชื่อผู้ใช้งานหรืออีเมล์ที่ใช้สมัครสมาชิกกับ NOIP
ใส่รหัสผ่านของคุณ
Only one group [airlink] is registered to this account. หากคุณมีกลุ่มใช้งานเพียงแค่กลุ่มเดียวระบบจะเลือกให้เราอัตโนมัติ แต่หากคุณมีมากกว่า 1 กลุ่ม คุณต้องเลือกกลุ่มที่มีโฮสของ Airlink
update interval คือให้อัพเดทไอพีทุกกี่นาที ค่าปกติคือ 30 (แนะนำ)
Do you wish to run something at successful update กด N แล้ว Enter
หากระหว่างการตั้งค่าเกิดมีข้อผิดพลาดคุณสามารถสร้างการตั้งค่าใหม่ด้วยคำสั่ง /usr/local/bin/noip2 -C