优雅的使用Linux

系统安装

启动盘制作

通过rufus烧制官网镜像,注意根据自己系统的引导模式选择相应模式,不确定的,可以在windows中通过Win + R 快捷键调出“运行”对话框,输入“msinfo32”,确定,打开“系统信息”窗口查看。

分区

如果windows的引导正常,安装时可以选择与windows共存。如果未出现该选项,可以这么分区:

  1. 挂载点/;主分区;安装系统和软件;大小为30G;分区格式为ext4;
  2. 挂载点/home;逻辑分区;相当于“我的文档”;越大越好; 分区格式ext4;
  3. swap;逻辑分区;充当虚拟内存;根据内存情况判断,小内存就按等大分,16G及以上4G足矣;分区格式为swap
  4. /boot;引导分区;逻辑分区;一般推荐200M,但我建议800,可以不用频繁的去删除旧内核释放空间;分区格式为ext4;

bug处理

wifi/蓝牙失效

安装完成后WiFi和蓝牙没有显示,这是因为联想的锅,linux在硬件上关闭了wifi和蓝牙.可以如此施为:

rfkill list all
结果为:

Hard blocked:yes石锤了,由于硬件阻塞无法干预,而下方的模块2和3分别为可用的蓝牙和无线网卡模块。所以只要我们将上方的ideapad模块移除并加入黑名单就可以一劳永逸了。

sudo modprobe -r ideapad_laptop #移除被硬件关闭的无线模块
sudo gedit /etc/modprobe.d/ideapad.conf #为了一劳永逸,将刚刚移除的模块加入黑名单

在打开的文件中输入blacklist ideapad_laptop

最后别忘了无线网卡的还软件阻塞着呢,所以需要启用它:

大功告成。

:::tips

我在使用过程中出现了双系统无线模块丢失的情况,一番折腾后发现了解决办法:

开闭下bios中的无线开关即可解决问题。具体是:重启进bios,找到无线开关,无论当前状态,改变后保存退出,重启后重复一次。

:::

显卡驱动/无法关机

集显的锅,禁用集显,安装独显驱动即可

  1. 卸载掉原来的nvidia驱动

    sudo apt-get autoremove --purge nvidia-*

  2. 打开配置文件,禁用nouveau

    sudo gedit /etc/modprobe.d/blacklist.conf

  3. 禁用nouveau第三方驱动,在最后一行添加

    blacklist nouveau

  4. 执行或者重启后执行,没有输出就ok

    lsmod | grep nouveau

之后有两种方式进行安装:

  • 打开软件与更新->附加驱动进行驱动安装,较为受限,可选驱动与勾选的源有关,往往看不到较新的驱动。
  • 通过终端直接添加驱动对应源进行安装
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-410
  1. 重启后查看当前显卡驱动版本:

    cat /proc/driver/nvidia/version

开机报错处理

日常开机都会报几个无伤大雅的错,既然解决不了,干脆屏蔽了。

sudo gedit /etc/default/apport
# enabled=1改为enabled=0

常规配置

更换软件源

  • 安装完成后的第一件事就该是更换软件源。
  • 打开系统设置->系统->软件和更新->Ubuntu软件,根据最佳服务器的测试结果选择,不过一般选择清华或者阿里云的即可,博主根据实际情况选择的cn99的源。

关闭时等待更新软件信息完毕即可。

  • 如果出现更新源失败,点开细节查看错误提示。首次更新源报错大概率是更新的源有问题,编辑/etc/apt/sources.list,把开头有cdrom://的那行前面加上#注释掉,同时在软件和更新->其他软件中取消勾选cdrom的源。如果还有问题,那就根据错误提示进终端取得root权限将/etc/apt/sources.list.d中对应源删除。
  • 参考:下载仓库信息失败

输入法

下载搜狗输入法

通过super+A组合键呼出应用列表,选择fcitx配置,将键盘-汉语调整至第一位,搜狗拼音放在第二位。其他删除。

fcitx配置的优先级是高于搜狗自己的设置的,所以,如果你发现自己在搜狗里的设置没有生效,可以进fcitx配置里看看是不是冲突了。比如我在搜狗里设置了按shift切换中英文,但fcitx配置里默认是按shift切换输入法,于是....

快捷键设置

  • 长按super键(微软的徽标键)会显示常用快捷键。
  • Ctrl+Alt+方向键可以快速切换窗口

进入系统设置->硬件->键盘->快捷键进行设置,如果设置后尝试无效,可能是该快捷键已被占用。

代理配置

采用shadowsocks+chrome的proxy插件方案。

shadowsocks安装

sudo apt-get update
sudo apt-get install python-pip #安装pip
sudo pip install shadowsocks #出现警告就加上-H参数重试

喜欢图形化界面的可以将shadowsocks替换为shadowsocks-qt5:

sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5

配置shadowsocks

在/home路径下新建配置文件,qt5类似。

sudo gedit shadowsocks.conf

添加如下信息

{
"server":"server_IP", #服务器IP
"server_port":server_port,#服务器监听端口
"local_address":"127.0.0.1",
"local_port":1080,
"password":"ss_pswd",#服务器ss设置的密码
"timeout":300,
"method":"RC4-MD5" #服务器ss加密的方式
}

运行客户端ss服务,start表示开启服务,stop表示关闭服务

sudo sslocal -c /home/shadowsocks.conf -d start

注:报错的话检查配置文件的路径是否正确。比如在我的电脑上就应该是:

sudo sslocal -c /home/eastzzp/shadowsocks.conf -d start

每次服务器变动,都需要将服务先关闭再开启

proxy插件配置

  1. 下载chrome插件Proxy SwitchyOmega,由于此时还没有代理,所以我们通过github下载

    链接
  2. chrome打开chrome://extensions/.将下载的插件拖进去安装
  3. 在菜单栏找到插件按钮,点击选项按钮,在情景模式中添加socks5代理,添加本地代理服务器127.0.0.1,代理端口1080.
  4. 遇到需要代理的网址,点击右上角插件按钮,然后选择刚刚添加的情景模式,同时添加条件,方便下次自动代理.
  5. ubuntu服务器端配置参考:Ubuntu 16.04下Shadowsocks服务器端安装及优化

全局代理

完成以上步骤已经可以用浏览器代理上网了。但是用终端时还是直接连接,要实现终端也进行代理,一般有两种方式,一种是使用polipo,一种是使用proxychains。本文使用的是后者。

  • 安装proxychains

    sudo apt-get install proxychains

  • 配置proxychains.conf

    sudo vim /etc/proxychains.conf

:::info

将文件内容末尾的socks4 127.0.0.1 9050 前面加上井号# 注释,然后在下面加上socks5 127.0.0.1 1080 ,保存并退出。

完成,之后在执行需要代理上网的命令时都在前面加上proxychains。

:::

参考:Ubuntu实现全局代理

舒适区

ieaseMusic

网易云第三方客户端,不是原版胜似原版。

下载工具

uget

sudo apt-get install uget

占用率插件安装

Indicator sysmonitor是在顶栏显示CPU和内存使用一个有用的工具。它还显示栏的各种温度传感器。它也允许用户运行有自己的命令展会上的顶栏的输出。Indicator sysmonitor可以与GNOME(ubuntu18)面板和Unity(Ubuntu16)正常工作。

安装

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
sudo apt-get update
sudo apt-get install indicator-sysmonitor

启动

  • 通过终端,Ctrl C退出后即可后台

    indicator-sysmonitor &
  • 通过app

    通过super键呼出搜索框,输入system,即可看到System Monitor Indicator,点击即可运行

配置
在顶栏插件位置右键点击Preference,General处勾选开机自动运行,Advanced处自定义显示效果。结束后保存。

全局呼出

安装Albert

按键重映射

xkeysnail
安装后,在用户目录新建xkeysnail.py,打开后输入以下内容:

from xkeysnail.transform import *

define_keymap(None, {
# Ctrl+Alt+j/k to switch next/previous tab
K("M-h"): K("left"),
K("M-j"): K("down"),
K("M-k"): K("up"),
K("M-l"): K("right"),
})

该方案是将Alt+HJKL映射为左下上右四个方向键。

剪贴板增强

copyQt

安装后进行如下配置:

  • 剪贴板功能勾选

  • 快捷键设置

截图增强

  • 安装

Flameshot,该软件可以在截图后完成相应的编辑。

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/Vitzy/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/home:Vitzy.list"
sudo apt-get update
sudo apt-get install flameshot
  • 配置

将默认的Prtsc设为Flameshot的快捷键。
到Settings -> Devices -> Keyboard ,右側捲動到最下面有個+號,按下後

  1. Name: flameshot
  2. Command: /usr/bin/flameshot gui
  3. Shortcut: 點選Set Shortcut...按鈕後,按下鍵盤上的PrtSc鍵

安装mac主题

参考:

打造完美的 Ubuntu16.04

不美翻怎么开发!Ubuntu 16.04 LTS深度美化!

Linux基础

可以参考菜鸟教程:
Linux文件与目录管理
Linux用户管理
Linux磁盘管理
常见的shell命令都可以在里面找到。

目录结构

根目录

Linux的根目录在shell中一般用 / 来表示,包含我们在安装系统时划分的所有分区。

  • 显示根目录下所有目录/分区:

  • 显示所有分区信息(Linux):

  • 根目录的磁盘视图:

:::info

从分区信息的最后一列挂载点可以看出,所有的分区都是挂载在根目录下 / 下。同时根目录下的目录列表也包含了所有分区的二级挂载点。
在Linux的磁盘视图中,根目录就是 计算机 。

:::

用户区域

用户的默认活动区域,软件的默认安装位置也是这里,shell中一般用 ~ 表示。值得注意的是,用户区域是 home 的子目录,然而在Linux的磁盘视图中,用户文件夹的标注是这样的:

这是误导性的,左上角的“Home”改为当前用户的用户名更为合适。

打印用户区域的目录结构,以我的系统为例:


:::info

我的用户名是eastzzp,这两种方式列出的文件目录与上面的磁盘视图也是吻合的。

:::

Shell基础

SHELL 基本命令汇总

终端

  • show default shell: echo $SHELL
  • list all available shell: cat /etc/shells
  • select default shell: chsh
eastzzp@eastzzp-pc:~$ chsh
# Enter the new value, or press ENTER for the default
# Login Shell [/bin/sh]:
# switch to bash
eastzzp@eastzzp-pc:~$ /bin/bash
  • switch to bash: exec bash
  • switch to zsh: exec zsh

ls

list directory

  • show root directory: ls /
  • show user directory: ls ~
  • show current directory: ls . or ls

which

show where the thing is

磁盘管理

  • 打印分区容量信息
eastzzp@eastzzp-pc:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hdc2 9.5G 3.7G 5.4G 41% /
/dev/hdc3 4.8G 139M 4.4G 4% /home
/dev/hdc1 99M 11M 83M 12% /boot
tmpfs 363M 0 363M 0% /dev/shm
  • 打印目录容量信息
eastzzp@eastzzp-pc:~$ du -h ~/图片
76M /home/eastzzp/图片/wallpapers
64K /home/eastzzp/图片/local_pic
76M /home/eastzzp/图片

:::info

-h:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;详见磁盘管理所附链接。

:::

  • 磁盘操作

fdisk:分区表操作
mkfs:磁盘格式化
mount:磁盘挂载与卸除
详见菜鸟教程链接。

source

也称"点命令",也就是一个点符号 . ,是bash的内部命令。它的作用是使shell读入指定的shell文件并依次执行文件中的所有语句。通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

一般而言,以下三个命令的效果是相同的,但存在细微的差别

  • source filename

等价于 . filename 。简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

  • sh filename

重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。

  • ./filename

./filename是因为当前目录没有在PATH中,所以”.”是用来表示当前目录的。当待执行的文件具备执行权限时, sh filename 与 ./filename 的效果是一样的的。

apt/apt-get

apt是apt-get的替代者,基本上能用apt-get的地方都可以用apt。

  • 包管理

安装包:sudo apt-get install package 
自动卸载不需要的包:sudo apt autoremove 
重新安装包:sudo apt install package - - reinstall
修复安装:sudo apt -f install
删除包:sudo apt remove package
删除包,包括删除配置文件等:sudo apt remove package - - purge
清理无用的包:sudo apt clean && sudo apt autoclean
检查是否有损坏的依赖:sudo apt-get check
搜索包:apt-cache search package
获取包的相关信息,如说明、大小、版本等:apt-cache show package
了解使用依赖:apt-cache depends package
查看该包被哪些包依赖:apt-cache rdepends package

  • 更新源

更新源:sudo apt-get update
更新已安装的包:sudo apt-get upgrade
升级系统:sudo apt-get dist-upgrade
使用 dselect 升级:sudo apt-get dselect-upgrade

环境变量管理

Ubuntu下的环境变量配置文件

  • /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
  • /etc /environment:在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
  • ~/.profile :  在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
  • /etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
  • ~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。 

    :::tips

    上面的bashrc等文件是为bash服务的,如果你的终端是zsh,那么需要修改就是home中的 .zshrc 文件

    :::

环境变量的设置方法

  • 用户主目录下的.profile或.bashrc文件(推荐)
# 登录到你的用户(非root),在终端输入:
$ sudo gedit ~/.profile(or .bashrc)
# 可以在此文件末尾加入PATH的设置如下:
export PATH=”$PATH:your path1:your path2 ...”
# 保存文件,注销再登录,变量生效。

该方法添加的变量仅对当前用户生效。

  • 系统目录下的profile文件(谨慎)
# 在系统的etc目录下,有一个profile文件,编辑该文件:
$ sudo gedit /etc/profile
# 在最后加入PATH的设置如下:
export PATH=”$PATH:your path1:your path2 ...”
# 该文件编辑保存后,重启系统,变量生效。

该方法添加的变量对所有的用户都有效。

  • 系统目录下的 environment 文件(谨慎)

在系统的etc目录下,有一个environment文件,编辑该文件。在 PATH="<......>" 中添加自己的path即可,比如 PATH="<......>:your path1:your path2 …"  。
重启对所有用户生效。

  • 终端临时修改
sudo export PATH="$PATH:your path1:your path2 …"

立即生效,但用户注销或系统重启后设置变成无效,适合临时变量的设置。 

:::info

方法二和三的修改需要谨慎,尤其是通过root用户修改,如果修改错误,将可能导致一些严重的系统错误。因此推荐使用第一种方法。

:::

系统备份

参考博客:Ubuntu系统备份
参考博客:为以下代码来源

# 备份
$ sudo su
$ cd /
$ tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/media /
# 还原
# 删除该根目录下的所有文件
$ sudo rm -rf /media/磁盘名称/分区名称*
将备份文件”backup.tgz”拷入该分区;
$ sudo cp -i backup.tgz /media/磁盘名/分区名sdaX
进入分区并将压缩文件解压缩,参数x是告诉tar程序解压缩备份文件。
$ sudo tar xvpfz backup.tgz
重新创建那些在备份时被排除在外的目录;
$ sudo mkdir proc lost+found mnt sys media

生产环境配置

anaconda安装

  • 下载

百度云盘链接:  提取码: j9sa,anaconda3-5.3.1-Linux-64.sh
科大源下载

  • 安装

由于是sh文件,所以通过bash或者sh可以直接安装。一路yes,最后会安装在home中。

  • 添加环境变量
# 将anaconda的bin目录加入PATH
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc # 更新bashrc以立即生效
source ~/.bashrc
  • 检验

可以通过 conda --version 或 python --version 检验安装是否正确。

  • 更换conda源

由于清华园未获授权已停止更新,所以建议更换为科大的源。

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

pycharm

优雅的使用Linux的更多相关文章

  1. 如何优雅地删除 Linux 中的垃圾文件

    不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容.如果不是的话,你也可以留下来凑凑热闹嘛(>-& ...

  2. 最佳 Linux 发行版汇总

    Linux入门UbuntuUbuntu是一款基于Debian发行版,以Unity作为默认桌面环境的Linux操作系统.他是世界上最流行的发行版之一,每次发行,它都有提升.最新发行版为桌面.移动及其桌面 ...

  3. 优雅退出在Golang中的实现

    背景 为什么需要优雅关停 在Linux下运行我们的go程序,通常有这样2种方式: 前台启动.打开终端,在终端中直接启动某个进程,此时终端被阻塞,按CTRL+C退出程序,可以输入其他命令,关闭终端后程序 ...

  4. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  5. Linux 下EXT2文件系统 —— 如何将蚂蚁和大象优雅的装进冰箱里

    这一阵子真是偷懒,无时无刻不和自己身体中的懒癌做斗争.最终我还是被打败了,星期天两天几乎都是荒废过去的,在空闲的时候实际上我内心也是有点焦虑的,不知道去怎么度过这时间.学习吧又不想学习,看电视娱乐吧也 ...

  6. linux下如何优雅的挂载一个外界设备(比如优盘)

    最近从事linux,实验室一个破服务器,能连上网,但是输入这样的命令:        yum -y install gcc yum -y install gcc-c++ ,居然说是没有这样的镜像,也罢 ...

  7. Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  8. Linux系统下如何优雅地关闭Java进程?

    资料出处: http://www.sohu.com/a/329564560_700886 https://www.cnblogs.com/nuccch/p/10903162.html 前言 Linux ...

  9. 在 Linux 如何优雅的统计程序运行时间?恕我直言,你运行的可能是假 time

    最近在使用 time 命令时,无意间发现了一些隐藏的小秘密和强大功能,今天分享给大家. time 在 Linux 下是比较常用的命令,可以帮助我们方便的计算程序的运行时间,对比采用不同方案时程序的运行 ...

随机推荐

  1. 2PC/3PC/Paxos

    在分布式系统中,一个事务可能涉及到集群中的多个节点.单个节点很容易知道自己执行的事务成功还是失败,但因为网络不可靠难以了解其它节点的执行状态(可能事务执行成功但网络访问超时). 若部分节点事务执行失败 ...

  2. 11、jeecg 笔记之 界面常用整理 - 方便复制粘贴

    1.datagrid 操作按钮(按钮样式) 操作按钮的显示主要依赖于 <t:dgCol title="操作" field="opt"  ></ ...

  3. Python---Models 模型

    #Models 模型 数据结构 + 算法 = 程序 ---> URL ---> VIEW ---> Temple ---> DB:分类---关系 Teacher   Stude ...

  4. Azure架构(一):云计算基础

    云计算的定义 云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给使用各种计算终端(桌面电脑.笔记本电脑.平板电脑.手机等) ...

  5. linux 几种服务类型

    采集来自于 https://blog.csdn.net/hguisu/article/details/7453390 https://blog.csdn.net/limo120621/article/ ...

  6. 爬取豆瓣电影排行top250

    功能描述V1.0: 爬取豆瓣电影排行top250 功能分析: 使用的库 1.time 2.json 3.requests 4.BuautifulSoup 5.RequestException 上机实验 ...

  7. office word memo

    显示左侧目录树 office 和 wps 的差异 wps 的版本:视窗 ->文档结构图 office 的版本: 视图 ->导航窗格

  8. pycharm Python Console调试 & django 调试

    1.设置断点,然后debug     2.如果在运行中想修改变量,可以直接在pycharm中修改 如将列表的 13改成3,然后选中 Excuting Selection in console     ...

  9. docker 标记和推送镜像

    打开Launchpad并定位到docker Quickstart Terminal图标. 点击Docker Quickstart Terminal图标, 打开一个窗口. 将光标定位到Docker Qu ...

  10. spark的运行模式

    1.local(本地模式) 单机模式,通常用来测试 将spark应用以多线程方式,直接运行在本地 本地模式可以启动多个executor不过上限不能超过cpu数 2.standalone(独立模式) 独 ...