linux安装xev命令 linux安装chia

Linux系统中Sublime Text无法输入中文怎么办1.保存下面的代码为sublime_imfix.c
代码如下linux安装xev命令:
/*
sublime-imfix.c
Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.
By Cjacker Huang
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk -2.0` -fPIC
LD_PRELOAD= 。/libsublime-imfix.so sublime_text
*/
#include
#include
typedef GdkSegment GdkRegionBox;
struct _GdkRegion
{
long size;
long numRects;
GdkRegionBox *rects;
GdkRegionBox extents;
};
GtkIMContext *local_context;
void
gdk_region_get_clipbox (const GdkRegion *regionlinux安装xev命令,
GdkRectangle *rectangle)
{
g_return_if_fail (region linux安装xev命令!= NULL);
g_return_if_fail (rectangle linux安装xev命令!= NULL);
rectangle-x = region-extents.x1;
rectangle-y = region-extents.y1;
rectangle-width = region-extents.x2 - region-extents.x1;
rectangle-height = region-extents.y2 - region-extents.y1;
GdkRectangle rect;
rect.x = rectangle-x;
rect.y = rectangle-y;
rect.width = 0;
rect.height = rectangle-height;
//The caret width is 2;
//Maybe sometimes we will make a mistakelinux安装xev命令,but for most of the time,it should be the caret.
if(rectangle-width == 2GTK_IS_IM_CONTEXT(local_context)) {
gtk_im_context_set_cursor_location(local_context , rectangle);
}
}
//this is needed , for example , if you input something in file dialog and return back the edit area
//context will lost, so here we set it again.
static GdkFilterReturn event_filter (GdkXEvent *xevent,GdkEvent *event , gpointer im_context)
{
XEvent *xev = (XEvent *)xevent;
if(xev-type == KeyReleaseGTK_IS_IM_CONTEXT(im_context)) {
GdkWindow * win = g_object_get_data(G_OBJECT(im_context),“window”);
if(GDK_IS_WINDOW(win))
gtk_im_context_set_client_window(im_context,win);
}
return GDK_FILTER_CONTINUE;
}
void gtk_im_context_set_client_window (GtkIMContext *context,
GdkWindow *window)
{
GtkIMContextClass *klass;
g_return_if_fail (GTK_IS_IM_CONTEXT (context));
klass = GTK_IM_CONTEXT_GET_CLASS (context);
if (klass-set_client_window)
klass-set_client_window (context,window);
if(!GDK_IS_WINDOW (window))
return;
g_object_set_data(G_OBJECT(context) , “window”,window);
int width = gdk_window_get_width(window);
int height = gdk_window_get_height(window);
if(width != 0height !=0) {
gtk_im_context_focus_in(context);
local_context = context;
}
gdk_window_add_filter (window,event_filter,context);
}2.编译动态库:
代码如下:
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk -2.0` -fPIC
3. 设置 LD_PRELOAD 并启动 Sublime Text:
代码如下:
LD_PRELOAD= 。/libsublime-imfix.so sublime_text
为了不用每次启动Sublime Text都打这么一长串东西,写了个启动Sublime的脚本:
代码如下:
#!/bin/bash
SUBLIME_HOME=“/opt/sublime_text”
LD_LIB=$SUBLIME_HOME/libsublime-imfix.so
sh -c “LD_PRELOAD=$LD_LIB $SUBLIME_HOME/sublime_text $@”
把libsublime-imfix.so放到Sublime Text目录下并修改脚本中的SUBLIME_HOME,这样Sublime Text 就可以输入中文了 。
上面就是Linux下Sublime Text 无法输入中文的解决方法的介绍了,只要按照上面的步骤,就能在Sublime Text 中输入中文了
linux 键盘修改映射 。修改键盘映射用xmodmap就okaylinux安装xev命令了linux安装xev命令,配置文件如下linux安装xev命令:
保存为.Xmodmaplinux安装xev命令,使用的话直接终端下输入xmodmap .Xmodmap就万事大吉linux安装xev命令了 。
Linux下如何改键值可通过xev得到所按键linux安装xev命令的键名/键值linux安装xev命令,再通过xmodmap可设置
直接运行xev(linux下抓取按键键值的小工具),按一下所经修改的按键,在输出的信息中找到类似(keysym 0xff22, Muhenkan)的内容,其中0xff22为键值,Muhenkan是键名 。
通过以下命令就可将按键映射为想要的键值linux安装xev命令了
xmodmap -e "keysym 预设定的键名 = 当前按键键名"
如我想将键名为Muhenkan的按键映射为Win键(键名为Super_L),则这样写
xmodmap -e "keysym Super_L = Muhenkan"
到此就达到了目的了,但这样设置位未保存到设置中 , 重启后就没了 , 所以我将上面的代码加入到/etc/rc.local中了
另linux安装xev命令:/usr/include/X11/keysymdef.h 中包含所有的符号名 , 在其中可以找到你想要的键名,里面也有些简短的注释
java ssh linux 编程纯Java通过SSH执行Linux命令的方法及代码
注:此ssh非彼SSH(Struts Spring Hibernate)
在Java中,我们可以通过Runtime去执行一些OS的命令,如:
String[] shell = new String[] { " /bin/sh " , " -c " , " ls -l " } ;
Process p = Runtime.getRuntime().exec(shell);
通过在Linux上执行 ssh --help命令,
usage: ssh [-1246AaCfgKkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-i identity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-w local_tun[:remote_tun]] [user@]hostname [command]
不难发现,ssh命令中并不能带密码 。
如果不需要登录时,我们可以用这样的方式来执行:
String[] shell = new String[] { " /bin/sh " , " -c " , " ssh root@192.168.1.5 ls -l " } ;
Process p = Runtime.getRuntime().exec(shell);
但是事情往往并不是我们想象的如此简单 , 绝大部分的客户是不能允许他们的Linux中还存在一个不需要密码就能执行任何命令的帐户的 。那么,在Java中就没有任何办法通过ssh登录来执行一些命令吗?
不慌,先来Google一下,从一些网上别人请教的代码的蛛丝蚂迹中 , 发现了JSch ( ) ,这东东还真是不错,来,我们先看看其官方的简介:
JSch is a pure Java implementation of SSH2.
JSch allows you to connect to an sshd server and use port forwarding, X11 forwarding, file transfer, etc., and you can integrate its functionality into your own Java programs. JSch is licensed under BSD style license.
这东东支持像telnet一样的ssh的session , SFTP,SCP等 。
下面,就让我们来看一个执行ssh命令的通用方法:
public static String sshExecute(String host, String user, String pwd,
String command) {
String osName = System.getProperty("os.name");
// ps -ef|grep tomcat|grep -v grep|awk '{print $2}'
StringBuffer sb = new StringBuffer();
try {
JSch jsch = new JSch();
if (osName.toUpperCase().indexOf("WINDOWS")-1) {
jsch.setKnownHosts("c:\\known_hosts");
} else {
jsch.setKnownHosts("/root/.ssh/known_hosts");
}
Session session = jsch.getSession(user, host, 22);
session.setPassword(pwd);
session.connect();
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(command);
InputStream in = channel.getInputStream();
channel.connect();
int nextChar;
while (true) {
while ((nextChar = in.read()) != -1) {
sb.append((char) nextChar);
}
if (channel.isClosed()) {
System.out.println("exit-status: "
channel.getExitStatus());
break;
}
try {
Thread.sleep(1000);
} catch (Exception ee) {
}
}
channel.disconnect();
session.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
看看,是不是挺简单了 。
别忘了,由于这是Pure Java program,还有一个优点就是,这样的程序不依赖于OS,可以直接在Windows或者其它OS上运行 。
对了,执行这个需要RSA的Key文件,示例如下:
192.168.1.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsoINy5sLnrzYCTKBh2UrsqHd62dnnimCZtvq8ojTYt7NcAjjtW2FqmFNO 5x/mTwyY ssoP5SganxDYs3G016aPZDQdGVZMn/08IsB7QEIAXEVHtgGIGuLqsdMUBBIxV7KI6BK OWVwv277tBOgqvPcgeEacviFZb2lZhWr8hvR2pTrPFBLr UELejm/Nnf9qWDBjDj/d2o8 ReSwN8dzNJIiFyWdboyUCZfHhxNgiGANFx22gC4lM Wk8gkASo/QYDvoUwLFrAJoMdsw0d4pn34bQ0mspaaWy4N0 zrNCPcl8D0Q1RrAjfYfOiZOSTnxabJ2DLijuq7UgFbn2ESMw==
附:产生此文件的简单方法:可以在Linux中用ssh命令登录一次,这样便在/root/.ssh(假如使用root用户登录到Linux)目录下生成known_hosts文件 。
linux中接收按键值并打印到终端在 X 下面 , 可以用 xev,打开一个terminal, 如 xterm,然后执行 xev,就可以了 。除了键盘,还能抓下鼠标移动鼠标按键的信息 。
【linux安装xev命令 linux安装chia】关于linux安装xev命令和linux安装chia的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读