linux 小技巧

3 minute read

Published:

查看重要信息以及一些命令使用。

系统信息

gpu 信息

watch -n 1 nvidia-smi
# -n 1 是每一秒刷新一次

pip install nvidia-htop
watch -n 1 nvidia-htop.py -l 100
# -l 显示具体运行命令长度

查看 GPU 型号

lspci | grep -i nvidia

cpu、内存、进程信息

htop
# u 选择 user
# F5 Tree 选择树结构

cpu 信息

  • CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数
  • 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

# 查看物理CPU个数
cat /proc/cpuinfo | grep "physical id" | sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo | grep "cpu cores" | uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo | grep "processor" | wc -l

内存信息

free -g

查看系统版本

uname -a

# Ubuntu
cat /etc/issue
# CentOS
cat /etc/redhat-release

显示指定的目录或文件所占用的磁盘空间

# 查看总磁盘空间
df -h

# 查看指定的目录或文件所占用的磁盘空间
du -h -s [file / directory]
# -h 或 --human-readable 以K,M,G为单位,提高信息的可读性。
# -s 或 --summarize 仅显示总计。

# 列出每个目录的使用情况
sudo du -h --max-depth=1

查看目录下所有文件信息

ls -lah
# -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
# -a 显示所有文件及目录 (包括开头为"."的隐藏文件或目录)
# -h 以容易理解的格式列出文件大小

查看别名

alias

# 设置别名
alias cc='cd /nfs4-p1/lsy'

查看变量

echo
# e.g. echo $DISPLAY

# 追加文件
echo "syntax on\nfiletype on\nset ruler" >> ~/.vimrc

# 覆盖文件
echo "syntax on\nfiletype on\nset ruler" > ~/.vimrc

# 单引号不需要转义符,双引号需要转义符

查看环境变量

printenv
# e.g. printenv | grep DISPLAY

进程信息

查看进程情况

ps -ef | grep [software name/pid]

查看进程相关文件

ls -l /proc/$PID/exe  #查看PID启动文件的路径
ls -l /proc/$PID/cwd  #查看PID执行目录的路径

强制杀死某个进程

kill -9 [software pid]
kill -9 $(pgrep [software name])

查看端口使用情况

netstat -lnpt

打开防火墙端口

# 打开所有端口
sudo iptables -I INPUT -s 0.0.0.0/0 -p all -j ACCEPT

# 打开某个端口
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT

# 打开多个端口
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp -m multiport --dport 21,22,23,24 -j ACCEPT

软件信息

查看某个软件位置

which [software name]

查看某个软件版本

[software name] -V

文件信息

查找文件

查找某个文件名的文件

find path -name filename

查看文件

前十行信息

head -n 10 /etc/profile

后十行信息

tail -n 10 /etc/profile

实时刷新最新的信息

tail -f /etc/profile

全部信息

cat /etc/profile
# -n 参数显示行号

页面浏览

cat /etc/profile | less

python 信息

python 包的位置

~/anaconda3/envs/rl/lib/python3.6/site-packages/

python 内核的位置

~/anaconda3/envs/rl/bin/python

切换终端

chsh -s /bin/zsh
chsh -s /bin/bash

grep 使用

命令 | grep [name]
# | 连接符的意思是把前面命令的结果当做输入传给后面的命令
# grep 是一个过滤器,你可以自定义正则表达式进行过滤,比如 grep [name] 就是过滤出名字带有 [name] 的结果

chmod 使用

chmod 命令用于修改文件或文件夹权限

chmod 777 file
chmod -R 777 dir

首先三个数字分别为三种用户:文件所有者、群组用户、其他用户。

其次每个数字具体含义如下:

权限权限数值二进制具体作用
r400000100read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。
w200000010write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。
x100000001execute,执行。当前用户可以执行文件,当前用户可以进入目录。

修改文件所属用户及群组

chown user file
chown -R user dir
chgrp group file
chgrp -R group dir

ssh 传输文件

# 从服务器下载文件
scp -P 22 username@servername:/serverpath/filename /localpath

# 从服务器下载目录
scp -P 22 -r username@servername:/serverpath/dir /localpath

# 上传本地文件到服务器
scp -P 22 /localpath/filename username@servername:/serverpath   

# 上传本地目录到服务器
scp -P 22 -r /localpath/dir username@servername:/serverpath

# -P: 端口号

命令帮助

显示命令帮助

[command] --help

linux 用户手册

man [command]

配置文件

Linux中profile、bashrc、bash_profile之间的区别和联系

linux :当只有 ~/.profile、~/.bashrc、~/.zshrc,环境变量写入 ~/.profile

  • zsh: 执行 ~/.zshrc,需要在其中加入 source ~/.profile

  • bash:执行 ~/.profile 然后执行 ~/.bashrc

mac:当只有 ~/.bash_profile、~/.zshrc,环境变量写入 ~/.bash_profile

  • zsh: 执行 ~/.zshrc,需要在其中加入 source ~/.bash_profile

  • bash:执行 ~/.bash_profile

压缩解压缩

压缩:

.tar:	     tar -cvf file.tar file
.tgz:	     tar -zcvf file.tgz file
.tar.gz:	 tar -zcvf file.tar.gz file
.tar.bz2:	 tar -jcvf file.tar.bz2 file
.gzip:     gzip -r examples.gz examples
.zip:	     zip -r examples.zip examples
.rar:	     rar -a examples.rar examples

解压缩:

.tar:	     tar -xvf file.tar
.tgz:	     tar -zxvf file.tgz
.tar.gz:	 tar -zxvf file.tar.gz
.tar.bz2:	 tar -jxvf file.tar.gz
.gzip:     gzip -r examples.gz
.zip:	     unzip examples.zip
.rar:	     unrar examples.rar

参考资料及致谢

nvidia-smi 命令解读

htop 命令详解

linux 查看机器cpu核数

Linux du命令

Linux常用命令:chmod修改文件权限 777和754

利用ssh传输文件

linux ln 用法(软链接和硬链接)

Windows下安装Ubuntu 16.04双系统

Windows 下安装 Ubuntu 双系统(更新)

Linux中profile、bashrc、bash_profile之间的区别和联系

设置 SSH 通过密钥登录

ssh配置config快速登录服务器

iptables入门指南 — iptables详解 —iptbales 防火墙

iptables命令、规则、参数详解

Linux find命令