Linux运维

记录在使用Linux过程中遇到的一些问题的解决方式

jupyter lab无权限创建文件

chmod 777 file_path 解决

jupyter lab 服务器地址访问被拒绝

启动时加上 —ip=0.0.0.0

jupyter lab --port=8889 --ip=0.0.0.0

jupyter lab tqdm 进度条不显示

出现

HBox(children=(FloatProgress……

解决:

1
2
3
4
5
# 首先需要打开ipywidgets的插件
jupyter nbextension enable --py widgetsnbextension

# 然后还需要安装 Jupyter Lab的相关插件
jupyter labextension install @jupyter-widgets/jupyterlab-manager

zip文件解压

unzip file -d outputdir

数据文件软链接

ln -s real_path ./data 从real_path 映射到data目录。

Python本地导入模块

注意导入的是模块的所在目录,对于包来说就是包这个文件夹所在的目录,而不是包中文件所在目录。

export PYTHONPATH=$PYTHONPATH:/model/path

查看cuda版本

cat /usr/local/cuda/version.txt

tensorflow查看GPU是否可用

print('GPU',tf.test.is_gpu_available())

文件排序查看

按大小查看

-s表示按文件大小排序,-l表示以长格式显示,即列出文件详细信息如上面的格式。 S是大写

ls -lSh 降序查看

ls -lrSh 升序查看

按时间查看, -t表示按时间排序,-r表示逆序

ls -lt 降序查看

ls -lrt升序查看

查看文件夹大小

du -h --max-depth=1

vim

vim批量注释

Ctrl + v 列编辑,然后Shift + i 插入#之后连续两下Esc

vim批量删除

Ctrl + v 列编辑,然后d 删除之后连续两下Esc

vim批量粘贴

v 行视图,然后选中对应的行,y 复制,之后到需要粘贴的地方p 进行粘贴

vim粘贴格式混乱

:set pastei在粘贴

ssh

免密登录

流程

  1. 本机创建公钥和私钥文件 已有的话不用创建ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -C "xx-email"
  2. 将本机的公钥拷贝到服务器上
    1. cat ~/.ssh/id_rsa.pub | ssh user@serverip "cat - >> ~/.ssh/authorized_keys"
  3. 权限相关(chmod)
    1. .ssh目录的权限必须是700
    2. .ssh/authorized_keys文件权限必须是600

参考

scp

复制文件

1
scp -r local_folder remote_username@remote_ip:remote_folder 

进程相关

查看进程是否有子进程,或者是否开启了多个线程。ps 只能显示进程的pid,线程的pid无法获取,但是htop可以显示线程的pid。

cd /proc/pid/task里面的目录数便是这个pid管理的子进程,子线程。

查看进程之间的关系

pstree -Aup 显示所有进程之间的关系,也会显示生成的子线程。

批量杀死

1
ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9

shell脚本

xargs

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

格式:

1
somecommand |xargs -item  command

判断文件夹是否存在

1
2
3
4
5
if [ ! -d "/data/" ];then
mkdir /data
else
echo "文件夹已经存在"
fi

判断文件是否存在修改-d-e

用户相关

创建用户授予sudo

Ubuntu下

1
2
sudo adduser user
usermod -aG sudo username

还可以修改/etc/sudoers但是需要root用户wq!来强制写入。

查看登录用户的进程

w

内存信息查看

1
sudo dmidecode -t memory

内存通道数查看

1
dmidecode -t memory | grep Bank

dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息参考

grep 加上参数 -A5表示多显示5行grep -A5 Bank

Linux发行版查看

1
cat /etc/os-release

个性化

分别去github上找对应的配置。

zsh

tmux

vimrc

切换zsh

1
chsh -s /bin/zsh user

在tmux 则是修改.tmux.conf

1
https://github.com/ohmyzsh/ohmyzsh

程序链接

ldd来查看可执行文件依赖的动态链接库路径

usr/bin/ld: cannot find -l

网络相关

端口查看

1
2
3
netstat -atn           # For tcp
netstat -aun # For udp
netstat -atun # For both