语法基础 写入bashrc中,通过vim ~/.bashrc 编辑本机各种快捷键
作为可执行程序 将代码保存为name.sh,并 cd 到相应目录
chmod +x ./test.sh #使脚本具有执行权限
./test.h 运行,或者将文件拖入终端运行
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器(sh、bash、php等等)来执行。
使用模版 1 2 3 4 5 #!/bin/bash echo "Hello World !" ffmpeg -r 30 -i output/%05d.jpg -vcodec libx264 -vf zscale=matrix=709:r=full output.mp4 mkdir backlit ffmpeg -i backlit.mp4 -r 30 backlit/%05d.png
https://www.runoob.com/linux/linux-command-manual.html
Shell脚本书写规范 - That’s_it - 博客园
磁盘容量 磁盘容量: df -h
当前文件夹下,每个文件夹的大小 du -sh */
文件传输 从服务器传递到本机:
scp -r zoom@10.10.16.163 :~/share5/users/yuanqi/datasets/FEED/ID_1 ~/Downloads
从本机传递到服务器:
scp -r /Users/PeppaZhu/Downloads/Actor_01 peppa@10.100.112.41 :/data/peppa
文件链接 文件操作 1 2 3 4 5 6 7 8 9 10 删除文件 rm -r *.pdf 但是一次性删除太多的话就会报错 zsh: argument list too long: rm 此时用 find . -name "*.pdf" -print0 | xargs -0 rm 移动文件 mv folder2/*.* folder/ 移动太多会报错 find folder2 -name '*.*' -exec mv {} folder \; -exec runs any command, {} inserts the filename found, \; marks the end of the exec command.
linux - Argument list too long error for rm, cp, mv commands - Stack Overflow
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 查看当前路径下文件个数(不包括下一级子目录里文件个数) ls -l | grep "^-" | wc -l 查看当前路径下文件个数(包括下一级子目录里文件个数) ls -lR| grep "^-" | wc -l 查看某目录下文件夹(目录)的个数(包括子目录) ls -lR | grep "^d" | wc -l 命令解析: ls -l 长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录,ls -lR是列出所有文件,包括子目录。 grep "^-" 过滤ls的输出信息,只保留一般文件,只保留目录是grep "^d"。 wc -l 统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。
Linux统计文件夹下的文件数目 | SnailTyan