Ubuntu使用笔记

转向Linux

使用Linux的动机和理由

想离开Windows,将工作机换成Linux系统是我多年来一直想做的事情,但直到最近才真正开始行动,其中的原因主要有以下几条:

  • 第一,非IE浏览器市场成熟了,比如网上购物、网上银行这种应用不再非IE不可了;
  • 第二,我喜欢用命令行操作电脑,而Windows下的cygwin、msys2或者powershell始终让我感觉差强人意;
  • 第三,我现在的工作机已经偏老旧了(2010年前后买的),Windows不止本身很耗资源,还不得不装一些很耗资源的安全软件,不然撑不过一个月(而且实际上也不见得有多安全,比如360、腾讯的东西,我一点儿都不放心他们在系统后台做的那些事);
  • 第四,Linux的桌面环境已经比以前成熟多了,无论是以debian为基础的Ubuntu,还是以redhat为基础的Fedora。易用性都已经得到了很大的改善,不再需要像我在大学时代那样配置系统了(那样对学习是有好处的,但在日常应用中我可不想像维护一台服务器一样维护我的工作机);
  • 第五,虚拟机软件很成熟了,无论是VMware还是VirtualBox都已经很好用了,我们可以在需要时随时建构一个Windows机来解决问题。

Linux发行版的选择

Linux本身只是一个操作系统的内核项目,要使用它,我们必须要选择一款发行版,关于Linux的发行版,各位可以参考来自Wikipedia上的这张表:

Linux发行版

其实在我看来,Linux目前主流的发行版主要可分为三大分支:

  • 第一,以Debian项目为基础的,包括Ubuntu,deepin等,使用的是apt包管理器,比较适合个人的普通用户,也就是不想在Linux的配置上花太多时间的用户。
  • 第二,以Redhat系统为基础的,包括CentOS,Fedora等,使用的是yum包管理器。由于Redhat本身是一个企业级系统,所以他比较适合需要稳定的服务器用户,开发方面的解决方案支持比较完善。
  • 第三,Arch Linux这一支,也包括manjaro,使用的是pacman包管理。软件为滚动式更新,软件策略比较激进。适合喜欢研究Linux的人群,主要是学生,Linux发烧友。

我个人的选择是Ubuntu,主要原因是我不想在系统安装和配置上花费过多的时间,为此我愿意放弃一些自由度

Ubuntu的安装

由于我的机器是台i686架构的老机器,而Ubuntu最新版本18.04只提供64位的版本,我只能选择老一些的16.04版。具体安装过程非常简单,网上教程也很多,这里推荐几个,供各位自行参考:

以上内容都大同小异,基本上照着做即可。

安装之后必须要做的几件事

将apt的源换成国内源

由于某墙的存在和客观物理网络的问题,国外网络资源是朝不保夕的,所以强烈建议,安装完Ubuntu之后,第一件事就是将apt的源改成国内的,我这里选择的是阿里云的源,具体如下:

首先备份一下原有的国外源,以备日后需要时恢复:

cd /etc/apt
sudo cp sources.list sources.list.bak

然后打开源配置文件:

vim sources.list

将其内容改成:

# deb cdrom:[Ubuntu 16.04.4 LTS _Xenial Xerus_ - Release i386 (20180228)]/ xenial main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main
# deb-src https://dl.winehq.org/wine-builds/ubuntu/ xenial main

最后更新一下索引缓存:

sudo apt-get update

安装输入输入法

我这里选择的是输入搜狗输入法,其安装过程如下:

首先确认系统是否已经安装了fcitx,由于搜狗输入法是基于这个输入法框架的,所以必须确保它已经被安装,一般情况下,Ubuntu中文版是安装了这个框架的,如果确实没有安装,请执行以下命令:

# 1)先添加以下源
sudo add-apt-repository ppa:fcitx-team/nightly
# 2)添加源后我们更新一下系统
sudo apt-get update
# 3)开始安装fcitx
sudo apt-get install fcitx
# 如果发现有错误提示,请试一下“apt-get -f install”命令,然后再试一下sudo apt-get install fcitx。
# 4)安装fcitx的配置工具
sudo apt-get install fcitx-config-gtk
# 5)安装fcitx的table-all包
sudo apt-get install fcitx-table-all
# 6)安装im-switch工具
sudo apt-get install im-switch

然后去搜狗输入法的官网下载linux系统下的安装包,记住下载对应自己版本的文件,我这里下载的是32位的版本,文件是sogoupinyin_2.2.0.0108_i386.deb,然后进入到该文件所在的目录中使用dpkg命令安装它:

sudo dpkg -i sogoupinyin_2.2.0.0108_i386.deb
# 如果发现有错误提示,请试一下“apt-get -f install”命令,然后重新执行一下这条安装命令

这个时候是看不到效果的,一定要将系统注销,重新登录一次。然后搜索出fcitx配置,删除不需要的输入法,将搜狗输入法设为默认即可。

解决一些问题

如果耳机没有声音,建议安装PulseAudio音量控制器:

sudo apt-get install pavucontrol

它的使用非常简单,一看就会:

PulseAudio

数字键盘启动问题:

sudo apt-get install numlockx

然后编辑配置文件:sudo gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf,在该文件最后添加一行:greeter-setup-script=/usr/bin/numlockx on,然后重启系统即可。

工作环境配置

我是个程序员和技术写作者,当然编程工具、编辑工具和终端环境是首先要搞定的。

安装基本开发者工具

  • GNU开发工具包:sudo apt-get install build-essential
  • clang+llvm:sudo apt-get install clang llvm
  • vim和Eclipse:sudo apt-get install vim eclipse
  • Qt5 : sudo apt-get install cmake qt5-default qtcreator
  • pandoc和LaTeX : sudo apt-get install pandoc texlive-full texmaker latex-cjk-all
  • git、wget和pip:sudo apt-get git wget python-pip

配置pip的国内源

由于某墙的存在和客观物理网络的问题,国外网络资源是朝不保夕的,所以强烈建议,安装完pip之后,第一件事就是将pip的源改成国内的,我这里选择的是豆瓣的源,具体如下:

在/home/owlman/目录(即你的用户目录)中编辑.pip/pip.conf(没有就创建一个),将其内容修改为:

[global]
    index-url = http://pypi.douban.com/simple
[install]
    trusted-host=pypi.douban.com

我们可以执行一下pip install --upgrade pip看看是否一切正常,顺便升级一下pip。

zsh和oh-my-zsh

先查看系统一下有什么shell:

cat /etc/shells

如果在返回结果中没有看到zsh,就先安装它:

sudo apt-get install zsh

安装完成后,输入:chsh,然后在返回提示符后输入新值:/bin/zsh,最后在终端中输入sudo echo $SHELL命令,若返回"/bin/zsh",说明SHELL已修改为zsh(通常要将系统注销-登录一下才会生效)。

接下来,我们安装oh-my-zsh,执行以下命令:

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

在安装完成后,在家目录下会有隐藏文件.zshrc,可根据个人喜好进行配置。例如zsh的主题: 可以通过查看OMZ提供的主题:

ls ~/.oh-my-zsh/themes

然后,选择一款主题,譬如我们选择cloud,就编辑~/.zshrc文件中的ZSH_THEME变量:ZSH_THEME="cloud"。效果如下所示:

zsh主题

powerline

安装powerline:

pip install powerline-status --user

然后通过pip show powerline-status命令查找其安装位置:

Name: powerline-status
Version: 2.6
Summary: The ultimate statusline/prompt utility.
Home-page: https://github.com/powerline/powerline
Author: Kim Silkebaekken
Author-email: kim.silkebaekken+vim@gmail.com
License: MIT
Location: /home/owlman/.local/lib/python2.7/site-packages
Requires:
Required-by:

(如果要进行powerline相关的配置,它的Location是必须要了解的。这里以/home/owlman/.local/lib/python2.7/site-packages/powerline/为例。)

安装powerline字体:

git clone https://gitee.com/koomox/powerline-fonts.git
#(包含很多可用字体,安装过程慢,请找到网速好的地方)
cd powerline-fonts
sudo ./install.sh

配置zsh:

在/home/owlman/目录(即你的用户目录)中编辑.zshrc文件,在其末尾加入一行:

. .local/lib/python2.7/site-packages/powerline/bindlinds/zsh/powerline.zsh

效果如下:

zsh+powerline

配置tmux:

在/home/owlman/目录(即你的用户目录)中编辑.tmux.conf文件,在其末尾加入一行:

source '.local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf'

效果如下:

tmux+powerline

配置vim:

在/home/owlman/目录(即你的用户目录)编辑.vimrc文件,在其中加入一下三行:

set rtp+=.local/lib/python2.7/site-packages/powerline/bindings/vim/
set laststatus=2
set t_Co=256

效果如下:

vim+powerline

日常所用软件

当然,计算机如今已经成为了人类生活的一部分,即使是程序员,除了编程工作之外,也是需要用计算机处理一些日常实物和娱乐的。下面就来分享一些本人除编程之外会用到的一些软件。

系统工具

  • Tilix: 这是一款极好用的命令行终端软件,个人非常喜欢。

  • vim:著名的命令行编辑器,这个应该不用多介绍了吧?

  • vscode: 时下很火热的一款跨平台的图形化编辑器,拥有极为丰富的插件。

  • Gnome tweak tool:非常重要的gnome桌面配置工具,我们可用它来修改桌面主题,字体,鼠标光标,并安装各种gnome插件。

休闲类软件

  • Web浏览器:Firefox、chromium(后者是chrome的开源版)。

  • Email客户端:Thunderbird。

  • bt下载器: KTorrent、Deluge。

  • 云端笔记:NixNote2,这是一款Linux环境下的印象笔记(Evernote)客户端(请注意:该客户端只支持国际版账户,中国版账户是不能同步的)。

  • 文件同步:坚果云,这是国内唯一一款支持Linux系统的文件云端同步软件。

  • 视频播放器:VLC,这是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及DVD、音频CD、VCD等及各类流媒体协议。

办公类软件

  • WPS套件: 个人认为这是最适合中文环境的办公处理套件,基本兼容MS Office套件的文档格式。当然,该软件在安装之后,可能会缺失一些字体,我为此专门写了一个脚本,有需要的人可以执行以下命令来安装这些字体:

      git clone https://github.com/owlman/wps_fonts.git
      cd wps_fonts
      ./install_wps_fonts.sh
    
  • xmind: 近几年思维导图软件是越来越火,XMind是一款非常实用的商业思维导图软件,应用全球最先进的Eclipse RCP软件架构,全力打造易用、高效的可视化思维软件,强调软件的可扩展、跨平台、稳定性和性能,致力于使用先进的软件技术帮助用户真正意义上提高生产率。

  • Okular:Okular是Ubuntu下很受欢迎的一款PDF阅读器,拥有各种好用的PDF文档注释及格式转换功能。我们可直接执行sudo apt-get install okular命令来安装它。

  • GIMP:GIMP是GNU图像处理程序(GNU Image Manipulation Program)的缩写。包括几乎所有图象处理所需的功能,号称Linux下的PhotoShop。我们可直接执行sudo apt-get install gimp命令来安装。

  • Dia:Dia是Linux环境下的一款绘制流程图的工具,我们可以用它来绘制各种各样的图形,如UML、流程图、界面构造等。对于一些常用的图形,Dia都提供了相应的模板。我们可直接执行sudo apt-get install dia命令来安装。

兼顾Windows

在Linux下使用windows软件,有两种方式,第一种是安装虚拟机软件(譬如virtualbox),然后在其中安装一个Windows系统的虚拟机。另一种是使用wine。

  • VirtualBox的安装非常简单,在Ubuntu下可直接执行sudo apt-get install virtualbox命令来安装它。在其中安装Windows和在实体机上安装并没有差别,这里就不多做介绍了。

  • wine是一个在Linux和UNIX之上的,Windows 3.x和 Windows APIs的实现。注意,Wine不是Windows模拟器,而是运用API转换技术实做出Linux对应到Windows相对应的函数来调用DLL以运行Windows程序。Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris。另外,也有适用于Mac OS X的Wine程序。Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的。如果有可利用的副本的话,它也可以随意地使用本地系统的DLLs。Wine的发布是完全公开源代码的,并且是免费发行的。

wine使用实例:安装QQ

  • 第一步:先核心字体,在终端中执行命令winetricks corefonts vcrun6
  • 第二步:安装qq,在终端中执行命令winetricks qq
  • 第三步:如果qq的启动不能启动,在终端中执行命令gedit .local/share/applications/wine/Programs/腾讯软件/QQ/腾讯QQ.desktop,打开启动器文件并将其内容修改如下:

      [Desktop Entry]
      Name=腾讯QQ
      Type=Application
      StartupNotify=true
      Icon=QQ
      Exec=wine /home/owlman/.wine/drive_c/Program\ Files/Tencent/QQ/Bin/QQScLauncher
      # Exec=env WINEPREFIX=/home/owlman/.wine wine C:\Program Files/Tencent/QQ/bin/QQScLauncher.exe
    

常用的shell命令

作为一名Linux用户来说,键盘的作用往往要远大于鼠标。而且,我也希望越来越多的用户能认识到命令行的潜在价值,不要把它视为只是计算机专家们的玩具,这些工具所带来的方便和效率,是图形界面无法比拟的。计算机管理员可以通过它们在更少的时间内、更有效地完成复杂的任务。以下是我自己的一些常用命令。

  • 文件操作:

    • 进入指定目录:cd <dirname>
    • 显示当前目录:pwd
    • 创建目录: mkdir <dirname>
    • 表列出文件: ls <dirname>
    • 表列文件详细信息:ls -l <dirname>
    • 表列所有文件(包含隐藏文件):ls -a <dirname>
    • 为文件添加可执行权限:chomd +x <filename>
    • 为文件或目录添加写权限:chmod +w <filename_or_dirname>
    • 为文件或目录分配只读权限:chomd =r <filename_or_dirname>
    • 复制文件或目录:cp [option] <old_dir_or_old_file> <new_dir_or_new_file>
    • 移动文件或目录:mv [option] <old_dir_or_old_file> <new_dir_or_new_file>
    • 删除文件或目录:rm [option] <dirname_or_filename>
    • 文件软链接:ln -s <dirname_or_filename> <linkname>
    • 显示文件内容:cat <filename>
    • 翻页显示文件内容:cat <filename> | less
    • 将文件内容追加到另一文件中:cat <source_file> >> <target_file>
    • 根据文件名查找文件:find <dirname> -name "<regex>"
    • 找出某目录下n天之内更新过的文件:find <dirname> -ctime -n
  • apt包管理器:

    • 搜索指定包:apt-cache search <packagename>
    • 获取指定包的信息:apt-cache show <packagename>
    • 安装指定包:apt-get install <packagename>
    • 重新安装指定包:apt-get install <packagename> --reinstall
    • 删除指定包:apt-get remove <packagename>
    • 删除指定包及其配置文件:apt-get remove <packagename> --purge
    • 更新源:apt-get update
    • 更新已安装的包:apt-get upgrade
    • 升级系统:apt-get dist-upgrade
    • 了解使用依赖:apt-cache depends <packagename>
    • 查看该包被哪些包依赖:apt-cache rdepends <packagename>
    • 下载指定的源代码:apt-get source <packagename>
    • 清理无用的包:apt-get clean
  • sed命令:

    • 对文件执行命令:sed [options] <command> <filename(s)>
    • 对文件执行脚本:sed [options] -f <scriptfile> <filename(s)>
  • wget命令:

    • 下载文件: wget <URL>
    • 下载并另存为:wget -o <filename> <URL>
    • 断点续传下载:wget -c <URL>
  • tar命令:

    • 查看压缩包:tar -tf <packagename>.tar.gz
    • 压缩文件:

        tar –cvf <packagename>.tar *.jpg
        tar –czf <packagename>.tar.gz *.jpg
        tar –cjf <packagename>.tar.bz2 *.jpg
        tar –cZf <packagename>.tar.Z *.jpg
      
    • 解压文件:

        tar –xvf <packagename>.tar
        tar -xzvf <packagename>.tar.gz
        tar -xjvf <packagename>.tar.bz2
        tar.bz2tar –xZvf <packagename>.tar.Z
      
  • xsel命令:

    • 将文件内容复制到剪贴板:cat <filename> | xsel -i
    • 将剪贴板中的内容复制到文件:xsel > <filename>
    • 将剪贴板中的内容追加到文件:xsel >> <filename>
© owlman all right reserved,powered by Gitbook该文件修订时间: 2019-09-25 14:01:15

results matching ""

    No results matching ""