(摘) 命令行技巧和功能

声明:内容源自网络,版权归原作者所有。若有侵权请联系我们

Windows

  1. 列出文件并排除某些文件
    ls *.go -exclude *_test.go

  2. 使用for in中的变量。
    注意第一句:设置本地为延迟扩展。即延迟变量,全称延迟环境变量扩展
    及变量引用将%改为!
    此脚本实现列出所有扩展名为go的文件,并排除_test.go,即不是测试文件。
    示例1的效果相同
    想批量用vs code打开非test的go文件,虽然echo没错,但打开文件依然不成功。待续…

@setlocal enabledelayedexpansion
@echo off
for %%i in (*.go) do ( 
    set abc=%%i
    if not "!abc:~-8!"=="_test.go" (
        echo !abc!
    )
)
  1. 批量将mp4中的音频提出为mp3
    for %a in (*.mp4) do ffmpeg -i %a %a.mp3

Linux

下载ts视频并合并

因为各种原因(我就遇到过有站长将ts文件扩展名改为了jpg),之前的ffmpeg不能直接下载合并,但能获取到m3u8列表文件。

#!/bin/bash

i=0
for line in `cat 1.m3u8`  #视频列表文件
do
  #echo $line
  if [ "${line:0:5}" = "https" ] #读取ts视频片段地址
  then
     let i++
     cmd="curl ${line:0:${#line}-1}"  #读取时总是有换行符,删除
     echo $cmd ">>>>" $i
     `$cmd --output $i.ts -s`  #下载视频片段为顺序文件
  fi
done

#获取所有文件并合并为单个
find . -type f | grep [0-9]\\.ts | cut -c 3- | sort -n | xargs cat >> abc.ts

#转换为mp4
ffmpeg -i abc.ts -acodec copy -vcodec copy -f mp4 test.mp4

ffmpeg 合并文件

ffmpeg文件合并 文件1.ts~ 100.ts 流媒体文件

1.txt编辑

file 1.ts
file 2.ts
...

file 100.ts

命令 (-vcodec copy -acodec copy 等于 -c copy)

.\ffmpeg.exe -f concat -i .\1.txt -c copy .\output.mkv

或者

.\ffmpeg.exe -f concat -i .\1.txt -c copy .\output.mp4

脚本守护进程

后台程序莫名其妙崩溃,最好的情况是先检查问题,再恢复上线。但是也经常需要先完成任务,然后在用户最少的时间段去排除问题。

这个脚本就是不断轮循,判断后台是否有指定进程名存在。若不存在则直接运行,并发一个企业微信信息给网管。

#!/bin/bash

while true
do
   if test $( pgrep -f wyfy | wc -l ) -eq 0
   then
      echo "进程不存在"
      ./qywx "wyfy进程重启"
      nohup ./wyfy & 
   else
      echo "存在进程"
   fi 
   sleep 1m
done

Ubuntu 关闭时间同步

sudo timedatectl set-ntp false

挂载网络磁盘

sudo mount -o username=pi,password=pi,vers=1.0,iocharset=utf8 //192.168.100.4/disk /home/ease/rdisk

sudo mount -o username=pi,password=pi //192.168.8.10/usb1 /home/pi/webDisk

linux定时任务crontab设置

*/1 * * * * service mysqld restart //每隔1分钟执行一次

*/10 * * * * service mysqld restart //每隔10分钟执行一次

0 */1 * * * service mysqld restart //每1小时执行一次

0 */2 * * * service mysqld restart //每2小时执行一次

0 10 * * * service mysqld restart //每天10点执行

30 19 * * * service mysqld restart //每天19点30分执行

0 10 * * 1 service mysqld restart //每周一10点执行

30 17 * * 5 service mysqld restart //每周五17点30分执行

0 10 1 10 * service mysqld restart //每年的10月1日10点执行

0 20 8 8 * service mysqld restart //每年的8月8日20点执行

Shell if

   INT1 -eq INT2           =
   INT1 -ne INT2           <>
   INT1 -gt INT2           >
   INT1 -ge INT2           >=
   INT1 -lt INT2           <
   INT1 -le INT2           <=

显示占用空间并排序

du -s * | sort -nr | head

查看系统glibc支持的版本

strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_

ssh免密

本地客户端生成公私钥:(一路回车默认即可) ssh-keygen

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.22

磁盘空间占用情况

du -s * | sort -nr | head 空间占用并排序输出

screen创建后自动执行命令

screen -dmS test bash -c ‘go run /1.go’

远程运行指令

ssh -p 2222 abc@defg.3322.org “df -lh”

flac转换为mp3

find . -name “*.flac” -exec ffmpeg -i {} -ab 320k -map_metadata 0 -id3v2_version 3 {}.mp3 ;

让电脑不休眠

这里有个工具,xdotool,用于控制鼠标或键盘。其实就是让鼠标动来动去。

#!/bin/bash
while [ 1=1 ]
do
   xdotool mousemove 1 1
   sleep 10
   xdotool mousemove 150 60
   sleep 60
done

下载ts视频

ffmpeg -i https://…/index.m3u8 -acodec copy -vcodec copy output.mp4

查询当前所有连接的ip

netstat -ntu

将 tcp 过滤出来 : netstat -ntu | grep tcp

将第五列单独截出来: netstat -ntu | grep tcp | awk ‘{print $5}’

仅列出IP: netstat -ntu | grep tcp | awk ‘{print $5}’ | cut -d: -f1

使用 sort 默认字符顺序将字段值排序 :netstat -ntu | grep tcp | awk ‘{print $5}’ | cut -d: -f1 | sort

将已经排序好的字段计算不同值的数目 : netstat -ntu | grep tcp | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c

服务器登陆报告

即在有用户通过ssh时,报告信息到微信。qywx是我的一个通知信息到企业微信的工具

nano /etc/profile

#获取当前通过22端口连接的IP
getip=`netstat -ntu | grep :22 | awk '{print $5}' | cut -d: -f1 | sort`
./qywx "\n服务器有用户登陆:\n$getip"

查看网络信号强度和质量

现在来看这个所谓的dBm,数值范围在-XX~0之间。这个数越大,信号强度越高。

iwconfig wlan0 | grep -i –color quality //查询网络连接质量

iwconfig wlan0 | grep -i –color signal //查询信号强度

下载网站

wget -r -p -np -k -w 4 –random-wait http://xxx.com/xxx

参数解析:

-r, –recursive(递归) specify recursive download.(指定递归下载)

-k, –convert-links(转换链接) make links in downloaded HTML point to local files.(将下载的HTML页面中的链接转换为相对链接即本地链接)

-p, –page-requisites(页面必需元素) get all images, etc. needed to display HTML page.(下载所有的图片等页面显示所需的内容)

-np, –no-parent(不追溯至父级) don’t ascend to the parent directory.

-w 4 延时4秒

--random-wait 在延时时间的0.5-1.5倍之间随机延时

二进制显示文件内容

cat ./aaa | hexdump -C

tail -n 2 ./aaa | hexdump -C 只显示后面部份

下载网络m3u8格式视频

ffmpeg -i http://hls.com/aaaaa.m3u8 1.mp4

批量将aac音频转换为mp3

find . -name “*.aac” -exec ffmpeg -i {} -acodec libmp3lame {}.mp3

相关文章