Tag: cmd

  • Hard links and junctions

    ntfs file system

    • NTFS สนับสนุนการ file links 3 แบบ
      • Hard links
      • Junctions
      • Symbolic
    • เราจะพูดถึง Hard links และ Junctions

    Hard links

    • ใช้แสดงถึงไฟล์เดียวกัน ในไดรฟ์เดียวกัน (same volume) ที่อยู่หลายโฟลเดอร์ (path)
    • แก้ไขไฟล์เดียวกันนี้ที่ใดที่หนึ่งก็จะเปลี่ยนแปลงทุกที่
    • ตัวอย่างที่ทำได้
    C:\dira\ethel.txt ชี้ไปที่ C:\dirb\dirc\lucy.txt
    
    D:\dir1\tinker.txt ชี้ไปที่ D:\dir2\dirx\bell.txt
    C:\diry\bob.bak ชี้ไปที่ to C:\dir2\mina.txt
    C:\a\1.txt ชี้ไปที่ C:\a\11.txt
    • ตัวอย่างที่ทำไม่ได้
    C:\dira ชี้ไปที่ to C:\dirb #โฟลเดอร์ทำ Hard link ไม่ได้
    C:\dira\ethel.txt ชี้ไปที่ to D:\dirb\lucy.txt #ชี้ไฟล์ที่อยู่คนละไดรฟ์ไม่ได้
    • สามารถลบไฟล์ใดไฟล์หนึ่งที่ชี้ไปก็ได้ โดยที่เนื้อหาข้างในจะยังคงอยู่ในไฟล์ที่เหลืออยู่

    วิธีสร้าง Hard links

    • ต้องใช้ cmd บน Windows 11 หรือ cmd ของ administrator บน Windows 10
    mklink /H ปลายทาง ต้นทาง
    • ตัวอย่างเช่น ต้องการทำ Hard link ชื่อ cadabra.txt ในโฟลเดอร์ dirb ชี้ไปที่ไฟล์ adabra.tx ในโฟลเดอร์ dira
    mklink /H c:\dirb\cadabra.txt c:\dira\adabra.txt
    • ดังภาพ

    Junction

    • เรียกอีกอย่างว่า Soft links ต่างจาก Hard links ตรงที่ใช้เชื่อมโยงโฟลเดอร์ ภายในเครื่องคอมพิวเตอร์เครื่องเดียวกัน
    • ตัวอย่างที่เป็นไปได้
    C:\dira ชี้ไปที่ C:\dirb\dirc
    
    C:\dirx ชี้ไปที่ D:\diry
    • ตัวอย่างที่เป็นไม่ได้
    C:\dira\one.txt ชี้ไปที่ C:\dirb\two.txt #ใช้ Junction กับไฟล์ไม่ได้
    
    C:\dir1 ชี้ไปที่ Z:\dir2 
    #ไดรฟ์ Z โดยทั่วไปหมายถึงเน็ตเวิร์คไดรฟ์ ต้องเป็นโฟลเดอร์ในเครื่องคอมพิวเตอร์เครื่องเดียวกัน

    วิธีสร้าง Junction

    • เหมือนที่ผ่านมาต้องทำใน cmd บน Windows 11 หรือ cmd ของ administrator บน Windows 10
    mklink /J ปลายทาง ต้นทาง
    • ตัวอย่างต้องการสร้าง c:\dirx ชี้ไปที่ c:\dira\dirc
    • ดังภาพ สังเกตว่าตรง dirx จะเห็นเป็น <JUNCTION>
    • การลบ junction สามารถลบได้เลยโดยที่ต้นทางจะไม่ถูกลบด้วย
  • Rename นามสกุลไฟล์ หลายๆไฟล์พร้อมกัน ด้วย command line

    สวัสดีท่านผู้อ่านทุกท่าน เราเจอกันอีกแล้ววว 🙂

    Blog วันนี้ผู้เขียน ขอว่าด้วยเรื่องของการเปลี่ยนนามสกุลไฟล์ ครั้งละหลายๆไฟล์ พร้อมกัน ด้วยคำสั่ง command line

    อันที่จริงวันนี้ทางผู้เขียนเจอปัญหาการแสดงผลรูปภาพในหน้าเว็บไซต์ที่ทางทีมเป็นผู้ดูแล ซึ่งไม่รองรับไฟล์นามสกุล .jpeg ซะงั้น แต่ไฟล์รูปต้นฉบับ 2800 กว่าไฟล์นี่มัน .jpeg หมดเลยนี่สิ …. ครั้นจะมานั่งเปลี่ยนที่ละไฟล์ก็ดูจะเหน็ดเหนื่อยจนเกินไป !!! เลยต้องมีการศึกษาหาความรู้เพิ่มเติม และนำมาทดลองใช้แก้ปัญหาในครั้งดู มาค่ะ มาเริ่มกันเลย

    Step 1 : ให้ทุกท่าน ไปที่ start ของ window ของเรา และค้นหาคำว่า cmd เพื่อเรียก command line ขึ้นมา

    ตัวอย่างไฟล์ที่เราต้องเปลี่ยนนามสกุล

    Step 2 : เราจะได้หน้าจอ command line ของเราขึ้นมา อย่างแรกเลยคือเราต้องเขียนคำสั่งเข้าไปยัง folder ที่เก็บไฟล์ที่เราต้องการ rename ก่อน จากตัวอย่างผู้เขียนจะเก็บไว้ที่ folder ชื่อ name2 ซึ่งอยู่บน desktop ตัวอย่างคำสั่งก็ประมาณนี้ cd c:/users/administrator/desktop/name2 จากนั้นคลิก enter เล้ย

    ปล…สำหรับคำสั่ง command line นี่มีมากมายเลยนะ อันนี้แค่เบื้องต้นเท่านั้นแหละ พวก cd, cd.. , del, rename ฯลฯ

    Step 3 : จากรูปด้านบนสังเกตุได้ว่า เราก็จะเข้าไปอยู่ใน folder name2 เรียบร้อยแล้ว ต่อไปก็มาเขียนคำสั่งเพื่อเปลี่ยนนามสกุลกันเล้ยยยย คำสั่งคือ rename *.jpeg *.jpg จากนั้นกด Enter เพื่อ run คำสั่งได้เลยทุกคน

    ปล…rename คือคำสั่ง เปลี่ยนชื่อหรือนามสกุลของไฟล์ ส่วน * คืออะไรก็ตาม ตามรูปแบบคำสั่ง โดยรวมคือเราจะเปลี่ยนทุกไฟล์ใน folder name2 ที่นามสกุล .jpeg ให้เป็นนามสกุล .jpg

    จากตัวอย่างในวิดีโอ หลังจากเรา Run คำสั่งเรียบร้อยแล้ว นามสกุลไฟล์ใน name2 ของเราก็จะเปลี่ยนให้อัตโนมัติเน้อ

    ผู้เขียนหวังเป็นอย่างยิ่งว่า Blog นี้จะมีประโยชน์กับผู้อ่านทุกๆท่าน ไม่มากก็น้อย หลายๆท่านอาจรู้อยู่แล้ว แต่หลายๆท่านก็อาจจะไม่เคยรู้มาก่อน ดังนั้นลองอ่านลองทำตามกันดูนะคะ ง่ายมาก สะดวกและประหยัดเวลามากๆเลย

    ขอบคุณแหล่งข้อมูลอ้างอิงความรู้ดีๆจาก : https://www.techhub.in.th/

  • SSH:- no matching key exchange method found

    เดี๋ยวนี้ใน Windows 10 ก็มี ssh ให้ใช้งาน แต่พอใช้กับเซิร์ฟเวอร์รุ่นเก่าๆ ก็เข้าไม่ได้ซะงั้น ไปลอง ssh ฝั่ง Linux (WSL2) ก็ให้ผลเหมือนกันคือ!!!

    Linux
    Windows
    • ถ้าเป็นเมื่อก่อน วิ่งไปหา putty อย่างไว…. แต่ Windows อุตส่าห์ทำมาให้ใช้แล้วทั้งทีจะไม่ใช้ได้ยังไง
    • สิ่งที่ต้องตรวจสอบก่อนคือ man ssh_config สำหรับ Linux ฝั่ง client ว่ารองรับ ciphers และ kexalgorithms แบบไหนรองรับหรือไม่ ส่วนฝั่ง Windows 10 จะอิงตาม OpenBSD manual ซึ่งเหมือนกับ Linux แหละ
    KexAlgorithms
    Ciphers
    • สร้างแฟ้ม .ssh/config โดย
      • Linux ก็จะให้สร้างที่ /home/username/.ssh/
      • Windows ก็อยู่ที่ C:\Users\username\.ssh
    • สำหรับ error ว่า no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 ให้เพิ่มข้อความต่อไปนี้ลงในแฟ้ม .ssh/config โดย somhost.example.org เป็นชื่อและโดเมนเนมของ server เป้าหมาย
    Host somehost.example.org
    	KexAlgorithms +diffie-hellman-group1-sha1
    • สำหรับ error ว่า no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se ให้เลือกมา 1 cipher ที่ปรากฎใน error มาใส่ในแฟ้ม .ssh/config
    Host somehost.example.org
        Ciphers aes256-cbc
    • บาง server ต้องรวมทั้งสองอย่างเช่น
    Host somehost.example.org
        KexAlgorithms +diffie-hellman-group1-sha1
        Ciphers aes256-cbc
    • ถ้าไม่อยากสร้างแฟ้ม .ssh/config สามารถสั่งผ่าน command line ได้เลยเช่น
    ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 oracle@somehost.example.org

    หรือ ถ้ามี error 2 อย่าง

    ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc oracle@somehost.example.org

    เมื่อสร้างแฟ้ม .ssh/config แล้วลอง ssh เข้าไปใหม่

    Linux
    Windows