linux笔记

###pip命令:
1> 把本地包打包:pip install -d save_path package_name
2> 安装本地包: pip install /,下载包pip install --download /packs pandas (新版pip:pip download -r requirements.txt -d /tmp/paks/
3> 安装包到指定路径 pip install --target=packages_path
4> 查看包版本 package.__version__ 路径 package.__file__
5> 获取到pip支持的文件名还有版本 (用于本地安装时显示is not a supported wheel on this platform,查看后修改文件名即可)

import pip
print(pip.pep425tags.get_supported())

// 或者
import pip._internal
print(pip._internal.pep425tags.get_supported())

6> 导入包路径(可以选择优先级) sys.path.insert(0, 'packages_path')
7> PyChorm中增加环境变量(比如增加LD_LIBRARY_PATH):Run->Edit Configureations...
8> python3使用pip出现:module ‘enum’ has no attribute ‘IntFlag’?
解决:$unset PYTHONPATH
9> list.append(text) 为浅拷贝,即改变text的值 list也会改变。
10> python遍历文件夹下所有文件,包括子文件夹下的:

for root,dirs,files in os.walk('./lfw'):
    for dir in dirs:
        print(os.path.join(root, dir))
    for file in files:
        print(os.path.join(root, file))

11> 数组按第一行对所有行进行排序(某行,某列都可以,需要调整)
np.lexsort() 返回最后一列排序后的索引位置

# 如对 a = [[1, 2, 0]
#          [4, 3, 5]]
np.lexsort(a)
# ourput: array([1, 0, 2])

# 对最后一列
np.lexsort(a.T)

# 对a, b 2数组 先对a排序,在对b排序
np.lexsort((b, a))

13> 查看pyhton虚拟环境和切换

# 查看
conda info -e
# 切换
source activate env_name

14> numpy查找某个元素位置:numpy.argwhere()

15> ipython切换核(基于conda虚拟环境)

source activate mypython
conda install notebook ipykernel
ipython kernel install --user

详见:IPython

16> shutil的move和copy
使用这两个命令时操作软连接文件时,shutil.copy无论拷贝到同一磁盘或者不同磁盘结果都是文件,shutil.move拷贝到同一文件时时软链接,拷贝到不同文件是文件。

17> 远程使用matplotlib.pyplot报错:RuntimeError: Invalid DISPLAY variable
增加:

plt.switch_backend('agg')

18> GDAL安装:
安装方法:

#!/usr/bin/env bash

sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update
sudo apt-get update
sudo apt-get install gdal-bin
sudo apt-get install libgdal-dev
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip install GDAL

会出现各种各样的问题,前提按照上面的每一步做,然后确认你安装的gdal-dev的版本:

gdal-config --version

然后在pip install GDAL时指定版本:

pip install GDAL==version

PS:搞了半天终于在Ubuntu16 anaconda的python2下装了GDAL:(上面的也许可以成功,失败的话尝试下面的)
确定conda的GDAL版本:

conda search GDAL

然后安装指定版本:

conda install GDAL=2.x.x

可能出现RemoveError: 'XXX' is a dependency of conda and cannot be removed from conda's operating environment问题,通过conda update conda得以解决

19> python不换行输出:
python2:print(''xx),
python3:print("xxx", end='')但是这种方法具有缓存,即等for循环完后才输出。

20> python动态设置环境变量

os.environ.update(env) # env为字典

20> python将一个str的list转换为int的list

list(map(int, str_list))

###matlab命令:
1: 读取一个文件夹下的所有文件路径。

datadir = './xxx/xxx';
files = dir([datadir '/*.mat']);

然后这样得到整个tmp中选定的路径

sesectFiles = arrayfun(@(x) [datadir '/' x.name], tmp, 'UniformOutput', false);

2: 建立一个空的结构体

batch_sprites = struct;

3::读取CDF库时出现:

错误使用 cdflibmex
执行 CDFopenCDF 例程时遇到 CDF 库错误: "BAD_CDF_NAME: Illegal CDF name specified."

这是由于路径中出现了中文字符的原因。

###linux命令:
1: 分屏显示: tmux

2: 查看信仰图标:screenfetch

3: 按进程的内存排序:top 按 shift+m

4: 显卡信息: nvidia-smi

#4: 查找指定进程:ps aux | grep xxx

5: 查找某一进程PID:pgrep xxx

6: 修改主题:gnome-tweak-tool

7: Ubuntu 16.04启动错误"a start job is running for hold
原因:修改启动管理器后显卡驱动不兼容。
处理:
1)通过一个Ubuntu USB启动盘启动系统,选择试用(非安装),挂载电脑的系统盘(/etc所在磁盘)。
2)编辑文件:sudo vi /etc/X11/default-display-manager 将默认启动管理器设置为lightdm。
3)如果图形界面遇到问题(或提示警告),可以通过 Ctrl + Alt + F1 进入终端: sudo /etc/init.d/lightdm restart 可以进去。进入系统之后在终端再次执行: sudo dpkg-reconfigure lightgm 进行确认一下。

8: 启动时出现 The system is running in low-graphics mode.
问题:登录管理器中启动项出现问题
处理:检查登录管理器是否有错误命令。

  1. lightdm: /etc/lightdm/lightdm.conf
  2. gdm: /etc/gdm/PostLogin/Default

9: ssh连接与远程传输
连接:ssh [-l login_name] [-p port] [user@]hostname] 比如:ssh -p 12333 [email protected]
传输:
1> 从服务器上下载文件
文件 scp username@servername:/path/filename /var/www/local_dir
文件夹 scp -r username@servername:/var/www/remote_dir/ /var/www/local_dir
2> 上传本地文件到服务器
文件 scp /path/filename username@servername:/path
文件夹 scp -r local_dir username@servername:remote_dir

10: 查看命令路径
which command linux下
where command windows下

11: 修改配色方案
复制 cp /etc/DIR_COLORS ~/.dir_colors + 修改
配置 eval 'dircolors ~/.dir_colors'

12: 转换 BibTeX 到 Endnote 格式
下载bibutils
convert from BibTeX to tagged Endnote simply:$ bib2xml input.bib | xml2end > output.end

13: 文件批量重命名rename
man rename查看版本
如果是c版本:

rename str1 str2 /root/xxx/*

如果是Perl版本:

rename 's/str1/str2/' /root/xxx/*

14 Github扩展插件:Octotree

15 后台运行命令+重定向输出

nohup command > out.file 2>&1 &

python会有缓存,造成延迟python -u可以取消缓存

16 ssh 远程连接服务器时显示服务器的图片

ssh -Y user@server
eog picture.png

ssh -Y的参数:Enables X11 connection forwarding and treats X11 clients as trusted.见attachmate

17 chorme github 插件octotree

18 linux 查看文件夹大小

$: du -sh               # 查看当前目录总共占的容量。而不单独列出各子项占用的容量 
$: du -lh --max-depth=1 # 查看当前目录下一级子文件和子目录占用的磁盘容量。
$: du -sh * | sort -n   # 统计当前文件夹(目录)大小,并按文件大小排序
$: du -sk filename      # 查看指定文件大小

19 查看可替换库:

sudo update-alternatives --config libblas.so.3

20 文件个数和文件夹个数:

# 文件个数
ls ./folder -l | grep "^-" | wc -l
# 查看文件夹个数
ls ./folder -l | grep "^b" | wc -l
其中:
1. ls -l 为输出文件信息
2. grep "^-" 将输出信息过滤,保留文件
3. grep "^b" 将输出信息过滤,保留文件夹
4. wc -l 统计输出信息的行数

21 ffmpeg下载文件时卡住:

断网在联网后即可继续下载。

PS:以上大多数命令都来自其他博客,感谢大家 _!

你可能感兴趣的:(其他)