更新时间: 2018-12-12
Linux Usage
缘起:最近将系统更换为Linux,虽然之前有用过,但只是当作尝试,未当为主系统,这次下定决心以它为主系统,懒得去纠结使用win的一种不道德感及不爽感,游戏及娱乐与人与己无益,放弃
https://mirrors.tuna.tsinghua.edu.cn/linuxmint-cd/stable/19/linuxmint-19-cinnamon-64bit-v2.iso
2018-12-12 安装19.1 beta版
- https://mirrors.tuna.tsinghua.edu.cn/linuxmint-cd/testing/linuxmint-19.1-cinnamon-64bit-beta.iso
- 先备份
environment
fstab
40_custom
hostname
文件 - 参照之前的
menuentry 'Mint Live CD'
写法,将iso中文件解压到指定分区根目录 - 进 slax 备份根分区
tar czvfp root19.tgz ./
- 然后进 live cd ,然后安装系统,装好后,可以修改新的root分区里面
environment
fstab
40_custom
内容 - 进系统,卸载office及其他用不着的软件,更换更新源以提速,然后安装需要的软件
- 任务栏变化很大,
win+数字
可以启动任务栏上的图标了,但不能修改每个图标的启动命令及参数了 - 在
~/.local/share/applications/
目录下创建xxx.desktop
文件(该文件可以在桌面右键新建启动器创建),可以在菜单的其他分类中显示,然后可以添加到任务栏了,变相解决了上面的问题 - 一直都希望在nemo中有
解压到指定文件夹
的菜单,今天搜索发现如下骚操作,在~/.local/share/nemo/actions/
下创建extracto.nemo_action
文件,内容如下:
[Nemo Action]
Active=true
Name=fox解压到...
Comment=Extract To
Exec=file-roller -f %F
Icon-Name=extract-archive-symbolic
Selection=Any
Extensions=zip;7z;rar;ar;cbz;cpio;exe;iso;jar;tar;tgz;tbz2;apk;tar.Z;tar.bz2;tar.gz;tar.lz;tar.lzma;tar.xz;
- 然后在压缩文件上点右键,就有
fox解压到...
菜单了,66666
2018-12-06 root分区不够,重新分区
- root分区不够用了(已用11G,共12G),需增大,不知道怎么无损调整(DiskGenius貌似只能处理fat32/ntfs)
- 老办法,tar备份根分区及home分区,pe下备份win分区,预计将120G的SSD分为3个主分区,依次为18G的/分区,20G的win,73G的/home
- 备份使用
tar cvfp /a/b/xxx.tar ./*
,恢复使用tar xvfp /a/b/xxx.tar
,如果要压缩加z - 恢复后进slax,挂载各新分区,使用
lsblkid /dev/sdax
这样的命令列出分区的UUID,要用这个替换fstab和grub.cfg中旧的UUID - 搜索学会一个新技能,使用grub2引导bootmgr或grldr
- 有时候从grub2引导grldr,然后引导PE.iso到内存,会间歇性出现黑屏,蓝屏现象,使用U盘直接引导反而没有这种现象,原因不明,多重启几次,总会可以的
- 使用0.4.6a版的grldr引导
kernel /boot/grub/i386-pc/core.img
进入mint系统,需要grub-install /dev/sda
,修改好菜单后update-grub
2018-07-01 升级到19版,基于 ubuntu bionic
- 升级时碰到找不到媒介的问题,翻了搜索引擎没靠谱的,结果换了个U盘做启动盘就好了,用的工具是livecd自带的
- 研究了一下init脚本,发现只要在grub2引导时在kernel参数加入
live-media=/dev/sda1
这样的参数就能找到squashfs文件了,测试了一下ext4,ntfs分区都可以引导,这样以后升级就可以将iso里面的东西拷到硬盘跟分区,然后修改一下grub参数就可以了,U盘都省了,速度还快,哈哈哈
- 研究了一下init脚本,发现只要在grub2引导时在kernel参数加入
- 升级前备份好了资料,突发奇想,不格式化,直接在18.3上装行不行呢,结果试了下,还真可以,它会自动删除bin,etc,usr,lib等目录,其他自己建的目录还有home目录都保留了,不知道有无后遗症,有强迫症的可以格式化后安装
- 装好后,由于自己装的一些软件没有安装,所以任务栏上会提示问题,装好就行
- 新版,导致一些旧软件不兼容,例如: guake, eclipse(ADT), synergy
- 感谢提示:
2018-11-22 so2liu: 你之前遇到的那个Guake的exit卡死,我也遇到了,查了一下,貌似是代码有一行的缩进写错了。看这个帖子既可以成功解决. https://github.com/Guake/guake/commit/f8699b4be6c058fd58a33a1d783cd404e9076b0e
- 使用旧版wps, vbox安装包的需要到论坛或官网下载新版或基于 bionic 的版本,然后dpkg -i安装,有问题按照apt的提示fix
- 使用tilda替换guake, guake在这个系统上输入exit,会导致卡死无法退出,原因未知
- 测试后确认是openjdk版本(10.0.1)的问题,eclipse启动错误,不用卸载11(这个版本号也很迷啊),安装8,然后
sudo apt install ia32-libs
,使用脚本来使用8版的环境就可以愉快的用旧版adt了,用AS的那天是哪天呢,哈哈 - synergy貌似依赖libcurl3,系统里面的是libcurl4,启动时老提示错误,貌似是ssl错误,把配置里面的使用ssl加密的勾去掉貌似就可以愉快的玩耍了
- 修改fstab,注释掉swapfile那行,添加/dev/shm大小为6G
tmpfs /dev/shm tmpfs defaults,size=6G 0 0
2018-05-24 重新分区
- 鉴于win系统用得越来越少,linux只有一个根分区,这样是不好滴,于是将120G的SSD重新分区
- 先备份所有文件到机械硬盘上,用的是
tar cvf xxx.tar /xxx/xxx
,因为只对这个参数熟,对p参数不熟,不知道后面会不会出问题 - 备份好,然后进入slax,然后重新分区,三个主分区,分别是20G_root,10G_OSWIN,82G_home
- 恢复用
tar xvf xxx.tar -C /xxx/xxx
- 使用
blkid /dev/sda1
获取新的root分区的uuid,写入/etc/fstab
,内容UUID=d9476b4c-5d23-4d68-9d6a-c7fa4883b725 /home ext4 defaults,noatime 0 2
- 然后重启后,发现木有引导了,蛋疼,用U盘进入slax,然后
apt install grub2
安装grub到sda1上,重启后发现引导不进去 - 搜索得到操作方式,https://www.jianshu.com/p/e9de786563ad
mount /dev/sda1 /mnt
mount /dev/sda3 /mnt/home
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/syschroot /mnt /bin/bash
grub-install --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg# 这里有时候会有错误,exit,然后重新mount --bind 缺失的目录,然后重新grub-mkconfig
# 重启后正常进入,话说grub2的修复在没更换uuid的情况下还挺智能,像我这样折腾的,grub2就不怎么友好了,怀恋grub4dos
- Linux的优点就是只要复制文件,就算是备份系统了,win则不行,不过linux的引导修复搞得人很蛋疼
- 之前用的grub4dos版本是
0.4.5c 2013-11-30
,发现ext4分区无法识别,升级为0.4.6a 2018-04-23
就行了 - 使用grub4dos就不需要进入livecdx64了,直接
kernel /boot/vmlinuz-xxxxx root=/dev/sda1
和initrd /boot/initrd-xxxxx
进入原系统,然后grub-install --boot-directory=/ /dev/sda
和update-grub
就搞定了,当然前提是fstab里面的uuid是修改好的,grub2真心用不习惯啊
2018-04-09 更新: 7-zip 增量备份
- 缘起: 需要在win/linux之间同步FoxMail目录,需要一个差异备份工具,考察文件名中文问题以及简单效率问题,最终找到了7-zip,它不会出现中文名乱码问题,是个很好的传递格式
- 参考文章: http://a32.me/2010/08/7zip-differential-backup-linux-windows/
- 问题: 7zip 的 chm 帮助文档中提到,时区会造成差异备份,实际体验,在linux下生成的7z文件,在win下解压不修改文件,还是会做备份,linux貌似用的UTC,win用的local,注意这个问题
- 完整备份:
7za a c:\archive.7z c:\folder_to_archive
- 备份差异:
7za u c:\archive.7z c:\folder_to_archive -ms=off -mx=9 -t7z -u- -up0q3r2x2y2z0w2!c:\diff1.7z
- 解压:
7za.exe x c:\archive.7z -oc:\recovery_path\
- 解压差异:
7za.exe x c:\archive.7z -aoa -y -oc:\recovery_path\
2018-01-19 更新
- 一个中文目录,中文文件名的压缩文件解压乱码,使用: unzip -O GB18030 cn_name.zip
2018-01-17 更新
- 移除楷体,注销后生效
sudo apt remove fonts-arphic-ukai fonts-arphic-uming
- 文本编辑器GBK乱码: 安装
dconf-tools
, 展开:org.x.editor.preferences.encodings
auto-detected 加入GB18030 - meld GBK乱码: 展开:
org.gnome.meld
detect-encodings 加入gb18030 - 在本地8080端口访问服务器路由器,本地执行:
ssh -L 8080:192.168.1.1:80 root@10.1.1.1
- 参考: http://linux-wiki.cn/wiki/SSH%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E9%9A%A7%E9%81%93%EF%BC%89
2018-01-12 更新
- 升级kernel: 4.13.0-26-generic 后,启动vbox虚拟机会导致系统死机,搜索后找到这个地址
- https://askubuntu.com/questions/994315/virtualbox-crash-on-kernel-4-13-0-26/994653
卸载旧版的vbox,然后在vbox官网上下载5.2版,安装过程中有一些错误,dkms,vboxconfig 等解除错误,终于能用了,不容易啊
- 删除旧的用不着的内核:
- 查看:
dpkg --get-selections | grep linux
- 移除两个旧的,4.10.0-42这个版本先留着,避免新内核还有其他问题:
sudo apt-get remove linux-image-4.10.0-38-generic
sudo apt-get remove linux-headers-4.10.0-38
sudo apt-get remove linux-image-4.10.0-40-generic
sudo apt-get remove linux-headers-4.10.0-40
- 查看:
2017-11-23 : 升级为18.3版
https://mirrors.tuna.tsinghua.edu.cn/linuxmint-cd/stable/18.3/linuxmint-18.3-cinnamon-64bit.iso
备份旧系统,装新系统,还原/home,因为只有一个ext4区也就是根分区:
cd /# 备份旧系统
sudo tar czvfp root.tgz --exclude=/proc --exclude=/media --exclude=/mnt --exclude=/sys --exclude=/home --exclude=/root.tgz /# 备份/home
sudo tar czvfp home.tgz /home/# 装好系统# 还原home
sudo mv /home/fox /home/fox_new
sudo tar xvzfp home.tgz -C /home/
装好系统,发现第一件事,应该是换源,删除不需要的软件,例如office,然后更新软件,安装软件
sudo apt install tilda vim-gtk adb mpv ffmpeg openjdk-8-jdk jq rdesktop n2n axel filezilla meld gedit mkvtoolnix-gui
chrome系的浏览器使用代理:
opera --proxy-server="socks://127.0.0.1:1080"
吐槽
2017-11: 最近firefox升级为 57.0,然后常用的扩展都用不了,例如DownThemAll FireGestures,蛋疼,目前下载工具没找到,手势用smartup手势,并不怎么好用,而且右键跟失效了似的,FoxyProxy Standard用来切换Fan那个Qiang的代理:SSR
win 下最喜欢主要是最擅长:
AutoHotkey
,木有了,用java来写GUI,真是欲仙欲死,字体还丑,qt什么的都不会文件管理,没有类似win下的total commander 那么完美的工具,叹,也许用cp,mv,但是路径太长,输入麻烦的说
很多娱乐功能在Linux上不完善,虽然娱乐于人于己无益,但谁叫自己喜欢呢
看B站视频,只有在浏览器中看,但CPU占用会比较高,个人还是比较喜欢下载下来观看,但是弾幕就显示不了,很纠结啊,写了个java-swing程序,可以在mint下调用mpv播放在线直播,调用wget下载直播视频,不支持弹幕,在github上发现了一个moonplayer可以播放B站视频,有弾幕,可是看直播没有弾幕,看之后能不能写个插件
看看cnbeta新闻,恩,也只能浏览器,或者浏览器的RSS,不怎么爽
微博也是,没有专门的客户端
系统设置
缘起: 一些java程序在默认环境下的字体显示太糟糕,在.bashrc中加入环境变量只在终端上有效,在文件管理器nemo上无效,故需要在一全局脚本中设置该环境变量,如果想修改PATH,也可以在这里修改
sudo vi /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
_JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on"
下面是bash配置,方便在终端中使用,还是有些乱,准备写一个bash脚本来统一管理
vi ~/.bashrc
# Fox @ 2017-08-21
# export PATH="$HOME/bin:$PATH"
# export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
alias lh='ls -lh'
alias jj='java -jar'
alias bb='java -jar FoxBook_Core.jar'
alias mm='free -m'
alias du='du -sh'
alias n='novelManager.sh'alias sshwrt='ssh root@10.2.3.1'
getwrt(){ wget http://10.2.3.1:8080/k4/$1 ; }
putwrt(){ curl http://10.2.3.1:8080/cgi-bin/ff.lua -F f=@$1 ; }flv2mp4() { ffmpeg -i $1.flv -vcodec copy -acodec copy -movflags faststart $1.mp4 ; }[ -d /dev/shm/00 ] || mkdir /dev/shm/00
GUI环境的一些设置
托盘添加一些小程序:
CPU Temperature Indicator(温度指示器)
,Download and upload speed(下载和上传速度)
,system Monitor(系统监视器)
,记得多试几次,很容易更新时卡死或不可用建议将系统带的所有设置全部看一遍,里面有很多有意思的功能,例如可以用鼠标中键滚轮来调整窗口透明度,添加卷起功能等
菜单-首选项-键盘-快捷键-自定义快捷键, 这里可以定义一些快捷键,也可以修改系统的快捷键,很方便啊,如果能保存设置就更好了
自己安装的一些程序
开始菜单-系统管理-软件源 修改软件源来获得最快的国内服务器,这样更新,装软件什么的都快
可以使用开始菜单-系统管理-软件管理器 来查找安装,或者使用apt来安装
终端:
guake
,F12键 显示/隐藏,比较方便,多标签支持远程桌面:
remmina
/rdesktop
,remmina可以方便管理多个,但耗用内存较多,有时能达到200M,rdesktop命令行比较轻量虚拟机:
VirtualBox
, 可以无界面启动,安装增强包,做好端口映射,文件夹共享,然后使用远程桌面登陆,速度很不错java swing 编程:
NetBeans
,mintinstall里面的是英文版的,但习惯了就好,不过字体真丑,忍办公软件: http://linux.wps.cn/ 地址上的是旧版,
sudo dpkg -i wps.deb
后启动后会检测到新版,重新下新的安装即可synergy
跨平台共享鼠标键盘剪贴板图形:
gcolor2
取色,pinta
简单的图片处理,flameshot
截图影音:
MPV
,mediainfo-gui
,mkvtoolnix-gui
filezilla
连接ftp,sftp等,iptux
/Dukto
局域网传文件axel
多线程命令行下载工具,用来下载百度网盘中的文件(2018-06-12: 网盘升级了,现这种方法无效了),aria2c
限制为16线程,对于百度的限速完全不够看,用axel开50线程来下载,速度杠杠滴firefox
装的一些插件: 哔度娘网盘, DownThemAll, FireGestures,外观使用: firefox orange simple 3.0gedit
方便来打开行比较长的文件vim 安装
vim-gtk
版, ~/.vimrc 内容如下
set fencs=ucs-bom,utf8,utf-8,cp936,gb2312,gbk,chinese,ucs-2,ucs-2le
set hls
set ignorecase
set nobackup
set nu
set ts=4
set smartindent
syntax on
mtp: mint 已经自带了,可以使用文件管理器nemo打开
adb: 与linux手机互传文件,可以直接
sudo apt-get install adb
安装,这个还是linux下用的爽,不像win下还得找编译好的adb来支持中文转换,linux下不用转换qiv
: 一个键盘控制的图片查看工具
启动运行的一些程序
- 开始菜单-首选项-开机自启动程序,添加
自定义命令
这个是启动自动挂载 sda5 分区,因为后面的虚拟机会用到这里面的文件
udisksctl mount -p block_devices/sda5
如果常用,就不用这个挂载,在 首选项-磁盘 里面可以设置自动挂载参数
app
guake terminal
service
- n2n 修改
/etc/default/n2n
可以在启动时自己连接
N2N_COMMUNITY="username"
N2N_KEY="password"
N2N_SUPERNODE="192.168.1.88"
N2N_SUPERNODE_PORT="88888"
N2N_IP="10.2.3.3"
N2N_EDGE_CONFIG_DONE="yes"
一些命令使用方式
调整亮度:
xrandr --output HDMI1 --brightness 0.5
远程并共享一个目录:
rdesktop 192.168.1.8 -u administrator -g 1280x768 -r disk:ram=/dev/shm/
需要的一些软件
- FTP 服务器,最好是能快速开启,关闭的
- 好用,移植性好的邮件客户端,最好能导出备份,至少win/linux通用
- grubinst 这样的软件,来修改设备引导
winscpportable 这个可以使用filezilla
2017-09-04: 使用meld来比较目录,文件,命令行单文件可以用diff来比较,类似软件有Kompare,DiffMerge,Diffuse,XXdiff,KDiff3,TkDiff,可以试一下
2017-09-19: 编译lua执行make时: fatal error: assert.h: 没有那个文件或目录,这是缺少头文件,sudo apt-get install build-essential 就装好了,然后编译就正常了
2017-09-25: 和局域网中的其他win机器传文件也很蛋疼啊,smb共享虽然能看到,但是进不去目录,懒得去处理,比较喜欢win下的飞鸽传书,搜了一下linux下有iptux,安装后就可以与win下的飞鸽互传了,太赞了
2017-09-27: 下载百度网盘中的文件,aria2c限制为16线程,对于百度的限速完全不够看,用axel开50线程来下载,速度杠杠滴,要注意的是,命令可能会在一开始卡住,ctrl+c结束,然后重新运行命令,多试几次,一旦启动,速度如飞,目前是通过DownThemAll获取下载地址,虽然DownThemAll也是多线程下载,不过线程数有点少,聊胜于无
2017-09-02 更新
找到在64位linux下运行32位linux的方法了,搜到了这里:http://blog.csdn.net/qq_20307987/article/details/51301778
在Linux Mint下运行下面这一行就行了,爽,这下可以运行
kindlegen
,还有android的蛋疼sdk了sudo apt-get install ia32-libs
2018-06-12 VIM剪贴板
vim 竟然不支持剪贴板,用
vim --version|grep clipboard
发现确实不支持安装
sudo apt install vim-gtk
就可以使用"+yy
了
2018-07-30 Java 访问 https 错误问题
- 写的java程序,发现访问https链接时出错:
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
- 搜索得到: https://stackoverflow.com/questions/4764611/java-security-invalidalgorithmparameterexception-the-trustanchors-parameter-mus
- 将java程序放到win下去运行,还真没问题,将
jre目录/lib/security/cacerts
这个文件拷出来,linux下的jre目录下的cacerts文件都指向/etc/ssl/certs/java/cacerts
,覆盖即可 - 现在可以愉快的玩耍了
- 2018-07-31,今天的升级里面包含了
ca-certificates-java
,去验证了一下md5值,果然不一样了,说明官方修复了这个bug,以上操作仅做历史记录了
Grub2 使用总结
- 安装到sda:
sudo grub-install /dev/sda
- 更新菜单,当修改了配置文件后更新一下:
sudo update-grub
- grub2 的配置
sudo vi /etc/default/grub
GRUB_DEFAULT=0
这里的是默认选中的条目,0为第一条,第二条是高级选项,里面有旧版的内核,可从这里启动以避免升级后的问题,4为windowsGRUB_TIMEOUT=10
这是超时时间,可以修改得小一点/etc/grub.d/40_custom
这个文件是自定义部分,会在/boot/grub/grub.cfg
尾部追加自定义条目,例如:
menuentry 'Run Slax (3 flags)' {linux /slax/boot/vmlinuz vga=normal load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 slax.flags=perch,automount,toraminitrd /slax/boot/initrfs.img
}
menuentry 'Mint Live CD' {set root='hd1,msdos1'linux /casper/vmlinuz boot=casper live-media=/dev/sdb1 --initrd /casper/initrd.lz
}
menuentry "Grub4DOS"{search --file /grldr --set=rootinsmod ntldrntldr /grldr
}
menuentry 'win7 loader' {search --file /bootmgr --set=rootinsmod ntldrntldr /bootmgr
}
- 修改完后记得执行
sudo update-grub
生效