Scripts shell couramment utilisés développés par Linux

Ajouts ultérieurs

  • Créez un nouvel utilisateur dans Ubuntu et ajoutez des autorisations d'administrateur
    sudo adduser dgliu (dgliu est le nouveau nom d'utilisateur que j'ai créé)
    sudo adduser dgliu sudo Ajouter des autorisations sudo

  • Mon script shell couramment utilisé pour le développement Linux

utilisation de git

git supprime les fichiers non suivis (pas dans le contrôle de version)

  • supprimer les fichiers non suivis git clean -f

  • Même le répertoire non suivi est supprimé ensemble git clean -fd

  • Même les fichiers/répertoires untrack de gitignore sont supprimés ensemble (à utiliser avec prudence, généralement cela est utilisé pour supprimer des fichiers tels que compilé .o) git clean -xfd

  • Avant d'utiliser le git clean ci-dessus, il est recommandé d'ajouter le paramètre -n pour voir quels fichiers seront supprimés pour éviter que des fichiers importants ne soient supprimés par erreur. git clean -nxfd git clean -nf git clean -nfd

  • résoudre les conflits git

1. git stash    
2. git pull  
3. git stash pop  如果有冲突解决冲突  
4. git push
  • git clone --recursive télécharge récursivement les entrepôts dépendants
git clone --recursive 用于循环克隆git子项目 
如: git clone --recursive https://github.com/onnx/onnx-tensorrt.git
  • git abandonne les modifications locales et force les mises à jour
git fetch --all
git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本
  • git restaurer un fichier vers une version spécifique
git checkout <hash> <filename>
git checkout <filename>
  • Supprimez toutes les modifications locales qui sont mises en scène :
git checkout -f
  • Si vous avez modifié et ajouté à la zone de stockage temporaire, utilisez la commande suivante :
git reset --hard 
git clean -xdf 
  • Changer l'adresse de Git
git remote set-url origin  http://gitlab.smart-core.cn/liudegui/myinferofflinevideo.git
  • Afficher les chaînes de version de GLIBCXX /usr/lib64/libstdc++.so.6|grep GLIBCXX

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

  • Vérifier en temps réel l'utilisation de la mémoire vidéo de la carte graphique Nvidia watch -n 5 nvidia-smi Parmi eux, 5 signifie que les résultats d'affichage du terminal sont rafraîchis toutes les 5 secondes.

  • Linux vérifie le nombre de CPU physiques, le nombre de cœurs et le nombre de CPU logiques. Le nombre total de cœurs = le nombre de CPU physiques X le nombre de cœurs par CPU physique. nombre

  • Vérifiez le nombre de CPU physiques cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

  • Afficher le nombre de cœurs dans chaque CPU physique (c'est-à-dire le nombre de cœurs) cat /proc/cpuinfo| grep "cpu cores"| uniq

  • Afficher le nombre de CPU logiques cat /proc/cpuinfo| grep "processor"| wc -l

  • Lors de la copie de fichiers, excluez certains fichiers inutiles ls /src/ |grep -v .gz |xargs -i cp -r /src/{} /dst

  • Empêcher un répertoire de le rechercher : grep -r "test" ./* --exclude-dir=.git

  • Si vous souhaitez rechercher un type de fichier spécifié. trouver .-name "*.c" |xargs grep "test" -n --color

Dans l'environnement Linux, lors de l'affichage du contenu d'un fichier, vous devez souvent afficher les lignes avant et après le mot-clé spécifié. Par exemple, lors de l'affichage d'un fichier journal, si le fichier journal est trop volumineux et que vous souhaitez l'afficher directement dans le terminal Linux, vous pouvez le filtrer avec grep 'partten' filename , si vous souhaitez afficher les lignes précédentes et suivantes de la ligne correspondante, vous pouvez ajouter des paramètres après grep, comme suit :

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行内容 

docker

  • docker arrêter tous les conteneurs
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 view container IP docker inspect --format='{ {.NetworkSettings.IPAddress}}' 129a18a3810a
导出镜像
docker save -o centos7.tar centos
导入本地镜像
docker load --input centos7.tar
  • lanceur d'arrière-plan

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

Commandes liées à ffmpeg

  • Commande de diffusion en boucle 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
  • commande de conversion 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
  • Décoder les commandes liées au débogage

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
  • Commande push : ffmpeg -re -i ./1080P.h265 -c:a copy -f flv rtmp://192.21.1.61/live/h265 Comme ci-dessus, si pousser est 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 est de supprimer l'audio de votre flux rtsp.

  • Réduire la vitesse de lecture vidéo ffmpeg -i output.mp4 -an -filter:v "setpts=10*PTS" output3.mp4

  • Convertir la résolution ffmpeg -i eagle eye camera.mp4 -vf scale=1632:480 output.mp4 -hide_banner

  • Convertissez 0.mp4 dans le répertoire actuel en 00.mp4 et spécifiez la fréquence d'images de sortie à 15 (-r 15) et le débit binaire à 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 : spécifiez l'utilisation de l'accélération matérielle cuvid -c:v h264_cuvid : utilisez h264_cuvid pour le décodage vidéo -c:v h264_nvenc : utilisez h264_nvenc pour l'encodage vidéo -vf scale_npp=1280:-1 : spécifiez la largeur et la hauteur de la sortie vidéo, note, ici C'est différent de -vf scale=x:x utilisé dans le décodage logiciel

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

  • Enregistrer la vidéo rtsp avec ffmpeg ffmpeg -i rtsp://admin:[email protected]:554 -b 300 -s 320x240 -vcodec copy -ab 32 -ar 24000 -acodec aac -strict experimental -f mp4 test.mp4
  • FFMPEG loop push ffmpeg -stream_loop -1 -re -i /home/dgliu/vipc_linux_x64/60s_1920_1080.h264 -c copy -f flv rtmp://192.21.1.43/live/livestream
  • FFmpeg synthétise un grand nombre d'images en vidéo vidéo
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,这样输出的视频就是每秒播放十帧

Tester POST avec Curl

  • 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 "Type de contenu : application/json" -X POST --data '{"id": "123", "nom":"test"}' localhost:8888/user/post

test de pression

  • test d'effort abdominaux
ab -n 10 -c 1 -p get_fea-img_base64_array.json -T application/json http://10.40.27.152:8090/face/get_fea

script de boucle

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

Occupation du port d'affichage Linux

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

Afficher les informations sur le processeur Afficher les informations sur le disque dur Informations plus détaillées Afficher les informations sur la carte réseau

  • Afficher les informations sur le processeur
cat /proc/cpuinfo
cat /proc/meminfo
  • Afficher les informations sur le disque dur df -lh

  • Pour plus d'informations, cat /proc/scsi/scsi

  • Afficher les informations de la carte réseau dmesg | grep eth

  • Commandes les plus couramment utilisées (affichage du numéro de version du cœur du système, du nom, du type de machine, etc.) uname -a

  • La méthode de création de plusieurs dossiers mkdir -p /etc/confd/{conf.d,templates}

utilisation vim

  • chaîne de remplacement vim : %s/well/good/g (équivalent à : g/well/s//good/g) Remplacez tous les puits de chaque ligne par good

Taille totale des statistiques

du -sh filename (en fait, on utilise souvent du -sh* pour afficher tous les fichiers et leurs tailles dans le répertoire courant, si vous voulez trier, ajoutez | sort -n)

du -sm * | sort -n // compte la taille du répertoire courant et trie par taille du -sk * | sort -n du -sk * | grep filename // vérifie la taille d'un dossier du -m | cut - d "/ " -f 2 //Regarde le texte avant le deuxième caractère /

Je suppose que tu aimes

Origine blog.csdn.net/stallion5632/article/details/126047684
conseillé
Classement