在用户目录下新建文件.Xmodmap在其中写入以下内容:
代码: 全选
remove control = Control_L
remove control = Caps_Lock
remove lock = Caps_Lock
remove lock = Control_L
keycode 66 = Control_L NoSymbol Control_L
keycode 37 = Caps_Lock NoSymbol Caps_Lock
add control = Control_L
add lock = Caps_Lock
缺点:
切换tty时会失效,
锁屏后再次登陆会失效。
失效的时候可以使用命令:
代码: 全选
xmodmap .Xmodmap
也可以使用图形化工具xkeycaps试试,但是我不太会用,还因此弄乱了键盘

如果大家有更好的方法或者是能够彻底解决可能会失效的问题,欢迎分享~
-------------------------20140904更新------------------------------------
根据5楼大神duguyipiao提供的方法,在终端中输入以下语句:
代码: 全选
$ dconf read /org/gnome/desktop/input-sources/xkb-options
这个返回的结果是你的键盘已有的一些快捷键或者是映射的改变,为了不使更换大写锁定Caps Lock和左Control键影响到其他设置,下一条命令应该这样写:['compose:rctrl', 'terminate:ctrl_alt_bksp']
代码: 全选
dconf write /org/gnome/desktop/input-sources/xkb-options "['compose:rctrl', 'terminate:ctrl_alt_bksp', 'ctrl:swapcaps']"
这个命令是立即生效~
感谢5楼大神duguyipiao~
-------------------------20160130更新------------------------------------
今天不知怎么回事,重启之后,交换消失了,再使用上面的方法也没有效果,于是重看5楼提供的那篇帖子,发现了这个命令:
代码: 全选
setxkbmap -option "ctrl:swapcaps"