个人Linux环境配置

更新源

找到Software & Updates,将源更新为阿里云的源

在Other Software里将Canonical Partners勾上

然后自己手动更新一下:

1
2
3
sudo apt update

sudo apt upgrade

Sougou Pinyin

1
2
3
4
5
6
sudo apt-get install fcitx-bin

sudo apt-get install fcitx-table

# 搜狗输入法Linux官网 https://pinyin.sogou.com/linux/ 下载64bit的程序
sudo dpkg -i sogoupinyin*.deb

重启

找到Fcitx Configure,设置输入法

截图软件 Shutter

下载libgoocanvas-commonlibgoocanvas3libgoo-canvas-perl

1
2
3
4
5
sudo dpkg -i libgoocanvas-common*.deb

sudo dpkg -i libgoocanvas3*.deb

sudo dpkg -i libgoo-canvas-perl*deb

将上述三个包给安装上,若安装失败,执行下面代码:

1
sudo apt-get install -f

然后再安装这几个包

视频和音频

安装解码器:

1
sudo apt-get install ubuntu-restricted-extras

安装VLC视频播放器

1
sudo apt-get install vlc browser-plugin-vlc

安装FFmpeg

1
sudo apt-get install ffmpeg

网易云音乐 官网

设置: 点击图标最小化

1
gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

美化

1
2
3
4
5
6
7
8
9
sudo apt-get install gnome-tweak-tool   #安装tweak

sudo apt-get install gnome-shell-extensions -y #安装shell扩展

sudo apt install chrome-gnome-shell #为了能在浏览器内安装gnome插件,火狐和谷歌都能用

sudo apt-get install gtk2-engines-pixbuf #防止GTK2错误

sudo apt install libxml2-utils

gnome-look这里下载,或者通过plingocs-url直接安装

或者手动下载下来,接下来解压到指定文件夹,并安装他们。

1
2
3
4
5
6
7
xz -d Gnome-OSC-HS-light-menu*.tar.xz

tar -xvf Gnome-OSC-HS-light-menu*.tar -C /usr/share/themes/

xz -d Gnome-OSC-HS--2*.tar.xz

tar -xvf Gnome-OSC-HS--2*.tar -C /usr/share/themes/

图标:/usr/share/icons/

其他主题:/usr/share/themes/

如果Shell显示不可修改,

1
sudo apt install gnome-shell-extensions

安装压缩软件

1
sudo apt-get install p7zip-full p7zip-rar rar unzip

Chrome Brower

1
2
3
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo dpkg -i google-chrome*; sudo apt-get -f install

安装多版本gcc和g++,并共存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo apt-get install gcc-5 gcc-5-multilib

sudo apt-get install g++-5 g++-5-multilib

sudo apt-get install gcc-6 gcc-6-multilib

sudo apt-get install g++-6 g++-6-multilib

sudo apt-get install gcc-7 gcc-7-multilib

sudo apt-get install g++-7 g++-7-multilib

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 60

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70

然后选择gcc和g++版本

1
2
3
sudo update-alternatives --config gcc

sudo update-alternatives --config g++

CMAKE

https://cmake.org/download/

安装在/opt下,软连接到/usr/bin/

1
sudo ln -sf /opt/cmake-3.17.1/bin/* /usr/bin/

complete cmake process with following libs:(boost版本较低,需要手动安装较高版本,见下文Boost部分)

1
sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev

openSSL

1
sudo apt install libssl-dev

编写简单的cmake

https://cmake.org/cmake/help/v3.17/guide/tutorial/index.html

使用cmake首先得有个CMakeList.txt文件,你需要把配置信息写在该文件中,然后通过cmake去处理该文件。 将设有下面一个main.cpp文件

1
2
3
4
5
6
7
//main.cpp文件
\#include<iostream>
using namespace std;
int main(){
cout<<"hello world!"<<endl;
return 0;
}

这时候我们就可以写个如下的CMakeList.txt文件

1
2
3
4
5
6
7
8
9
10
11
\#cmake最小需要版本
cmake_minimum_required(VERSION 2.8)

\#项目名字
project(HELLOWORLD)

\#包含原程序,即把给定目录下的源程序复制给变量DIR_SRC
aux_source_directory(DIR_SRC ./)

\#生成程序
add_executable(helloworld ${DIR_SRC})

然后执行如下命令

1
2
3
4
5
mkdir build
cd build
cmake ..
make
./helloworld

这样就编译好程序并运行。

添加静态库或者动态库

而假设我们程序用到了在/usr/lib下的一个静态库libmy.a,那就需要添加如下两个命令

1
2
3
4
5
\#库所在位置
link_directories(/usr/lib)

\#程序编译时候链接库
target_link_libraries(helloworld my)

Boost

下载https://www.boost.org/users/history/version_1_72_0.html

1
sudo tar -zxvf boost_1_72_0.tar.gz -C /usr/local/

Boost库的编译安装还有一些依赖库,需要先安装

1
sudo apt-get install mpi-default-dev libicu-dev python-dev libbz2-dev

回到boost库的路径下,运行如下命令

1
2
sudo ./bootstrap.sh
sudo ./b2 install --prefix=/usr --build-dir=tmp/build-boost

--prefix后面跟的是你安装boost库的路径,安装完成后所有的头文件和lib库都会保存在这个路径下

若 ./b2不加 install --prefix=/usr 会编译到当前文件夹下,安装没有链接成功,因此手动链接。

1
2
sudo ln -sf /usr/local/boost_1_72_0/boost/* /usr/include/boost/include/
sudo ln -sf /usr/local/boost_1_72_0/stage/lib/* /usr/include/boost/lib/

然后加入环境变量/etc/profile

1
export env=$PATH:/usr/include/boost

只是用头文件示例程序

不需要先编译boost,直接引入头文件就行。

这个程序用到了boost提供的正则匹配库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
std::string line;
boost::regex pat("tcp:*");

while(std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;

if(boost::regex_match(line, matches, pat))
std::cout << matches[0] << std::endl;
}
}

依旧通过CMake进行编译

  • 首先设置Boost库的路径,也就是之前的安装路径
  • 然后使用find_package来搜索这个路径下面是否有需要的regex库
  • 最后设置头文件搜索路径以及把找到的库link到应用程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
project(tutorial-0)
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 14)

set(BOOST_ROOT /usr/local/boost_1_72_0)

find_package(Boost COMPONENTS regex REQUIRED)

if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})

add_executable(foo foo.cpp)
target_link_libraries (foo ${Boost_LIBRARIES})
endif()

编译完成后运行app查看结果

多版本python和pip共存

ubuntu18.04自带python3,但是没有python2,pip2,pip3

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
sudo apt install curl
sudo apt-get install python3-distutils
sudo apt-get install python3-testresources
sudo apt-get install python3-widgetsnbextension
sudo apt install python-minimal

sudo apt install python2.7

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

sudo python3 get-pip.py #安装pip3

sudo python2 get-pip.py #安装pip3

sudo pip3 install --upgrade pip #升级pip3

sudo pip2 install --upgrade pip #升级pip2

# 此时pip和python并不知道指向2还是3,需要自己修改。我们使用alias来设置别名
vim /etc/profile # 所有用户 。修改~/.bashrc或者.profile只会修改当前用户
# 写入
alias pip=/usr/local/bin/pip3.6
alias python=/usr/bin/python3.6

source /etc/profile

VS Code

微软官网下载deb安装即可

Git

1
sudo apt install git

有道词典

官网下载安装即可

typora

官网打包的二进制 Typora 在 Ubuntu (gnome) 上安装为应用程序(可被选择为默认程序)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ cd Downloads/Software
$ wget https://typora.io/linux/Typora-linux-x64.tar.gz
$ tar -xzvf Typora-linux-x64.tar.gz
$
$ sudo mv Typora-linux-x64 /opt/
$
$ cd /opt/Typora-linux-x64/
$ ./Typora # test could run ?

$ cd /usr/share/applications/Typora.desktop
$ sudo vim Typora.desktop

[Desktop Entry]
Name=Typora
GenericName=Editor
Comment=Typroa - a markdown editor
Exec="/opt/Typora-linux-x64/Typora" %U
Icon=/opt/Typora-linux-x64/resources/app/asserts/icon/icon_256x256.png
Terminal=false
Categories=Markdown;
StartupNotify=false
Type=Application

sublime-text

https://www.sublimetext.com/docs/3/linux_repositories.html#apt

jetbrains

https://www.jetbrains.com/toolbox-app/

Terminator

新的shell界面

  • 常用快捷键
快捷键 作用
Ctrl+Shift+E 垂直分割窗口
Ctrl+Shift+O 水平分割窗口
Ctrl+Shift+W 关闭当前窗格
Ctrl+Shift+C 复制
Ctrl+Shift+V 粘贴
Ctrl+Shift+X 放大或缩小某一窗口
Ctrl+Shift+Z 从放大窗口回到多窗格界面
ALT+↑[↓,←,→] 移动到上[下、左、右]面一个窗口
Ctrl+Tab 切换窗口
Ctrl+- 缩小字体
Ctrl+Shift+=也就是Ctrl++ 放大字体

Zsh fish

使用oh-my-zsh来自动管理配置,可以查看官网:https://ohmyz.sh/

zsh官方的antigen来管理 https://github.com/zsh-users/antigen

1
2
3
4
5
6
7
sudo apt install zsh
# 切换到zsh
chsh -s /bin/zsh

curl -L git.io/antigen > antigen.zsh # 或者直接在git.io/antigen下载文本
# or use git.io/antigen-nightly for the latest version
# or apt-get install zsh-antigen

~/.zshrc 中添加下面的内容

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
27
28
29
source ~/antigen.zsh

# Load the oh-my-zsh's library.
antigen use oh-my-zsh

# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle brew
antigen bundle command-not-found
antigen bundle docker
antigen bundle docker-compose
antigen bundle gem
antigen bundle git
antigen bundle golang
antigen bundle ng
antigen bundle osx
antigen bundle pip

# Syntax highlighting bundle.
antigen bundle zsh-users/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-apple-touchbar

# Load the theme.
# antigen theme robbyrussell
antigen theme https://github.com/denysdovhan/spaceship-prompt spaceship

# Tell Antigen that you're done.
antigen apply

进入zsh

乱码问题

1
2
3
4
git clone https://github.com/powerline/fonts.git
# install
cd fonts
./install.sh

在优化中设置等宽字体为powerline类型字体中的一个

其他选择:fish

https://link.zhihu.com/?target=https%3A//wiki.archlinux.org/index.php/Fish

TLDR

https://tldr.sh/:常用命令范式查找工具

文件查找

find

locate

fdfd is a simple, fast and user-friendly alternative to find.

代码查找

重要的是:有些问题使用合适的工具就会迎刃而解,而具体选择哪个工具则不是那么重要

grep

ack, agrg

查找Shell历史

Ctrl+R 对命令历史记录进行回溯搜索

文件夹导航

fasd:查找最常用和/或最近使用的文件和目录

概览目录结构,例如 tree, broot

更完整的文件管理器,例如 nnnranger

npm

1
2
3
4
5
6
7
sudo  apt-get install nodejs

sudo apt-get install npm

npm -v

npm config set registry https://registry.npm.taobao.org

安装nrm工具,用于管理软件源。

1
2
3
$ sudo npm install -g nrm

$ nrm ls

在特定网络环境下需要配置代理的话,可以使用如下命令配置。

1
2
3
$  npm config set proxy http://127.0.0.1:3128
$ npm config set http-proxy http://127.0.0.1:3128
$ npm config set https-proxy https://127.0.0.1:3128

vim

安装VIM

1
apt-get install vim

https://spacevim.org/documentation/:spacevim插件集合

or

https://github.com/spf13/spf13-vim:一键配置插件集合

http://vim.spf13.com/#install

1
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

- tmux

Ubuntu并不自带tmux,所以我们需要输入以下指令进行安装:

按下 Ctrl + d 或者直接在命令行输入 exit 指令,就可以退出Tmux窗口。

Tmux窗口有很多的快捷键,所有的快捷键都需要前缀键。默认的前缀键是 Ctrl + b,只有先按下 Ctrl + b,快捷键才能生效。举例来说,帮助指令的快捷键是 Ctrl + b ?。那么在Tmux窗口下,先按下 Ctrl + b,再按下 ?,就能显示帮助信息。

tmux重要指令的总结:

tmux new -s 新建一个特定名称的会话
tmux detach 将当前会话与窗口分离
tmux ls / tmux list-session 查看当前所有的Tmux会话
tmux attach -t 重新连接某个已存在的会话
tmux kill-session -t 删除某个会话
tmux switch -t 切换会话
tmux rename-session -t 重新命名会话

会话相关的快捷键:

Ctrl + b d 分离会话
Ctrl + b s 列出所有会话
Ctrl + b $ 重命名当前会话

Tmux可以在一个窗口中分出多个窗格 (pane),每个窗格可以运行不同的指令。以下是相关快捷键:

Ctrl+b % 划分左右两个窗格 Ctrl+b “ 划分上下两个窗格 Ctrl+b 切换到其他窗格,指向切换的方向 Ctrl+b ; 切换到上一个窗格 Ctrl+b o 切换到下一个窗格 Ctrl+b { 当前窗格左移 Ctrl+b } 当前窗格右移 Ctrl+b x 关闭当前窗格

- 代码折叠

zc 关闭当前打开的折叠
zo 打开当前的折叠
zm 关闭所有折叠
zM 关闭所有折叠及其嵌套的折叠
zr 打开所有折叠
zR 打开所有折叠及其嵌套的折叠
zd 删除当前折叠
zE 删除所有折叠
zj 移动至下一个折叠
zk 移动至上一个折叠
zn 禁用折叠
zN 启用折叠

SimpleScreenRecorder

1
sudo apt-get install simplescreenrecorder

Dumb downloader that scrapes the web

: tget is wget for torrents

Unity Tweak 工具

1
sudo apt-get install unity-tweak-tool

使用 parcellite剪切板

1
2
$ sudo apt-get install parcellite
$ parcellite

设置登录背景

假设我现在用的图片是mypicture.jpg , 将它移动到/usr/share/backgrounds/目录下

1
sudo mv currentdir/mypicture.jpg  /usr/share/backgrounds/

Ubuntu现在用的Gnome的桌面,和以前Unity时候的配置文件不一样,所以16.04的教程是用不了的,18.04登录背景相关的配置是用css的:/etc/alternatives/gdm3.css

1
sudo gedit /etc/alternatives/gdm3.css
1
2
3
4
5
6
7
8
9
10
11
12
#找到默认的这个部分
#lockDialogGroup {
background: #2c001e url(resource:///org/gnome/shell/theme/noise-texture.png);
background-repeat: repeat;
}
#改为
#lockDialogGroup {
background: #2c001e url(file:///usr/share/backgrounds/mypicture.jpg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}

保存并重启.

apt-get使用

apt-get命令本身并不具有管理软件包功能,只是提供了一个软件包管理的命令行平台。

apt-get命令的一般语法格式为: apt-get subcommands [ -d | -f | -m | -q | --purge | --reinstall | - b | - s | - y | - u | - h | -v ] [pkg]
apt-cache提供了搜索功能。

  1. 更新或升级操作: apt-get update # 更新源
    apt-get upgrade # 更新所有已安装的包
    apt-get dist-upgrade # 发行版升级(如,从10.10到11.04)

  2. 安装或重装类操作: apt-get install # 安装软件包,多个软件包用空格隔开
    apt-get install --reinstall # 重新安装软件包
    apt-get install -f # 修复安装(破损的依赖关系)软件包

    1. 卸载类操作: apt-get remove # 删除软件包(不包括配置文件)
      apt-get purge # 删除软件包(包括配置文件)
  3. 下载清除类操作: apt-get source # 下载pkg包的源代码到当前目录
    apt-get download # 下载pkg包的二进制包到当前目录
    apt-get source -d # 下载完源码包后,编译
    apt-get build-dep # 构建pkg源码包的依赖环境(编译环境?)
    apt-get clean # 清除缓存(/var/cache/apt/archives/{,partial}下)中所有已下载的包
    apt-get autoclean # 类似于clean,但清除的是缓存中过期的包(即已不能下载或者是无用的包)
    apt-get autoremove # 删除因安装软件自动安装的依赖,而现在不需要的依赖包

  4. 查询类操作: apt-cache stats # 显示系统软件包的统计信息
    apt-cache search # 使用关键字pkg搜索软件包
    apt-cache show # 显示软件包pkg_name的详细信息
    apt-cache depends # 查看pkg所依赖的软件包
    apt-cache rdepends # 查看pkg被那些软件包所依赖

  5. 关于软件安装目录的说明:

一般的deb包(包括新立得或者apt-get下载的)都在/usr/share。

自己下载的压缩包或者编译的包,有些可以选择安装目录,一般放在/usr/local/,也有在/opt的。

  1. 关于apt-get的缓存目录:

默认的缓存目录是/var/cache/apt/archives/

为日后重装系统后安装软件节省下载时间或者将软件包给别人用


参考链接:

Ubuntu18.04安装后应该做的事

Linux玩家必备:Ubuntu完全配置指南

Ubuntu 18.04配置及美化


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!