วิธีใช้สคริปต์ Linux เพื่อจัดระเบียบเดสก์ท็อปของคุณใน Windows 10
เมื่อคุณอ่านพาดหัวข่าวของงานชิ้นนี้เป็นครั้งแรก คุณอาจได้รับการให้อภัยเพราะคิดว่ามีบางอย่างไม่ถูกต้องในทางเทคนิค ท้ายที่สุดแล้ว Linux ไม่ได้เป็นส่วนหนึ่งของระบบปฏิบัติการ Windows ใช่ไหม? เป็นระบบปฏิบัติการสองระบบที่แตกต่างกันโดยสิ้นเชิง ก่อนหน้านี้ วิธีเดียวที่จะใช้สคริปต์ Linux กับ Windows ในอดีตคือการติดตั้งบางอย่างเช่น Cygwin หรือใช้ระบบ dual boot Linux หรือติดตั้งบางอย่างเช่น Samba
ทั้งหมดที่เปลี่ยนแปลงใน Windows 10! มีลินุกซ์หลายรุ่นที่มีอยู่ใน Microsoft Windows Store ก่อนหน้านี้ บทความเกี่ยวกับ Kali Linux อธิบายวิธีการหนึ่งดังกล่าวในการรับการแจกจ่าย Linux เฉพาะในสภาพแวดล้อม Windows 10 ของคุณ
ข้อดีอย่างหนึ่งของการใช้สคริปต์ Linux บนเครื่อง Windows ของคุณคือ คุณสามารถใช้ภาษาสคริปต์ Linux ที่มีประสิทธิภาพเพื่อทำงานอัตโนมัติ โดยเฉพาะอย่างยิ่งหากคุณคุ้นเคยกับสคริปต์ Linux มากกว่าพูด ไฟล์แบตช์ Powershell หรือ Dos บทความนี้อธิบายวิธีเขียนสคริปต์ "bash" ของ Linux เพื่อล้างเดสก์ท็อป Windows ทั่วไป หากคุณเพิ่งเริ่มใช้ Linux คุณจะได้เรียนรู้พื้นฐานจากบทความนี้ และสร้างยูทิลิตี้ที่มีประโยชน์ในกระบวนการนี้
เราจะใช้ Ubuntu Linux Terminal พื้นฐาน (มีอยู่ใน Windows Store บนเครื่อง Windows 10) ซึ่งช่วยให้คุณใช้ bash, k ssh, git, apt และคำสั่ง Linux อื่น ๆ อีกมากมาย จะต้องติดตั้งสิ่งนี้หากคุณยังไม่ได้ดำเนินการ มีการอธิบายวิธีการที่นี่
บรรทัดคำสั่ง Linux
เมื่อคุณติดตั้ง Ubuntu และรันแล้ว คุณจะได้รับหน้าต่างบรรทัดคำสั่ง คล้ายกับต่อไปนี้ สิ่งนี้จะให้ bash Linux แก่คุณ บรรทัดคำสั่ง:
ตอนนี้เราจะเขียนสคริปต์ของเรา คุณสามารถแก้ไขไฟล์ด้วยตัวแก้ไขใดก็ได้ รวมถึงตัวแก้ไข Windows เช่น แผ่นจดบันทึก หรือตัวแก้ไข Linux เช่น vi หากคุณมั่นใจในการใช้งาน
เมื่อคุณเปิดเทอร์มินัล Ubuntu ตำแหน่งของคุณจะเป็นโฮมไดเร็กตอรี่ของคุณ ในพื้นที่ทำงานของ Ubuntu สามารถตรวจสอบได้โดยป้อนคำสั่งที่พรอมต์คำสั่ง:
ก้อง $ HOME
และจะส่งออกโฮมไดเร็กตอรี่ของคุณตามที่แสดงในภาพหน้าจอต่อไปนี้ รูปแบบ Linux ใช้เครื่องหมายทับแทนไดเร็กทอรี เช่น “/”
เพื่อความสะดวก เราจะวางสคริปต์ไว้ในโฮมไดเร็กตอรี่
ขั้นตอนต่อไปคือการค้นหาตำแหน่งของเดสก์ท็อปของคุณ ซึ่งเรียกว่าเส้นทาง Linux เราต้องการสิ่งนี้เพื่อดำเนินการกับไฟล์ในไดเร็กทอรีที่ถูกต้อง
ในประเภทเทอร์มินัล "cd /" ซึ่งจะนำคุณไปยังพื้นที่รูทของสภาพแวดล้อม Ubuntu ของคุณ
จากนั้นพิมพ์ “ls”
รายการนี้จะแสดงรายการไดเร็กทอรีทั้งหมดใน Linux คุณจะเห็นสิ่งนี้ในเทอร์มินัล Linux:
เราจำเป็นต้องค้นหาเดสก์ท็อปผู้ใช้ของคุณ สมมติว่าเป็นไดรฟ์ C ให้เปลี่ยนเป็นไดเร็กทอรี "mnt" นี่คือที่ที่ไดรฟ์ windows จะถูกระบุดังนี้:
จากนั้นคุณจำเป็นต้องรู้ว่าเดสก์ท็อปของคุณอยู่ที่ไดเร็กทอรีใด โดยปกติคุณจะพบสิ่งนี้ใน windows โดย "คลิกขวา" บนไอคอนเดสก์ท็อปเช่นจากรายการ "การเข้าถึงด่วน" ใน File Explorer ตำแหน่งไดเร็กทอรีเดสก์ท็อปของคุณจะแสดง:
จากสิ่งนี้คุณสามารถเปลี่ยนเป็นไดเร็กทอรีของคุณโดยใช้ Linux ในเทอร์มินัล:
ดังนั้น ในตัวอย่างนี้ คุณพิมพ์ในเทอร์มินัล โดยจำได้ว่าแบ็กสแลชใน Windows เทียบเท่ากับฟอร์เวิร์ดสแลชใน Linux ในกรณีของฉัน เส้นทางที่จำเป็นในคำสั่ง "เปลี่ยนไดเรกทอรี" คือ:
cd /mnt/c/Users/gofor/OneDrive/Desktop
จากนั้นคุณสามารถแสดงรายการไฟล์ทั้งหมดบนเดสก์ท็อปของคุณโดยใช้“ ls”:
หากเป็นเหมือนเดสก์ท็อปของฉัน คุณจะได้รับรายการไฟล์ยาวๆ ดังนี้:
คุณสามารถดูความยุ่งเหยิงของเดสก์ท็อปใน Windows ได้ที่นี่:
มีไอคอนมากกว่าบนจอภาพอีก 2 จอของฉัน ดังนั้นเราจึงจำเป็นต้องจัดประเภทและจัดระเบียบไฟล์เหล่านี้! สคริปต์ที่ให้มาจะนำไฟล์แต่ละประเภทมาใส่ในโฟลเดอร์ที่มีชื่อที่เกี่ยวข้องบนเดสก์ท็อป
ตัวอย่างเช่น ไฟล์ช็อตคัท ไฟล์เหล่านี้จะเป็นไฟล์ *.lnk ดังนั้นเราจะย้ายไฟล์เหล่านั้นไปไว้ในโฟลเดอร์ชื่อ “SHORTCUTS”
ในทำนองเดียวกัน ไฟล์รูปภาพ เช่น .jpg, .png, .bmp, .svg จะถูกย้ายไปยังโฟลเดอร์ชื่อ “IMAGES”
เอกสารและเอกสาร Office เช่น ไฟล์ word เช่น .docx, .pdf, .xls จะถูกใส่ในโฟลเดอร์ชื่อ “OFFICEDOCS”
ดังนั้น เมื่อเรียกใช้สคริปต์ เอกสารทั้งหมดจะพร้อมใช้งานในลักษณะที่เป็นระเบียบ ในไดเร็กทอรีที่เกี่ยวข้อง ซึ่งสร้างขึ้นสำหรับประเภทไฟล์นั้น ซึ่งจะทำให้เดสก์ท็อปกระจายตัวและทำให้ไฟล์เดสก์ท็อปของคุณมีระเบียบมากขึ้น คุณสามารถสร้างโฟลเดอร์ได้หลายประเภทและกำหนดเกณฑ์ไฟล์ตามที่คุณต้องการ ไฟล์ไม่จำเป็นต้องจัดเรียงตามประเภทไฟล์เพียงอย่างเดียว คุณสามารถสร้างโฟลเดอร์หมวดหมู่ได้ตามต้องการ เช่น “HRFILES” และ “PROJECTFILES” ในตัวอย่างนี้ เราจะจัดระเบียบไฟล์ตามประเภทไฟล์
การสร้างประเภทและรายการไฟล์
ในการใช้แอปพลิเคชันนี้ เราจะต้องมี 2 ไฟล์:
A) รายการหมวดหมู่และประเภทไฟล์ที่จะเข้าสู่หมวดหมู่เหล่านั้นที่จัดอยู่ในไฟล์ CSV ที่คั่นด้วยเครื่องหมายจุลภาค ชื่อแต่ละหมวดหมู่จะเป็นชื่อของไดเร็กทอรีที่จะวางไฟล์ไว้บนเดสก์ท็อป คุณสามารถสร้างไฟล์ CSV ด้วยโปรแกรมแก้ไขที่ต้องการ ในตัวอย่างนี้ เราจะใช้แผ่นจดบันทึก
B) สคริปต์ Linux ซึ่งจะอ่านไฟล์หมวดหมู่และประมวลผลฟังก์ชันการจัดระเบียบที่จำเป็น
ในการสร้างไฟล์ในไดเร็กทอรีปัจจุบันในประเภทเทอร์มินัล:
notepad cleanup.csv
เนื่องจากไฟล์จะไม่อยู่ในขั้นตอนนี้ มันจะขอให้คุณสร้างไฟล์ใหม่ ดังนั้นเพียงแค่กด "ใช่"
ตอนนี้เราจะป้อนรายละเอียดต่อไปนี้ในรูปแบบ "หมวดหมู่, filetype1, filetype2, filetype3, ... ฯลฯ " 1 บรรทัดสำหรับแต่ละหมวดหมู่ดังนี้:
ทางลัด,lnk
IMAGES,jpg,png,svg
เอกสาร,txt,docx,doc,pdfdoc
ฟิลด์แรกจะเป็นชื่อของไดเร็กทอรีบนเดสก์ท็อป ซึ่งจะวางประเภทไฟล์ที่เหลือ ช่องที่เหลือคือประเภทไฟล์ที่คุณต้องการย้ายไปยังโฟลเดอร์
ดังนั้น สำหรับโฟลเดอร์ SHORTCUTS ไฟล์ *.lnk ทั้งหมดจะถูกย้ายไปยังโฟลเดอร์นั้น สำหรับโฟลเดอร์ IMAGES ไฟล์ทั้งหมดที่มี *.jpg,*.png และ *.svg จะถูกย้ายไปยังโฟลเดอร์ IMAGES สุดท้าย เราย้ายไฟล์ *.txt,*.docx,*.doc และ *.pdf ทั้งหมดไปยังโฟลเดอร์ DOCUMENTS ด้วยวิธีนี้ เรากำลังจัดไฟล์ลงในไดเร็กทอรีที่ถูกต้อง
เมื่อเราสร้างไฟล์ CSV แล้ว เราก็พร้อมที่จะเขียนสคริปต์ เราจะเรียกสคริปต์ว่า cleanup.sh อย่างไรก็ตาม สคริปต์นี้จะมีการตรวจสอบความถูกต้องเพียงเล็กน้อย ดังนั้นคุณต้องแน่ใจว่าไฟล์ CSV อยู่ในรูปแบบที่ถูกต้อง มิฉะนั้นจะไม่ทำงาน! สิ่งที่เราจะทำในสคริปต์นี้คือการตรวจสอบว่ามีไฟล์และโฟลเดอร์หรือไม่โดยเป็นการตรวจสอบขั้นต่ำ
คุณสามารถแก้ไขสคริปต์ในเทอร์มินัลได้หากคุณรู้จักตัวแก้ไขประเภท Unix เช่น vi หรือคุณสามารถใช้แผ่นจดบันทึก:
notepad cleanup.sh
การทำงานของสคริปต์คือการตั้งชื่อไฟล์ CSV ที่เรากำลังอ่านในสคริปต์ และตำแหน่งของเดสก์ท็อปที่เราต้องการล้าง เราจะตั้งค่าตัวแปรเป็นไฟล์ CSV การล้างข้อมูลและตำแหน่งเดสก์ท็อป ในกรณีของฉันนี่เป็นดังนี้ คุณจะต้องเปลี่ยนตำแหน่งเดสก์ท็อปของคุณเอง โปรดทราบว่าสิ่งที่อยู่ระหว่าง“ <” และ“>” คือตัวยึดตำแหน่งที่คุณต้องป้อนข้อมูลเฉพาะของคุณ
ดังนั้น. 2 บรรทัดแรกในสคริปต์คือ:
DESKTOP=/mnt/c/Users//เดสก์ทอป
CSV=cleanup.csv
สามารถดูสคริปต์แบบเต็มได้ที่ด้านล่าง โปรดอ่านความคิดเห็นหากคุณต้องการเข้าใจคำสั่ง และหากคุณไม่แน่ใจเกี่ยวกับคำสั่ง ให้ลอง "man
ทำให้สคริปต์การล้างข้อมูลสามารถเรียกใช้งานได้และเรียกใช้
ในการรันสคริปต์จากบรรทัดคำสั่งโฮม คุณจะต้องทำให้สามารถเรียกใช้งานได้ด้วยคำสั่งต่อไปนี้:
chmod + x cleanup.sh
ในการรันสคริปต์ คุณจะต้องพิมพ์ดังต่อไปนี้ เนื่องจากอยู่ในไดเร็กทอรีปัจจุบัน
./cleanup.sh
นี่คือลักษณะที่เดสก์ท็อปของฉันดูก่อนและหลังการเรียกใช้สคริปต์ คุณจะเห็นว่าตอนนี้โฟลเดอร์ที่มีไฟล์ที่ย้ายได้ถูกสร้างขึ้นแล้ว และเดสก์ท็อปมีความรกน้อยกว่ามาก:
ก่อน: หลังจาก:
และไดเร็กทอรี SHORTCUTS โดยมีทางลัดทั้งหมดย้ายจากเดสก์ท็อป
สคริปต์ Linux สำหรับเดสก์ท็อปแบบเต็มสำหรับ Windows
โปรดสังเกตความคิดเห็นที่นำหน้าด้วย "#" ในสคริปต์ เนื่องจากจะอธิบายวิธีการทำงานของสคริปต์ # ตั้งค่าตัวแปรสำหรับตำแหน่งของเดสก์ท็อปท้องถิ่นหรือไดเร็กทอรีที่คุณต้องการล้าง และชื่อไฟล์ CSV
DESKTOP=/mnt/c/Users/gofor/OneDrive/Desktop
CSV=cleanup.csv
# ทดสอบเพื่อดูว่ามีไฟล์ csv การล้างข้อมูลอยู่หรือไม่ โดยใช้คำสั่ง linux "test" และแฟล็ก "-f" สำหรับการมีอยู่ของไฟล์
# หากไฟล์ไม่มีอยู่ ให้แสดงข้อความแสดงข้อผิดพลาดแล้วออกจากสคริปต์
ถ้า [ ! -f ${CSV} ]แล้ว
echo ไฟล์ cleanup.csv ไม่มีอยู่
ทางออก -1
fi
# ตอนนี้แปลง CSV หากได้รับการบันทึกในรูปแบบ dos เป็นรูปแบบ Unix โดยการลบอักขระส่งคืนแคร่
# บันทึกผลลัพธ์เป็นไฟล์ชั่วคราว จากนั้นเปลี่ยนชื่อไฟล์ชั่วคราวกลับเป็นชื่อเดิม
tr -d '\r' < $CSV > temp.csv
mv temp.csv $CSV
# ตอนนี้ไปที่ไฟล์ CSV ทีละบรรทัดและเก็บชื่อของอาร์กิวเมนต์แรกซึ่งก็คือไฟล์
# ชื่อหมวดหมู่/ไดเร็กทอรี ซึ่งอาร์กิวเมนต์ที่เหลือทั้งหมดจะเป็นประเภทไฟล์ที่จะ will
# วางไว้ในไดเรกทอรีเหล่านี้
ขณะอ่าน csvline
ทำ
นับ=1
สำหรับประเภทไฟล์ใน `echo "$csvline" | tr , '\n'`
ทำ
ถ้า [ $count -eq 1 ] แล้ว
# เนื่องจากนี่คืออาร์กิวเมนต์แรก ให้ตรวจสอบว่ามีโฟลเดอร์อยู่แล้วหรือไม่ และหากไม่มี ให้สร้างมันขึ้นมา
ถ้า [ ! -d ${DESKTOP}/$filetype ] แล้ว
# ไดเร็กทอรีไม่มีอยู่ดังนั้นเราจะสร้างมันขึ้นมา
mkdir ${เดสก์ท็อป}/$filetype
fi
CATEGORY=${filetype}
อื่น
# ส่งข้อความที่เป็นมิตรซึ่งระบุว่าสคริปต์กำลังทำอะไรอยู่
echo "กำลังย้าย *.${filetype} เป็น ${CATEGORY}"
# ห้ามแสดงข้อความแสดงข้อผิดพลาด (เช่น >2 /dev/null) เมื่อย้ายไฟล์ในกรณีที่ไม่มีไฟล์อยู่
# ดังนั้นคำสั่ง "mv" คือ "เงียบ"
mv ${DESKTOP}/*.${filetype} ${DESKTOP}/${CATEGORY} 2> /dev/null
fi
count = `expr $ count + 1`
เสร็จแล้ว
เสร็จสิ้น < cleanup.csv