根据本人多年使用服务器经验,做一个常用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 (环境名称)#切换当前环境
最后修改:2022 年 03 月 25 日
来过的证明就是打钱