0
0
Lập trình
TT

Hướng dẫn chi tiết tự động hóa tác vụ trên Linux với Xdotool

Đăng vào 1 tuần trước

• 4 phút đọc

1. Mở đầu

Nếu bạn là người yêu thích sự tiện lợi và muốn tiết kiệm thời gian cho những tác vụ đơn giản nhưng lặp đi lặp lại, thì xdotool chính là công cụ tuyệt vời dành cho bạn. Hãy cùng khám phá xdotool và thực hành một vài ví dụ cụ thể nhé!

2. Xdotool là gì?

xdotool là một tiện ích dòng lệnh mạnh mẽ cho phép bạn mô phỏng các hành động của người dùng trên hệ thống Linux. Nó có khả năng thực hiện nhiều thao tác, từ việc gõ phím, di chuyển chuột, đến việc quản lý cửa sổ. Hãy tưởng tượng chỉ với một cú click chuột, xdotool có thể tự động hóa nhiều công việc cho bạn!

3. Cài đặt

Việc cài đặt xdotool trên hệ thống của bạn khá đơn giản và tùy thuộc vào loại distribution bạn đang sử dụng:

  • Debian và Ubuntu: apt-get install xdotool
  • Fedora: dnf install xdotool
  • FreeBSD: pkg install xdotool
  • macOS: brew install xdotool hoặc sudo port install xdotool
  • OpenSUSE: zypper install xdotool

4. Một số lệnh cơ bản của xdotool

4.1 Gõ văn bản

Thay vì phải gõ từng chữ, bạn có thể sử dụng lệnh sau để xdotool giúp bạn gõ:

Copy
xdotool type 'Hello world!'

4.2 Gửi tổ hợp phím

Nếu bạn cần gửi tổ hợp phím như Ctrl+C để sao chép, hãy thử lệnh:

Copy
xdotool key ctrl+c

Dưới đây là danh sách một số key code thường dùng trong xdotool:

  • Return
  • Print
  • Tab
  • Space
  • BackSpace
  • Up, Down, Left, Right (Các phím mũi tên)
  • Home, End, Page_Up, Page_Down
  • Insert, Delete
  • F1 đến F12
  • a đến z, A đến Z
  • 0 đến 9
  • Escape
  • Shift_L, Shift_R
  • Control_L, Control_R
  • Alt_L, Alt_R
  • Super_L, Super_R (Phím Windows)

4.3 Di chuyển chuột

Bạn muốn tự động di chuyển chuột mà không cần chạm vào nó? Hãy dùng lệnh sau:

Copy
# 500 và 300 là tọa độ X và Y trên màn hình.
xdotool mousemove 500 300

# trả về vị trí X, Y của chuột hiện tại 
xdotool getmouselocation

Ví dụ: Để click vào góc trên bên trái màn hình và di chuyển chuột trở lại vị trí ban đầu, bạn có thể dùng lệnh:

Copy
xdotool mousemove 0 0 click 1 mousemove restore

4.4 Giả lập click chuột

Lệnh này giả lập một cú nhấp chuột, bao gồm một lần mouse down và một lần mouse up:

Copy
click [options]

options:

  • 1: click chuột trái
  • 2: click chuột giữa
  • 3: click chuột phải
  • 4: cuộn lên, 5: cuộn xuống trang.

Bạn có thể thiết lập thêm các flag như:

  • --repeat REPEAT: số lần click.
  • --delay MILLISECONDS: thời gian dừng giữa các lần click.

Ví dụ để click 4 lần với độ trễ 100 mili giây giữa các lần:

Copy
xdotool click 1 --repeat 4 --delay 100 

4.5 Kéo và thả chuột

Để thực hiện thao tác bôi đen hoặc kéo và thả chuột, bạn có thể dùng:

Copy
xdotool mousedown 1
xdotool mousemove 200 200
xdotool mouseup 1

5. Thực hành

Bây giờ, cùng nhau thực hành một ví dụ tự động hóa cụ thể nhé.

Tự động mở trang web yêu thích

Mình sẽ tạo một script đơn giản để tự động mở trình duyệt Firefox, gõ link bài viết và tự cuộn xuống như một người dùng bình thường.

Tiến trình gồm ba bước:

  1. Mở trình duyệt Firefox.
  2. Gõ link bài viết.
  3. Cuộn xuống.

Ở bước 1, command để mở Firefox rất đơn giản, chỉ cần chạy lệnh:

Copy
firefox &

Sau đó, tạo file script qua lệnh:

Copy
touch view_script.sh

Cấp quyền thực thi cho file:

Copy
sudo chmod +x ./view_script.sh

Nội dung file như sau:

bash Copy
#!/bin/bash

# Mở trình duyệt Firefox
firefox &!

# Chờ 1 giây
sleep 1

xdotool type --delay 100 'https://viblo.asia/p/2oKLnGKQVQO'
xdotool key Return

# Chờ 5 giây
sleep 5

# Cuộn xuống
xdotool key Page_Down
sleep 1
xdotool key Page_Down
sleep 1
xdotool key Page_Down

Chạy file và xem kết quả:

Copy
./view_script.sh

Nâng cao hơn: Tùy chọn chọn script

Bạn có thể tạo một file script để lựa chọn các script khác nhau. Dưới đây là ví dụ về file auto_start.sh:

bash Copy
#!/bin/bash

echo "Bạn muốn chạy script nào?"
echo "1) auto_start_project.sh"
echo "2) auto_start_worker.sh"
echo "3) auto_start_personal.sh"
echo "4) Reboot"
echo "5) Power OFF"
read -p "Nhập số lựa chọn của bạn: " choice

case $choice in
  1)
    ~/Code/personal/script_auto/auto_start_project.sh
    ;;
  2)
    ~/Code/personal/script_auto/auto_start_worker.sh
    ;;
  3)
    ~/Code/personal/script_auto/auto_start_personal.sh
    ;;
  4)
    systemctl reboot -i
    ;;
  5)
    systemctl poweroff
    ;;
  *)
    echo "Lựa chọn không hợp lệ. Vui lòng nhập số từ 1 đến 5."
    ;;
esac

Để chạy nó, tạo thêm một file call_auto_script.sh để mở terminal và chạy script:

bash Copy
#!/bin/bash

terminator&!
sleep 1

xdotool type "/home/<PATH>/script_auto/auto_start.sh"
xdotool key Return

Giờ bạn chỉ cần chạy file call_auto_script.sh là có thể lựa chọn script mong muốn. Để tiện lợi hơn, bạn có thể cài đặt phím tắt hoặc sử dụng cử chỉ trong touchpad để mở nhanh script này.

6. Kết luận

xdotool là một công cụ tuyệt vời giúp bạn tự động hóa hầu hết mọi tác vụ mà bạn có thể thực hiện bằng bàn phím và chuột. Những lệnh mà chúng ta đã khám phá sẽ giúp bạn tiết kiệm thời gian và tăng năng suất trong công việc hàng ngày. Đừng ngần ngại thử nghiệm và chia sẻ những khám phá của bạn với cộng đồng nhé!

7. Tài liệu tham khảo

GitHub - Xdotool
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào