每次调试笔记本没事安装的kali的时候,在桌面管理上总是忘记一些命令和操作,今天没事总结一下吧!debian linux是一个样子的。
启动顺序:
系统启动过程是这样的:内核加载–>init程序运行–>显示管理器运行–> X Server 运行–>显示管理器连接到 X Server,显示登录界面–>用户登录后,登录界面关闭,加载桌面环境。从上面的流程可以看出,显示管理器是 X Server 的父进程,它负责启动 X Server,当 X Server 启动后,它又变成了 X Server 的一个 Client 程序,连接到 X Server 显示欢迎界面和登录界面,最后,显示管理器又是所有桌面环境的父进程,它负责启动桌面环境需要的其它 Client 程序。
1./etc/inittab较新的版本没有这个文件,默认图形启动。
2./etc/X11/default-display-manager
这个是设置显示管理器(DM),显示管理器是为X窗口系统提供图形界面登录模式的程序,一个给定的X服务器只能由一个显示管理器来管理,如果多个赤示管理器被配置为分别管理不同的X服务器,它们可以同时运行需分别对各显示管理器进行设置,编辑它们在/etc/init.d目录下的init脚本,并且关闭对默认管理器的检查。比如我装有gdm3,lightdm,sddm。我默认的是lightdm.
使用命令#dpkg-reconfigure gdm3来轻松切换!
lightdm 取代了传统的 xdm、gdm 等显示管理器。简单来说,就是由 lightdm 负责启动 X Server 和其它的 X 程序。不知道为什么,lightdm 在启动 X Server 的时候,给 X Server 加上了 -nolisten tcp 参数,所以远程计算机就没有办法连接到桌面了,将 xserver-allow-tcp=false 一行前面的注释去掉,并且改为 xserver-allow-tcp=true.就可以远程桌面了,先使用 xauth list 命令查看一下当前的授权记录,发现只有一条,而且 display 是 kali/unix:0,很显然,这是一个本地授权,所以需要使用 xauth add 命令添加一个使用 ip 地址的授权,后面的 key 照抄就行了。最后,使用 xauth extract 和 xauth merge 配合管道和 ssh 将该授权记录合并.使用xhost也可以实现。
lightdm的 log 文件放在 /var/log/lightdm 文件夹下.
/usr/share/doc/lightdm/ 目录下有一个 lightdm.conf.gz 文件,把该文件当文档看了一下,里面就是 lightdm 的配置的解释
Debian默认使用GNOME作为桌面环境,GNOME默认不允许root账户登陆图形界面,如有需要,可以通过修改配置文件,使root能够登陆GNOME桌面环境。
如果机器只有root一个账户,可以使用Ctrl+Alt+F2切换到字符界面从root登陆,或者用其他机器从远端SSH登陆。
用文本编辑器打开/etc/gdm3/daemon.conf,在[security]部分添加AllowRoot=true,保存退出。
用文本编辑器打开/etc/pam.d/gdm-password,找到如下行(应该是第二行):
auth required pam_succeed_if.so user != root quiet_success
将其注释掉
auth required pam_succeed_if.so user != root quiet_success保存退出,重启系统(可以使用reboot)。再开机后root仍不会出现在用户列表中,点击Not listed?按钮,可以手动输入用户名root及其密码登陆。
3. X-server启动
#xinit
xinit是启动Xserver和Xclient的。xinit会运行一个xinitrc的文件,这个文件你可以自己编写
xinit 的用法为: xinit [[client] options ] [-- [server] [display] options] 。其中 client 用于指定一个基于 X 的应用程序, client 后面的 options 是传给这个应用程序的参数, server 是用于指定启动哪个 X 服务器,一般为 /usr/bin/X 或 /usr/bin/Xorg , display 用于指定 display number ,一般 为 0 ,表示第一个 display , option 为传给 server 的参数。
如果不指定 client , xinit 会查找 HOME ( 环境变量 ) 目录下的 .xinitrc 文件,如果存在这个 文件, xinit 直接调用 execvp 函数执行该文件。如果这个文件不存在,那么 client 及其 options 为: xterm -geometry +1+1 -n login -display :0 。
如果不指定 server , xinit 会查找 HOME( 环境变量 ) 目录下的 .xserverrc 文件,如果存在这个文件, xinit 直接调用 execvp 函数执行该文件。如果这个文件 不存在,那么 server 及其 display 为: X :0 。如果系统目录中不存在 X 命令,那么我们需要在系统目录下建立一个名为 X 的链接,使其指向真正的 X server 命令
可以通过 X Server 的 xorg -configure 参数生成一个配置文件,里面包含当前自动检测出的配置。如果需要任何个性化的配置,对该文件进行修改即可
在现有的图形界面下以窗口模式运行嵌套的 X Server,常用的软件是 Xephyr
基本上, X Server 管理的是显示适配器、屏幕分辨率、鼠标按键对应等等,尤其是显示适配器芯片的认识,真是重要。 此外,还有显示的字体也是 X Server 管理的一环。基本上,X server 的配置文件都是预设放置在 /etc/X11 目录下,而相关的显示模块或上面提到的总模块,则主要放置在 /usr/lib/xorg/modules 底下。比较重要的是字型文件与芯片组,她们主要放置在:
提供的屏幕字体: /usr/share/fonts/X11/
显示适配器的芯片组: /usr/lib/xorg/modules/drivers/
**4.**窗口管理器(Window Manager) 例如(metacity ,fluxbox等)启动.
/usr/bin/startx
/usr/bin/startxfce4
/usr/bin/gnome-seeion
/usr/bin/startkde
登录X的startx命令也是通过传递参数给xinit来启动X的,
我们知道要在文字接口底下启动 X 时,直接使用 startx 来找到 X server 与 X client 的参数或配置文件, 然后再呼叫 xinit 来启动 X 窗口系统。xinit 先载入 X server 到预设的 :0 这个显示接口 (默认在 tty7),然后再加载 X client 到这个 X 显示接口上。而 X client 通常就是 GNOME 或 KDE ,这两个设定也能够在 /etc/sysconfig/desktop 里面作好设定
KDE ,GNOME在使用中一般都是集合起来构成一个完整的集成工作环境,这就是我们平时所说的广义上的xclient
可以直接使用命令来启动各种管理器,更换默认的startx的启动可以使用命令:
#update-alternatives --config x-session-manager
不同的用户使用该命令可使不同用启默认启动不同的桌面。
centos修改:
A./etc/sysconfig/desktop
B.当前用户目录下建立.xinitrc,文件中加入startkde或gnome-session
C.切换#switchdesk gnome/kde
附:
独立安装x window所需要的每一个包
yum install xorg-x11-server-Xorg
yum install xorg-x11-server-utils
yum install xorg-x11-utils
yum install xorg-x11-xinit
yum install xorg-x11-apps
yum install xorg-x11-twm
yum install xterm
xorg-x11-drv-fbdev-0.4.3-2.el6.x86_64
xorg-x11-drv-intel-2.21.12-2.el6.x86_64
组合安装x window
yum groupinstall “X Window System”
yum groupinstall GNOME Desktop Environment
yum groupinstall KDE Desktop Environment
安装完毕后,执行startx,即可进行X window(KDE)
***转别人发的转发版***abcd
a)xserver 主要提供基本的显示接口共xclient使用,并将用户的操作等也反映给xclient,是xclient与硬件的一个中间层。xserver相关的两个主要部分是
(1) xorg.conf
xorg.conf是X Server的主要配置文件,它包含一个当前系统的硬件资源列表。X Server就是根据这些硬件资源“组织”出基本的图形能力。xorg.conf文件在/etc/X11/xorg.conf,主要包含几个字段:
Files: X系统使用的字体存放目录(字体的具体使用由FontConfig工具主持)
InputDevice: 输入设备,如键盘鼠标的信息
Monitor: 显示器的设置,如分辨率,刷新率等
Device: 显示卡信息
Screen: 由Monitor和Device组装成一个Screen,表示由它们向这个Screen提供输出能力
ServerLayout: 将一个Screen和InputDevice组装成一个ServerLayout,在具有多个显示设备的系统中,可能有多个Screen和多个ServerLayout,用以实现不同的硬件搭配。
在最近的xorg版本中,X Server已经开始自动侦测硬件,现在的xorg.conf已经都成了默认名称。具体细节还待查,但基本原理还是不变的。
(2) X session(X会话)
X session是指X server启动后直到X server关闭之间的这段时间。这期间一切跟X相关的动作都属于X session的内容。管理X session的程序称为Display Manager,常听说的gdm或kdm就是gnome/kde所分别对应的Display Manager。
开启一个X session,也就是开始了图形界面的使用。在开启的过程中,Display Manager会对用户进行认证(也就是用户名密码的输入),运行事先设置好的程序(比如scim输入法就是这个时候启动的)等等。
这个开启过程要执行的一系列操作都可以在/etc/X11/Xsession以及/etc/X11/Xsession.d/目录下看到,其他还有一些配置文件如Xsession.options, Xresource等,都是执行的X session的初始化过程。仔细阅读这些脚本或配置文件,可以帮助你更好地理解X
b)Display Manager
上面说过,Display Manager(后简称DM)是管理X session的程序,常见的有gdm, kdm, xdm等。对于默认进入X界面的Linux系统,必须将DM程序在开机时执行,即:/etc/rc2.d/S13gdm。下面我们从手工启动X的过程,看一下DM为我们做了哪些工作。
如果没有设置DM在开机时运行的话,手动启动X使用startx命令。man startx
可以知道,startx的作用可以看作是Display Manager的一种隐性实现。它使用xinit命令,分别根据/etc/X11/xinit/xinitrc和/etc/X11/xinit/xserverrc中所指定的设置唤起X。
其中,xserverrc执行X server的运行任务;xinitrc则运行Xsession命令。从/etc/X11/Xsession脚本的内容可以看出,它也就是进入/etc /X11/Xsession.d/目录轮询地执行所有脚本。很明显,这些也就是前面所说的Xsession初始化工作。
综合起来说,Display Manager完成三个任务:1, X Server的启动; 2, X session的初始化; 3, X session的管理。
c)Window Manager
X Server提供了基本的图形显示能力。然而具体怎么绘制应用程序的界面,却是要由应用程序自己解决的。而Window Manager(桌面管理器,后简称WM)就是用来提供统一的GUI组件的(窗口、外框、菜单、按钮等)。否则,应用程序们各自为政,既增加了程序开发的负担,不统一的桌面风格对视觉也是不小的挑战。
WM的启动由DM控制,在gdm的登录窗口,我们可以进行选择。常见的WM有:Metacity(Gnome默认的WM), fluxbox, fvwm, E17等。
d)X Clients
最后,就是X Client了。X客户端程序,顾名思义,就是使用X服务的程序。firefox,gedit等等都属于X Client程序。X Client部分值得考虑一下的就是DISPLAY环境变量。它主要用于远程X Client的使用。该变量表示输出目的地的位置,由三个要素组成:
[host]:display[.screen]
host指网络上远程主机的名称,可以是主机名、IP地址等。默认的host是本地系统,你可以在自己系统上echo $DISPLAY看一下。
SSH隧道转发版
SSH提供了X11转发的功能,可以使用SSH简单地实现上一节描述的功能。
首先确认A机器上的SSH Server打开的X11转发功能。检查SSH Server配置文件/etc/ssh/sshd_config,确认有如下配置:
X11Forwarding yes
然后在从B机器上SSH到A机器:
ssh -X 192.168.9.135
-X选项打开SSH的X11转发功能。
在此会话中查看A机器上的DISPLAY变量,应与下面类似:
localhost:10.0
在此会话中查看A机器上的TCP监听端口,应有6010端口。
在此会话中启动A机器上的图形程序,图形应显示在B机器上。
实际上,SSH在A机器上打开了一个监听端口6010,并且在登录会话开始时为会话设置了DISPLAY变量为localhost:10.0。随后此会话中的图形程序运行时,X11 client库会将X请求发送到SSH监听6010端口中,然后A机器上的SSH将X请求转发到B机器,B机器的SSH客户端收到X请求后交给B机器上的X Server显示。
SSH隧道转发Windows版
原理与上一节类似,X请求也是通过SSH进行转发。要在Windows上显示Linux的图形界面,必须并运行一个X Server,这里选用Xming。
安装并运行Xming以后,使用ssh客户端连接上机器A,这里选用SecureCRT作为ssh客户端(使用putty同样可以)。
打开SecureCRT的会话选项作如下设置:
勾选这个选项的作用实际上与上一节中的ssh命令的-X选项相同。
设置好会话选项以后,如果当前会话已经登录机器A,注销再重新登录。
登录到机器A,查看DISPLAY变量:
Linux在远程X Server上显示图形界面
启动一个图形程序,界面将在Windows上显示:
Linux在远程X Server上显示图形界面
https://blog.csdn.net/clozxy/article/details/5488699