前言
在Linux
的使用中会碰到很多配置上的问题,在这里总结一下自己在使用过程中碰到的问题的一些行之有效的解决方法。
ubuntu18.04应用程序自启
环境:操作系统是:Ubuntu18.04 LTS
- 按
Alt+F2
,然后输入命令:gnome-session-properties
,按回车,会进入一个启动应用程序首选项的界面 - 添加要启动的命令即可
- 如果是桌面应用程序,可以去
/usr/share/applications
目录下找到对应的.desktop
文件,然后就可以查看当前应用程序的启动参数。
当我亲自试验以后,发现添加到启动菜单候每次只启动一次,第二次开机就没有了。。于是我找到了一个曲线救国的方法。
- 去坚果云官网下载坚果云
- 开启坚果云的自动启动
- 去前面说的目录里面改坚果云的启动参数,改成要启动的软件,这样就可每次开机都有了
ubuntu18.04开启速度优化
systemd-analyze blame
可以显示开机启动项的启动时间- 可以发现
NetworkManager-wait-online.service
这一项特别慢,搜索了一下发现这一项貌似是加载一些网络上的代码,无关紧要可以禁用掉 sudo systemctl disable NetworkManager-wait-online.service
禁用掉
参考链接: Ubuntu | Linux加快开机启动 What does NetworkManager-wait-online.service do? Ubuntu 18.04 踩坑记录(In Update)
zsh和oh-my-zsh安装
- 安装git和zsh
sudo apt install git zsh -y
- 获取安装脚本:
wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
- 切换成zsh:
chsh -s /bin/zsh
如果出现PAM
验证之类的问题,可以参考这个方案:
- 删除已经写入本地的文件
rm -rf ~/.oh-my-zsh/
- 获取脚本:
curl -L http://install.ohmyz.sh > install.sh
sh install.sh
,接下来会提示输入名户名和密码,输入即可
参考: ubuntu 安装oh-my-zsh过程记录 ubuntu16.04安装oh-my-zsh
ubuntu18.04安装pip
首先,不推荐直接用apt install python3-pip
的方式去安装pip,这样安装的pip版本较低(个人感觉有点问题),推荐使用官方的安装脚本get-pip.py
进行安装,在ubuntu18.04的过程中会提示错误,如:ImportError: cannot import name 'sysconfig'
这样的错误,下面给出安装方法
- 如果没有安装curl,首先
apt install curl -y
来安装 - 获取安装脚本:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
,速度慢的同学自行通过梯子下载 - 安装之前:
sudo apt install python3-distutils
安装依赖文件 sudo python3 get-pip.py
安装既可,接下来用pip3 --version
来查看安装的版本
Linux配置pip镜像源
由于pip镜像源在国外,所以在国内可以配置各大镜像站的源来解决安装速度问题,有两种方法
方法一:
- 编辑
~/.pip/pip.conf
文件,没有就创建一个 - 填入以下参数:
|
|
- 完毕
方法二:
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
|
|
参考链接: 清华pypi 镜像使用帮助 USTC-PyPI 镜像源使用帮助
ssh终端乱码
问题的原因是,本地的 locale 与服务器上的 locale 不匹配。参考链接里提供了四种解决方案,而我觉得 Stop forwarding locale from the client 这种解决方案最简单。即,修改 Ubuntu 本地的 /etc/ssh/ssh_config
文件,注释掉
|
|
参考链接:解决 Ubuntu 下 ssh 服务器中文显示乱码
deepin安装问题
安装deepin的过程中会遇到很多坑,比如进不了桌面等关于显卡的问题,在安装的时候先禁用独显
- 正常安装
deepin15.x
- 在开机选项里面按
e
键编辑启动选项,找到quiet splash
在后面加上nouveau.modeset=0
- 在进入系统后执行命令
apt install nvidia-driver
- 重启后会发现系统已经可以正常开机了
- 当启动出现grub命令行的时候,当实在没有办法解决,先装ubuntu再装win10,然后在ubuntu中安装
boot-repair
来修复启动,方法如下 - 或许在安装的过程中会让你设置
acpi=off
,跟着照做
|
|
SwitchyOmega配置
- 打开SwitchyOmega 设置,新建情景模式, 选择自动切换模式
- 导入在线规则列表,类型选择
AutoProxy
,可以选择导入gfwlist –https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
或者自己自定义的AutoProxy
文件。 - 然后规则列表的走proxy,剩下的直接连接即可。
命令行下走ss/ssr代理
- 安装:
sudo apt install proxychains
- 使用:
sudo vim /etc/proxychains.conf
- 在最后的ProxyList里加入Shawdowsocks的代理设置:
socks5 127.0.0.1 1080
- 使用:在你要使用的命令前加上
proxychains
,其他的不变
python一句话服务器
- 在python2环境下:
python -m SimpleHTTPServer 端口
- python3环境下:
python3 -m http.server 端口
好用Linux命令合集
tmux
和screen
可以在后台跑终端scp
可以传输本地和服务器的文件figlet
可以把一句话变成字符画you-get
可以下载b站,youtobe上面的视频,pip3 install you-get
axel
可以替代wget
- Linux下查找文件大小大于100M的文件:
find . -type f -size +100M
bwm-ng
查看实时网速- 使用
unar
解压可以避免unzip乱码 - tar使用:
压缩:
tar -zcvf 压缩文件名.tar.gz 被压缩文件名
解压缩:tar -zxvf 压缩文件名.tar.gz
- linux查看系统版本信息:
lsb_release -a
- 一个命令安装lamp:
apt install lamp-server^
- 更改用户组和所有者:
用户组:
chgrp -R www-data 目录
所有者:chown -R www-data 目录
同时:chown -R www-data:www-data my_files
caddy服务器配置:
默认目录:/usr/local/caddy
参数:
|
|
caddy服务器安装(doubi的临时镜像,需梯子): https://doubmirror.cf/plucovvc-2.html
apache2的常用配置(ubuntu)
配置文件目录:/etc/apache2/sites-available
多站点配置目录:/etc/apache2/sites-available/000-default.conf
多站点配置参数:
|
|
反向代理配置:
首先执行a2enmod proxy proxy_balancer proxy_http
,然后重启apache2服务
配置文件:
|
|
Ubuntu18.04 下安装MySQL密码问题
在之前的ubuntu版本中,我们通过apt install mysql-server mysql-client
这样的方式来安装mysql的时候,会提醒我们设置root用户密码,但是在18.04中不再提示了,所以我们就不知道root密码是啥,导致接下来要做的事情不能继续,经过我的搜索,找到了两个解决办法,任选其一:
如果你的MySQL有问题,建议先卸载:
|
|
然后再安装:
|
|
这个时候在系统的root账户下,直接输入:mysql
就可以进入,但是在普通用户下输入mysql -u root -p
后就不能进入,这时参考以下的两个解决办法,以下两种办法都是在系统的普通用户下进行的。
方法一
在MySQL安装的时候,系统自动生成了一个配置文件,里面有一个初始的账户和密码:
|
|
然后这个文件里面有默认的用户名和密码,用这个登录系统:
|
|
进入MySQL命令提示符下,输入:
|
|
解决warning:
|
|
接着,刷新和退出:
|
|
再重启一下MySQL服务,然后就可以正常的mysql -u root -p
登录了
方法二
首先在系统的shell中输入:
|
|
根据提示,进行初始化密码设置。
在系统普通账户下,直接输入sudo mysql
,进入MySQL命令提示符,然后输入:
|
|
这时候我们看到:
|
|
登录的方式不是密码,而是auth_socket
方式进行登录.
我们修改这个方式即可,继续在MySQL的命令行输入:
|
|
然后刷新:
|
|
这时,也可以正常登录了。
参考:How To Install MySQL on Ubuntu 18.04
Ubuntu18.04安装LAMP环境
方法一
直接按照LAMP
的顺序来
方法二
|
|
关键在于第三步,apt install phpmyadmin
,这一步会同时自动安装最新的php。。
方法三
这个方法更简单:
|
|
Ubuntu添加普通用户到sudo组
正常电脑使用或者服务器维护中,我们一般不直接使用 root 账号,如果你现在只有一个 root 账号可以通过下面命令新建一个用户:
|
|
然后通过下面命令设置密码:
|
|
执行命令添加到sudo组:
|
|
Ubuntu安装wordpress让其可以自动更新升级的方法
先将wordpress的所有者设为www-data(当人也可以在apache的那个文件夹里面将apache的所有者改为你喜欢的那个用户,比如root),在终端执行:
|
|
然后,让这个文件夹可读写
|
|
man 命令 的代替 tldr
先用 pip
安装:
|
|
使用:
tldr 命令 #替换 man
删除 ssh 中旧的 key
方法:
|
|
配置 ssh 免密登录
比如 A 主机是本地机器,B 是服务器机器,现在需要 A 免密登陆 B ,那么只需要把 A 生成的秘钥文件放在 B 主机的对应位置上即可。
- 密钥生成方法 A 执行:
ssh-keygen
一路回车即可。 - 然后在 A 机器的
~/.ssh/id_rsa.pub
就是我们需要的秘钥文件 - 把
id_rsa.pub
这个文件的内容放在 B 机器的~/.ssh/authorized_keys
加一行,然后就可以免密登陆了 - 传输
id_rsa.pub
的方法可以是:ssh-copy-id 地址
ssh config 配置
编辑 ~/.ssh/config
|
|
之后就可以 ssh 别名
连接了。
vim 配置
编辑 ~/.vimrc
文件,把下面的粘贴进去:
|
|
使用 vscode Remote Development 插件连接到远程机器上默认shell
发现使用 vscode Remote Development 插件连接到远程机器上默认 shell 是 bash 而不是 zsh 搜了一下,在 github 上面找到了相关的 issue . Default shell not launched in remote
解决办法就是:
加入配置:
|
|
scp 使用
- 从本地复制到远程:
|
|
- 从远程到本地
|
|
golang 编译脚本以及跨平台编译和upx压缩
交叉编译:
|
|
upx 使用:
|
|
编译脚本:
写一个 build.sh 可以很方便的把对应的东西都编译一下
|
|
tmux 命令
tmux new -s foo # 新建名称为 foo 的会话
tmux ls # 列出所有 tmux 会话
tmux a # 恢复至上一次的会话
tmux a -t foo # 恢复名称为 foo 的会话,会话默认名称为数字
tmux kill-session -t foo # 删除名称为 foo 的会话
tmux kill-server # 删除所有的会话
查看某个端口被程序占用
|
|
vscode cpp-tools无法正常格式化
解决方案:https://github.com/Microsoft/vscode-cpptools/issues/3271
ubuntu 使用charles教程
基本设置:https://blog.jjonline.cn/mine/242.html https证书设置:https://www.jianshu.com/p/baea81d30380
ubuntu 19.10 字体不等宽解决
- https://www.cnblogs.com/youxia/p/LinuxDesktop003.html?tdsourcetag=s_pctim_aiomsg
- http://ljf-cnyali.cn/2019/07/18/linux%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%E7%9A%84%E4%BF%AE%E5%A4%8D%E4%B8%8E%E6%94%B9%E5%96%84/
- ubuntu19.10美化:https://blog.csdn.net/Hunter808/article/details/102642565
ubuntu19.10 pip安装mysqlclient失败解决方案
MYSQL 创建新用户 &开放远程登录
适用于 MySQL8.0 之前
首先查看:netstat -an | grep 3306
如果显示的是 127.0.0.1
就证明只监听了本机的端口,我们需要修改一下:vim /etc/mysql/my.cnf
在里面找到:
bind-address = 127.0.0.1
这一行,注释掉,重启 mysql,/etc/init.d/mysql restart
然后需要创建用户并开放远程登录:
- 创建用户
|
|
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符
%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
|
|
- 授权
|
|
- privileges:用户的操作权限,如
SELECT
,INSERT
,UPDATE
等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用
*
表示,如*.*
例如:为用户赋予操作数据库testdb的所有权限
|
|
Ubuntu 安装 7Z
https://blog.csdn.net/LEON1741/article/details/54317715
|
|
最后修改于 2020-03-31
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。