Ubuntu16升级到18.04
“”“
有特殊新颖强迫症癖好能够升下,若是你以为16.04好用,就根本不必升了
”“”
我当时租的 云服务器一般都是16.04,如今估计也是16.04较多
我是个Python3的玩家, 我只想用Python的最新版,或最新标准版3.6-3.7
道理很简单,我追求新颖,虽然新版不稳定,可是你能够尝鲜并领先于别人。。。
废话很少说:
Ubuntu16.04: 默认装的是Python2.7 + Python3.4 或3.5
Ubuntu18.04: 默认装的是Python2.7 + Python3.6.+
我喜欢升级系统版原本直接让对应软件升级:
lsb_release -a # 查看系统版本
apt update # 一路选Y
apt dist-upgrade
apt autoremove # 一路选Y
apt install update-manager-core # 比较重要
do-release-upgrade -d # 完事
注:
若是其中某个命令过程弹出一个黑窗口让你选择, 我记得有个
core-new-update 字眼的,选这个便可 # 选择 新 核心
vim多行注释(Python为例)
Ubuntu是确定能够用, CentOS我记得好像用不了
直接一套连招:
注释:
1. ctrl + v
2. 按 下 箭头方向键,选中多行
3. shift + i
4. 输入 #
5. 按两下 ESC键
取消注释:
1. ctrl + v
2. 按 下 箭头方向键,选中多行
3. 按 x 键
注: 此套连招,须要熟练度, 若是不行就多练练。 手很差使,就不要怪我了~~~~
vimrc简单配置:
“”“
tab = 4缩进,
设置行号
基于文件名的简单语法高亮
不要想着删一行,直接打开vimrc 所有复制上去,保存退出就能够用了
”“”
vi ~/.vimrc
syntax on
set nu
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
locate查询库
locate xxx # 虽然很简单的命令,可是若是,一直为下线,而且还想查找新东西,那么须要更新库
updatedb # 更新搜索库, 完事
若是 updatedb命令出错,那就安装一下 mlocate就行了:
yum/apt-get install mlocate
htop查看服务器负载
ubuntu/centos中有
top : 此命令能够详细查看服务器各类负载,资源情况,可是看着不方便,很是费劲
htop : top的升级版, 容易看出资源消耗状况
若是未安装,可经过
apt-get/yum install htop 安装
htop -d 0.1 # 0.1秒动态更新一次资源数据。 看起来有一点炫。
pkill
ps -el 查看 PId + kill -9 PID # 这套连招可强制杀死一个进程
但假如你有一连串的python进程 想要 所有KILL
pkill python # 完事,和python有关的全KILL掉了,也能够经过通配符* 的方式来简写
patree列出进程
tree: 此命令用来列出目录层级结构
pstree: 用来列出 正在运行的 程序(全部进程的层级结构,进程名)
pstree -p: 以层级的方式,不只列出进程名, 还列出全部进程的(PID)
alias更名
vi /etc/profile
alias python='python3' # 这里是举个例子,配完,python命令就等价于 python3命令
alias pip='pip3'
source /etc/profile # 不要忘记,这条命令 更新一下配置文件
重定向管道 ( > 与 tee )
date > date.txt # 截流, 屏幕上不显示
date | tee date.txt # 不截流, 屏幕上显示, 而且还能输入到文件
! 叹号命令
”“
!命令前缀 : 运行最后一条以这个前缀开头的命令
”“
假以下面是你最后按顺序再command终端 输入的四条命令:
python aaa.py
python bbb.py
npm run dev
pip install ccc
需求:你想迅速运行 python bbb.py这条命令
你只需
!py # 便可, 愣着干啥呢, 已经完事了,这条命令就等于你上面那一大串
解惑:
1. !py -> py开头的有两条,为啥不执行第一条 python aaa.py
由于 ! 叹号 的语法意思就是选择 最后出现以py开头的执行。
2. 为啥直接 !p 不行呢?
由于以p开头的最后一条命令是 pip install ccc。 这也不是你想要的啊。
ctrl+z 和 & 和 nohup 和 screen
ctrl+c: 强制终止(最经常使用的,先提出来。。。。 应该都知道的。。)
ctrl+z: 能够把正在运行中的程序挂起到后台(注意这时候程序就暂停了)
jobs: 粗略列出 后台挂起的程序
jobs -l: 详细列出 后台挂起的程序 (其实就是多列出了个PID)
kill -9 PID # 顺水推舟地使用此命令来经过 PID 干掉后台挂起的程序
fg: 把挂起的后台的程序 拿回来继续执行
fg 程序编号: 若是有多个后台挂起的程序,选择一个继续执行,编号可经过 jobs 查看。
使用场景:
加入正在 vim 编辑东西,想跳出编辑器,写点别的,那么能够 进行下面操做:
不要保存, 直接 ctrl+z
而后去 作别的事
作完了想回到 vim继续编辑剩下的内容, 直接 fg
&: 运行 的 时刻 就直接 放到后台 (不实用)
eg: (一般是费时的操做,或者长时间占用 command命令行)
sleep 100 & # 这样费时100秒的操做,直接让它滚去后台执行,别占我地方
局限:
假如你用 python xxxx.py & 运行一个web服务器,虽然它会滚去后台一直运行。
前台command界面看起来很干净了。
可是,若是有用户请求过来, 你服务器收到打印在终端的信息 可不会乖乖打印在后台。
打印信息会钻出来到前台command界面来恶心你。。。。。
为了解决这一问题, 请移步 下面 ...
nohup: (一般和 上面的 & 联合使用) (实用性通常)
eg: 一样运行一个服务器
nohup python xxx.py &
# 它会乖乖的滚去后台执行,而且将要打印的消息 也不会打印到前台,也不会打印到后台。
那打印的内容去哪了呢??
nohup会自动给你 把打印的东西重定向 到一个 nohup.out文件,一般在当前目录下
# 这时你的前台command 就不会受到 骚扰了。。。。
也许你觉得它很好用了,能够完美的决绝运行一个费时的进程。可是 它依然是个 loser。。.
局限:
当我一直用 nohup.out 部署一些服务程序的时候,一部署就是不少天。
当时学校断电(我租的阿里云ECS服务器). 虽然服务器能够不间断的执行。
可是 我须要 用 xshell 一直去远程 查看个人 程序运行的怎么样了啊, 是否崩了?
惋惜的是,每次xshell关闭了,你再上去, 想找 经过 nohup & 连招 放到后台程序的时候,
你会痛苦无比。。。很是惨
后来。。。。。。。。。
screen: (会话机制)
没错,后来我就发现了 这个 screen工具
若是你那里没有,就安装一下喽: apt-get / yum install screen
而后须要配置一下:
vi ~/.screenrc # 建立文件
shell -$SHELL # 输入此行内容,保存退出
至于为什么配置这个: 说实话我有点忘了
貌似不一样screen会话对于不一样的shell 权限有限制,致使不少东西用不了,so do it
直接说一套我经常使用且超级实用连招把:
eg:
screen -S 会话名 # 建立 并 进入这个会话(就像进入另外一个世界,但资源共享)
python xxx.py # 举例子,这是个人爬虫程序,须要运行 三天
ctrl + a + d # 跳出会话,回到正常命令行,可是这个会话以及你的程序依然在运行,
....... 这段时间(除了关闭服务器)你作什么都行,关闭 shell也能够的。
screen -r 上面的会话名 # 恢复到会话中, 你会发现,爬虫程序还在那里好好的运行呢。
若是你忘记会话名了,没关系:
screen -ls # 这条命令会列出全部 你建立过的会话,你也能够看到会话名
总结:
因此,我不知道阁下能不能感觉到 screen的魅力。
咱们能够 经过 screen -r 这一条命令来 迅速回到程序运行的环境。
nohup &: 你用这个执行的程序,关了 xshell, 你再连,你就很差找这个运行的程序了
screen 有一套无缺的系统(就像有开关同样)来控制会话
你进入screen会话中写程序,screen 天然就能有条不紊的管理好 你程序的运行状态
举个白话例子:
你正遛二哈呢,忽然有急事:
nohup & : 你说:‘二哈,等我回来,本身玩把’
你回来时, 二哈跑丢了。 (不受控制,程序找不到了,虽然能够花力气找到)
screen : 你说:‘二哈,等我回来,本身玩吧,但我要把你拴起来’
你回来时, 二哈还在那里乖乖的玩。(程序有效的受到控制,你能够轻松定位)
sudo su等操做
很差意思,用了好几年linux:
什么 su- su 之类的, 我至今都没搞太明白。。。。。。。。。。
可是,我只用下面这一条命令,这些年就没遇到过问题:
sudo -s # 变为root, 若是你以前输入过密码, 这条命令还会免去让你输入密码的环节
环境变量
把某路径加入到环境变量中:
vi /etc/profile
export PATH=$PATH:/XXX/XX
作一些配置:
vi /etc/profile
vi ~/.bashrc
等修改完后
source /etc/profile # 用一个 source 命令执行一下使配置更新生效
注: Linux-shell我研究的不深,因此这里可能有些说的不是特别明朗。
其实 这些配置文件 以及 source . sh bash 这些命令 和 用户 以及权限等都是有很大关系的。
有兴趣可自行深刻了解
激活Ubuntu的root用户
也许你ubuntu只能用root权限
但你不能使用root用户登陆,或不能使用root用户进行ssh链接
ubuntu实际上是存在 root 用户的, 不用建立,给个密码就能直接使用
sudo passwd root
root用户远程SSH链接
假如你的 xshell 链接不上远程服务器, 可能未开启 或 未安装 sshd服务
以下命令便可:
sudo apt-get install ssh
systemctl start ssh
若是你想要用root用户直接ssh链接, 可做以下配置:
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
systemctl restart ssh
MySQL5.7+/MariaDB修改密码小坑
当阁下还在停留在Mysql5.7版本以前,修改密码能够用下面这两种方式:
mysqladmin -uroot password -p
或内部设置:
update user set password=password('root') where user='root'
可是 MySQL5.7 以后 或者 MariaDB ,上面这俩方法 都不能 修改密码了。
正确修改方式:
先进入MySQL交互式: MySQL -uroot -p
update mysql.user set authentication_string=password("密码") where user="用户名"
update user set plugin="mysql_native_password";
flush privileges
最后重启服务, 完事
另外,值得提醒的一点容易出现的问题:
不管你链接的是什么数据库,若是你连不上
首先你应该想到的是,数据库配置文件:
bind 0.0.0.0 # 每种数据库几乎都须要先改为这样,才能被外界访问
其次,你用的是云服务器的话
看看是否放通了 对应数据库的宽口
最后,是否开了防火墙:
没记错的话,Centos 和 Ubuntu 防火墙不是同一种,真正须要关闭可自行百度
其余命令
"""
一时间也记不起来还用过哪些了
"""
wc : 统计字,词,行(本身选参数)
curl : 能够请求 url,并返回数据(至关于一个小小爬虫),也能够向某个接口发送请求
ssh-keygen :生成公私密钥
cd - : 跳回到上一次的路径
lsb_release -a : 查看Linux发行版信息
grep : 过滤字符
tar : 压缩/解压
netstat : 查端口
等