根据本人多年使用服务器经验,做一个常用shell语法归纳
(太简单的什么cd就不写了)
(一些简单的用服务器跑代码的语法)
后台运行python文件或脚本
nohup (原来执行的操作) &
# 列:
nohup python3 ./test.py arg1 arg2 > test.log &
结束进程,-9代表强制,用的还是非常多,平时后台运行python脚本,就靠这个来结束进程
kill (进程编号)
kill -9 (进程编号)
# 批量kill名字含有某字符的进程
ps -ef|grep (进程含有的字符串)|grep -v grep|awk '{print $2}'|xargs kill -9
杀死单个进程的前提是要找到进程编号
查找的进程最少为一个,就是正在做查找的进程的这个进程
ps aux|grep (文件名字)
查看内存,cpu,当前资源使用情况
df -h # 内存
top # cpu
glances # 资源使用情况
修改文件权限
chmod 777 (文件名字)
# 777不用解释了吧,可读可写可操作rwx或者4+2+1 顺序分别是拥有者,同组者,和其他人
# 现在我们一般都用root登录了,文件也是root组的,所以一般只看第一个
# 递归给所有子文件加权限
find -type d -exec chmod 777 {} \;
将windows文件习惯改成linux可用
# 主要是windows操作系统文件换行和linux操作系统换行不同
# 导致在win可以运行的文件在linux报错
# 最好是一开始编写文件的时候选择文件行尾序列为LF (原来可能为CRLF),vscode右下角可编辑
dos2unix (文件名字)
新建文件文件夹
mkdir (文件夹名字)
touch (文件名字)
查看文件
cat (名字)
#列:
cat a.log #打印单个文件到屏幕
cat a.log b.log > c.log #连接两个文件并输出到c.log文件
#查看日志文件中的错误,返回每处错误的前几行和后几行
cat -n (文件名字)|grep -n -B5 -A5 (查找的字符串)
#B后A前
tac (名字)
#列:
tac a.log #反向打印每一行到屏幕,比较鸡肋,无意间了解到的
tail -f (名字) #这个我最常用,动态的展示最后几行,一般程序正在运行的时候
#可以实时的查看打印的日志
tail -n 20 (名字) #查看末尾20行
head -n 20 (名字) #查看开头20行
修改文件
vim (文件名字)
# 不用多说,i插入,:wq保存退出 :q不保存退出,多的也懒得记了
查看当前目录文件数量 文件夹数量
ls -l|grep "^-"| wc -l
ls -l|grep "^d"| wc -l
conda切换环境
# python环境最好多搞几个,不然有可能两个项目运行的环境版本有冲突
conda env list (查看环境) #查看环境
conda activate (环境名称)#切换当前环境