在Linux系统中,“打印坐标”这一需求可能涉及多种场景,例如获取鼠标在图形界面中的实时坐标、窗口的几何坐标、终端光标位置,甚至是图像或文档中的特定点坐标,以下将分场景详细介绍实现方法,涵盖常用工具、命令及编程实现。

图形界面下的坐标获取(鼠标与窗口)
使用xdotool获取鼠标实时坐标
xdotool是一款强大的命令行工具,可模拟输入和获取X Window系统中的窗口及鼠标信息。  
安装(以Debian/Ubuntu为例):
sudo apt install xdotool
使用方法:
直接执行以下命令可打印当前鼠标指针的屏幕坐标(格式为x y):  
xdotool getmouselocation --shell
输出示例:
X=1280 Y=720 SCREEN=0 WINDOW=123456
其中X和Y即为鼠标相对于屏幕左上角的坐标(像素单位),若仅需坐标值,可结合awk提取:  
xdotool getmouselocation | awk '{print $1" "$2}' | sed 's/x://;s/y://'
使用xwininfo获取窗口坐标与尺寸
xwininfo可交互式获取窗口的详细信息,包括几何坐标(位置和尺寸)。  
使用方法:
执行以下命令后,鼠标指针会变为十字形,点击目标窗口即可打印其坐标信息:  
xwininfo
输出示例:
xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.  
xwininfo: Window id: 123456 "Terminal" (has no name)  
  Absolute upper-left X:  800  
  Absolute upper-left Y:  400  
  Relative upper-left X:  0  
  Relative upper-left Y:  0  
  Width:  800  
  Height: 600  
  Depth:  24  
  ...  
Absolute upper-left X/Y”表示窗口相对于屏幕左上角的坐标,“Width/Height”为窗口尺寸,若需非交互式获取,可通过-id参数指定窗口ID(先用xdotool getactivewindow获取当前活动窗口ID)。  
使用xev监控鼠标事件坐标
xev(X事件查看器)可实时打印鼠标点击、移动等事件的坐标信息,适合调试或持续监控。  
使用方法:
xev | grep -A2 'MotionNotify'
执行后,移动鼠标或点击,终端会输出类似以下内容:
MotionNotify event, serial 35, synthetic NO, window 0x2c00001,  
    root 0x1e8, subw 0x0, time 123456, (800, 400), root:(1600, 800),  
    state 0x0, is_hint 0, same_screen YES  
括号内的(800, 400)即当前鼠标坐标(相对于窗口),root:(1600, 800)为相对于屏幕的坐标。  

终端环境下的坐标获取
获取终端光标位置
在终端中,可通过tput或ANSI转义序列获取当前光标位置(行和列)。  
方法1:使用`tput
# 获取当前光标行号 tput cup | cut -d';' -f1 | cut -d'[' -f2 # 获取当前光标列号 tput cup | cut -d';' -f2 | tr -d 'R'
方法2:使用ANSI转义序列
结合stty和dd读取光标位置输入(需终端支持):  
# 临时禁用回显,读取光标位置输入 stty -echo printf "