linux 常用命令
Vim
vim的三种模式
-
如上图:命令模式、输入模式和编辑模式
-
Vim的输入模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令 |
-
删除多行
: 11,22d (删除11到22行
-
多行注释 参考
Linux文本处理
cat mv 命令
作用:cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。 cat 是 concatenate(连接、连续)的简写。
cat [选项] 文件名 # cat 命令用于查看文件内容时,不论文件内容有多少,都会一次性显示
-n 对输出的所有行进行编号;
# nl 命令可以显示内容的同时显示行号,与 cat -n 命令的作用差不多
cat file1.txt file2.txt > file3.txt #将文件 file1.txt 和 file2.txt 的内容合并后输出到文件 file3.txt 中。
mv * ../dist/ **移动当前目录所有文件到 目标目录**
mv *.txt ../ **移动所有 txt 后缀的文件到上层目录**
grep命令
作用:查找文件内容。grep 命令作为 Linux 文本处理三剑客的一员,另外两个是 sed 和 awk
grep [选项] 模式 文件名 # 这里的模式,要么是字符(串),要么是正则表达式。
-n 添加行号 -v: 不包含,相当于取反 -c :统计匹配的行数,不是匹配字符串的次数
-o: 只输出匹配到的字符串 -w: 只匹配过滤的单词,类似于精确匹配
grep -E "my|your" ghostwu.txt # -E,使用扩展的egrep命令,模式中可以用正则表达式
grep ^78 emp.data # 搜索 emp.data 文件,使用正则表达式找出以 78 开头的数据行
rm `ls | grep -v "aa"` 反选删除
rm `ls | grep "aa"`
- 管道命令
# 部署在Linux下的程序,日志很多,而且实时滚动,可以通过以下方式快速查找自己自己想要的内容:
cat log.txt | grep 'ERROR' -A 5 # 在log.txt文件中,查找ERROR字符,并显示ERROR所在行的之后5行
cat log.txt | grep 'ERROR' -B 5 # 之前5行
cat log.txt | grep 'ERROR' -C 5 前后5行
cat log.txt | grep -v 'ERROR' 排除ERROR所在的行
awk命令
作用:先匹配再执行命令 参考
awk [选项] '脚本命令' 文件名
head命令
head -n 20 /etc/profile # 查看/etc目录下profile文件的前20行内容:
#tail命令与head命令相反,tail命令用于查看文件后n行内容
more
more +3 log2012.log # 显示文件中从第3行起的内容
ls -l | more -5 # 列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来
# less比more更为灵活,因为less可以往上、往下翻页。按下键盘上 PgUp 键可以往上翻页,按下 PgDn 可以往下翻页
less
less [参数] 文件
-g 只标志最后搜索的关键词
-N 显示每行的行号
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
stat
stat 查看文件详细信息
tar.gz 解压
tar –xvf file.tar 解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
unrar e file.rar 解压rar
unzip file.zip 解压zip
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
Linux 查询
find 查找
find . -name "*.c"
## 找到当前目录下所有以.gif结尾的文件并移动到./GIF目录下
mv $(find ./ -name "*.gif") ./GIF/
## 同理 删除
rm -rf $(find ./ -name "*.gif")
## 指定搜索深度
rm -rf $(find ./ -masdepth 3 -name "*.gif")
du df 查看空间
du -sh * //查看当前目录下各个文件及目录占用空间大小
du -sm * | sort -n //统计当前目录大小 并安大小 排序
df -h //查看系统中文件的使用情况
ll -h 更强
系统信息
GPU
nvidia-smi # 显示当前GPU使用情况
watch -n 10 nvidia-smi # 设置为每 10s 显示一次显存的情况
watch [options] command # 周期性输出GPU使用情况
nvcc -V # 查看cuda 版本
CPU
cat /proc/cpuinfo | grep "processor" | wc -l # 逻辑CPU个数:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l # 物理CPU个数:
cat /proc/cpuinfo | grep "cpu cores" | wc -l # 每个物理CPU中Core的个数:
日志
last #
内存
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" # 释放缓存
sudo sh -c "echo 1 > /proc/sys/vm/drop_caches" # 1:释放页缓存 2:释放dentries和inodes
import psutil
mem = psutil.virtual_memory()
print(mem.free/(1024**4))
df.memory_usage().sum() / (1024 ** 3)
进程
top
top -i 主要进程
top -H -p 22688 查看进程下的线程
kill -9 pid
ps aux |grep
sudo perf top -p 28092
便捷命令
tmux
tmux ls
创建会话(Session)
tmux new -s session-name
tmux new
# 断开会话(Session),使用下列命令断开当前会话(断开会话并不影响会话中运行的程序,断开后还可以重新连接)
Ctrl+b d(即先使用Ctrl+b快捷键前缀,然后再按d) or tmux detach
# 重新连接会话(Session)
tmux a # 在命令行输入tmux a即可快速连接第一个所有会话中的第一个。
tmux a -t session-name # 或者通过会话名连接该一个会话
# 关闭会话
tmux kill-session -t session-name # 通过下列命令关闭会话后,会话中的程序也会全部关闭。
# 当然你也可以通过直接按Ctrl+d关闭会话、窗口或窗格。
ctrl b + ( 切换另一个tmux
ctrl b + o 同一个tmux内切换
ctrl b + % 左右分屏
ctrl b + " 上下分屏
ssh scp
ssh root@主机ip
ssh -p xx user@ip xx 为 端口号 user为用户名 ip为要登陆的ip
scp file_name user_name@remote_ip:file_path # 复制文件
scp -r file_name user_name@remote_ip:file_path # 复制文件夹
scp -P 34543 -r file_name xiaojp@120.26.233.3:~/ # scp指定端口传输,端口需放在scp后面 (注意 -P 的位置和大写