linux配置环境
常见问题
python找不到模块
import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
git无法访问https,http可以的问题
git config --global http.sslverify false
配置ubantu镜像源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo ''>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse>>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse>>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse>>/etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse>>/etc/apt/sources.list
apt-get update
# cp /etc/apt/sources.list.bak /etc/apt/sources.list # 恢复镜像源
# deb cdrom:[Ubuntu 20.04.3 LTS _Focal Fossa_ - Release amd64 (20210819)]/ focal main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ focal main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-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://cn.archive.ubuntu.com/ubuntu/ focal universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal universe
deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-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://cn.archive.ubuntu.com/ubuntu/ focal multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-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://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-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 focal partner
deb-src http://archive.canonical.com/ubuntu focal partner
deb http://security.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu focal-security multiverse
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
阿里镜像源-推荐
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
远程连接linux系统
使用软件:xshell、finalshell、windows power、pycharm
首先要安装这个
在Ubuntu终端中输入命令
sudo apt-get install openssh-server
查看ip
ip add
远程登录
# 安装步骤:
# 假如Ubuntu作为服务端,需要安装ssh服务端软件.执行命令: sudo apt-get install openssh-server
# 客户端电脑如果是macOS系统则不需要安装ssh客户端软件,默认已经安装过了,直接可以使用ssh命令
# 客户端电脑如果是Windows系统则需要安装OpenSSH for Windows这个软件
#
ssh root@IP地址
输入密码:
冷门知识
kaldi配置环境问题
export PATH=/home/sunao/data/kaldi/tools/python:${
PATH}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:${LIBLBFGS}/lib/.libs
export PATH=/root/data/kaldi/tools/python:${
PATH}
export SRILM=/mnt/22833c4a-0d61-4c31-a844-6b9adb09ce54/data/kaldi/tools/srilm
export PATH=${
PATH}:${SRILM}/bin:${SRILM}/bin/i686-m64
export PATH=${
PATH}:/mnt/22833c4a-0d61-4c31-a844-6b9adb09ce54/data/kaldi/tools/kaldi_lm
解决编码问题
[root@192 script]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.utf-8"
LC_NUMERIC="en_US.utf-8"
LC_TIME="en_US.utf-8"
LC_COLLATE="en_US.utf-8"
LC_MONETARY="en_US.utf-8"
LC_MESSAGES="en_US.utf-8"
LC_PAPER="en_US.utf-8"
LC_NAME="en_US.utf-8"
LC_ADDRESS="en_US.utf-8"
LC_TELEPHONE="en_US.utf-8"
LC_MEASUREMENT="en_US.utf-8"
LC_IDENTIFICATION="en_US.utf-8"
LC_ALL=en_US.utf-8
执行命令
LC_ALL="en_US.utf-8"
快速搜索文件
whereis python3.6
在linux环境中直接 ./123.py 执行123.py文件,添加解释器
#!/usr/bin/python3
# 在文件首行添加这句话
print()
设置vim默认显示行号
vim /etc/vimrc
# 在文件中添加
set nu
后台运行程序命令
nohup 命令 2>&1 &
vim排序
# 参数:
# -k 第几列
# -t 分割符 默认是空格 sort -k 4
# -n 安装数字值的大小进行排序
# -r 逆序
sort -k 4 -t"." -n
# 使用以下命令,将在排序时去除重复的行。对于重复的多行,将仅仅保留第一行,而其它的行将被删除。
:%sort u
# 使用以下命令,可以针对所有文本进行倒序排序:
:%sort!
# 使用以下命令,将按照数字进行排序:
:%sort n
#组合以上命令,则可以按照数字倒序排序:
:%sort! n
设置自启动命令
nohup python /home/<username>/tray.py &
配置环境
打开环境配置文件:vim ~/.bashrc 文件
查看系统版本
cat /etc/issue
查看端口进程
netstat -tulpn
kill -9 端口号
关闭系统进程
关闭gunicorn的方式:
通过搜索运行的py文件名:ps aux|grep Flaskweb
kill -9 端口号
Linux基本操作
远程拷贝
scp
# 1.远程拷贝文件:
scp 本地文件 远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径
scp 远程服务器用户名@远程服务器ip地址:远程服务器文件 指定拷贝到本地的路径
scp root@ip地址:linux文件路径 本地路径
# 2.远程拷贝目录︰
scp -r本地目录远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径scp -r远程服务器用户名@远程服务器ip地址:远程服务器目录指定拷贝到本地的路径-r表示递归拷贝整个目录
相关软件
filezilla
切换权限
sudo -s
sudo 命令 # 使用管理员权限
# 查看用户
whoami 当前用户是谁
who 有哪些用户
# 查看命令位置
which
# 切换权限
# 第一个数字是root 用户组 其它用户
# 三位数字 表示rwx 可读可写可执行
# 数字大小根据二进制 000 而来 001=1 010=2 011=3 100=4 101=5 110=6 111=7
# 哪位是1代表具有哪种权限,0代表不具有这种权限
chmod 755 * #
修改密码
# 修改密码
passwd
shutdown -h now # 立刻关机
reboot # 重启
ubantu密码:123456789
root密码:123456
查看相关信息
# 查看python版本
python -V
# 查看pip版本
pip -V
# 查看python解析器位置
whereis python
# neo4j数据库的启动和关闭
neo4j start
neo4j stop
迁移环境
pip freeze > requirements.txt
-------------------------------------
requirements.txt
appdirs==1.4.3
backports.functools-lru-cache==1.5
beautifulsoup4==4.5.3
bs4==0.0.1
cycler==0.10.0
kiwisolver==1.0.1
lxml==3.7.3
matplotlib==2.2.0
numpy==1.14.1
pandas==0.22.0
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2018.3
six==1.11.0
virtualenv==15.1.0
-----------------------------------
pip install -r requirements.txt
软件安装
# 离线安装
deb文件格式安装
sudo dpkg -i deb安装包
# 在线安装
apt-get方式安装
sudo apt-get install QQ # 需要配置镜像源
软件卸载
# 离线卸载
deb文件格式卸载
sudo dpkg -r 软件名
# 在线卸载
apt-get方式卸载
sudo apt-get remove QQ # 需要配置镜像源
WSL
默认使用root登录
C:\Users\administer\AppData\Local\Microsoft\WindowsApps> .\ubuntu.exe config --default-user root
C:\Users\administer\AppData\Local\Microsoft\WindowsApps> .\ubuntu.exe config --default-user sunao
切换G++版本
1.如何查看编译器的版本
# 查看当前gcc的版本
gcc -v
# 查看当前g++的版本
g++ -v
2.如何查询系统当前已安装的编译器版本
# 编译器一般都安装在/usr/bin下
cd /usr/bin
# 查看已安装的编译器
ls g++*
ls gcc*
3.如何安装需要的编译器版本
# 例如安装版本为4.8的编译器
sudo apt-get install gcc-4.8 g++-4.8
4.将已安装的编译器版本加入到候选表中
#最后的数字是优先级,可以根据需要设置
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
5.切换编译器版本
# 切换gcc的版本
sudo update-alternatives --config gcc
# 切换g++的版本
sudo update-alternatives --config g++
# 一定要注意切换是两个一起切换,保持一致性,不然可能会出问题
# 输入命令后会输出如下内容,直接上下建切换即可:
有 2 个候选项可用于替换 g++ (提供 /usr/bin/g++)。
## 选择 路径 优先级 状态
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-8 100 auto mode
1 /usr/bin/gcc-8 100 manual mode
2 /usr/bin/gcc-9 100 manual mode
要维持当前值[*]请按<回车键>,或者键入选择的编号:1
切换完成
shell常用命令
tree
语法
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录…]
参数说明:
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-L level 限制目录显示层级。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
安装之后,您可以通过下面的使用案例进一步学习tree命令的用法。
它将递归地显示工作目录的内容,显示子目录和文件,以及子目录和文件总数的摘要。您可以使用-a标志显示隐藏文件。
tree -a
要使用-f列出每个子目录和文件的完整路径内容,如下所示。
tree -f
您还可以使用-d选项指定tree只打印子目录不显示里面的文件。如果与-f选项一起使用,tree将打印完整的目录路径,如下所示。
tree -d
tree -df
可以使用-L选项指定目录树的最大显示深度。例如,如果您希望深度为2,则运行以下命令。
tree -f -L 2
下面是将目录树的最大显示深度设置为3的使用案例:
tree -f -L 3
若要仅显示与通配符内容匹配的文件,请使用-P选择并指定您的匹配内容。在本例中,该命令将只列出与cata*匹配的文件,例如Catalina.sh, catalina.bat等将被列出。
tree -f -P cata*
还可以通过添加–prune选项告诉tree从输出内容中删除空目录,如下所示。
tree -f --prune
tree还支持一些有用的文件选项,如-p,它以类似ls -l命令的方式打印每个文件的文件类型和权限。
tree -f -p
此外,要打印每个文件的用户名(如果没有用户名,则为UID),使用-u选项,而-g选项打印组名(如果没有组名,则为GID)。您可以组合-p、-u和-g选项来执行类似于ls -l命令的输出结果,显示文件和目录的详细信息。
tree -f -pug
还可以使用-s选项打印每个文件的字节大小以及文件名。为了以更易于阅读的格式打印每个文件的大小,使用-h选项并指定大小字母表示千字节(K)、兆字节(M)、千兆字节(G)、tb (T)等。
tree -f -s
或者
tree -f -h
要显示每个子目录或文件的最后修改时间的日期,请使用-D选项,如下所示。
tree -f -pug -h -D
另一个有用的选项是–du,它将显示指定目录所占用的磁盘空间。