Linux 日常应用的一些小笔记

RT,都是自己日常使用Linux 桌面系统遇到的小问题,有空就写几条。

只是一个Linux 桌面用户的小笔记,对Linux 比较熟悉的可以略过了。


1. DE(例如Xfce4)提示“无法链接回收站”:装上gvfs,重启。


3. 禁用nouveau 驱动,把下列代码扔到「/etc/modprobe.d/BLACKLIST-nouveau.conf」。(解决方案来自Slackware 源中的/extra/xf86-video-nouveau-blacklist/)

blacklist nouveau


5. 两个目录映射为一个的目录:安装aufs,之后 :

# mount -t aufs -o dirs="/path/to/dir1/":"/path/to/dir2/" none "/where/to/mount/"

如果开机自动挂载,在/etc/fstab 中加入:

none /where/to/mount/ aufs dirs=/path/to/dir1/:/path/to/dir1/ 0 0

6. 双系统时间混乱:用UTC 时间然后hwclock 调整:

# ln -s /usr/share/zoneinfo/UTC /etc/localtime
# hwclock --systohc --localtime

8. xfce4-power-manager 设置无效/不工作:「/etc/systemd/logind.conf」中做如下设置用来给xfce4-power-manager 控制权。

HandlePowerKey=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore

9. Arch 装完系统后wifi-menu 无法启动:很多人都记得安装wpa_supplicant,可是忘了这货还需要dialog。


11. sudo 指令禁止/允许(有/无密码)执行特定目录的程序:使用逗号分割列表,加上前缀。例如用户ispeller 可以以密码执行「/usr/bin/」 下的程序,无密码执行「/usr/bin/hddtemp」,并且禁止执行「/usr/bin/fdisk」、「/usr/bin/cfdisk」 和「/usr/bin/systemctl」(只是示例,这样设置你会很蛋疼的)。则需要在「/etc/sudoers」 中如下设置:

ispeller ALL=(ALL) /usr/bin/*, NOPASSWD:/usr/bin/hddtemp, !/usr/bin/*fdisk, !/usr/bin/systemctl

12. 操作以短横线「-」开头的文件:Linux 程序默认提供「--」参数,表示该参数其后的参数均不是开关(例如command -- -file);也可以使用相对路径解决(例如command ./-file)。

13. Xorg 中快捷键Ctrl+Alt+Backspace 无法退出:如今的Xorg 已经默认禁止了这个组合键,在「/etc/X11/xorg.conf.d/10-evdev.conf」中设置以下内容:

Section "InputClass"
		Identifier "Keyboard Defaults"
		MatchIsKeyboard "yes"
		Option "XkbOptions"
		"terminate:ctrl_alt_bksp"
EndSection


15. 如何查看我的“开机时间”:systemd 用户执行「systemd-analyze time」,init 用户在「/etc/profile.d/」下扔一个调用uptime 脚本,结果写入「/tmp/」即可得到开机时间。如果想要在DE 启动之后像Windows 下的某些电脑卫士一样打印这个时间,那么在你的DE 启动脚本中加入一个脚本读取「systemd-analyze」的结果或者启动脚本写入「/tmp/」的结果,调用「notify-send」或者「xmessage」显示时间。之后在「/tmp/」中产生一个加锁文件,脚本每次检测下加锁文件是否存在。例如init 用户可以如此:

# show uptime  
# 这是在/etc/profile.d/ 下的脚本
/bin/cat /proc/uptime | awk '{print $1}' > /tmp/i_uptime.tmp 
#!/bin/sh  
# 这个脚本应该伴随X-Window 启动  
[ ! -f /tmp/i_uptime.tmp ] || [ -f /tmp/i_uptime.tmp.lock ] || /bin/cat /tmp/i_uptime.tmp | xargs -I {} notify-send -i clock "本次开机时间:{} 秒" && touch /tmp/i_uptime.tmp.lock 


17. 不加「./」执行当前目录下的文件:「~/.bashrc」中加入一行「PATH=$PATH:.」,这样可以安全地补全并执行当前目录下的文件了——也就是说有人在你的主目录下放了一个名为「sudo」的恶意脚本,你执行的仍然是「/usr/bin/sudo」而非「~/sudo」。


18. 提示“权限不够,从而无法创建/修改/复制到/删除文件,但是文件权限没问题:赋予文件所在目录写权限。


20. Linux 屏幕录像软件找不到/模糊/速度不正常:安装ffmpeg,运行(分辨率自己改):

ffmpeg -f alsa -i default -acodec ac3 -ac 2 -f x11grab -s 1366×768 -i $DISPLAY+0,0 -r 60 -qscale 0.01 output.mkv

21. 有的网站我再也不想访问了:编辑「/etc/host」文件,让域名解析成「0.0.0.0」,例如如果再也不想上贴吧了:

0.0.0.0         tieba.baidu.com


24. mkfs -t xx dev/sdx 无法成功格式化:mkfs 的参数是分区,首先cfdisk /dev/sdx 分区完毕,然后mkfs -t xx /dev/sdxN。


27. Arch/Gentoo 制定完系统后无法开X,Xorg 和桌面环境已经安装:检查是否安装xorg-xinit。


28. 安装输入法后,无法调出输入法/调出后无法输入:配置下该输入法的环境变量,例如你使用的是fcitx。

# echo -e 'export GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx\nexport XMODIFIERS="@im=fcitx" > /etc/profile.d/fcitx.sh 
# chmod 755 /etc/profile.d/fcitx.sh
之后重启系统,或者结束Xorg,切换到tty 下执行

$ source /etc/profile.d/fcitx.sh
$ startx


29. flash 插件手动安装后没反应:确认目录没扔错(特别是x86_64)的话,找到你的flash 插件,「chown root:root /path/to/flashLib」,「chmod 755 /path/to/flashLib」。


30. mplayer 不加载字幕/字幕乱码:GUI 前端都有设置,无前端的话按「j」打开/关闭字幕,乱码的话参数指定对应的编码例如「-subcp gbk」。


31. 文件名过长而且乱码,无法删除:直接删除inode:

$ ls -li        # 找到乱码文件的inode
$ find . -inum inodeNumber -exec rm -i {} \;


32. FAT32 分区格式,挂载后能写入但是无法执行:挂载指定umask 例如「-o umask=000」。


33. xfce4-terminal 中无法控制蜂鸣器:配置文件「~/.config/xfce4/terminal/terminalrc」中设置

MiscBell=TRUE


34. 触摸板无效:「/etc/X11/xorg.conf.d/10-evdev.conf」中如下设置

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "HorizScrollDelta"      "0"
        Option          "SHMConfig"             "on"
        Option          "TouchpadOff"           "0"
EndSection


35. 无法自由控制触摸板的打开/关闭:设置快捷键,「synclient touchpadoff=1 」绑定「关闭触摸板」功能,「synclient touchpadoff=1 」绑定「打开触摸板」功能。如果想用一个快捷键控制,那么绑定到下面的脚本(抱歉不会shell,Perl 凑合看吧),按一次切换一次打开/关闭状态:

synclient -l | perl -ne 's/touchpadoff.*?=.*?(\d)$/$1/i and /1/ ? qx/synclient touchpadoff=0/ : qx/synclient touchpadoff=1/;'

37. Smplayer 字幕过大/异常:字幕首选项里选择编码「Unicode(UTF-16)」,自动检测「汉语(zh)」,启用「FreeType 支持」并启用「SSA/ASS 字幕」。


38. Linux 下Gvim 菜单栏的中文不显示:查看你的系统locale 和vim 内部允许的locale「/usr/share/vim/vim74/lang」除了大小写外有无不一致,例如vim 允许存在「zh_cn.utf-8」但是系统locale 确是「zh_CN.utf8」。


39. ePDFView 中Unicode 字符无法显示:安装「poppler-data」包。



你可能感兴趣的:(GNU/Linux)