• 常用命令(Linux、Git、g++、gdb)


    一、Linux

    1、解压缩

    // 压缩文件及文件夹
    tar -zcvf test.tar.gz file1 file2 dir1 dir2
    
    // 解压到当前目录
    tar -xvf qtcreator-v7.0.0.tar.xz
    
    // 安装.deb包
    dpkg -i ***.deb
    
    // 删除应用程序
    dpkg -r 或者dpkg --purge
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、远程操作文件

    (1)远程操作服务器,在远程主机上执行命令,访问文件

    ssh daboluo@10.99.128.166
    
    • 1

    (2)挂载:将远程主机上的文件系统挂载到本地主机上, 可以像访问本地文件系统一样访问远程主机上的文件和目录

    // 1.安装服务
    sudo apt-get install sshfs
    sudo apt install openssh-serve
    
    // 2.创建本地目录,并设置权限
    sudo mkdir /home/daboluo
    sudo chmod +777 /home/daboluo
    
    // 3.开始挂载远端目录到本地目录
    sshfs daboluo@10.99.128.166:/home/daboluo /home/daboluo
    
    // 4.使用完后卸载掉挂载
    umount /home/daboluo
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    (3)在本机和远程机器之间拷贝文件

    // 1.传输本地文件-->远程目录
    scp /home/bendi/filename daboluo@10.99.128.166:/home/daboluo/Downloads
    
    // 2.传输远程文件-->本地目录
    scp daboluo@10.99.128.166:/home/daboluo/Downloads/filename /home/bendi
    
    // 3.传输文件夹需要在scp命令后加"-r"参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、基础操作

    // 修改网络设置后,比如DNS,重启网络服务
    sudo service network-manager restart
    
    // 查找匹配的文件
    find . -name "*daboluo*"
    
    // 查找文件中的内容
    grep -r "daboluo"
    
    // make日志输出到文件
    make -j28 2>&1 | tee make.log
    
    // 模拟崩溃
    kill -4 `pidof wps`
    
    // 下载svn仓库
    svn checkout http://svn.mso.kingsoft.net/Public/
    
    // 查看进程加载了哪些库,12306是进程id(进程目录下还可以查看进程所占用的内存空间、状态信息、文件描述符等)
    cat /proc/12306/maps
    
    // 系统启动时设置环境变量以及其他自定义初始化操作
    在 X Window 系统中,当用户登录时,会先执行 "$HOME/.xprofile" 文件,然后再启动窗口管理器或桌面环境。
    用户可以在这个文件中添加一些需要在登录时执行的命令,例如设置环境变量、启动一些应用程序或运行脚本等。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    4、查看系统中是否包含某个字体

    // 先安装一个linux下开源的字体库
    sudo apt-get install fontconfig
    
    // 列出系统上安装的可用字体
    fc-list | grep 宋体
    
    // 字体缓存将被删除并重新生成,以更新系统中的字体信息
    fc-cache -f -v
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5、解压缩deb

    // 解压到文件夹
    dpkg-deb -R 15283.deb good/
    
    // 压缩成deb
    dpkg-deb -b good/ 15284.deb
    
    • 1
    • 2
    • 3
    • 4
    • 5

    6、端口

    // 查找端口是否被占用
    netstat -tuln | grep 3389
    
    // 查找端口被哪个进程占用
    sudo lsof -i :3389
    
    // 释放端口(释放进程)
    sudo kill -9 1160
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    二、git

    1、基础操作

    // 1.查看当前状态
    git status
    
    // 2.查看日志
    git log
    
    // 3.查看某个文件的日志
    git log test.txt
    
    // 4.列出搜索的分支
    git branch --all | grep 20230921
    
    // 5.切换分支名
    git checkout -b 本地分支/远端分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    // 6.搜索日志
    git log --grep 修改图标
    
    // 7.跟新子模块
    git submodule update --init --recursive
    
    // 8.添加所有修改点
    git add .
    
    // 9.增加提交信息
    git commit -m ""
    
    // 10.先拉最新代码,并更新HEAD,最后提交代码到远程仓库
    git pull --rebase
    git push
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2、删除新文件、回滚

    // 1.删除未添加到仓库的全部文件/目录
    git clean -f -d
    
    // 2.删除未添加到仓库的某个文件(可以鼠标选中文件, 然后按鼠标滚轮键<复制粘贴>rm -rf fileName.txt
    
    // 3.回滚已经提交的记录
    git reset --soft HEAD^
    
    // 4.取消暂存(执行完暂存后,进入添加修改点前的状态)
    git restore --stage .
    
    // 5.取消本地修改点
    git restore .
    
    // 6.回滚到某个提交点
    git reset --soft commitId
    
    // 7.只回滚某个文件
    git checkout commitId foo.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    3、将其他分支的提交应用到当前分支

    // -x 提交信息的末尾追加一行 (cherry picked from commit ...)
    // 方便记录提交记录由谁产生的
    git cherry-pick -x commitid1 commitid2 commitid3
    
    // 还想再此基础上修改修改
    git commit --amend
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、撤销某条提交记录

    git revert --no-edit commitid1 commitid2
    
    • 1

    5、打补丁

    就是将别人的提交记录信息,生成到本地的一个文件,你可以在自己的代码上使用。例如,可以将qt5官网的某个提交记录,下载它的patch,就可以在自己的代码上应用它。

    // 1.单次提交打补丁
    git format-patch -1 commitid1
    
    // 2.应用补丁(自己写提交信息:只修改本地代码,还需要commit)
    git apply fileName.patch
    git commit -m ""
    
    // 3.应用补丁(一步到位:修改代码并自动commit,包含一些patch的信息)
    git am fileName.patch
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    tips:可以生成某次提交之前的N次、某两次提交之间的代码、某个提交之后所有的代码等,进行打补丁


    6、暂存修改

    保存当前修改到暂存区,可以在当前分支或者其他分支处理新BUG,提交处理完之后,可以恢复之前写的代码。

    // 暂存
    git stash
    
    // 恢复
    git stash pop
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7、合并分支

    // 合并其他分支1012-->1115
    git merge --no-edit origin/rc_v12_professinoal_20231012_branch
    
    // 终止合并
    git merge --abort
    
    // 本地已合并,未push到远端,但是想回滚到远端当前分支1115的头结点
    git reset --hard origin/rc_v12_professional_20231115_branch
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    三、gdb

    // 1.启动调试
    gdb ./et
    // 2.设置参数
    set args -w
    // 3.显示参数
    show args
    // 4.插入断点
    break /home/daboluo/workspace/Coding/main.cpp:8
    // 5.运行
    run
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    // 6.跳到下一个断点,相当于F5
    continue
    // 7.跳过函数内部
    next
    // 8.进入函数内部
    step
    // 9.打印变量
    print value
    // 10.查看已经设置的断点
    info b
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    // 11.删除断点
    delete num
    // 12.打印当前的堆栈
    bt
    // 13.切换栈帧
    frame num
    // 14.跳到上一个栈帧
    up
    // 15.跳到下一个栈帧
    down
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    // 16.退出
    quit
    
    • 1
    • 2

    四、g++

    // 编译器查找动态连接库时有隐含的命名规则,即在给定的名字前面加上lib,后面加上.so来查找库的名称
    // 小写L,比如引用libxcb.so。大写L,引用库路径,大写i引用头文件
    g++ main.cpp -lxcb -L/usr/local/lib -I/usr/local/include
    
    // 编译源码
    ./configure   // 检测系统配置并生成Makefile
    make          // 读取Makefile的指令进行编译
    make install  // 也是读取Makefile的指令,安装头文件和库到指定的位置 
    
    // 查看库依赖
    ldd a.out
    
    // 制作动态库链接
    ln -s libxxxx.so.xx libxxxx.so
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    五、sql

    // 根据某个键,进行查找
    SELECT * FROM table_name WHERE id="RestrictPermission";
    
    // 查询表中数据的个数
    SELECT COUNT(*) FROM table_name;
    
    // 插入一条数据
    INSERT INTO table_name (employee_id, first_name, last_name) VALUES (1, 'John', 'Doe');
    
    // 插入一条数据,包含所有的列,则可以省略列名。在有些列,不想赋值,也必须给个空值
    INSERT INTO table_name VALUES (1, 'John', 'Doe');
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    tips:(1)如果某些列被定义为"NOT NULL",则必须为这些列提供值。(2)在省略列名的情况下,有些列不想赋值,也必须给个空值'',否则插入错误,因为和列的总数无法对应。

  • 相关阅读:
    目标检测5:采用yolov8, RK3568上推理实时视频流
    SPL-安装与基本使用(二)
    SSM框架之MyBatis入门(Maven工程实现全查功能,快速入门,适合小白)
    什么是大数据系统存储及管理?
    【vue2高德地图api】05-关于公交线路的案例实战
    【编码推流】源码编译ffmpeg支持nvidia编码加速
    STM32的HAL和LL库区别和性能对比
    SpringMVC【超详情!!!】
    【Harmony OS】【ARK UI】公共事件模块
    mac 本地搭建go-admin之vue打包(二)
  • 原文地址:https://blog.csdn.net/guorong520/article/details/132833637