繁琐的小知识点记录


杂与乱

  1. 更新jsDelivr缓存内容

    以下内容转载于码志

    可以访问 https://purge.jsdelivr.net/gh/mzlogin/mzlogin.github.io@1.2.0/assets/js/main.js 来清除指定文件的缓存;(将引用的 CDN 链接里的 cdn 改成 purge 就是了)

  2. 查看公网ip

    curl ip.sb   # 这个速度很快
    curl ipv6.ip.sb # 获取ipv6
    curl ifconfig.me
    
    curl icanhazip.com

    感谢这位朋友的提供,这也是一种途径。

    https://v4.yinghualuo.cn/bejson
    https://v6.yinghualuo.cn/bejson

  3. iterm2中建立免输入密钥文件的配置文件

    1. 创建登录脚本,保存到Documents/login.sh

      #!/usr/bin/expect
      set keyfilepath Downloads/id_rsa
      set keyfilepassword kskhJla23kJL
      set user root
      set ip 192.168.101.1
      
      spawn ssh -i $keyfilepath $user@$ip
      expect "Enter passphrase for key '$keyfilepath':"
      send "$keyfilepassword\r"
      interact
      }
    2. 设置iterm2中的profile

  4. 修改ubuntu用户的shell

    https://blog.csdn.net/iteye_4185/article/details/82564503

  5. npm临时使用源

    npm --registry https://registry.npmjs.org/ install hexo-tag-mmedia --save
  6. mac录屏文件处理。参考这里

    step1 : 转换成 mp4 格式

    ffmpeg -i source.mov -vcodec copy -acodec copy temp.mp4

    step2 : 降低帧率

    ffmpeg -i temp.mp4 -r 20 des.mp4

    合并视频: ffmpeg -f concat -i file.txt -c copy output.mov

    其中 file.txt 为

    file '1.mov'
    file '2.mov'
  7. hexo部署到服务器

    cd ~
    git init --bare blog.git
    vi ~/blog.git/hooks/post-receive # 输入下一行的内容
    git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
  8. grep查找当前文件夹下包含指定字符串的文件

    https://blog.csdn.net/BabyFish13/article/details/79709028

    --递归查找目录下含有该字符串的所有文件
    grep -rn "data_chushou_pay_info"  /home/hadoop/nisj/automationDemand/
    
    --查找当前目录下后缀名过滤的文件
    grep -Rn "data_chushou_pay_info" *.py
    
    --当前目录及设定子目录下的符合条件的文件
    grep -Rn "data_chushou_pay_info" /home/hadoop/nisj/automationDemand/ *.py
    
    --结合find命令过滤目录及文件名后缀
    find /home/hadoop/nisj/automationDemand/ -type f -name '*.py'|xargs grep -n 'data_chushou_pay_info'

    \Grep选项:**
    * : 表示当前目录所有文件,也可以是某个文件名
    -r 是递归查找
    -n 是显示行号
    -R 查找所有文件包含子目录
    -i 忽略大小写

    *有意思的命令行参数:
    *
    grep -i pattern files :不区分大小写地搜索。默认情况区分大小写
    grep -l pattern files :只列出匹配的文件名,不列出路径
    grep -L pattern files :列出不匹配的文件名
    grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)
    grep -C number pattern files :匹配的上下文分别显示[number]行
    grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行
    grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行

    *有些用于搜索的特殊符号:
    *
    < 和 > 分别标注单词的开始与结尾。
    例如:
    grep man * 会匹配 ‘Batman’、‘manic’、‘man’等
    grep ‘<man’ * 匹配‘manic’和‘man’,但不是‘Batman’
    grep ‘<man>‘ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
    ‘^’:指匹配的字符串在行首
    ‘$’:指匹配的字符串在行尾

  9. linux文件清理

    1. 清除linux-aws-headers-*文件。

      sudo apt autoremove
      sudo apt autoclean
    2. 清除日志文件

      sudo journalctl --vacuum-time=2d # 仅保留最近两天的系统日志,多余的都自动删掉
      sudo journalctl --vacuum-size=50M # 仅保留50M大小的系统日志,多余的都自动删掉
  10. centos非root用户安装软件的一种方法

    1. 使用yum搜索包

      yum list  'graphviz*'
    2. 下载rpm包

      yumdownloader graphviz.x86_64 
    3. 解压rpm包

      rpm2cpio graphviz-2.30.1-19.el7.x86_64.rpm |cpio -idvm
    4. 将可执行文件路径添加到环境变量

      vim  ~/.bashrc
      export PATH=$PATH:$HOME/usr/bin/
  11. windows中U盘或者移动硬盘关不掉时,怎么知道是被哪个程序占用了呢?

    1. 按下win键,直接搜索 事件查看器(或者eventvwr)。然后弹出u盘,再次出现错误

    img

    1. 在事件查看器里面对应的时间里找事件

      img

    2. 任务管理器结束该进程

      img

  12. 生成网卡的UUID

    https://blog.csdn.net/quintind/article/details/79437838

  13. win32 disk imager恢复U盘容量

    https://blog.csdn.net/u012400584/article/details/55506527

  14. centos开放端口

    查看防火墙某个端口是否开放

    firewall-cmd –query-port=3306/cp

    开放防火墙端口3306

    firewall-cmd –zone=public -add-port=3306/tcp –permanent

    查看/开启/关闭防火墙

    systemctl status/start/stop firewalld

    开放一段端口

    firewall-cmd –zone=public –add-port=4000-4500/tcp –permanent

    查看开放的端口列表

    firewall-cmd –zone=public –list-ports

  15. 安装php

    https://www.iemblog.com/?p=2399&lang=zh

  16. typora标题加上序号

    https://blog.csdn.net/jiangxiulilinux/article/details/100666051

  17. centos查看某个进程当前线程数

    方式一:

    cat /proc/[pid]/status

    展示结果中,Threads后边对应的数字就是进程拥有的线程数量

    方式二:

    ps hH p 3805|wc -l
  18. dpdk插入IgbUIO驱动报错:## ERROR: Target does not have the DPDK UIO Kernel Module.To fix, please try to rebuild target.

    解决方法:
    [root@localhost dpdk-18.11]# modprobe uio
    [root@localhost dpdk-18.11]# cd build/kmod/
    [root@localhost kmod]# insmod igb_uio.ko
    [root@localhost kmod]# lsmod | grep uio
    再次运次
    [root@localhost dpdk-18.11]# ./usertools/dpdk-devbind.py –bind=uio_pci_generic enp0s8

  19. ubuntu安装gcc10 https://www.itcoder.tech/posts/how-to-install-gcc-on-ubuntu-20-04/

  20. LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别

    LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):

    export LIBRARY_PATH=LIBDIR1:LIBDIR2:$LIBRARY_PATH

    LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):

    export LD_LIBRARY_PATH=LIBDIR1:LIBDIR2:$LD_LIBRARY_PATH

    举个例子,我们开发一个程序,经常会需要使用某个或某些动态链接库,为了保证程序的可移植性,可以先将这些编译好的动态链接库放在自己指定的目录下,然后按照上述方式将这些目录加入到LD_LIBRARY_PATH环境变量中,这样自己的程序就可以动态链接后加载库文件运行了。

    开发时,设置LIBRARY_PATH,以便gcc能够找到编译时需要的动态链接库。

    发布时,设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库。

  21. 更改用户组信息

    Linux中修改用户UID和组GID的方法_train006l的博客-CSDN博客_linux 修改uid

    例如测试用户foo和测试组foo。

    foo old UID: 1005

    foo new UID: 2005

    foo old GID: 2000

    foo new GID: 3000

    命令:

    1、修改foo用户的uid

    usermod -u 2005 foo

    2、修改foo组的gid

    groupmod -g 3000 foo

    3、foo用户的家目录下面的文件属主和属组会在1、2命令执行后自动修改成新的uid、gid对应的属主属组,但是其他文件目录需要手动修改。手动修改的命令也比较简单。

    find / -user 1005 -exec chown -h foo {} ;

    find / -group 2000 -exec chgrp -h foo {} ;

    这样用户和组的uid、gid就修改好了。可以用id命令看下是否修改的如我们所愿。

    ls -l /home/foo/

    id -u foo

    id -g foo

    grep foo /etc/passwd

    grep foo /etc/group

  22. 创建用户并添加到admin和docker组

    useradd rui -m -s /bin/zsh -G docker,admin

  23. 添加rui用户到docker用户组

    sudo usermod -aG docker rui

  24. apt-get换源方法:https://mirrors.bfsu.edu.cn/help/ubuntu/

    注意:再换源之前要先执行sudo apt install –reinstall ca-certificates重新安装证书,否则再替换后执行apt-get update的时候会出现Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate. Could not handshake: Error in the certificate verification.

  25. 使用pkill -kill -t pts/0命令踢出第一个用户,即强制下线。

    [root@vm18 ~]# pkill -kill -t pts /0

  26. 生成密钥。

     ssh-keygen -m PEM -t rsa
  1. centos硬件信息查询

  2. 查询服务器型号:sudo dmidecode | grep "Product"

        Product Name: PowerEdge R730
        Product Name: 072T6D
  1. 查询cpu信息。 lscpu

    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                24
    On-line CPU(s) list:   0-23
    Thread(s) per core:    2
    Core(s) per socket:    6
    Socket(s):             2
    NUMA node(s):          2
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 79
    Model name:            Intel(R) Xeon(R) CPU E5-2643 v4 @ 3.40GHz
    Stepping:              1
    CPU MHz:               1200.292
    CPU max MHz:           3700.0000
    CPU min MHz:           1200.0000
    BogoMIPS:              6799.25
    Virtualization:        VT-x
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              256K
    L3 cache:              20480K
    NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22
    NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23
    Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

    cat /proc/cpuinfo 查看CPU 的详细信息 (型号, 家族, 缓存大小等)

    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看CPU型号

    cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l 查看物理CPU的个数

    cat /proc/cpuinfo |grep “processor”|wc -l 查看逻辑CPU的个数

    cat /proc/cpuinfo |grep MHz|uniq 查看CPU的主频

  2. centos查看cpu核数

    1、查看 CPU 物理个数
      grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l

    2、查看 CPU 核心数量
      grep ‘core id’ /proc/cpuinfo | sort -u | wc -l

    3、查看 CPU 线程数
      grep ‘processor’ /proc/cpuinfo | sort -u | wc -l

    4、查看 CPU 型号
      dmidecode -s processor-version

    5、查看 CPU 的详细信息:
      cat /proc/cpuinfo

  3. 查询硬盘数量及大小。 lsblk

    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda               8:0    0 931.5G  0 disk
    ├─sda1            8:1    0     1G  0 part /boot
    └─sda2            8:2    0 930.5G  0 part
      └─centos-root 253:0    0   1.2T  0 lvm  /
    sdb               8:16   0 894.3G  0 disk
    └─sdb1            8:17   0 894.3G  0 part
      ├─centos-root 253:0    0   1.2T  0 lvm  /
      ├─centos-swap 253:1    0    64G  0 lvm
      └─centos-home 253:2    0 570.8G  0 lvm  /home
    sr0              11:0    1  1024M  0 rom
    nvme0n1         259:0    0 349.3G  0 disk

    这表示该机器游三块硬盘,分别是sda,sdb,nvme0n1.

  4. 查询内存条数量: sudo dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range 有数据的表示插了内存条

    Size: 16384 MB
        Size: 16384 MB
        Size: 16384 MB
        Size: 16384 MB
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: 16384 MB
        Size: 16384 MB
        Size: 16384 MB
        Size: 16384 MB
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
  1. ubuntu lvm扩容

    抄袭自https://blog.csdn.net/Fly_1213/article/details/105142427

    // 按百分比进行磁盘扩容
    root@ubuntu:~# lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
      Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB (1024 extents) to <19.00 GiB (4863 extents).
      Logical volume ubuntu-vg/ubuntu-lv successfully resized.
    
    // 刷新分区 
    root@ubuntu:~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 
    resize2fs 1.44.1 (24-Mar-2018)
    Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
    old_desc_blocks = 3, new_desc_blocks = 3
    The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 4979712 (4k) blocks long.
    
    // 查看文件系统磁盘空间的使用情况(发现此时已经扩容到19G)
    root@ubuntu:~# df -h
    Filesystem                         Size  Used Avail Use% Mounted on
    udev                               451M     0  451M   0% /dev
    tmpfs                               97M  1.3M   96M   2% /run
    /dev/mapper/ubuntu--vg-ubuntu--lv   19G  3.9G   14G  22% /
    tmpfs                              482M     0  482M   0% /dev/shm
    tmpfs                              5.0M     0  5.0M   0% /run/lock
    tmpfs                              482M     0  482M   0% /sys/fs/cgroup
    /dev/loop0                          92M   92M     0 100% /snap/core/8689
    /dev/loop1                          90M   90M     0 100% /snap/core/8268
    /dev/sda2                          976M   77M  832M   9% /boot
    tmpfs                               97M     0   97M   0% /run/user/0
    
    // 再次查看LVM卷组的信息(可扩容的空间已经成为0)
    root@ubuntu:~# vgdisplay
      --- Volume group ---
      VG Name               ubuntu-vg
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <19.00 GiB
      PE Size               4.00 MiB
      Total PE              4863
      Alloc PE / Size       4863 / <19.00 GiB
      Free  PE / Size       0 / 0   
      VG UUID               hZPoxm-kSBU-fmKs-2yXD-hHoe-3T7e-PCIFSe
    

Git 操作

  1. git远程与本地的操作

    1. git重新设置远程仓库地址

      git remote rm origin
      git remote add origin 你的新远程仓库地址
    2. git删除远程分支

      git push origin --delete Chapater6  
    3. git 建立本地分支与远程分支的关联

      git branch –set-upstream 本地新建分支名 origin/远程分支名
    4. git重命名分支

      git branch -m old new
    5. git拉取远程分支

  2. git放弃本地修改

    • 未使用git add缓存代码

      git checkout -- filepathname # 放弃指定文件的缓存
      git checkout .               # 放弃所有的文件修改
    • 已经使用git add缓存代码

       git reset HEAD filepathname #放弃指定文件的缓存
       git reset HEAD .            # 放弃所有的文件修改
    • 已经用 git commit提交代码

      git reset --hard HEAD^      # 回到上一次commit的状态
  3. git使用远程仓库代码覆盖本地代码

     git fetch --all
     git reset --hard origin/master
     git pull

    第一个是:拉取所有更新,不同步;

    第二个是:本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件);

    第三个是:再更新一次(其实也可以不用,第二步命令做过了其实)


评论
评论
  目录