短命令/脚本收集(不定期更新)

记录一些稍微比较难记的命令行

short list

  • find echo $PATH |sed "s/:/ /g" -name pdf

  • chsh -s $(which zsh)

  • git clean -dfx 从git仓库中移除所有没有被追踪的文件或目录

  • ffmpeg -i 456_1.jpg -s 1080x960 -pix_fmt nv21 image1.yuv

  • convert 456.jpg -crop 960x1080 [offset] parts-456_%02d.jpg

  • echo $str|tr ’ ’ ‘\n’ # 替换 空格和换行

  • shopt -s extglob ; #rm -f !(a) 删除反匹配文件

  • tail -f /var/log/messages #参数-f使tail不停地去读最新的内容,这样有实时监视的效果

  • cp /usr/bin/{gawk,mawk}

  • 使用grep命令搜索源码 grep <搜索目录> -r –include= -e


批量重命名

export index=0;for file in ./s*.txt ;do tname= (echo file|sed “s/([0-9]{2})/ index/g");echo tname;mv file tname;((index++)); done

du 读文件夹大小并排列


du -d 1 ~/repos/ |sort -k 1n -n

total frame count.


ffmpeg -i ../456.MP4 -vcodec copy -f rawvideo -y /dev/null 2>&1

super push


adb push ./ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a/libijkplayer.so /sdcard/ && adb shell su -c mv /sdcard/libijkplayer.so  /data/app/tv.danmaku.ijk.media.sample-1/lib/arm/

number scale


 $ echo "ibase=16;obase=2;F1" | bc

commandline和GUI下的clipboard的交互Mac下

echo $PATH | pbcopy,copy to clipboard
echo "$(pbpaste -Prefer text)",copy from clipboard

批量ln:


for file in ./ *;\

do ARM_TMP=`echo $file |sed -e 's/arm-none-linux-gnueabi-/arm-linux-/'`;ln -s $file $ARM_TMP; 

done

显示排序的,阅读友好的当前工作目录内的文件和目录大小列表


du -had 1| sort -h 

把两次提交的差异化文件拷贝出来


git diff --name-only --diff-filter=AMXTCR HEAD~2 HEAD | xargs -l -I{} cp --parents --verbose "{}" target_dir

shell 规则补充

shell转义符有三种,不只是 \ 。 单引号、双引号、反斜杠。

‘’(单引号) 又叫硬转义,其内部所有的shell 元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。

“”(双引号) 又叫软转义,其内部只允许出现特定的shell 元字符:$用于参数代换 `用于命令代替

(反斜杠) 又叫转义,去除其后紧跟的元字符或通配符的特殊意义。

shell常见 通配符:* ? [ ] { }

find篇

如果想查找当前目录(/home/student)下的tmp.txt文件,但是想要避开sep目录:

find /home/student -path /home/student/sep -prune -o -name “tmp.txt” -print


OR 命令

find /sys/ -type f ( -name bind -or -name unbind -or -name new_id ) -ls


重导向批量转码


find . -name "*.h" -exec bash -c "iconv -f GBK -t UTF-8 {} > {}.tmp;mv -f {}.tmp {}" \;

< bash高级脚本编程 >

你可能感兴趣的:(bash)