本文很杂,主要是记录自己配置Ubuntu的过程中遇到的问题及网上搜到的解决方法。部分内容是网上搜来的,部分内容是自己写的。
本文在逐渐添加内容,期间经历了多次Ubuntu版本的升级,因此,下面的每一个条目不一定适用于每一个Ubuntu版本。
【Ubuntu Desktop版】
➤ 从Windows转到Linux后,原来的FAT32、NTFS分区保留了下来,在Linux中,其卷标名怪怪的,例如我的一个NTFS分区卷标名就是类似于 40G 磁盘空间 之类的名字。这样用起来以后维护会很不方便,于是我打算把它们的卷标名改为一个字母,例如原来的NTFS分区是Windows下的D盘,那么我就把卷标名改为“d”,于是这就牵涉到了如何在Linux下更改Windows分区卷标名的问题,答案是网上的一篇文章(我修改、添加了一点内容):
修改Linux分区的卷标可以用 e2label,比如要把/dev/sda1 的卷标改为/boot,则可这样:$ e2label /dev/sda1 /boot
查看Linux分区文件系统卷标
$ e2label /dev/sda1
/boot
在Linux 中如何修改Windows分区的卷标呢?我们要用到两个工 具:
对于 VFAT 文件系统(FAT32格式的分区就是这个),可以使用来自 dosfstools 软件包的 dosfslabel;对于 NTFS 文件系统,可以使用来自 ntfsprogs 软件包的 ntfslabel。
用于VFAT分区,命令用法:
dosfslabel device [label]
例如,要修改vfat分区(FAT16,FAT32均可)卷标:
dosfslabel /dev/sda5 windows
要查看vfat分区卷标
dosfslabel /dev/sda5
用于NTFS分区,命令用法:
ntfslabel device [label]
例如,要修改NTFS分区卷标:
ntfslabel /dev/sda6 xp
要查看NTFS分区卷标:
ntfslabel /dev/sda6
输出:
xp
另外提示一下,要查看有哪些分区,可用命令:fdisk -l
➤ 开机自动挂载Windowns分区
修改 /etc/fstab 文件,在最后添加几行内容用以挂载Windows分区,注意要区分分区格式(FAT32,NTFS),并且要注意使原来Windows分区里的中文名文件不乱码,可以这样:
/dev/sda5 /mnt/d ntfs defaults,iocharset=utf8,umask=0222 0 0/dev/sda6 /mnt/e ntfs defaults,iocharset=utf8,umask=0222 0 0/dev/sda7 /mnt/f vfat defaults,codepage=936,iocharset=utf8 0 0
➤“无法获得排它锁”问题
如果提示这个错误,可以试试:
rm /var/cache/apt/archives/lockrm /var/lib/dpkg/lock
➤ 类似于Windows下的Total Commander的文件管理器
Linux下有很多选择,例如Krusader,muCommmander,GNOME Commander等。
Krusader是一个相当强大的“类TC”工具(基于KDE的),功能多多,喜欢大而全的功能的你一定不会失望(据网上的某些文章说,它可能是此类软件中功能最多的那个了)。安装:
sudo apt-get install krusader
使用Krusader时,有几个特别有用但是需要稍微配置一下才能work的地方:
a) 在当前目录下打开终端/terminal
按F2可以快速打开终端,并且已经cd到当前目录下了。但是你第一次使用Krusader时,按F2会弹出一个错误提示:
konsole --workdir %d!
其实,你只要安装了Konsole这个终端软件,就OK了:
sudo apt-get install konsole
但是这个Konsole终端软件可能和你平常用的Gnome Terminal不一样,终端里的默认配色不同(当然你可以改成一样的)。假设你用惯了Gnome Terminal的话,你可以把Krusader的F2键调用的程序改为Gnome Terminal:
在 设置→配置Krusader→常规 中,“终端”文本框里的“konsole --workdir %d”改为:
gnome-terminal --working-directory %d
然后再按F2键试试?马上会调出熟悉的Gnome Terminal了。
➤ 无法升级软件包,发现代理服务器莫名地被设置了:
“系统”→“系统管理器”→“更新管理器”来升级Ubuntu的软件包,结果输出一堆错误,一看,都是“不能连接到192.168.XXX.XXX ……”这样的错误,分明是设置了代理服务器,却又无法连接代理服务器造成的。
用export命令一查看,竟然发现输出内容里有类似于下面的环境变量设置:
declare -x http_proxy="http://192.168.XXX.XXX:8080/"
回想起来可能是浏览器在打开的时候设置了代理,就自动修改了这玩意,自己却没有注意到,于是产生了此问题。
这个时候,你可以手动删除这个环境变量:
unset http_proxy
然后注销,重新登录后再用export命令看一下,刚才的环境变量是不是没了?问题解决。
补充:如果要在命令行设置socks5代理,可以用类似于下面的命令:
export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080
或者干脆设置所有代理:
export ALL_PROXY=socks5://127.0.0.1:1080
➤ 向Chrome导入自定义的证书
sudo apt-get install libnss3-tools
然后再导入证书(这里假设证书CA.crt位于/usr/local/xxx/CA.crt)
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n MyCerName -i '/usr/local/xxx/CA.crt'
➤ 安装KeePass
KeePass是一款超牛的跨平台的(目前已经支持包括各大移动平台在内的N个操作系统)开源密码管理软件,不仅免费,而且安全性超强,它绝对是目前世界上最优秀的软件之一。你只需要记住一个管理密码,就可以不用去背你所有帐号的密码了。安装KeePass很简单:
sudo apt-get install keepass2
然后,你就只需要在里面新建一个用于保存密码的文件(如果你是刚开始用的话),或者把你在其他平台(例如Windows)上的KeePass里的那个密码文件复制到Ubuntu里,然后在KeepPass中打开就可以了。
还有一个工作:让软件显示中文界面。到KeePass官网下载2.x版本的Simplified Chinese语言文件(是个zip压缩包),然后解压出来一个文件SimplifiedChinese.lngx,把它放到你的用户根目录下(例如/home/abc/)的 .local/share/KeePass 子目录下(注意最后一级的 KeePass 目录如果不存在的话,就自己手工创建),再重新打开KeePass软件,即可在"View"-"Change Language“菜单里看到中文的选项了。
不过,就算你安装了中文语言包,有可能发现界面文字还是乱码的(太痛苦了,我就遇到了这样的情况)。有一种说法是把KeePass中的字体设置成支持中文的字体,有可能能解决乱码问题(我的没解决),如果解决不了,可以试试下面的方法,我通过这种方法解决了乱码的问题:将一个字体配置文件的软链接删除(此处是重命名,和删除是一样的效果):
sudo mv /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak
然后,打开KeePass,会发现界面文字已经神奇地不乱码了!
但是别高兴得太早!如果你的密码库文件是从别的地方拷贝过来,在Ubuntu上打开的,并且里面的密码项目也含有中文,那么这里面的中文还是乱码的,就算KeePass的界面变成了中文也没用。这时,你需要在KeePass的“工具”-“选项”-“外观”(Interface)中,“选择列表字体“和”选择密码字体“里,都选择一个支持中文的字体(例如我选择的是“文泉驿等宽微米黑”),保存设置之后,就发现乱码问题彻底解决了!
2017.09.30更新:
发现一个新问题,在Ubuntu 16.04 LTS系统下,上面所说的“选择密码字体”(Select Password Font)按钮是灰色的,不可点击,在这种情况下,密码对话框里的中文仍然是乱码的,这时你可以在“工具”-“选项”-“外观”(Interface)中,把“强制使用系统字体(仅Unix下)”选项前的勾去掉,再重新打开Keepass,就会看到中文已经可以正常显示了。
文章来源:http://www.codelast.com/
➤ 自己指定登录服务器使用的私钥文件
如果你是从Windows下拷贝来的私钥文件Identity,想在Ubuntu上用于登录其他的服务器,那么,需要做以下几件事情:
cdmkdir .sshchmod 700 .sshcd .sshcp your_identity_file ./identitychmod 600 identity
如果在你的用户的home目录下已经有.ssh目录了,那么你就不需要mkdir了,后面有几个命令是用于保证目录和文件的权限正确。
然后修改系统文件 /etc/ssh/ssh_config,找到下面这句话,把它的注释取消掉(即去掉#号):
# IdentityFile ~/.ssh/identity
这样就可以通过私钥来ssh登录远程服务器啦。如果你不注释掉这句话,那么ssh连接服务器的时候,会失败并提示“Permission denied (publickey).”
但是,如果你输入是以下命令:
ssh abc.server.com
那么,它会默认用你当前用户名来登录,如果你登录的用户名不是你当前用户名,你就要自己指定了:
ssh codelast@abc.server.com
但是这样不是很烦吗?每次都要输入一个同样的用户名,累死了。其实可以在ssh_config配置文件中指定一个默认的用户名,修改 /etc/ssh/ssh_config 文件,添加下面这行:
User codelast
这样就会默认以 codelast 用户来登录了。
文章来源:http://www.codelast.com/
➤ 安装极点五笔
Windows下的极点五笔堪称最好的五笔输入法之一。在Ubuntu下没有它怎么行?
sudo wget http://www.unicom-china.com/download/vissible-ibus.tar.gztar -zxf vissible-ibus.tar.gzsudo cp vissible.db /usr/share/ibus-table/tablessudo cp vissible.gif /usr/share/ibus-table/icons
然后点击任务栏右上方的键盘图标→点击“重新启动”→稍等片刻之后再点击键盘图标→点击“首选项”→点击“输入法”选项卡→点击“选择输入法”→选择“汉语”下的“极点五笔”→点击“添加”按钮。最后再点击“向上”,把添加的极点五笔输入法移动到最上方,就大功告成了。
➤ 在Ubuntu下的极点五笔里添加自定义词
先在任意一个文本编辑器里输入要添加的词(不要输入任何其他多余的字),然后按 Ctrl+8 快捷键,就会弹出极点五笔的添加新词提示框,回车确定即可把该词添加到极点五笔的词库。
➤ 磁盘管理工具
推荐安装GParted,有图形化界面,非常强大:
sudo apt-get install gparted
➤ 图形化的diff工具(用来代替diff极好)
sudo apt-get install meld
文章来源:http://www.codelast.com/
➤ 打开IBus配置界面 & IBus图标在桌面右上角不显示的解决办法
直接用下面的命令:
ibus-setup
如果看到是下面的错误:
File "/usr/share/ibus/setup/main.py", line 443except Exception, e:^SyntaxError: invalid syntax
那么有可能是你系统上的Python版本不对导致的。例如我把 /usr/bin/python 指向了我自己安装的Python 3.3,导致了上面的错误,恢复到Python 2.7之后,就解决了问题。
当任务栏里的IBus图标丢失时,你可以通过重启IBus来找回:
sudo killall ibus-daemonsudo ibus-daemon -dibus-setup
这时会弹出一个对话框,大致意思是说,IBus尚未启动,你是否要启动它,选择Yes即可。
文章来源:http://www.codelast.com/
➤ 安装STIX字体
STIX字体对MathJax非常有用,在Ubuntu上安装它只要一条命令就可以搞定:
sudo apt-get install fonts-stix
➤ 让Ubuntu的文件浏览器显示地址栏
直接按Ctrl+L即可显示。
➤ Ubuntu下的极点五笔突然只能输入单字(进入了单字模式)的问题
这个问题,是因为极点五笔有单字输入模式,而你不小心按了你不知道的快捷键,导致进入了单字模式。你能想像进入了单字模式却又不知道为什么也找不到原因并且重启也没用之后有多恶心吗?我就被恶心了一把,后来自己试出来了解决办法:按 Ctrl+, 组合键,就可以切换到正常的词组输入模式了!
文章来源:http://www.codelast.com/
➤ Ubuntu 12.10安装libcurl开发包
sudo apt-get install libcurl3sudo apt-get install libcurl4-openssl-dev
➤ 终端(terminal)下,命令前不显示完整路径,而只是显示当前所在的目录名
当你cd到一个很深的目录时,例如 /home/codelast/my-code/test/1/ ,那么,如果在terminal中显示的是完整路径,例如:
codelast@localhost:~/my-code/test/1/$
这样就会很难看,有时甚至这个长长的路径会把屏幕的一行都占完(反正我是无法忍受),所以我要改成只显示当前目录名,方法是编辑当前用户根目录下的 .bashrc 文件,找到以下代码:
也就是说把PS那一行改掉(这里我是注释掉了原来的代码,并没有删掉)。然后再打开新的terminal面板,cd到相同的目录下,发现会变成这样了:
[codelast@ 1]$
这样多简洁!
➤ 在 快速启动列表/快速启动器/Dash主页 中添加一个自定义程序的书法
Ubuntu左上角有一个快速启动器(Dash主页),如果你没有更改过它的快捷键的话,那么就是Alt键激活它,如果我们自己安装了一个程序后,这个程序在Dash主页中没有,那么你可以手动添加上。以我添加Sublime这个程序的快捷启动为例:
cd /usr/share/applicationssudo vim Sublime.desktop
其中,Sublime.desktop文件是新建的文件,里面的内容用于配置启动程序的信息,该文件名应该是 xxx.desktop 的形式,xxx你可以自定。
然后在文件里填上:
Version=1.0Name=Sublime TextExec=/usr/bin/sublimeTerminal=falseIcon=/opt/sublime/Icon/128x128/sublime_text.pngType=ApplicationCategories=Development
其中,Name项显示的是Dash主页中显示的程序名,Exec项填的是启动程序的路径,Icon项填的是程序图标路径,它将显示在Dash主页中。
添加好后就OK了。
➤ 删除自己添加过的软件源
如果你添加过PPA(Personal Package Archives for Ubuntu),那么如果它失效了,你再使用Ubuntu的“软件更新器”来检查软件更新的时候,可能会看到PPA无法访问相关的错误提示,这个时候你需要把它们删掉。方法很简单,进入目录 /etc/apt/sources.list.d/,把对应的文件删掉就可以了。
➤ VirtualBox中的虚拟机设置成有独立IP地址
在虚拟机的“网络”设置界面中,“连接方式”选择“桥接网卡”,“混杂模式”选择“全部允许”(其他的行不行我没有试),然后重启虚拟机即可使虚拟机有独立的IP地址(不同于host IP)。
➤ 如何将旧机器上的Thunderbird配置及数据恢复到新机器上
要知道,配置Thunderbird也是件麻烦的事情,更何况Thunderbird要把无数的邮件同步到本地,这些数据也是很大的,如果你在新机器上刚安装好Thunderbird,毫无疑问应该把旧机器上的配置及数据同步过来。方法是:将旧机器上的 ~/.thunderbird 目录下的“profiles.ini”文件以及一个名字很怪的目录(例如“y88yf66x.default”)拷贝到你新机器上的相同目录下,重启Thunderbird即可。
➤ Ubuntu下好用的视频编辑软件
要数Linux下的视频编辑软件,那是相当地多,例如Avidemux,OpenShot,等等。
我就装了上面两个:
sudo apt-get install avidemuxsudo apt-get install openshot libavformat-extra-53
其中,libavformat-extra-53是OpenShot软件在将视频保存为MP4(h.264)格式时依赖的软件包,所以要安装(除非你不把视频导出为这种格式)。
我只试用了其中一个——OpenShot,具体教程请看这里。
➤ 安装ssh server,使得别的服务器可以ssh连接本机
Ubuntu默认安装后是不能从别的服务器ssh连接的,因为少一些东西:
sudo apt-get install openssh-serversudo /etc/init.d/ssh restart
➤ 隐藏iBus的输入条(property panel/属性面板)
➤ 配置Ubuntu开机自动连接蓝牙鼠标
Ubuntu连接蓝牙鼠标非常简单,难的是这货竟然没有一个图形化的界面可以让你勾选一下(或者干脆默认)就可以开机自动连接蓝牙鼠标,你见过谁开机之后鼠标竟然不能连接,还要通过其他的操作才能让鼠标“活”过来的么?这种事情就别提有多恶心了...
相比之下,Windows这种满天下都是的系统就没这个问题,唉,一声叹息,很多设备都不考虑Linux用户的感受啊...
这里就说一下让Ubuntu开机自动连接蓝牙鼠标的方法。
首先,可以用另一个非蓝牙鼠标辅助一下,让你的蓝牙鼠标连接上Ubuntu一次,并在鼠标设置界面中记下它的蓝牙设备地址。
安装几个软件:
sudo apt-get install bluez-utils bluez-compat
修改文件,开机执行几个命令:
sudo vi /etc/rc.local
在最后一行“exit 0”之前添加几行:
/usr/bin/hidd --server/usr/bin/connect-bluetooth-mouse.sh
这里有一个我自己写的脚本 connect-bluetooth-mouse.sh,用于连接蓝牙鼠标,内容如下:
#!/bin/bashwhile truedo# connect to the Bluetooth mouse/usr/bin/hidd --connect 0A:2E:30:10:50:02if [ $? -eq 0 ]; thenbreakfidone
基本上就是循环不断地去尝试连接鼠标,注意,里面的 0A:2E:30:10:50:02 是我的蓝牙鼠标地址,你需要修改成你的。
这样设置之后,重启系统,经过我的测试,还是有缺陷的,在于:鼠标有可能会进入休眠状态(不同品牌、型号的鼠标表现可能不同),此时,尽管Ubuntu执行了开机连接蓝牙鼠标的动作,但是却由于鼠标休眠了而连不上,导致最终进了系统还是连不上(不知道为什么,脚本是在连接失败的情况下无限循环执行的也不行)。所以,你需要做的是,在开机的过程中,不断地按鼠标上的“connect”键(一般都有这个键),或者不断地开、关鼠标的电源,让鼠标进入活跃的状态,这时Ubuntu就可以和它连接成功了。我连试了几次都OK。
虽然这个方法还是有点挫,不过终于可以不用在进系统之后再执行其他命令来辅助连接鼠标了!
最后,大家可以参考一下这个链接。
➤ Ubuntu下很好用的视频格式转换软件
不用多说,安装HandBrake吧:
sudo apt-get install handbrake
➤ Ubuntu下的epub格式(电子书)阅读软件
Calibre是个不错的选择:
sudo apt-get install calibre calibre-bin
➤ Vim语法高亮
如果安装好Vim后,发现它对代码文件没有语法高亮(例如,shell脚本),那么可以用下面这个简单的方法来打开语法高亮:
编辑 ~/.vimrc 文件,在里面填上下面的内容:
if &t_Co > 1syntax enableendif
然后再用Vim打开一个代码文件,就发现已经有语法高亮功能了。
➤ launcher项的保存位置
Ubuntu的启动项(desktop entry)是以文件的形式存储在磁盘上的,具体位置就是:
仅对当前用户有效的:
~/.local/share/applications
对所有用户都有效的:
/usr/share/applications/
➤ Ubuntu下好用的看图软件
sudo apt-get install gwenview
2018.01.01更新:
在Ubuntu 16.04.3 系统下,如果使用Gwenview时,发现无法用上下左右键切换浏览同一目录下的图片,并且在Gwenview主界面里选择本地磁盘浏览时提示“URL cannot be listed”(就像是本地磁盘路径不存在一样),那么这个应该是Gwenview的bug,此时你可以通过一个workaround来解决此问题:
sudo apt-get install kinit kio kio-extras kded5 kinfocenter
我的PC上实测OK。
➤ Ubuntu下新创建的用户无法登录图形界面的问题
在Ubuntu下用useradd新建了一个用户,并设置了该用户的密码,然后切换用户登录,发现在密码输对的情况下,一回车,屏幕只是闪了一下,又回到了登录界面——根本登录不进去。
问了Google,原来是这样创建的用户没有在/home/目录下创建对应的目录,因此无法登录。
应该使用adduser命令并跟随其向导来创建用户,这样就OK了。
➤ Ubuntu下的极点五笔切换中英文标点的快捷键
Ctrl+.
➤ Ubuntu上安装scikit-learn
安装依赖:
sudo apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev libatlas3-base
安装scikit-learn(前提是你已经安装过了pip):
sudo pip2 install -U scikit-learn
➤ VIM配置实时搜索/即时搜索
默认情况下,在VIM中搜索一个字符串时,要按回车后才开始搜索,我感觉这没有Emacs默认的“实时搜索”好用,所以,可以对VIM配置一下,让它在输入字符串的同时就开始搜索匹配上的部分。
Ubuntu下,个人用户的home目录下可能没有.vimrc配置文件,那么可以修改系统级的配置文件/etc/vim/vimrc,在里面添加上这几行内容:
"实时搜索set incsearch"搜索高亮显示set hlsearch"如果输入小写字母搜索,不区分大小写;输入大写字母则只按大写搜索set ignorecase smartcase
➤ Ubuntu 18.04 的文件浏览器在输入文件名时禁用文件搜索功能
Ubuntu 的文件浏览器提供了一个搜索的功能,叫做"Type Ahead search",即我们在文件浏览器中输入某个文件的名字时,文件浏览器并不是将焦点定位在某个文件上,而是会进入搜索模式。如果希望使用旧版本的方式定位文件,只要安装一个叫做 nautilus 的软件就可以了。
sudo add-apt-repository ppa:lubomir-brindza/nautilus-typeaheadsudo apt full-upgradenautilus -q
➤ 如何在Ubuntu上创建“Cisco AnyConnect兼容的VPN”
Ubuntu系统默认不支持,你必须要安装对应的VPN客户端软件。最方便的就是安装OpenConnect这个开源软件:
sudo apt-get install network-manager-openconnect-gnome
安装完之后,在Ubuntu系统的创建VPN连接的页面中,你就会看到有一个“Cisco AnyConnect 兼容的 VPN(openconnect)”选项了。
➤ Ubuntu下的VirtualBox虚拟机(WinXP)无法添加识别USB设备的问题
一个可能的原因是:你需要把当前用户(运行VirtualBox的用户)添加到 vboxusers 用户组中,默认情况下当前用户不在这个用户组里,VirtualBox没有访问USB设备的权限。
把当前用户(codelast)添加到用户组 vboxusers 中的命令:
sudo usermod -a -G vboxusers codelast
➤ 安装Dropbox(Ubuntu 16.04.3 LTS)
从Dropbox网站下载了Ubuntu的deb安装包并且安装了之后,其实并没有真正装好Dropbox,因为它实际上是一个在线安装包,还需要从Dropbox的网站上下载完整的Dropbox应用程序,而由于众所周知的原因,在中国大陆地区内是无法访问Dropbox网站的,所以安装过程必然无法进行下去。为了解决这个问题,你可以直接用系统连接一个可用的国外VPN,或者用下面的这种方法(通过一个代理程序来启动Dropbox安装程序)来解决:
安装代理软件:
sudo apt install proxychains
修改其配置:
sudo vim /etc/proxychains.conf
把最后一行(socks4 ...)改成:
socks5 127.0.0.1 1080
其中这个代理是你本地的一个socks5代理,自己要先搭好。
然后就可以用下面的方式来启动Dropbox,就会发现它可以毫无问题地下载Dropbox程序并完成整个安装过程了:
proxychains dropbox start -i
如果你嫌这种方式太麻烦,你也可以在浏览器开代理的时候直接下载完整的Dropbox安装包,然后再安装,就没有上面所说的在线下载过程了。Dropbox原下载网址是:https://www.dropbox.com/downloading,你只需要改成:https://www.dropbox.com/downloading?plat=mac&full=1,就可以下载到for MAC OS的完整安装包。同理,如果是Windows,则 plat=win,依此类推。
➤ 修改Ubuntu的 /etc/resolv.conf 文件,重启系统后修改丢失的问题
正确的做法是:不要直接修改这个文件(正如该文件里的注释写的一样:“DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN”),而是应该用下面的方法来实现对 /etc/resolv.conf 的修改:
创建一个新文件 /etc/resolvconf/resolv.conf.d/tail,在里面写上你自定义的域名映射规则,例如:
abc.codelast.com 192.168.1.2
然后重启服务:
sudo /etc/init.d/resolvconf restart
现在你再去看一下/etc/resolv.conf 文件,就会发现它的内容已经神奇地改好了。当然也还有其他的办法可以实现同等效果,不过这种方法最简单。
➤ 下载完整的DropBox安装包
从官网下载的安装包,默认是一个不完整的联网安装包,如果要下载完整的安装包(安装的时候就不需要联网下载额外数据了),那么可以在原下载链接后面加上“?src=index&full=1”,类似于:
https://www.dropbox.com/downloading?src=index&full=1
这样下载下来的就是一个相当大的DropBox完整安装包了。
➤ 在Gnome Terminal(Ubuntu自带的终端软件)中编辑一个文本文件时,双击鼠标选中一个路径
举例,在文件中有这样一句代码:
OUTPUT_DIR_HDFS=/user/codelast/export/$DATE
在默认情况下,双击“/user/codelast/export”文字这一块地方,会导致选中“OUTPUT_DIR_HDFS=/user/codelast/export”这段文字,而不是单独选中“/user/codelast/export”这一段文字。
如果要配置成双击选中“/user/codelast/export”这一段文字,需要配置终端的文字分隔符,在Ubuntu 18.04中只能通过命令行来配置,方法如下:
1、在Gnome Terminal软件的“终端”->“首选项”中找到你当前使用的“配置文件ID”,默认配置文件ID是:b1dcc9dd-5262-4d8d-a863-c897e6d979b9
2、测试以下命令:
dconf list /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
其中,最后那一段就是你的配置文件ID。正常情况下应该会输出如下内容:
foreground-colorvisible-namepaletteword-char-exceptionsuse-system-fontuse-theme-colorsuse-theme-transparencyfontbackground-coloraudible-bell
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/word-char-exceptions '@ms "-,.;/?%&#_+@~·:"'
最后单引号包起来的字符串,就是设置的文字分隔符。里面没有等号(=),因此,在双击前面例子中的文本时,就会把等号前后认为是两个不同的文字段,因此就能单独选中“/user/codelast/export”文字。
文章来源:https://www.codelast.com/
➤ 更新 .desktop 配置
在Ubuntu系统以及其他使用Desktop Environment(桌面环境)的Linux发行版中,.desktop文件是用来定义应用程序的启动方式和属性的配置文件。
.desktop文件遵循一个特定的格式,这个格式定义了应用程序的各种信息,比如名称、图标、命令行、是否可从菜单启动等。这些信息使得用户可以通过桌面环境中的菜单系统启动应用程序,并且帮助桌面环境管理和显示这些应用程序的图标和详情。
假设新创建了一个配置文件 /home/codelast/.local/share/applications/qalculate-gtk.desktop,怎样可以在不重启系统的情况下,让它立即生效,从而可以在按下键盘的“Win”键时(即Dash界面)搜索到该程序?
方法很简单:用非root用户执行以下命令即可:
update-desktop-database ~/.local/share/applications/
文章来源:https://www.codelast.com/
➤ 从MacOS上copy到Ubuntu的JAVA项目,里面带有很多"._"前缀的文件,导致在Ubuntu系统上的IntelliJ idea里运行UT时无法识别这些文件从而报错,怎么办?
首先,这种"._"前缀的文件(例如 ._MyClass.java)是MacOS的特有产物,它们的产生原因是:
这些 "." 前缀的文件通常是由于 macOS 系统下的 HFS+ 或 APFS 文件系统特性产生的。在 macOS 中,当你在 Finder 中保存某些文件或文件夹时,系统可能会创建一个隐藏的资源 fork,用于存储文件的元数据,如图标、注释和其他属性。而在非 Mac 的文件系统上(比如你在其他操作系统上查看你的项目,或者通过版本控制系统共享你的项目),这些资源 fork 会被表示为 "." 前缀的文件。
它们不仅会让UT运行不了,而且当你在项目目录下执行诸如 git log 之类的命令时,还会产生类似于这样的海量报错:
error: index file .git/objects/pack/._pack-bc5c39bd4bxxxxxxxxxxxxx.idx is too small
虽然MacOS认把那些文件设计成一种有用的东西,但当我在各系统间copy文件时,它们只让我觉得垃圾和恶心。
解决办法:copy到Ubuntu系统之后,在目录下用一个命令把它们全部删除:
find . -type f -name '._*' -delete
这样就把垃圾清除掉了。
文章来源:https://www.codelast.com/
➤ To be added...
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):