使用xrandr配置显示 - 内置显示设备和外接显示设备(投影仪等)
RandR(resize and rotate)是X11和Wayland的扩展协议,用于调整显示分辨率,屏幕旋转和扩展显示等特性。xrandr是官方的命令行配置程序,由freedesktop维护。
不带任何参数时,xrandr输出当前环境支持的显示模式:
1 | $ xrandr |
有+后缀的模式为最优化的模式,有*后缀的模式为当前的模式。
LVDS(Low-Voltage Differential Signaling)为LCD显示器的通用接口(信号传输模式)。
LVDS1即第一个LVDS接口的LCD显示设备。
VGA1为第一个VGA接口的显示设备(显示器/电视机/投影仪等)。
HDMI1为第一个HDMI接口的显示设备(显示器/电视机/投影仪等)。
DP1为第一个display port接口的显示设备(显示器/电视机/投影仪等)。
命令示例:
- 设置分辨率
1
$ xrandr -s 1600x900
- 打开外接HDMI显示设备,克隆LCD屏幕
1
$ xrandr --output HDMI1 --same-as LVDS1 --auto
- 打开外接HDMI显示设备,克隆LCD屏幕,设置显示模式
1
$ xrandr --output HDMI1 --same-as LVDS1 --mode 1600x900
- 打开外接HDMI接口显示设备,并设置为LCD的右侧扩展屏幕。鼠标会从LCD的右边缘进入HDMI设备的左边缘。
1
$ xrandr --output HDMI1 --right-of LVDS1 --auto
- 打开外接HDMI接口显示设备,并设置为LCD的左侧扩展屏幕。鼠标会从LCD的左边缘进入HDMI设备的右边缘。
1
$ xrandr --output HDMI1 --left-of LVDS1 --auto
- 打开外接HDMI显示设备,同时关闭LCD显示设备
1
$ xrandr --output HDMI1 --auto --output LVDS1 --off
- 关闭HDMI显示设备,同时打开LCD显示设备
1
$ xrandr --output HDMI1 --off --output LVDS1 --auto
- 关闭HDMI显示设备
1
$ xrandr --output HDMI1 --off
===
[erq]
Untitled Post - 103
u盘自动挂装后挂载到了/media/usb0,而不是通常的挂载点/media/user_name/volume_name,而且是以root权限挂载的,普通用户无法读写u盘。原来是/etc/fstab在作怪,使用u盘安装系统时,会自动在/etc/fstab中添加item,将u盘设备的分区挂载到了/media/usb0以及/media/usb1等目录下(如果有多个分区的话),而且是以root权限挂载的。删除相关的item后,重新插入U盘正常了。还有一个问题是,桌面环境下不要使用usbmount挂载U Disk。
Untitled Post - 102
访问控制列表ACL(Acess Control List)使用包过滤技术,在路由器、防火墙或交换机上读取第三层及第四层包头中的信息,如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。
GIT忽略已跟踪文件的修改
忽略未纳入版本管理的文件或文件夹
我们知道可以通过几种方法来配置git忽略对某些未跟踪文件的跟踪。
- .gitignore
版本库中的每个目录层级都可以有一个.gitignore文件,这个文件每一行保存了一个匹配的规则,如:.gitignore文件本身是纳入版本库管理的。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# build生成文件
build/
root/WEB-INF/classes/
*.class
# lib文件和meta文件
#root/WEB-INF/lib/
root/META-INF/
# vim交换文件
*.swp
# eclipse工程文件
#.classpath
#.project
#.settings/
# netbeans工程文件
#build.xml
#nbproject/
#gradle
.gradle
#python cache folder
__pycache__ - 全局ignore文件
可以为自己配置一个全局的ignore文件,位于任何版本库之外:其语法与.gitignore一样1
$ git config --global core.excludesfile ~/.gitignoreglobal
- exclude
git还提供了另一种exclude方法来排除文件。.gitignore用来保存的是公共的需要排除的文件,
而.git/info/exclude文件里设置的则是你自己本地需要排除的文件,他不会影响到其他人,也不会提交到版本库中去。
忽略已纳入版本管理的文件或文件夹
以上这些方法对于尚未被git跟踪管理的文件是有效的,如果想忽略已经被git纳入版本库管理的文件的修改,则需要另外的方法。
告诉git忽略对已经纳入版本管理的文件.classpath的修改,git会一直忽略此文件直到重新告诉git可以再次跟踪此文件
1 | $ git update-index --assume-unchanged .classpath |
告诉git恢复跟踪.classpath
1 | $ git update-index --no-assume-unchanged .classpath |
查看当前被忽略的、已经纳入版本库管理的文件:
1 | $ git ls-files -v grep -e "^\[hsmrck\]" |
References:
[1]在 git 中忽略文件 gitignore 与 exclude
===
[erq]
文件系统权限不足导致cassandra无法启动一例
集群中的某一node无法启动,nodetool status输出如下:
1 | error: No nodes present in the cluster. Has this node finished starting up? |
/var/log/cassandra/system.log有如下错误信息:
1 | ERROR \[MemtableFlushWriter:3\] 2015-03-23 18:26:37,996 CassandraDaemon.java:153 - Exception in thread Thread\[MemtableFlushWriter:3,5,main\] |
看错误信息为文件系统访问权限问题所致,查看/var/lib/cassandra/data/image,果然此目录的属主和组都成了root
1 | # chown -R cassandra:cassandra /var/lib/cassandra/data/image |
重新启动cassandra成功。
===
[erq]
debian jessie 源列表
1 | deb http://ftp.tw.debian.org/debian/ jessie main contrib non-free |
debian官方源是ftp.debian.org,美国镜像是ftp.us.debian.org,台湾官方镜像是ftp.tw.debian.org,中国官方源镜像是ftp.cn.debian.org
日本是jp,韩国是kr,…
===
[erq]
为apt-get设置代理服务器
- 使用配置文件
在全局配置文件中添加如下格式的代理:或者在apt-get 命令行指定参数文件的位置:1
2
3
4
5
6
7
8
9
10
11
12
13
14Acquire::http::Proxy "http://proxy_ip:8080";
Acquire::ftp::proxy "ftp://proxy_ip:8000/";
Acquire::https::proxy "https://proxy_ip:8000/";
Acquire::socks::proxy "socks://proxy_ip:proxy_port/";
# 如果ftp需要登陆
Acquire::ftp
{
Proxy "ftp://proxy_ip:2121/";
ProxyLogin
{
"USER $(SITE_USER)@$(SITE)";
"PASS $(SITE_PASS)";
}
}1
# apt-get -c ~/apt_proxy.conf update
- 命令行参数
1
2# apt-get -o Acquire::http::proxy="http://proxy_ip:proxy_port/" update
# apt-get -o Acquire::http::proxy="http://proxy_ip:proxy_port/" upgrade - 全局环境变量不过貌似apt-get不是用全局代理配置了?
1
$ export http_proxy=http://proxy_ip:proxy_port
===
[erq]
squid 3 最简配置
squid是老牌的代理服务器,支持代理多种网络协议,acl安全配置强大,但十分复杂。
如果简单的作为http代理,只需更改几个选项就可以了,其他默认。
安装
1 | # apt-get install squid3 |
编辑/etc/squid3/squid.conf
1 | # 配置一个需要访问squid的内网段 |
就可以了
更改默认代理端口:
1 | http_port 3128 # 改成想用的端口就可以了 |
===
[erq]