优雅的使用Linux
优雅的使用Linux
系统安装
启动盘制作
通过rufus烧制官网镜像,注意根据自己系统的引导模式选择相应模式,不确定的,可以在windows中通过Win + R 快捷键调出“运行”对话框,输入“msinfo32”,确定,打开“系统信息”窗口查看。
分区
如果windows的引导正常,安装时可以选择与windows共存。如果未出现该选项,可以这么分区:
- 挂载点/;主分区;安装系统和软件;大小为30G;分区格式为ext4;
- 挂载点/home;逻辑分区;相当于“我的文档”;越大越好; 分区格式ext4;
- swap;逻辑分区;充当虚拟内存;根据内存情况判断,小内存就按等大分,16G及以上4G足矣;分区格式为swap
- /boot;引导分区;逻辑分区;一般推荐200M,但我建议800,可以不用频繁的去删除旧内核释放空间;分区格式为ext4;
- 参考链接:linux系统分区
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,找到无线开关,无论当前状态,改变后保存退出,重启后重复一次。
:::
显卡驱动/无法关机
集显的锅,禁用集显,安装独显驱动即可
卸载掉原来的nvidia驱动
sudo apt-get autoremove --purge nvidia-*
打开配置文件,禁用nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
禁用nouveau第三方驱动,在最后一行添加
blacklist nouveau
执行或者重启后执行,没有输出就ok
lsmod | grep nouveau
之后有两种方式进行安装:
- 打开软件与更新->附加驱动进行驱动安装,较为受限,可选驱动与勾选的源有关,往往看不到较新的驱动。
- 通过终端直接添加驱动对应源进行安装
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-410
- 重启后查看当前显卡驱动版本:
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插件配置
- 下载chrome插件Proxy SwitchyOmega,由于此时还没有代理,所以我们通过github下载
链接 - chrome打开chrome://extensions/.将下载的插件拖进去安装
- 在菜单栏找到插件按钮,点击
选项
按钮,在情景模式中添加socks5代理,添加本地代理服务器127.0.0.1,代理端口1080. - 遇到需要代理的网址,点击右上角插件按钮,然后选择刚刚添加的情景模式,同时添加条件,方便下次自动代理.
- 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映射为左下上右四个方向键。
剪贴板增强
安装后进行如下配置:
- 剪贴板功能勾选
- 快捷键设置
截图增强
- 安装
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 ,右側捲動到最下面有個+號,按下後
- Name: flameshot
- Command: /usr/bin/flameshot gui
- 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基础
终端
- 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 .
orls
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的更多相关文章
- 如何优雅地删除 Linux 中的垃圾文件
不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容.如果不是的话,你也可以留下来凑凑热闹嘛(>-& ...
- 最佳 Linux 发行版汇总
Linux入门UbuntuUbuntu是一款基于Debian发行版,以Unity作为默认桌面环境的Linux操作系统.他是世界上最流行的发行版之一,每次发行,它都有提升.最新发行版为桌面.移动及其桌面 ...
- 优雅退出在Golang中的实现
背景 为什么需要优雅关停 在Linux下运行我们的go程序,通常有这样2种方式: 前台启动.打开终端,在终端中直接启动某个进程,此时终端被阻塞,按CTRL+C退出程序,可以输入其他命令,关闭终端后程序 ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- Linux 下EXT2文件系统 —— 如何将蚂蚁和大象优雅的装进冰箱里
这一阵子真是偷懒,无时无刻不和自己身体中的懒癌做斗争.最终我还是被打败了,星期天两天几乎都是荒废过去的,在空闲的时候实际上我内心也是有点焦虑的,不知道去怎么度过这时间.学习吧又不想学习,看电视娱乐吧也 ...
- linux下如何优雅的挂载一个外界设备(比如优盘)
最近从事linux,实验室一个破服务器,能连上网,但是输入这样的命令: yum -y install gcc yum -y install gcc-c++ ,居然说是没有这样的镜像,也罢 ...
- Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux系统下如何优雅地关闭Java进程?
资料出处: http://www.sohu.com/a/329564560_700886 https://www.cnblogs.com/nuccch/p/10903162.html 前言 Linux ...
- 在 Linux 如何优雅的统计程序运行时间?恕我直言,你运行的可能是假 time
最近在使用 time 命令时,无意间发现了一些隐藏的小秘密和强大功能,今天分享给大家. time 在 Linux 下是比较常用的命令,可以帮助我们方便的计算程序的运行时间,对比采用不同方案时程序的运行 ...
随机推荐
- 解决python3 pip安装、更新及yaml安装
问题:python3.6版本使用pip安装第三方库时总是报错 电脑中存在多个python版本写成对应pip版本 解决:pip3 install pyOpenSSL -i http://pypi.dou ...
- BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 连接数据库执行SQL语句
BIML 101 - BIML 快速入门教程 第一节 连接数据库执行SQL语句 本小节将用BIML建一个简单的可以执行的包. 新建一个biml文件,贴入下面的代码 1 <Biml xmlns=& ...
- JAVA项目中文件重命名方式
可以直接改类名,之后eclipse会报错: 点击×号会给出解决方案: 注意:不能通过右击servlet文件直接重命名.否则运行之后程序会报错(文件路径不对之类的)
- 2018-2019-2 网络对抗技术 20165321 Exp3 免杀原理与实践
1. 实践内容(4分) 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellco ...
- 快速排序 之添加复合插入排序和原始序列取中值左pivot
quicksort中,当n小于一定值时,排序效率就比直接插入排序底了,所以,此时就不要再递归下去了,直接插入排序好了:快速的原理就是因为折半递归,所以初始pivot应该有个好一点的选择,这里在原序列左 ...
- live Templates 活动模板. 配置完之后,就可以快速编码-代码块
配置:live Templates 活动模板. 配置完之后,就可以快速编码-代码块. 输入startflask敲回车: 就会生成代码: 怎么做到的呢? 如下: 注意第七步: 原本不是cha ...
- C#中类成员的执行顺序
先进行细分: 类的成员分为:字段.属性.方法.构造方法 成员的修饰符:静态成员.实例成员 层次结构:父类.子类 先不考虑继承关系,执行顺序为: 静态字段静态构造方法实例字段实例构造方法属性和方法是在调 ...
- spring boot入门小案例
spring boot 入门小案例搭建 (1) 在Eclipse中新建一个maven project项目,目录结构如下所示: cn.com.rxyb中存放spring boot的启动类,applica ...
- oracle - 查询某些表是空白,需要提升权限后,才可查询出数据
begin fnd_global.apps_initialize(user_id => 1150 ,resp_id => 50738 ,resp_appl_id => 660 ); ...
- C++ cout格式化输出
表1:C++ 流操纵算子 流操纵算子 作 用 *dec 以十进制形式输出整数 常用 hex 以十六进制形式输出整数 oct 以八进制形式输出整数 fixed 以普通小数形式输出浮点数 scienti ...