Linux で開発された一般的に使用されるシェル スクリプト

その後の追加

  • ubuntu で新しいユーザーを作成し、管理者権限を追加します
    sudo adduser dgliu (dgliu は私が作成した新しいユーザー名です)
    sudo adduser dgliu sudo sudo 権限を追加します

  • Linux 開発でよく使用するシェル スクリプト

git の使用

git は追跡されていない (バージョン管理されていない) ファイルを削除します

  • 追跡されていないファイルを削除する git clean -f

  • 追跡されていないディレクトリもまとめて削除 git clean -fd

  • gitignore の追跡されていないファイル/ディレクトリも一緒に削除されます (注意して使用してください。通常、これはコンパイル済みの .o などのファイルを削除するために使用されます) git clean -xfd

  • 上記の git clean を使用する前に、重要なファイルが誤って削除されるのを防ぐために、削除されるファイルを確認するために -n パラメータを追加することをお勧めします. git clean -nxfd git clean -nf git clean -nfd

  • git の競合を解決する

1. git stash    
2. git pull  
3. git stash pop  如果有冲突解决冲突  
4. git push
  • git clone --recursive 依存するウェアハウスを再帰的にダウンロードします
git clone --recursive 用于循环克隆git子项目 
如: git clone --recursive https://github.com/onnx/onnx-tensorrt.git
  • git はローカルの変更を放棄し、更新を強制します
git fetch --all
git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本
  • git ファイルを特定のバージョンに復元する
git checkout <hash> <filename>
git checkout <filename>
  • ステージングされたすべてのローカル変更を削除します。
git checkout -f
  • 一時記憶域を変更して追加した場合は、次のコマンドを使用します。
git reset --hard 
git clean -xdf 
  • Git のアドレスを変更する
git remote set-url origin  http://gitlab.smart-core.cn/liudegui/myinferofflinevideo.git
  • GLIBCXX のバージョン文字列を表示 /usr/lib64/libstdc++.so.6|grep GLIBCXX

  • 启动rsync /usr/bin/rsync --daemon --config=/etc/rsyncd.conf

  • Nvidia グラフィックスカードのビデオメモリ使用量をリアルタイムで確認 watch -n 5 nvidia-smi このうち 5 は、端末の表示結果を 5 秒ごとに更新することを意味します。

  • Linux は、物理 CPU の数、コアの数、および論理 CPU の数をチェックします. コアの総数 = 物理 CPU の数 X 物理 CPU あたりのコアの数.

  • 物理 CPU の数を確認します cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l

  • 各物理 CPU のコア数 (つまり、コア数) を表示する cat /proc/cpuinfo| grep "cpu cores"| uniq

  • 論理 CPU の数を表示する cat /proc/cpuinfo| grep “processor”| wc -l

  • ファイルをコピーするとき、いくつかの不要なファイルを除外します ls /src/ |grep -v .gz |xargs -i cp -r /src/{} /dst

  • ディレクトリを検索から除外する: grep -r "test" ./* --exclude-dir=.git

  • 指定したファイル タイプを検索する場合。find . -name “*.c” |xargs grep “test” -n --color

Linux 環境では、ファイルの内容を表示するときに、指定したキーワードの前後の行を表示する必要があることがよくあります.たとえば、ログ ファイルを表示するときに、ログ ファイルが大きすぎて直接表示したい場合などです. Linux ターミナルでは、 grep 'partten' filename でフィルタリングできます。一致する行の前後の行を表示する場合は、次のように grep の後にパラメーターを追加できます。

grep -A 5 'parttern' filename //打印匹配行的后5行
grep -B 5 'parttern' filename //打印匹配行的前5行
grep -C 5 'parttern' filename //打印匹配行的前后5行
grep -5 'parttern' filename //打印匹配行的前后5行 
tail -n 5 filename 查看文件最后5行内容
head -n 5 filename 查看文件前5行内容
sed -n '5,10p' 查看文件5-10行内容 

ドッカー

  • ドッカーはすべてのコンテナを停止します
ps -ef | grep procedure_name | grep -v grep | awk '{print $2}' | xargs kill -9
docker rm -f `docker ps -a | grep -v  CONTAINER | awk '{print $1}'`
docker rmi -f `docker images -a | grep -v REPOSITORY | awk '{print $3}'`
  • docker ビュー コンテナー IP docker inspect --format='{ {.NetworkSettings.IPAddress}}' 129a18a3810a
导出镜像
docker save -o centos7.tar centos
导入本地镜像
docker load --input centos7.tar
  • バックグラウンドランチャー

nohup ./testapp >/dev/null 2>&1 &

ffmpeg 関連コマンド

  • FFMPEG ループ ストリーミング コマンド:
    for((;;)); do \
        ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
        -vcodec copy -acodec copy \
        -f flv -y rtmp://192.168.1.170/live/livestream; \
        sleep 1; \
    done
  • ffmpeg 変換コマンド

    • mp4转ts: ffmpeg -i input.mp4 output.ts
    • mp4转h264:ffmpeg -i input.mp4 -vcodec copy -an -vbsf h264_mp4toannexb -f h264 output.h264
  • デバッグ関連コマンドのデコード

ffprobe -v quiet -show_packets -select_streams v test.ts 2>x|grep pts_time | wc -l
ffprobe -v quiet -show_packets -select_streams v test.ts 2>x|grep pts
ffmpeg -i test.ts
ffplay -stats -f h264 test.h264
  • プッシュコマンド: ffmpeg -re -i ./1080P.h265 -c:a copy -f flv rtmp://192.21.1.61/live/h265 上記のように、プッシュするかどうかは h265

  • ffmpeg -re -i rtsp://192.21.1.61:554/1080P.h265/playback? -f flv -s 600*400 rtmp://192.21.1.61/live/h265

  • ffmpeg -re -i rtsp://192.21.1.235:554/LiveMedia/ch1/Media1 -f flv -an rtmp://192.21.1.61/live/h265 #-an は、rtsp ストリームのオーディオを削除することです。

  • 動画の再生速度を下げる ffmpeg -i output.mp4 -an -filter:v “setpts=10*PTS” output3.mp4

  • 解像度変換 ffmpeg -i eagle eye camera.mp4 -vf scale=1632:480 output.mp4 -hide_banner

  • 現在のディレクトリの 0.mp4 を 00.mp4 に変換し、出力フレーム レートを 15 (-r 15)、ビット レートを 500k (-b 500k) に指定します。

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i 0.mp4 -c:v h264_nvenc -r 15 -b 500k -y 00.mp4

-hwaccel cuvid: cuvid ハードウェア アクセラレーションの使用を指定します -c:v h264_cuvid: ビデオのデコードに h264_cuvid を使用します -c:v h264_nvenc: ビデオのエンコードに h264_nvenc を使用します -vf scale_npp=1280:-1: 出力の幅と高さを指定しますvideo, note, こちら ソフトデコードで使用する -vf scale=x:x とは異なります

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y

  • rtsp ビデオを ffmpeg で保存 ffmpeg -i rtsp://admin:[email protected]:554 -b 300 -s 320x240 -vcodec copy -ab 32 -ar 24000 -acodec aac -strict experiment -f mp4 test.mp4
  • FFMPEG ループ プッシュ ffmpeg -stream_loop -1 -re -i /home/dgliu/vipc_linux_x64/60s_1920_1080.h264 -c コピー -f flv rtmp://192.21.1.43/live/livestream
  • FFmpeg は大量の写真をビデオ ビデオに合成します
1.基本格式
终端输入: ffmpeg -i ./images/image%d.jpg out.mp4
其中./images/images%d.jpg 为图片路径
图片的命名格式为image%d.jpg形式,即:image0 image1 image2 .......
out.mp4为输出视频文件名
2.指定编码格式的使用
终端输入: ffmpeg -i ./images/image%d.jpg  -vcodec libx264  out.mp4
3.指定输出帧率
终端输入:ffmpeg -i ./images/image%d.jpg  -vcodec libx264 -r 10 out.mp4
-r 10 表示定义帧率为10,这样输出的视频就是每秒播放十帧

Curl を使用した POST のテスト

  • curl -d “leaderboard_id=7778a8143f111272&score=19&app_key=8d49f16fe034b98b&_test_user=test01” “http://172.16.102.208:8089/wiapi/score”

  • curl http://127.0.0.1:9002/json -d "{"firstName": "John","lastName": "Smith","age": 25}"

  • curl -L -X POST 'http://192.21.1.61' -F 'uploadFile=@“./README.md”'

  • curl -H “Content-Type: application/json” -X POST --data '{“id”: “123”, “name”:“test”}' localhost:8888/user/post

圧力試験

  • 腹筋ストレステスト
ab -n 10 -c 1 -p get_fea-img_base64_array.json -T application/json http://10.40.27.152:8090/face/get_fea

ループスクリプト

while ((1)); do date; echo 'hello'; sleep 1; done

Linux ビューのポート占有率

linux查看端口被哪个进程占用
netstat -tunpl | grep 22
查看那个进程占用了xxx端口
lsof -i:xxx
查看进程号为xxx的进程在哪里
ps -ef|grep xxx
  • make -j CPU番号
processor_num=`cat /proc/cpuinfo |grep processor |wc -l`
make -j $processor_num

CPU 情報を表示する ハードディスク情報を表示する より詳細な情報を表示する ネットワーク カード情報を表示する

  • CPU 情報を表示する
cat /proc/cpuinfo
cat /proc/meminfo
  • ハードディスク情報の表示 df -lh

  • 詳細については cat /proc/scsi/scsi

  • ネットワーク カード情報を表示する dmesg | grep eth

  • より一般的に使用されるコマンド (システム コアのバージョン番号、名前、マシン タイプなどを表示) uname -a

  • 複数フォルダの作成方法 mkdir -p /etc/confd/{conf.d,templates}

vim の使用

  • vim 置換文字列: %s/well/good/g (相当: g/well/s//good/g) 各行のすべてのウェルを good に置き換えます

統計の合計サイズ

du -sh ファイル名 (実際、du -sh * を使用して、現在のディレクトリ内のすべてのファイルとそのサイズを表示することがよくあります。並べ替えたい場合は、| sort -n を追加します)

du -sm * | sort -n // 現在のディレクトリのサイズをカウントし、サイズでソート du -sk * | sort -n du -sk * | grep filename // フォルダーのサイズをチェック du -m | cut - d "/ " -f 2 //2 番目の / 文字の前のテキストを確認する

おすすめ

転載: blog.csdn.net/stallion5632/article/details/126047684