AppImage

AppImage AppImage 是一种在 Linux 系统中用于分发便携式软件而不需要超级用户权限来安装它们的格式。 它还试图允许 Linux 的上游开发者来分发他们的程序而不用考虑不同 Linux 发行版间的区别。 AppImage的核心思想是一个文件即一个应用程序 。 每个 AppImage 都包含应用程序以及应用程序运行所需的所有文件。换句话说,除了操作系统本身的基础组件,Appimage 无需依赖即可运行。 在 2004 年,它以 klik 的名字发布。自那时起,它就被不断地开发,并在 2011 年被重新命名为 PortableLinuxApps,在2013年被重新命名为 AppImage。 运行方法 添加可执行权限 chmod a+x .AppImage 执行它! ./.AppImage https://doc.appimage.cn/docs/appimage/

2014-03-04 · 1 min · 33 words · -

Add ISO image to apt sources.list

Add ISO image to apt sources.list http://linuxconfig.org/add-iso-image-to-apt-sourceslist Here is a way how to include Debian/Ubuntu ISO image into your /etc/apt/sources.list file. This kind of hack can prove handy in terms of reducing package download during the installation or if you do not have CD/DVD drive available ( or is broken ) on your system. Let’s assume that we have a Debian ISO image downloaded at the location: /mnt/storage/iSO/debian-i386-DVD-1.iso. As a first step we need to create a mount point to where this ISO image will be mounted to: ...

2013-11-01 · 1 min · 170 words · -

fuser 命令用法详解

fuser 命令用法详解 http://www.ha97.com/category/linux" rel=“category tag http://www.ha97.com/tag/linux 查看哪些进程正在访问特定的文件、目录或端口。它也可以配合选项来终止这些进程。 语法 # fuser [ -c | -d | -f ] [ -k ] [ -u ] [ -x ] [ -V ]文件 … # 查看正在使用 TCP 端口 2222 的进程 fuser 2222/tcp # 终止(kill)正在使用 TCP 端口 2222 的进程 # || true 可以忽略失败,确保整个命令的退出码是 0(成功),防止脚本中断。 sudo fuser -k 2222/tcp || true 描述 此 fuser 命令列出了本地进程的进程号,那些本地进程使用File 参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。 每个进程号后面都跟随一个字母,该字母指示进程如何使用文件。 c 将此文件作为当前目录使用。 e 将此文件作为程序的可执行对象使用。 r 将此文件作为根目录使用。 s 将此文件作为共享库 (或其它可装载对象) 使用。 ...

2013-10-06 · 1 min · 156 words · -

alias command, 别名

alias command, 别名 查看所有的alias alias alias -p 显示已定义的别名 (假设当前环境存在以下别名) alias ls alias ls grep 在命令行直接输入后缀为 html 的文件名, 会在 vim 中打开 (zsh) alias -s html=vim alias -s gz='tar -xzvf' alias ll='ls -l --color=auto' alias la='ls -la --color=auto' #查看命令别名 type ll #取消别名 unalias ll 我们在使用linux过程中,每个命令后都要跟一些参数,可是对于常用的参数假如每次都是手动的添加就是显得麻烦些了。linux 可能通过命令别名的功能来减少您的输入,请下面操作就明白了。 ls -l 列出文档目录周详信息 ls -hl 列出文档大小,以K为单位显示 ls -hlt 列出文档按时间排序 对于上面三个显示需要我们只要配置alias ll=‘ls -lht’ 这样以后,只要输入ll 就能够了。 对于此alias ll=‘ls -lht’ 配置在哪个配置文档下呢?这个就要根据自己的需要而定了。 比如: 您只希望jack这个用户名具备上面功能,因为您只经常使用这个用户。修改此用户家目录下.barsh_profile 将alias ll=‘ls -lht’ 添加进去就能够了。 ...

2013-07-27 · 1 min · 82 words · -

Linux 数据恢复工具

Linux 数据恢复工具 Safecopy、TestDisk、PhotoRec

2013-06-15 · 1 min · 3 words · -

nslookup

nslookup nslookup: name server lookup nslookup命令用于查询DNS记录,查看域名解析是否正常 nslookup 有两种模式: 交互 & 非交互,进入交互模式在命令行界面直接输入nslookup按回车,非交互模式则是后面跟上查询的域名或者IP地址按回车。一般来说,非交互模式适用于简单的单次查询,若需要多次查询,则交互模式更加适合,从根服务器进行迭代查询。 RR (Resource Records)————资源记录(RR)是包含了下列字段的4元组: (Name, Value, Type, TTL) 主机记录(A记录):RFC 1035 定义,A记录是用于名称解析的重要记录,提供标准的主机名到IP的地址映射。 别名记录(CNAME记录):RFC 1035 定义,向查询的主机提供主机名对应的规范主机名。 域名服务器记录(NS记录):用来指定该域名由哪个DNS服务器来进行解析。您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现:ns1.domain.com、ns2.domain.com等。简单的说,NS记录返回域中主机IP地址的权威DNS服务器的主机名。 邮件交换记录(MX记录):返回别名为Name对应的邮件服务器的规范主机名。 https://www.cnblogs.com/even160941/p/14292059.html # nslookup –option1 –option2 host-to-find dns-server nslookup redis.wiloon.com 192.168.50.1 2.格式 nslookup [IP地址/域名] 3.应用实例 (1)在本地计算机上使用nslookup命令 $ nslookup Default Server: name.cao.com.cn Address: 192.168.1.9 在符号">“后面输入要查询的IP地址域名,并回车即可。如果要退出该命令,输入"exit”,并回车即可。 (2)使用nslookup命令测试named 输入下面命令: nslookup 然后就进入交换式nslookup环境。如果named正常启动,则nslookup会显示当前DNS服务器的地址和域名,否则表示named没能正常启动。 下面简单介绍一些基本的DNS诊断。 ◆检查正向DNS解析,在nslookup提示符下输入带域名的主机名,如hp712.my.com,nslookup应能显示该主机名对应的IP地址。如 果只输入hp712,nslookup会根据/etc/resolv.conf的定义,自动添加my.com域名,并回答对应的IP地址。 ◆检查反向DNS解析,在nslookup提示符下输入某个IP地址,如192.22.33.20,nslookup应能回答该IP地址所对应的主机名。 ◆检查MX邮件地址记录在nslookup提示符下输入: set q=mx 然后输入某个域名,输入my.com和mail.my.com,nslookup应能够回答对应的邮件服务器地址,即support.my.com和support2.my.com。 动手练习 1.危险的网络命令 互联网的发展使安全成为一个不能忽视的问题,finger、ftp、rcp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,嗅探器可以非常容易地截获这些口令和数据。而且,这些服务程序的安全验证方式也是有弱点的,很容易受到"中间服务器"方式的攻击。这里笔者把一些不安全的命令根据危险等级列出,见表3所示。现在ftp、telnet可以被SSH命令代替绑定在端口22上,其连接采用协商方式,使用RSA加密。身份鉴别完成之后,后面的所有流量都使用IDEA进行加密。SSH(SecureShell)程序可以通过网络登录到远程主机,并执行命令。rcp、rlogin等远程调用命令也逐渐被VNC软件代替。 2.在一张网卡上绑定多个IP地址 在Linux下,可以使用ifconfig方便地绑定多个IP地址到一张网卡。例如,eth0接口的原有IP地址为192.168.0 .254,可以执行下面命令: ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0 ...

2013-05-12 · 1 min · 166 words · -

linux 下解锁 nexus 7

linux 下解锁 nexus 7 Requirements You must have the sdk installed and you are able to access, and use adb and fastboot. You must have debugging enabled on your Nexus 7. Download Su here (Chainfire’s thread for supersu) (Thanks Eric_Eric_Eric) Download CWM here. Scroll down to Nexus 7 and choose whether touch or regular. Pre-Steps To make this easier, you should put the su zip on the sdcard for later. ...

2013-03-23 · 1 min · 139 words · -

CMake

CMake build 先创建一个叫 build 的文件夹 (这个并非必须,因为 cmake 命令指向 CMakeLists.txt 所在的目录,例如 cmake .. 表示 CMakeLists.txt 在当前目录的上一级目录。cmake 后会生成很多编译的中间文件以及 makefile 文件,所以一般建议新建一个新的目录,专门用来编译) ,然后执行下列操作: mkdir build cd build cmake .. make 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make (pmake) ,Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题: 如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。 CMake 就是针对上面问题所设计的工具: 它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到"Write once, run everywhere"。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 [1]。 ...

2013-02-24 · 1 min · 163 words · -

UTM

UTM browse utm gallery> archlinux arm> open in utm archlinux arm default user/password: root/root sudo mkdir -p /mnt/share sudo mount -t 9p -o trans=virtio hostshare /mnt/share Use Apple Virtualization 使用 Apple 自家的 虚拟化框架(Apple Virtualization Framework) 来运行虚拟机,而不是使用传统的仿真(emulation)技术。 性能更高 资源占用更少 boot from kernel image 勾选这个之后就不会出现 boot from iso image 的选项了 archlinux arm 不提供 iso ARM 架构设备的安装方式与 PC 不同 x86_64 架构(标准 PC):通常使用 Live ISO 镜像引导电脑,然后手动安装系统。 ARM 设备(如 Raspberry Pi、Pine64 等):没有传统 BIOS/UEFI 通用引导机制,因此需要预制好系统镜像,直接刷写到 SD 卡或 eMMC 上。

2013-02-22 · 1 min · 73 words · -

jstatd

jstatd jstatd 是一个基于RMI (Remove Method Invocation) 的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。 jstatd是基于RMI的,所以在运行jstatd的服务器上必须存在RMI注册中心,如果没有通过选项"-p port"指定要连接的端口,jstatd会尝试连接RMI注册中心的默认端口。后面会谈到如何连接到一个默认的RMI内部注册中心,如何禁止默认的RMI内部注册中心的创建,以及如何启动一个外部注册中心。 参数选项 jstatd 命令支持如下的选项: -nr 如果RMI注册中心没有找到,不会创建一个内部的RMI注册中心。 -p port RMI注册中心的端口号,默认为1099。 -n rminame 默认为JStatRemoteHost;如果同一台主机上同时运行了多个jstatd服务,rminame可以用于唯一确定一个jstatd服务;这里需要注意一下,如果开启了这个选项,那么监控客户端远程连接时,必须同时指定hostid及vmid,才可以唯一确定要连接的服务,这个可以参看jps章节中列出远程服务器上Java进程的示例。 -J 用于传递jvm选项到由javac调用的java加载器中,例如,"-J-Xms48m"将把启动内存设置为48M,使用-J选项可以非常方便的向基于Java的开发的底层虚拟机应用程序传递参数。 安全性 jstatd 服务只能监视具有适当的本地访问权限的JVM,因此jstatd进程与被监控的JVM必须运行在相同的用户权限中。但是有一些特殊的用户权限,如基于UNIX (TM) 为系统的root用户,它有权限访问系统中所有JVM的资源,如果jstatd进程运行在这种权限中,那么它可以监视系统中的所有JVM,但是这也带来了额外的安全问题。 jstatd 服务不会对客户端进行任何的验证,因此运行了jstatd服务的JVMs,网络上的任何用户的都具有访问权限,这种暴露不是我们所希望的,因此在启动jstatd之前本地安全策略必须要加以考虑,特别是在生产环境中或者是在不安全的网络环境中。 如果没有其他安全管理器被安装,jstatd服务将会安装一个RMISecurityPolicy的实例,因此需要在一个安全策略文件中指定,该策略文件必须符合的默认策略实施的策略文件语法。 下面的这个示例策略将允许jstatd服务具有JVM全部的访问权限: grant codebase “file:${java.home}/../lib/tools.jar” { permission java.security.AllPermission; }; 注: 此处策略中的java.home,和JAVA_HOME不是一个概念,童鞋们不要搞错了,此处的java.home指的是JRE的路径, 这个是Java的系统属性,不需要手工指定,通常是这个jdk下面的jre路径,即可以认为${java.home}和${JAVA_HOME}/jre是等价, 如果想查看这个变量的值,可以任意找一个运行着的Java应用,找到它的PID,然后通过如下jinfo命令查看就可以查看到java.home的值 jinfo ${PID}|grep java.home 也可以在Java代码中通过如下方式获取到: System.out.println(System.getProperty("java.home")) 将上面的策略内容拷贝一个文件中,文件名可以随意取,为了形象我们将文件名命名为jstatd.all.policy,文件存放的路径也可以随意,只有你当前登陆的用户具有访问权限就可以,然后执行以下命令就可以启动jstatd服务: ```bash jstatd -J-Djava.security.policy=jstatd.all.policy 如果是在具有安全限制的环境中,jstatd的策略安全一定要设置得当,并且只允许受信任的服务器或者网络访问,以免遭受网络攻击,如果存在安全隐患,最好不要启动jstatd服务,就在本地使用jstat及jps等工具对JVM进行监控了。 示例 4.1、使用内部RMI注册中心 下面这个示例演示了通过内部RMI注册中心启动jstatd,这个示例假设没有其它的服务绑定到默认的RMI注册中心端口 (默认端口是1099) 。 ...

2013-02-21 · 2 min · 221 words · -

udev

udev udev 是Linux kernel的设备管理器, 2012年4月,udev被合并至systemd。 https://linux.cn/article-13691-1.html https://www.jianshu.com/p/f9385d5703a7

2013-02-19 · 1 min · 7 words · -

shell map

shell map Map定义 在使用map时,需要先声明,否则结果可能与预期不同,array 可以不声明 方式1: declare -A myMap myMap["my03"]="03" 方式2: declare -A myMap=(["my01"]="01" ["my02"]="02") myMap["my03"]="03" myMap["my04"]="04" Map初始化: 与array类似,可以使用括号直接初始化,也可以通过添加的方式来初始化数据,与array不同的是,括号直接初始化时使用的为一个键值对,添加元素时,下标可以不是整数 myMap[“my03”]=“03” myMap[“my04”]=“04” 输出Map所有的key、value、长度: 复制代码 输出所有的key #若未使用declare声明map,则此处将输出0,与预期输出不符,此处输出语句格式比arry多了一个! echo ${!myMap[@]} #2)输出所有value #与array输出格式相同 echo ${myMap[@]} #3)输出map长度 #与array输出格式相同 echo ${#myMap[@]} 复制代码 Map遍历: 复制代码 #1)遍历,根据key找到对应的value for key in ${!myMap[*]};do echo $key echo ${myMap[$key]} done #2)遍历所有的key for key in ${!myMap[@]};do echo $key echo ${myMap[$key]} done #3)遍历所有的value for val in ${myMap[@]};do echo $val done 复制代码 Map测试: 复制代码 [root@cdh-143 shell-test]# more map-test.sh #!/bin/sh ...

2013-02-19 · 1 min · 176 words · -

GDebi

GDebi GDebi is a tool that can install .deb packages. It is available with a graphical interface, but also has a command line option.

2013-02-18 · 1 min · 24 words · -

debian & SDL

‘debian & SDL’ http://www.upubuntu.com/2012/01/how-to-install-sdl-12-simple.html SDL (Simple DirectMedia Layer) is a multi-platform multimedia library used by many app/game developers in creating emulators, games, MPEG playback software, etc. Also, when installing some games or software requiring SDL under Ubuntu, you may get these errors while compiling them: configure: error: * SDL version 1.2.0 not found! ** configure: error: * SDL_image library not found! ** configure: error: * SDL_mixer library not found!** configure: error: * SDL_net library not found!** ...

2013-02-13 · 2 min · 275 words · -

SCons

SCons 一、概述 scons是一个Python写的自动化构建工具,和GNU make相比优点明显: 1、 移植性: python能运行的地方,就能运行scons 2、 扩展性: 理论上scons只是提供了python的类,scons使用者可以在这个类的基础上做所有python能做的事情。比如想把一个已经使用了Makefile大型工程切换到scons,就可以保留原来的Makefile,并用python解析Makefile中的编译选项、源/目标文件等,作为参数传递给scons,完成编译。 3、 智能: Scons继承了autoconf/automake的功能,自动解析系统的include路径、typedef等;“以全局的观点来看所有的依赖关系” 二、scons文件 scons中可能出现的文件: SConstruct,Sconstruct,sconstruct,SConscript scons将在当前目录以下次序 SConstruct,Sconstruct,sconstruct 来搜索配置文件,从读取的第一个文件中读取相关配置。 在配置文件SConstruct中可以使用函数SConscript()函数来定附属的配置文件。按惯例,这些附属配置文件被命名为"SConscript",当然也可以使用任意其它名字。 三、scons的命令行参数 执行SConstruct中脚本 ```bash scons ``` scons -c clean scons -Q 只显示编译信息,去除多余的打印信息 scons -Q -implicit-cache hello 保存依赖关系 -implicit-deps-changed 强制更新依赖关系 -implicit-deps-unchanged 强制使用原先的依赖关系,即使已经改变

2013-02-12 · 1 min · 40 words · -

linux 摄像头

linux 摄像头 http://www.linuxeden.com/html/news/20101108/105418.html Webcam是一种视频捕捉设备,能通过USB端口直接连接计算机或计算机网络。新的上网本和笔记本多有内置的网络摄像头。Webcam可用于实时视频聊天和网络广播,丰富在线交流。这个小小的摄像机让用户能与朋友和家人实时聊天,发送视频电子邮件,与同事和客户举行视频会议,甚至是在互联网上建立一个类似电视的广播频道。还有人会把网络摄像头作为安全系统的一部分,安装在住宅或建筑物内,使用运动检测接收图像和发送视频入侵警报。Linuxlinks的这篇文章编辑了五款优秀的Linux摄像头工具的清单,既能让摄像头捕捉图像和视频,也能把它变成视频监控设备。这些工具包括: GNOME桌面摄像头工具Cheese,一体化安全监控解决方案ZoneMinder,支持动作检测的视频捕捉工具Motion,GNOME桌面下的开源VoIP和视频会议应用程序Ekiga等。 Webcam Tools Cheese Take pictures and videos from your webcam ZoneMinder All-in-one security camera solution Motion V4L capture program supporting motion detection Ekiga VoIP and video conferencing application HasciiCam ASCII cam streaming

2013-01-12 · 1 min · 37 words · -

debian 安装svn客户端

debian 安装svn客户端 apt-get install subversion cd /usr/local/src/ svn checkout http://droidwall.googlecode.com/svn/trunk/ droidwall-read-only

2013-01-08 · 1 min · 11 words · -

top command

top command top 命令是常用的性能监控工具之一,用于监控系统整体性能和进程信息. top 界面分为两个部份,上面部份显示关于系统整体性能,下面部份显示各进程信息。 第一行显示的内容和 uptime 命令一样, 可以显示和折叠 cpu 使用信息. top: 这个没有什么意思,只是个名称而已 01:47:56 : 系统当前时间 up 1:26 : 系统开机到现在经过了多少时间 2 users: 当前两个用户在线 load average: 0.00,0.00,0.00: 系统 1 分钟, 5 分钟, 15 分钟的 CPU 负载信息 Tasks: 38 total: 当前有38个任务/进程 1 running: 1个进程正在运行 37 sleeping: 37个进程睡眠 0 stopped: 停止的进程数 0 zombie: 僵死的进程数 0 zombie: 僵死的进程数 zombie 进程 : 不是异常情况。 一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是重起。kill是无任何效果的stop模式: 与sleep进程应区别,sleep会主动放弃cpu,而stop是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的。 Cpu(s): 表示这一行显示 CPU 总体信息 us: 用户态进程占用 CPU 时间百分比,不包含 renice 值为负的任务占用的CPU的时间。 CPU 消耗在 User space 的时间百分比 sy: 内核线程占用 CPU 时间百分比, 消耗在 Kernel space 的时间百分比。 ni: renice 值为负的任务的用户态进程的CPU时间百分比。nice 是优先级的意思, 表示被 nice 命令改变优先级的任务所占的百分比 id: 空闲CPU时间百分比 wa: IO wait 的缩写, io wait 所占的百分比, CPU 等待外部 I/O 的时间百分比,这段时间 CPU 不能干其他事,但是也没有执行运算,这个值太高就说明外部设备有问题 hi: CPU硬中断时间百分比, hardware interrupt 的缩写,CPU 响应硬件中断请求的时间百分比 si: CPU软中断时间百分比, software interrupt 的缩写,CPU 响应软件中断请求的时间百分比 st: 虚拟cpu等待实际cpu的时间的百分比, stole time 的缩写,该项指标只对虚拟机有效,表示分配给当前虚拟机的 CPU 时间之中,被同一台物理机上的其他虚拟机偷走的时间百分比 # 查看某一个用户 的进程, 查看 user0 用户进程 top -u user0 #显示线程 top -H -p PID printf "%x\n" tid 交互命令 P: 按 CPU 使用率排序 T: 按 MITE+ 排序 M: 按 %MEM 排序 f: 编辑基本视图中的显示字段 Space: 立即刷新显示 h: 显示帮助 k: 杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。 一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 [n] 改变显示的进程数量。你会被提示输入数量。 ...

2013-01-06 · 2 min · 337 words · -

Debian 6 squeeze TightVNC Server

Debian 6 squeeze TightVNC Server 1 安装 如果已经安装了图形用户界面,只需要在bash中apt-get install tightvncserver。 sudo apt-get install tightvnc* vnc client: xtightvncviewer 2 运行 2.1 普通运行 在bash中输入tightvncserver,第一次运行需要设置访问密码。 每次启动tightvncserver都会返回一个编号。 编号在这句中: New 'X' desktop is wqvm-debian:2 可见启动的编号为2。使用VNC客户端去连接时,默认用这个编号+5900得到端口号去连接。 2.2 自动运行 写入rc.d即可。 2.3 终止运行 tightvncserver -kill :2 注意将上一行中的2修改为你在运行tightvncserver中得到的编号,即可关闭这个VNC Server的进程。 3 与vnc4server比较 貌似vnc4server最后一版是2005年发行,距今很久了。说明比较稳定,但是可能落后了。 我安装了vnc4server后不能直接从客户端连接,可能还需要更多的配置。 4 参考资料 http://news.metaparadigma.de/linux-setting-up-a-debian-vnc-server-237/ 英文的。 http://www.cnblogs.com/yangzhao/archive/2011/08/20/2147387.html

2012-12-08 · 1 min · 49 words · -

Awesome

Awesome http://confusedfly.yo2.cn/articles/awesome%E7%AE%80%E4%BB%8B.html 什么是平铺窗口管理器 这里首先需要解释一下窗口管理器(Windows Manager)和桌面环境(Desktop Environment)的概念。窗口管理器负责绘制窗口的边框,处理窗口运行比如移动、最小化之类的行为。 而桌面环境则是窗口管理器的超集,它使用窗口管理器及其其他软件提供一个完整的工作环境。比如说,gnome就是一个桌面环境,默认使用metacity作为窗口管理器。 那么什么是平铺式窗口管理器?简单来说,所谓的平铺就是之所有的窗口都不会相互重叠,而是自动的被调整大小使得它们能够刚好占满整个屏幕。这和传统的桌面环境的概念相差很大,也许你会疑问这样的环境下如何工作? 事实上对于Linux这种需要大量使用命令行的操作系统来说平铺式窗口管理在很多情况下能够极大的提升你的工作效率。举个例子,很多时候你都需要打开好几个shell。在gnome底下这就意味着好几个会相互遮挡命令行窗口,大多数时候如果你想要同时看到这些窗口上面的内容就得费神费力的调整它们的位置和大小。而在平铺是窗口下面你完全不需要为这些事情烦心。 另外一个可能会促使你使用平铺的理由就是,用它来调整、切换窗口几乎可以不使用鼠标。这对于硬派的linux狂热者以及痛恨使用笔记本触控板的人来说也是一个不错的选择。 看看下面这个来我桌面的屏幕截图能对awesome有一个直观的印象 如果你是第一次看到Awesome这样的桌面截图一定会觉得手足无措,最常见的窗口边框不见了,你甚至都没法儿关闭或者是最小化一个窗口。事实上在Awesome中是用不着窗口边框的。它默认就提供了9个标签,你大可把不同的窗口分散在这9个标签中而不用去费神调整它们之间的位置,想要切换的时候简单的用快捷件就可以在各个虚拟桌面之间切换。 显然它并不像 gnome,KDE一样有眼花缭乱的桌面特效,但平铺式窗口关注的主要是在其下工作的效率。比如说在写php代码的时候我可以在一个标签中打开四五个shell运行vim同时修改多个文件,然后在另外一个标签中打开一个浏览器。这样可以很快速的输入代码和切换窗口,而你的手甚至不需要离开键盘! 为什么是Awesome 平铺式窗口管理器并不是一个新概念,根据维基百科里面的介绍早在施乐公司几十年前最早开始研究图形界面的时候就已经有了平铺的概念了 (尽管和现在我说的不太一样) ,linux下面也有不少成熟的平铺式窗口管理器-Ion, XMonad都是有名的平铺窗口管理器。但是比较之下Awesome有不少鲜明的特点: 体积小,运行迅速 不过在3.0以后的版本似乎向变得巨大和缓慢的方向发展的趋势 支持多种窗口布局 事实上awesome并不仅仅支持平铺,它还支持好几种各不相同的窗口布局方案 使用Lua脚本的配置文件使得它的灵活性非常高 由于lua脚本的强大能力,Awesome 3.0甚至把窗口管理器运行的逻辑部分放到了配置文件里面。好处是这使得很多其他窗口管理器里面不可能做到的用法在这里变成了可能,坏处是配置文件及其庞大和复杂。 更新迅速 它的作者一直在不停地完善awesome,每次版本升级都能带来一些方便的新特性。不过弊端是造成了awesome的配置文件一直都在改变,说不定什么时候自己以前的配置文件就不能用了 多显示器支持 事实上我一直很羡慕官方网站上awesome运行在多显示器机器上面的截图,口水流了一地。 对于喜欢折腾自己电脑的人来说Awesome是一个很不错的玩具 不过Awesome所依赖的几个底层库还没有进入稳定版本,而awesome自身也在频繁的更改当中,因此在ubuntu源中的awesome还是老旧的2.4版 (不过ArchLinux源里面倒是有最新版的包) ,想要用awesome的ubuntu用户还是得自己编译才行。编译方法将在以后的文章里面

2012-11-30 · 1 min · 34 words · -