Ubuntu Configure

Ubuntu 安裝配置及其美化

首先更新一下

sudo apt update && sudo apt upgrade

一 基础软件安装

  1. WPS Office 2019

首先,卸载 libreoffice (当然, 拆不拆卸看你自己)

sudo apt remove libreoffice-common

官网下载 WPS office 2019 for Linux

sudo dpkg -i wps-office_11.1.0.8372_amd64.deb

如果缺失字体,需要下载:百度云链接,解压后:

sudo mv wps_symbol_fonts /usr/share/fonts/
  1. 中文输入法

安装搜狗输入法,从官网下载最新的安装包,

sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb 

解决依赖

sudo apt install -f

从设置找到语言->管理安装语言,待更新安装完成,设置为 fcitx

重新登入,在右上角的托盘->配置,添加搜狗输入法

打开终端
安装输入法

sudo apt-get install im-switch libapt-pkg-perl fcitx fcitx-table-wbpy

设置fcitx为默认输入法:

im-switch -s fcitx

注销,重新登录

  1. PDF阅读器

福昕阅读器下载.run格式的安装包,直接运行安装(如果没有执行权限,sudo chmod +x xxxxxxxxxxxxx.run)。

  1. 网易云音乐

官网更新了18.04的1.2.0版本,下载直接安装即可。

  1. Chrome

官网下载安装即可,有可能要翻墙。

  1. 视频播放器VLC
sudo apt install vlc
  1. 编辑器 VS Code

1 从VSCode官网下载deb软件包

下载地址:https://code.visualstudio.com/

2 在Ubuntu中安装VSCode

sudo dpkg -i xxx.deb

3 安装VSCode所需依赖(好像并没有什么依赖)

sudo apt-get install -f
  1. 安装Git
sudo apt install git
  1. zsh(也可以安装fish)
sudo apt install zsh
# 切换到zsh
chsh -s /bin/zsh

安装Oh-my-zsh

sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

安装插件highlight,高亮语法

 cd ~/.oh-my-zsh/custom/plugins
 git clone git://github.com/zsh-users/zsh-syntax-highlighting.git

在Oh-my-zsh的配置文件中~/.zshrc中添加插件

plugins=( [plugins...] zsh-syntax-highlighting)

最后使配置生效

source ~/.zshrc

这里需要重新登入一下,否则zsh只会在当前终端中应用。

  1. QQ/TIM

现在较为成功的解决方案为使用 wine 安装qq,推荐以下两个教程,但都有不同程度的问题,如果可以忍受可以使用:

https://phpcj.org/wineqq/
https://github.com/askme765cs/Wine-QQ-TIM
  1. 截图

    shutter:sudo apt install shutter
    Capturer: 我自己用qt开发的,依赖于ffmpeg,可以截图,录屏和GIF,还没有打包,如果会用qt可以先尝试下,项目地址:https://github.com/ffiirree/Capturer。

  2. 启用“Minimize on Click”

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
  1. 安装 Teamviewer
    官网下载deb安装包,安装即可

命令行安装方法:

1 安装先决条件
TeamViewer是一个不在任何Ubuntu标准存储库中找到的外部软件。 我们将使用gdebi命令在Ubuntu 18.04 Bionic Beaver Linux上安装TeamViewer。 因此,让我们从安装gdebi-core软件包开始。 打开终端并输入:

sudo apt install gdebi-core

2 下载最新的TeamViewer软件包

接下来,使用wget下载最新的TeamViewer软件包:

wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb

3 安装TeamViewer

最后,使用gdebi命令安装以前下载的软件包:

sudo gdebi teamviewer_amd64.deb

二 完整的 gnome 桌面

安裝完成后桌面左上角如果没有应用程序,位置等下拉项目, 感觉是 gnome 不完整, 可以单独安装完整的 gnome, 如下:
直接安装

sudo apt-get  install gnome  
ubuntu 最简化安装使用 gnome 桌面             

1、gnome 桌面窗口管理程序

$sudo apt-get  install gnome-shell  

2、安装 gnome 面板

$sudo apt-get  install  gnome-panel  

3、安装 gnome 菜单

$sudo apt-get  install   gnome-menus

4、安装 gnome-session

$sudo apt-get  install  gnome-session

5、安装 gdm 会话切换器

$sudo apt-get  install  gdm

三 gnome shell 扩展

Ubuntu Software => Add-ons => Shell extensions,中安装

  1. NetSpeed

监控网速
2. Coverflow Alt-Tab

优化Alt-Tab

  1. Application menu

左上角应用程序快捷管理

  1. Place status indicator

位置信息, 快速导航磁盘文件位置

  1. Clipboard Indicator

这个扩展是使用来收集粘贴板的,对于写文档或者敲代码的人来说经常要复制少量文本粘贴到其余地方。但是系统只能复制一次,复制下一次的时候上次复制的内容就不见了。有了它以后可以保存复制过的内容,下次可以直接用。

四 ubuntu系统重新分区、根目录扩容

gparted是一款免费、开源的Linux下的具有图形用户界面的分区软件。

在Ubuntu中,可以使用如下命令安装:

sudo apt-get install gparted

之后就可以使用如下命令启动gparted:

sudo gparted

把空闲的分区移动到要扩容的分区的前面或者后面

然后到 windows 配合 diskgenuis 将空闲空间合并到所需扩容的分区

当然也可以直接在 windows 中,或者 win PE 系统里面直接调整分区大小,然后合并分区.

五 ubuntu 自带 bash 配置美化

对于终端的美化,可以通过对PS1变量进行赋值来进行.奶牛查阅了一些资料,DIY了如下的效果:

bash 美化 bash PS PS1

vim .bashrc

添加下行

export PS1="Time:\[\033[1;35m\]\T     \[\033[0m\]User:\[\033[1;33m\]\u     \[\033[0m\]Dir:\[\033[1;32m\]\w\[\033[0m\]\n\$"

退出vim

source .bashrc

解释下具体含义:

颜色配置:

\[\033[1;31m\]

底线:ANSI 色彩控制语法。\033 声明了转义序列的开始,然后是 [ 开始定义颜色。
第一组数字:亮度 (普通0, 高亮度1, 闪烁2)。
第二组数字:顏色代码。
颜色: 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white

\[\033[0m\]

关闭 ANSI 色彩控制,通常置于尾端。
显示内容配置:

\a     ASCII响铃字符 (07)
\d     “周 月 日”格式的日期
\D{format}   参数format被传递给strftime(3)来构造自定格式的时间并插入提示符中;该参数为空时根据本地化设置自动生成格式。
\e     ASCII转义字符(ESC) (033)
\h     主机名在第一个点号前的内容
\H     完全主机名
\j     shell当前管理的任务数
\l     shell终端设备的基本名称
\n     新行
\r     回车
\s     shell的名称,$0的基本名称
\t     当前时间(24小时) HH:MM:SS
\T     当前时间(12小时) HH:MM:SS
\@     当前时间(12小时) am/pm
\A     当前时间(24小时) HH:MM
\u     当前用户名称
\v     bash版本("2.00")
\V     bash版本+补丁号("2.00.0")
\w     当前工作目录
\W     当前工作目录的基本名称
\!     该命令的历史数(在历史文件中的位置)
\#     该命令的命令数(当前shell中执行的序列位置)
\$     根用户为"#",其它用户为"$"
\nnn   8进制数
\\     反斜杠
\[     表示跟在后面的是非打印字符,可用于shell的颜色控制
\]     表示非打印字符结束

Ubuntu 启动项管理

Grub Customizer工具的使用:

这个工具可以替代手动配置文件的操作,只需在GUI界面上配置即可达到同样的效果,原理最终也会写入到文件中。

Startup-manager工具已经过时了,Grub Customizer是取代品。

安装:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

修改 root 密码, 获取 root 用户:

sudo passwd    # 输入两次新密码
su root                 # 登陆 root账户

Ubuntu 更新内核

ubuntu18.04操作系统版本先已支持在线的内核版本升级,到目前为止18.04发布版已经拥有三个小版本了1,2,3。 其中18.04.01和18.04.03版本,安装好之后默认的是4.15内核版本,但是默认支持在线安装4.18和5.0.0内核版本。

具体升级步骤如下:

升级前备份当前系统镜像
确认外网可用,同时配置好任意一个国内源(这里用的是网易源)
获取5.0.0内核版本

sudo apt list | grep linux-generic*

能够获取到5.0.0版本之后直接安装

sudo apt-get install linux-generic-hwe-18.04-edge

安装完成再重启一下设备新内核即可生效

重启后再次终端输入下面命令:

sudo apt list | grep linux-generic*
sudo apt-get install linux-generic-hwe-18.04-edge

会提示如下

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
linux-generic-hwe-18.04-edge 已经是最新版 (5.3.0.19.85)。
下列软件包是自动安装的并且现在不需要了:
  linux-headers-4.15.0-65 linux-headers-4.15.0-65-generic
  linux-image-4.15.0-65-generic linux-modules-4.15.0-65-generic
  linux-modules-extra-4.15.0-65-generic
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

按提示,用 sudo apt autoremove 就可以自动移除不需要的内核文件.

Ubuntu18.04中使用texlive+texstudio搭建Latex环境

1.安装texlive

sudo apt install texlive

2.安装中文字体包

sudo apt install latex-cjk-all

3.安装texstudio

sudo apt install texstudio

解决texstudio使用过程中遇到的问题:

1.GB.cpx乱码问题

在/usr/share/texmf/tex/latex/CJK/GB/下查找到GB.cpx文件并且使用一下代码替换:

% This is the file GB.cap of the CJK package
%   for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e
%
% created by aloft <aloft@ctex.org> for Standard LaTeX document class.
%
% Version 4.5.2 (18-May-2003)
%
% $Id: GB.cpx,v 1.7 2003/05/20 15:51:14 aloft Exp $
%


\def\fileversion{4.5.2}
\def\filedate{2003/05/18}
\ProvidesFile{GB.cap}[\filedate\space\fileversion
 for Standard LaTeX document class]


% Chinese captions
%
% character set: GB 2312-80
% encoding: EUC

\renewcommand\contentsname{目录}
\renewcommand\listfigurename{插图}
\renewcommand\listtablename{表格}

\@ifundefined{chapter}
  {\renewcommand\refname{参考文献}}
  {\renewcommand\bibname{参考文献}}

\renewcommand\indexname{索引}

\renewcommand\figurename{Fig}

\newcommand\codename{代码}

\renewcommand\tablename{}

\newcommand\CJKprepartname{}
\newcommand\CJKpartname{部分}
\newcommand\CJKthepart{\CJKnumber{\@arabic\c@part}}

\@ifundefined{chapter}{}{
  \newcommand\CJKprechaptername{}
  \newcommand\CJKchaptername{}
  \newcommand\CJKthechapter{\CJKnumber{\@arabic\c@chapter}}}

\renewcommand\appendixname{附录~\@Alph\c@chapter}

\@ifundefined{mainmatter}
  {\renewcommand\abstractname{摘要}}{}

% \renewcommand\ccname{}                     %   ?
% \renewcommand\enclname{附件}
% \newcommand\prepagename{}                  %   ?
% \newcommand\postpagename{}                 %   ?
% \renewcommand\headtoname{}                 %   ?
% \renewcommand\seename{}                    %   ?

\let\CJK@todaysave=\today
\def\CJK@todaysmall{~\the\year~年~\the\month~月~\the\day~日}
\def\CJK@todaybig{\CJKdigits{\the\year}年\CJKnumber{\the\month}月\CJKnumber{\the\day}}
\def\CJK@today{\CJK@todaysmall}
\renewcommand\today{\CJK@today}
\newcommand\CJKtoday[1][1]{%
  \ifcase#1\def\CJK@today{\CJK@todaysave}
  \or\def\CJK@today{\CJK@todaysmall}
  \or\def\CJK@today{\CJK@todaybig}
  \fi}

%
% modify the definitions of Standard LaTeX document class
%
\@ifundefined{chapter}{
  \def\@part[#1]#2{%
      \ifnum \c@secnumdepth >\m@ne
        \refstepcounter{part}%
%       \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
        \addcontentsline{toc}{part}{\CJKprepartname\expandafter\noexpand\CJKthepart\CJKpartname\hspace{1em}#1}%
      \else
        \addcontentsline{toc}{part}{#1}%
      \fi
      {\parindent \z@ \raggedright
       \interlinepenalty \@M
       \normalfont
       \ifnum \c@secnumdepth >\m@ne
%        \Large\bfseries \partname\nobreakspace\thepart
         \Large\bfseries \CJKprepartname\CJKthepart\CJKpartname
         \par\nobreak
       \fi
       \huge \bfseries #2%
       \markboth{}{}\par}%
      \nobreak
      \vskip 3ex
      \@afterheading}
}{
  \def\@part[#1]#2{%
      \ifnum \c@secnumdepth >-2\relax
        \refstepcounter{part}%
%       \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
        \addcontentsline{toc}{part}{\CJKprepartname\expandafter\noexpand\CJKthepart\CJKpartname\hspace{1em}#1}%
      \else
        \addcontentsline{toc}{part}{#1}%
      \fi
      \markboth{}{}%
      {\centering
       \interlinepenalty \@M
       \normalfont
       \ifnum \c@secnumdepth >-2\relax
%        \huge\bfseries \partname\nobreakspace\thepart
         \huge\bfseries \CJKprepartname\CJKthepart\CJKpartname
         \par
         \vskip 20\p@
       \fi
       \Huge \bfseries #2\par}%
      \@endpart}
  \if@twoside
    \def\chaptermark#1{%
      \markboth {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
%           \@chapapp\ \thechapter. \ %
            \CJKprechaptername\CJKthechapter\CJKchaptername \ %
          \fi
        \fi
        #1}}{}}%
    \def\sectionmark#1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\z@
%         \thesection. \ %
          \thesection \ %
        \fi
        #1}}}
  \else
    \def\chaptermark#1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
%           \@chapapp\ \thechapter. \ %
            \CJKprechaptername\CJKthechapter\CJKchaptername \ %
          \fi
        \fi
        #1}}}
  \fi
  \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                         \if@mainmatter
                           \refstepcounter{chapter}%
%                          \typeout{\@chapapp\space\thechapter.}%
                           \typeout{\CJKprechaptername\CJKthechapter\CJKchaptername}%
                           \addcontentsline{toc}{chapter}%
%                                    {\protect\numberline{\thechapter}#1}%
                                     {\protect\numberline{}\CJKprechaptername%
                                      \expandafter\noexpand\CJKthechapter\CJKchaptername\hspace{0.8em}#1}%
                         \else
                           \addcontentsline{toc}{chapter}{#1}%
                         \fi
                      \else
                        \addcontentsline{toc}{chapter}{#1}%
                      \fi
                      \chaptermark{#1}%
                      \addtocontents{lof}{\protect\addvspace{10\p@}}%
                      \addtocontents{lot}{\protect\addvspace{10\p@}}%
                      \if@twocolumn
                        \@topnewpage[\@makechapterhead{#2}]%
                      \else
                        \@makechapterhead{#2}%
                        \@afterheading
                      \fi}
  \def\@makechapterhead#1{%
    \vspace*{50\p@}%
    {\parindent \z@ \raggedright \normalfont
      \ifnum \c@secnumdepth >\m@ne
        \if@mainmatter
%         \huge\bfseries \@chapapp\space \thechapter
          \huge\bfseries \CJKprechaptername\CJKthechapter\CJKchaptername
          \par\nobreak
          \vskip 20\p@
        \fi
      \fi
      \interlinepenalty\@M
      \Huge \bfseries #1\par\nobreak
      \vskip 40\p@
    }}
  \renewcommand*\l@chapter[2]{%
    \ifnum \c@tocdepth >\m@ne
      \addpenalty{-\@highpenalty}%
      \vskip 1.0em \@plus\p@
%     \setlength\@tempdima{1.5em}%
      \setlength\@tempdima{0em}%
      \begingroup
        \parindent \z@ \rightskip \@pnumwidth
        \parfillskip -\@pnumwidth
        \leavevmode \bfseries
        \advance\leftskip\@tempdima
        \hskip -\leftskip
        #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
        \penalty\@highpenalty
      \endgroup
    \fi}
\let\@appendix\appendix
\renewcommand\appendix{\@appendix%
  \def\CJKprechaptername{\relax}%
  \def\CJKthechapter{\relax}%
  \def\CJKchaptername{\appendixname}}
}  %end of \@ifundefined{chapter}

\def\numberline#1{\ifdim\@tempdima>0pt% 
  \settowidth\@tempdimb{#1\space}% 
  \ifdim\@tempdima<\@tempdimb% 
    \@tempdima=\@tempdimb% 
  \fi% 
  \hb@xt@\@tempdima{#1\hfil}% 
  \fi} 

\endinput

2.编译后Pdf中文不显示问题

当使用 CJK 中文包时,在 Texstudio 配置中使用 pdflatex 编译器而不是 xelatex 编译器。

如果使用ctex中文包时可以使用 xelatex 编译器。


Ubuntu18.04下安装 FFmpeg

在百度上看到许多安装过程特别麻烦的,还要手动下载安装。其实只需要三条命令。

第一步:添加源

sudo add-apt-repository ppa:djcj/hybrid

第二步:更新源

sudo apt-get update

第三步:下载安装

sudo apt-get install ffmpeg

如上,就安装好了。


Ubuntu18.04 下安装 Matlab

按照教程安装好 Matlab 后,暂时是没有应用快捷方式的,我们需要手动创建一个:

首先第一步:输入命令:

 sudo gedit /usr/share/applications/Matlab.desktop

然后输入:

[Desktop Entry]
Type=Application
Name=Matlab 2019b
GenericName=Matlab R2019b
Exec=sh /home/shw/MySoftwares/Matlab/R2019b/bin/matlab #   /home/shw/MySoftwares/Matlab/R2019b 是你的安装目录,我这里安装目录不是默认的 默认的应该是/usr/local/XX/XX
Icon=/home/shw/MySoftwares/Matlab/R2019b/toolbox/shared/dastudio/resources/MatlabIcon.png
Terminal=true
Categories=Development;Matlab;

注意:Exec代表应用程序的位置;Icon代表应用程序图标的位置;Terminal为false表示启动时不启动命令行窗口,为true表示启动命令行窗口。

Conky安装和配置

conky-all是支持lua的版本带有复杂的动画的需要用这个版本实现
安装命令:

sudo apt install conky-all

主题参考 github地址

在自己的住目录下新建一个conky文件夹(可以自己修改文件放置的位置要更改conky_tpl和create_config.py反正就呢么多文件里的conky/conky-grapes都要改成.conky/conky-grapes)

双击安装那几个字体

字体用的是灰色的不喜欢可以编辑

create-config.py文件

修改grey和lightgrey就行

执行python create-config.py

蒋多出来的 XXXX.conkyrc

文件改名为.conkyrc 剪切或复制到你的主目录下

图形配色如图

不喜欢蓝色的可以更改.conkyrc和conky/conky-grapes文件夹下的ring-v2.tpl和rings-v2_gen.lua文件里的所有蓝色查找替换为你喜欢的颜色

蓝色 0x165cc4

在终端中执行conky就行了(可能绘制图形较慢,等一会。)

conky开机自启动

在主目录下的.config/autostart执行以下代码

sudo gedit conky.desktop

粘贴以下代码:

[Desktop Entry]
Type=Application
Name=Conky
Comment=Start conky script
Exec=\s/usr/bin/conky -p 10
OnlyShowIn=GNOME
X-GNOME-Autostart-Phase=Application
Name[en_US]=conky.desktop

或者在软件

解释:\s/usr/bin/conky -p 10 是用户登录后十秒开启防止一些奇怪的bug

nvtop 安装和配置

1.安装依赖:

apt install cmake libncurses5-dev libncursesw5-dev git -y

2.安装命令:

git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake ..

cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True

sudo make

sudo make install

3.安装完成测试

nvtop

作者: 洪卫
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 洪卫 !
 上一篇
oh-my-zsh 配置 oh-my-zsh 配置
Oh-My-Zsh的配置与使用什么是Shell?相对于内核来说,Shell是Linux/Unix的一个外壳,它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干
2019-10-19
下一篇 
2020年,计算机视觉领域会哪些新的研究方向值得提前探索? 2020年,计算机视觉领域会哪些新的研究方向值得提前探索?
前言结合计算机视觉、机器人领域5大顶会(CVPR/ICCV/IROS/ICRA/ECCV),以及产业界的需求,总结3个当下热门及前沿的研究领域。 三维视觉三维视觉是传统的研究领域,但最近 5 年内得到快速发展。三维视觉主要研究内容有:三维感
  目录