🤾
MLStudy
  • README
  • Linux
    • command
    • Basic_commands
    • Advanced_commands
    • Linuxvirtual_machine_operate
    • virtual machine
  • Python
    • Deploy_Issue
    • Model_Analysis
    • Model_concept
    • Model_Grammar
    • Python_print_format
    • Model_ComFuc
    • Deep_learning_know
  • Theoretical knowledge
    • MLE_MAP_Bayesian
    • TV_denoise
  • Research
    • Writing
    • How to read
  • To_be_classified
    • tqdm
    • fast_visit_github
    • windows_issue
    • Zotero
    • data_struct
    • dataset
      • chapter_1
      • chapter_2
      • chapter_3
      • chapter_4
      • chapter_5
      • chapter_6
      • chapter_7
Powered by GitBook
On this page
  • Linux 移动当前目录的前N个文件到指定文件夹
  • Linux模糊匹配文件名-批量删除文件
  • 统计文件/夹数量
  • linux 下杀死所有python 进程
  1. Linux

command

Linux 移动当前目录的前N个文件到指定文件夹

mv `ls | head -N` ./subfolder1/

其中N表示需要移动的文件数目,subfolder1表示目标目录

Linux模糊匹配文件名-批量删除文件

首先,我们使用 find 命令,匹配我们要删除的文件,然后通过 -exec 执行批量删除:

find . -name 'info.log.2020-06*' -exec rm {} \;

命令含义:

. 表示查找的目录范围,也就是当前目录下

'info.log.2020-06*' 为查找的文件名,* 表示匹配任意字符串

支持以下通配符:

通配符
作用

*

匹配任意字符串

?

匹配任意单个字符

[]

匹配 [] 内字符,可以按,-区分,也可无符号区分

!

匹配非 ! 后的字符串中的每一个字符 一般配合[]使用

-exec rm {} 表示使用前面 find 命令获取到的文件名,替换 {} 批量执行rm命令,可以根据自己的需要修改执行的命令

在执行上面的命令删除文件时,最好先单独执行 find 命令,检查下匹配到的文件,以免错删 :

find . -name 'info.log.2020-06*'

统计文件/夹数量

1.统计当前目录下文件的个数,包括子文件夹里的

ls -lR|grep "^-"|wc -l

2.统计当前目录下文件的个数

ls -l |grep "^-"|wc -l

3.统计当前目录下文件夹的个数

ls -l |grep "^d"|wc -l

附言:

ls -l      长列表输出当前目录下文件信息(包括文件夹)
wc -l      统计输出信息的行数
grep "^-"  将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

linux 下杀死所有python 进程

命令:ps aux|grep python|grep -v grep|cut -c 9-15|xargs kill -15

说明:

管道符|用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的几个命令:

ps aux是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令grep python的输入。

grep python的输出结果是,所有含有关键字python的进程,这是python程序

grep -v grep是在列出的进程中去除含有关键字grep的进程。

cut -c 9-15是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

xargs kill -15中的xargs命令是用来把前面命令的输出结果(PID)作为kill -15命令的参数,并执行该令。

kill -15会正常退出指定进程,-9强行杀掉

免密上传

假如现在有两台机器A和B

我们要实现A免密登陆到B,需要做的操作有:

  1. 在A服务器上:ssh-keygen -t rsa,一路回车,会生成密钥

  2. 把A服务器上的id_rsa.pub密钥scp到B服务器上

scp -r /home/xs/.ssh/id_rsa.pub xs@B:/home/xs/.ssh/id_rsa.pub

或者上传到服务器其指定位置,可以上传到root或者普通用户的.ssh文件夹下

  1. 在B服务器上:

cat /home/xs/.ssh/id_rsa.pub >> /home/xs/.ssh/authorized_keys
  1. 在B服务器上:

修改权限:

chmod 700 /home/xs/.ssh

chmod 600 /home/xs/.ssh/authorized_keys

修改scp的目标目录 权限,给其文件夹 写的权限,如果该目录是root用户创建的,我们需要以root用户身份进行chmod 777 /master_to_slave

  1. 测试

文件上传

scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2

具体参数讲解:

本地 发送至 远程

  1. 复制单个文件

scp 本地文件路径 远程用户名@ip地址:远程路径 scp ./test.txt root@0.0.0.0:/home/me

  1. 复制文件夹

scp -r 本地文件夹路径 远程用户名@ip地址:远程路径 远程 拷贝至 本地

  1. 复制单个文件

scp 远程用户名@ip地址:远程路径 本地文件路径

  1. 复制文件夹

scp -r 远程用户名@ip地址:远程路径 本地文件夹路径

如果出现错误

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Le96+dpY4YP+6LjAeTFEFFw+fxM4yVaPUktmpGK73go.
Please contact your system administrator.
Add correct host key in /Users/xxx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/xxx/.ssh/known_hosts:49
ECDSA host key for 172.32.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.
ssh-keygen -R 172.32.xxx.xxx

文件夹复制

1、将一个文件夹下的所有内容复制到另一个文件夹下

cp -r /home/packageA/* /home/cp/packageB/ 或 cp -r /home/packageA/. /home/cp/packageB/ 这两种方法效果是一样的。

2、将一个文件夹复制到另一个文件夹下

cp -r /home/packageA /home/packageB

运行命令之后packageB文件夹下就有packageA文件夹了。

3、删除一个文件夹及其下面的所有文件

rm -rf /home/packageA
  • -r表示向下递归,不管有多少级目录,一并删除

  • -f表示直接强行删除,不作任何提示的意思

解压、压缩

一、zip格式 zip可能是目前使用的最多的文档压缩格式。优点:可以在不同的操作系统平台上使用。缺点:支持的压缩率不是很高。而tar.gz和tar.bz2在压缩率方面做得非常好。

压缩一个zip文件(命令):zip -r newfilename.zip filename (-r 为压缩 filename是指要压缩文件名称,如 *.c)

解压一个zip文件(命令):unzip filename.zip -d newdir (解压缩至一个你指定的的目录,使用-d参数)

二、tar/tar.gz格式 tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,它仅仅只是一个打包工具,并不负责压缩。

  1. 打包一个目录:tar -cvf newfilename.tar filename

  2. 压缩这个打包的目录:gzip filename.tar(filename.tar.gz压缩文件名称)

    按照顺序是先打包再压缩,那么对应的是先解压在解包。

  3. 解压一个XXXX.tar.gz文件 gzip -d filename.tar.gz

  4. 将打包文件解包:tar -xvf filename.tar -C newdir (注意此处解包的参数是大写C,不是小写c)


直接压缩为XXXX.tar.gz格式,还有简化的格式(GUN版本):(参数意义与上面大致相同)

压缩方式:tar -zcvf newfilename.tar.gz filename

解压缩方式: tar -zxvf filename.tar.gz

指定解包的路径:tar -zxvf filename.tar.gz -C newdir

最后再解释一下一些参数的定义:

-c:参数是建立新的存档 -f:参数指定存档或设备 -x:释放文件内存

-t:仅仅查看包中内容,而不释放 -v:参数详细显示处理的文件

三、tar.bz2格式 这种压缩格式是我们提到的所有方式中压缩率最好的。这也就意味着,它比前面的方式要占用更多的CPU与时间。

压缩方式: tar -jcvf newfilename.tar.bz2 filename

解压缩方式: tar -jxvf filename.tar.bz2

指定解包的路径:tar -jxvf filename.tar.bz2 -C newdir

PreviousLinuxNextBasic_commands

Last updated 2 years ago

本文转自 ,如有侵权,请联系删除。

scp 是 secure copy 的缩写,是 Linux系统下基于 登陆进行安全的远程文件拷贝命令,和它类似的命令有 cp,不过 cp只是在本机进行拷贝不能跨服务器

https://blog.csdn.net/Azhuzhu_chaste/article/details/108093641
ssh