Menu

Showing posts with label Ubuntu. Show all posts
Showing posts with label Ubuntu. Show all posts

Friday, January 15, 2021

[System - Linux] วิธีการตรวจสอบพื้นที่ของดิสก์ ขนาดของแฟ้มข้อมูลและไฟล์
[System - Linux] How to Check Disk Space, Folder Size and File Size

วิธีการตรวจสอบพื้นที่ของดิสก์ เราจะใช้คำสั่งดังนี้
df -h

วิธีการตรวจสอบขนาดของแฟ้มข้อมูล เราจะใช้คำสั่งดังนี้
du -h

วิธีการตรวจสอบขนาดของไฟล์ เราจะใช้คำสั่งดังนี้
ls -la

Thursday, July 30, 2020

[Ubuntu] การสร้างพื้นที่ Virtual Memory บน Ubuntu
[Ubuntu] How to Create Virtual Memory on Ubuntu

Virtual memory เป็นหน่วยความจำบน Harddisk ที่ถูกใช้เสมือนว่าเป็น RAM โดยทำหน้าที่เก็บข้อมูลที่เป็น inactive page จาก RAM ในกรณีที่หน่วยความจำ RAM เต็ม

Swap เป็น Virtual memory บน Ubuntu

พื้นที่สำหรับ Swap นี้เป็นได้ทั้ง swap partition หรือ swap file โดยทั่วไปเมื่อรันบน Virtual machine จะไม่มี swap partition ให้ใช้งาน จึงเหลือเพียงทางเลือกเดียวคือ swap file

ขั้นตอนการสร้าง swap file เป็นดังนี้
  1. สร้างไฟล์พร้อมกำหนดขนาดพื้นที่ของไฟล์ตามขนาดที่ต้องการ
    sudo fallocate -l 1G /swapfile
    
  2. เปลี่ยน permission ของไฟล์ให้ root มีสิทธิ์ในการอ่านแและเขียนเท่านั้น
    sudo chmod 600 /swapfile
    
  3. กำหนดให้ใช้ไฟล์ข้างต้นเป็นพื้นที่สำหรับ Swap
    sudo mkswap /swapfile
    
  4. เปิดใช้งาน swap file
    sudo swapon /swapfile
    

Monday, April 27, 2020

[Bash Script] ระวังการสร้าง ฺBash Script บน Windows แล้วอาจจะไม่สามารถนำมารันบน Unix ได้
[Bash Script] Warning: Create Bash Script on Windows then Cannot Run on Unix

ในกรณีนี้เราเขียน Bash script ขึ้นมาบน Windows แล้วค่อยอัพโหลดขึ้นไปรันบนเซิร์ฟเวอร์ที่เป็น Ubuntu ผลการรันได้ข้อผิดพลาดตามด้านล่างนี้
/bin/bash^M: bad interpreter: No such file or directory
สาเหตุเกิดจากอักขระที่แทนการขึ้นบรรทัดใหม่บน Windows และ Unix นั้นต่างกันดังนี้
  • Windows จะเป็น \r\n
  • Unix จะเป็น \n
ทำให้ \r เป็นอักขระที่ไม่เกี่ยวข้องกับการขึ้นบรรทัดใหม่ จึงถูกมองว่าเป็นอักขระอีกตัวที่ตามหลัง /bin/bash จึงเกิดข้อผิดพลาดข้างต้น

วิธีแก้ไข คือ รันคำสั่งดังนี้
sed -i -e 's/\r$//' scriptname.sh
หรือเขียน bash script ใหม่บน Unix แทน

Monday, April 20, 2020

[Ubuntu] สรุปคำสั่งสำหรับบีบอัดและแตกไฟล์ผ่านทาง Command Line
[Ubuntu] The Commands to Zip and Unzip File and Folder via Command line

การบีบอัดไฟล์ผ่านทาง Command Line

ในกรณีที่ยังไม่เคยติดตั้ง zip ให้รันคำสั่งดังนี้
apt-get install zip
การบีบอัดแฟ้มข้อมูล ใช้คำสั่งดังนี้
zip -r [zip_name].zip [folder_name]
การบีบอัดไฟล์ ใช้คำสั่งดังนี้
zip [zip_name].zip [file_name]

การแตกไฟล์ผ่านทาง Command Line

ในกรณีที่ยังไม่เคยติดตั้ง unzip ให้รันคำสั่งดังนี้
apt-get install unzip
การแตกไฟล์ที่ถูกบีบอัด ใช้คำสั่งดังนี้
unzip [zip_name].zip

Wednesday, April 1, 2020

[Ubuntu] วิธีการตั้งค่า IP Address สำหรับ Host Name ที่ต้องการบน Ubuntu
[Ubuntu] How to Set IP Address for Specific Host Name on Ubuntu

ไฟล์ hosts เป็นไฟล์ที่ใช้สำหรับการระบุ IP address ของ host name ที่ต้องการ ซึ่งระบบปฏิบัติการจะเข้ามาหา IP address ของ host name ในนี้ก่อน ถ้าไม่พบจึงยิงไปขอข้อมูลจาก DNS server ต่อไป

สำหรับ Ubuntu ไฟล์ hosts ข้างต้นจะอยู่ที่ /etc/hosts

Wednesday, December 11, 2019

[Ubuntu] วิธีการเพิ่มผู้ใช้งานใหม่และกำหนดให้เข้าใช้งานผ่าน SSH บน Ubuntu
[Ubuntu] How to Add New User and Set to Login by SSH on Ubuntu

  1. เพิ่มผู้ใช้งานในระบบ
  2. adduser <username>
  3. แก้ไขไฟล์ config สำหรับ SSH
  4. vim /etc/ssh/sshd_config
  5. ตั้งค่าอนุญาตให้ Login ด้วย password ได้
  6. # Change to no to disable tunnelled clear text passwords
    PasswordAuthentication yes
  7. กำหนด User ที่อนุญาตให้ login ผ่าน SSH ได้ (จะกำหนดหรือไม่ก็ได้)
  8. AllowUsers <username>
    คำเตือน!!! กรณีที่ตั้งค่า AllowUsers และต้องการให้ root สามารถ login ได้จำเป็นต้องใส่ root ในส่วนของ username ด้วย
    AllowUsers root userA
  9. กำหนด User ที่ไม่อนุญาตให้ login ผ่าน SSH ได้ (จะกำหนดหรือไม่ก็ได้)
  10. DenyUsers <username>
  11. Restart SSH service
  12. service ssh reload
หมายเหตุ อ่าน config เพิ่มเติมของ SSH ได้ที่ FreeBSD Manual Pages - sshd_config

Thursday, October 3, 2019

[Ubuntu] วิธีการหาชื่อ Operating System และ Version ของ Linux ผ่านทาง Terminal
[Ubuntu] How to Find Name and Version of Operating System in Linux Terminal

เราสามารถใช้คำสั่งต่อไปนี้ในการหาชื่อ Operating System และ Version ใน Linux
cat /etc/os-release
lsb_release -a
hostnamectl

Wednesday, April 17, 2019

[Ubuntu] วิธีการเพิ่มหรือแก้ไขผู้ใช้งานบน Ubuntu
[Ubuntu] How to Add and Modify User on Ubuntu

คำสั่งสำหรับเพิ่ม account ผู้ใช้งานใหม่
adduser <username>
คำสั่งสำหรับเพิ่มผู้ใช้งานของคุณเข้ากลุ่ม sudo เพื่ออนุญาตให้ผู้ใช้งานคนนั้นรันคำสั่งด้วย administrative privileges ได้ โดยใส่ sudo นำหน้า
usermod -aG sudo <username>
คำสั่งสำหรับสลับเป็นผู้ใช้งานอื่นชั่วคราว ในขณะที่ผู้ใช้งานเป็น root
su - <username>
คำสั่งสำหรับเปลี่ยนรหัสผ่านผู้ใช้งานของคุณ
passwd <username>
คำสั่งสำหรับตรวจสอบผู้ใช้งานปัจจุบัน
whoami

Friday, March 29, 2019

[Docker] การติดตั้ง Docker และ Docker Compose บน Ubuntu
[Docker] How to Install Docker and Docker Compose on Ubuntu

ถ้าหากเครื่อง server ยังไม่ได้ติดตั้ง curl ให้ติดตั้ง curl ก่อน โดยใช้คำสั่งดังนี้
sudo apt-get install curl
หลังจากนั้นให้ติดตั้ง Docker โดยใช้คำสั่งดังนี้
sudo curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
สำหรับการทดสอบ เมื่อติดตั้ง Docker สำเร็จแล้ว ให้รันคำสั่งดังนี้
docker run hello-world
จะได้ผลลัพธ์ดังรูป


หลังจากนั้นให้ติดตั้ง Docker Compose โดยใช้คำสั่งดังนี้ 
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
สำหรับการทดสอบ เมื่อติดตั้ง Docker Compose สำเร็จแล้ว ให้รันคำสั่งดังนี้
docker-compose -v
จะได้ผลลัพธ์ดังรูป


Tuesday, February 5, 2019

[Server - Ubuntu] การสร้างหรือต่ออายุ Let's Encrypt Certificate สำหรับ Website
[Server - Ubuntu] How to Create or Renew Let's Encrypt Certificate for Website

สมมติว่า ได้ลง certbot ไว้ในเครื่อง server เรียบร้อยแล้ว
  1. รันคำสั่ง sudo certbot certonly -d {domain_name}
  2. เลือก option ที่ 2 เพื่อใช้วิธีการระบุ path ของ public folder ของเว็บแทนการสร้าง standalone web server ขึ้นมา
  3. ใส่ path ของ public folder แล้วกด enter 
ไฟล์ certificates ที่ถูกสร้างใหม่ จะอยู่ใน folder /etc/letsencrypt/live/{domain_name} ซึ่งเราสามารถนำไฟล์นี้ไปแทนที่ไฟล์ certificates เดิมที่กำลังจะหมดอายุได้เลย

Saturday, May 26, 2018

[Ubuntu] การแตกไฟล์ zip ด้วย encoding ที่กำหนด
[Ubuntu] How to Extract ZIP File with Specific Encoding

หลังจากที่บีบอัดไฟล์ที่มีชื่อภาษาไทยเป็นไฟล์ zip บน Windows แล้วนำมาแตกไฟล์บน Ubuntu เพื่อใช้งาน จะพบว่า ชื่อไฟล์ที่เป็นอักขระภาษาไทยถูกแทนที่ด้วยอักระพิเศษที่อ่านไม่รู้เรื่อง

สาเหตุที่เป็นเช่นนั้น เนื่องจากการแตกไฟล์ปกติจะใช้ default encoding ซึ่งไม่ใช่ encoding สำหรับภาษาไทย ดังนั้นเราจึงต้องกำหนด encoding ที่จะใช้ในการแตกไฟล์ดังนี้
unzip -O <encoding> <filename> -d <target_dir>
ตัวอย่างเช่น
unzip -O windows-874 lp-real-font.zip -d ocr_in
สำหรับชื่อ encoding ที่ใช้ได้ สามารถดูได้จาก https://www.iana.org/assignments/character-sets/character-sets.xhtml

Ref: https://superuser.com/questions/872596/decompress-zip-with-given-encoding

Saturday, March 17, 2018

[Docker] การเปลี่ยนแปลงวันเวลาของเครื่อง Server ที่เป็น Docker
[Docker] How to Change Date and Time of Server which is Docker

การเปลี่ยนแปลงวันเวลาของเครื่อง Server ที่เป็น Docker นั้น เราไม่สามารถใช้คำสั่ง docker exec เพื่อเข้าไปเปลี่ยนแปลงวันเวลาของเครื่องได้โดยตรง เนื่องจากวันเวลาของเครื่องที่เป็น Docker นั้นจะใช้วันเวลาจากเครื่อง Host เป็นหลัก ดังนั้นการจะเปลี่ยนแปลงวันเวลาของเครื่อง Docker จะต้องเปลี่ยนแปลงเวลาที่เครื่อง Host แทน

คำสั่งในการเปลี่ยนแปลงวันเวลาของเครื่อง Host ที่เป็น Linux คือ
date -s "2018-04-01 00:00:00"
ซึ่งถ้าต้องการเปลี่ยนแปลงวันเวลากลับไปเป็นวันเวลาของเครื่องจริงๆก็สามารถใช้คำสั่งดังนี้
hwclock > date -s

Saturday, November 11, 2017

[PHP - MQ] การติดตั้ง mqseries สำหรับ PHP บน Ubuntu
[PHP - MQ] How to Install mqseries for PHP on Ubuntu

เนื่องจากมีความจำเป็นต้องส่งข้อความไปยัง IBM MQ Server จากโปรแกรมที่พัฒนาด้วย Laravel framework ซึ่งเป็น PHP framework ทำให้ต้องใช้ mqseries เป็นตัวช่วยในการเชื่อมต่อและส่งผ่านข้อความไปยัง IBM MQ Server

ข้อสำคัญ mqseries สำหรับ PHP นี้ จะทำงานได้สมบูรณ์ก็ต่อเมื่อมีการติดตั้ง IBM MQ Client ไว้ภายในเครื่องด้วย

สมมติว่า ใช้ Homestead เป็น environment ในการพัฒนา และมี folder Project เป็น shared folder ใน Homestead

วิธีการติดตั้งก็จะเป็นตามข้างล่างนี้
  1. ดาวน์โหลด mqseries จาก http://pecl.php.net/package/mqseries เลือก 0.14.1 (0.14.2 มีปัญหา)
  2. เอาไฟล์ที่ดาวน์โหลดมา ไปไว้ใน folder Project/ibm
  3. เข้าไปในเครื่องของ Homestead ด้วยคำสั่ง vagrant ssh
  4. หลังจากเข้าไปในเครื่องแล้ว ให้รันคำสั่ง sudo su เพื่อเข้าใช้ในสิทธิ์ root
  5. ถ้ายังไม่เคย compile mqseries มาก่อน ให้รันคำสั่งดังนี้
    cd เข้า Project/ibm
    tar -zxvf mqseries-0.14.1.tgz
    cd mqseries-0.14.1
    phpize
    ./configure --with-libdir=lib64
    make
    
  6. สร้าง config file ของ mqseries ด้วยคำสั่งดังนี้
    cp modules/mqseries.so /usr/lib/php5/20131226
    
  7. สร้างไฟล์ /etc/php5/cli/conf.d/mqseries.ini และใส่ข้อความตามด้านล่างนี้แล้วบันทึก
    ; Enable mqseries extension module
    extension=mqseries.so
  8. ทำการ copy file ข้างต้นไปยัง /etc/php5/fpm/conf.d/ พร้อมแก้ไข permission ตามคำสั่งดังนี้
    cd /etc/php5
    cp cli/conf.d/mqseries.ini fpm/conf.d/
    cd /etc/php5/fpm/conf.d/
    chmod 777 mqseries.ini
    
  9. ทำการ restart service php5-fpm ตามคำสั่งดังนี้
    service php5-fpm restart
    
  10. ทดสอบการใช้งาน โดยลองรันคำสั่งดังนี้
    cd เข้า Project/ibm/mqseries-0.14.1/example
    php put.php
    

Wednesday, April 24, 2013

[System] วิธีการปรับขนาดพาร์ทิชั่นของไฟล์ระบบบน Ubuntu
[System] How to Resize File System Partition on Ubuntu

ใส่แผ่นซีดี Ubuntu
Insert Ubuntu CD

หลังจากบูทจากแผ่น เลือก Try Ubuntu
After booting from CD, select Try Ubuntu

เปิดโปรแกรม Gparted (โปรแกรมนี้สามารถติดตั้งผ่านทาง Ubuntu Software Center)
Open Gparted program (This can be installed by Ubuntu Software Center)

[System] วิธีการแก้ข้อผิดพลาด "file not found" ด้วย grub rescue
[System] How to Fix Error: "file not found" with grub rescue

ข้อผิดพลาดนี้จะแสดงดังภาพด้านล่างหลังจากเปิดเครื่อง
This error is shown as image below after booting

Sunday, April 14, 2013

[C#] การติดตั้งตัวคอมไพล์ C# บน Ubuntu
[C#] C# Compiler Installation on Ubuntu

สำหรับการติดตั้ง ให้ใช้คำสั่งต่อไปนี้ใน Terminal
To install, use this command on Terminal
sudo apt-get install mono-gmcs
หรือ
or
sudo apt-get install mono-dmcs

Friday, April 12, 2013

[OpenCV] วิธีการใช้ OpenCV บน Ubutu
[OpenCV] How to Use OpenCV on Ubuntu

สร้างไฟล์ใหม่ชื่อ test.cpp แล้วใส่โค้ดที่ใช้ OpenCV ตามด้านล่าง
Create a program using OpenCV by creating new text file and inserting the code as below then saving as test.cpp
  1. #include<stdio.h>
  2. #include<opencv/cv.h>
  3. #include<opencv/highgui.h>

  4. int main(){
  5.   IplImage* img=cvLoadImage("test.jpg",1);
  6. cvNamedWindow("Test",1);
  7. cvShowImage("Test",img);
  8. cvWaitKey();
  9. return 0;
  10. }

Monday, April 1, 2013

[OpenCV] การติดตั้ง OpenCV บน Ubuntu
[OpenCV] OpenCV Installation on Ubuntu

สมมติว่า แฟ้ม OpenCV ถูกสร้างอยู่ในแฟ้ม Home เรียบร้อยแล้ว
Assume that OpenCV folder is created in Home folder

ขั้นตอนแรก ดาวน์โหลด source code ของ OpenCV มาไว้ในเครื่อง โดยมีอยู่สองทางเลือก
First, get OpenCV source code. There are two options.

- ดาวน์โหลดเวอร์ชั่นที่เสถียรล่าสุดของ OpenCV
- Get the Latest Stable OpenCV Version

Wednesday, March 13, 2013

[OpenCV] การติดตั้งแพ็คเกจที่จำเป็นสำหรับการติดตั้ง OpenCV บน Ubuntu
[OpenCV] Required Packages Installation for OpenCV on Ubuntu

ก่อนจะทำการติดตั้ง OpenCV บน Ubuntu จำเป็นจะต้องลงแพ็คเกจที่จำเป็นเสียก่อน (ตาม เอกสาร OpenCV)
There are some required packages for OpenCV installation on Ubuntu. (see OpenCV document)

โพสต์นี้จะอธิบายการติดตั้งแต่ละแพ็คเกจ แต่ก่อนอื่น คุณจำเป็นจะต้องรู้เกี่ยวกับ Terminal และ Ubuntu Software Center เสียก่อน (อ่าน วิธีการเรียกใช้ Terminal บน Ubuntu และ วิธีการใช้ Ubuntu Software Center)
The installation of each package is described in this post. Before starting, you need to know about Terminal and Ubuntu Software Center (see How to run Terminal on Ubuntu and How to use Ubuntu Software Center).

[System] วิธีการใช้ Ubuntu Software Center
[System] How to Use Ubuntu Software Center

คลิ้กไอคอน Ubuntu Software Center บน launcher
Click Ubuntu Software Center icon on launcher