Linux命令总结(自用)

本文详细介绍了Linux系统中的文件操作、用户环境配置、SVN版本控制命令、Git工作流程,包括文件重定向、diff、mknod、工作区与暂存区管理、git分支与合并等,并展示了管道在命令行中的使用方法。
摘要由CSDN通过智能技术生成


一、文件类

  1. 重定向 >>
  2. grep -r “” 查找相关内容
  3. grep -R “” 精切查找
  4. find .|xargs grep -ri “” 查找关键字
  5. tree: -d 仅显示目录 -a 显示所有 -L n(n代表几层)tree -f 显示完整路径
  6. 位运算:
    |=:两个二进制对应位都为0时,结果等于0,否则结果等于1;
    &=:两个二进制的对应位都为1时,结果为1,否则结果等于0;
    ^=:两个二进制的对应位相同,结果为0,否则结果为1。
  7. tar命令相关:
    *.tar 用 tar –xvf 解压
    *.gz 用 gzip -d或者gunzip 解压
    *.tar.gz和.tgz 用 tar –xzf 解压
    *.bz2 用 bzip2 -d或者用bunzip2 解压
    *.tar.bz2用tar –xjf 解压
    *.Z 用 uncompress 解压
    *.tar.Z 用tar –xZf 解压
  8. dd命令(制作fw时用到的dd命令,将一段段内容写入到fw.bin中):
dd of=fw.bin bs=1k count=32k if=/dev/zero
dd of=fw.bin bs=1k conv=notrunc seek=0 if= $ SHELL_FOLDER/output/lowlevelboot/lowlevel_fw.bin
dd of=fw.bin bs=1k conv=notrunc seek=2K if=$ SHELL_FOLDER/output/opensbi/fw_jump.bin 
  1. file file 文件名 linux下查看文件的属性
  2. diff 【命令行选项】 源文件 新文件
-r 是一个递归选项,适合目录
-N 确保补丁文件正确处理新创建或删除文件的情况
-u 选项以统一格式创建补丁文件,格式紧凑
-a 表示可以包含二进制文件到patch

diff -ruN test1.txt test2.txt > test.patch

这样创建好了补丁文件test.patch,补丁创建好了以后需要给相应文件/程序打补丁
  1. scp -r user@xxx.xx.xx.xx:/path ./
  2. patch 【命令行选项】[输入文件/目录] [补丁文件]
    常用的命令行选项为-pn(n是自然数)
    patch -p0 file.c < patch.patch
  3. VIM
u 撤销、U取消撤销
ctrl + f 下一页 ctrl + b 上一页
dd 删除此行
yy 复制此行 
:n 快速到某行 
  1. mknod
    mknod命令创建设备节点:
用法:mknod 设备名 设备类型 主设备号 次设备号
如:mkmod /dev/test c 2 0
创建一个字符设备/dev/test,其主设备号为2,次设备号为0	

下面展示在linux中mknod的系统调用关系:
在这里插入图片描述

二、用户环境

  1. 修改当前用户环境:
在.bashrc文件下
export PATH=...:$PATH
source ~/.bashrc
  1. 临时添加环境变量:
    export PATH=/usr/bin/:$PATH, 即将/usr/bin/目录临时添加到环境变量中

  2. make -j $ (nproc) 其中,“-j"参数用于指定并发编译的任务数,”$(nproc)"表示获取可用的CPU核心数。

三、SVN命令

  1. svn diff -r A:B >> xx.patch : 比较A,B版本不同并生成patch文件(高亮文件)
  2. svn checkout path -username -password :从服务器拉代码
  3. svn add xxx 添加新文件
  4. svn delete xxx 删除文件
  5. svn commit -m “备注说明” 提交代码到库,在commit之前必须add
  6. svn update 更新库文件
  7. svn update -r A 修正版本到A ; svn update 文件名 :更新指定文件
  8. svn revert :用来撤销文件或目录中的局部修改
  9. svn list : 查看库中文件目录
  10. svn log : 查看历史版本信息
  11. svn revert xxx:回退版本相关:
  12. svn status :查看文件状态

四、git命令

4.1 git工作区、暂存区和版本库

工作区就是你在电脑里能看到的目录。

暂存区英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

工作区暂存区版本库

  • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

  • 当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。

  • 当执行 git checkout . 或者 git checkout – 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。

  • 当执行 git checkout HEAD . 或者 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

4.2 创建仓库命令

下表列出了 git 创建仓库的命令:

命令说明
[git init]初始化仓库
[git clone]拷贝一份远程仓库,也就是下载一个项目。

4.3 提交与修改

命令说明
[git add]添加文件到暂存区
[git status]查看仓库当前的状态,显示有变更的文件。
[git diff]比较文件的不同,即暂存区和工作区的差异。–cached可以比较
[git commit]提交暂存区到本地仓库。
[git reset]回退版本。
[git rm]将文件从暂存区和工作区中删除。
[git mv]移动或重命名工作区文件。

4.4 提交日志

命令说明
[git log]查看历史提交记录
[git blame <file>]以列表形式查看指定文件的历史修改记录

4.5 远程操作(远程仓库的指令,一般用不到)

命令说明
[git remote]远程仓库操作
[git fetch]从远程获取代码库
[git pull]下载远程代码并合并
[git push]上传远程代码并合并

4.6 分支操作:

命令说明
[git branch]查看分支列表
[git branch <branch-name>]创建一个新分支
[git checkout <branch-name>]切换到指定分支
[git merge <branch-name>]将指定分支合并到当前分支
[git branch -d <branch-name>]删除指定分支

4.7 远程仓库操作:

命令说明
[git remote add <remote-name> <remote-url>]添加远程仓库
[git remote remove <remote-name>]移除远程仓库
[git push <remote-name> <branch-name>]将本地分支推送到远程仓库
[git pull <remote-name> <branch-name>]从远程仓库拉取更新到本地分支

4.8 标签操作:

命令说明
[git tag]查看标签列表
[git tag <tag-name>]创建一个新标签
[git tag -a <tag-name> -m "tag message"]创建一个带有注释的标签
[git push <remote-name> <tag-name>]推送标签到远程仓库

4.9 撤销操作:

命令说明
[git revert <commit>]撤销指定提交的更改
[git reset --hard <commit>]重置当前分支到指定提交,并丢弃之后的所有提交
[git cherry-pick <commit>]选择一个提交并将其应用到当前分支

4.10 回滚版本:

git reset --hard HEAD^,回滚到上个版本

git reset --hard HEAD^~2,回滚到前两个版本

git reset --hard xxx(版本号或版本号前几位),回滚到指定版本号,如果是版本号前几位,git会自动寻找匹配的版本号

git reset --hard xxx(版本号或版本号前几位) filename,回滚某个文件到指定版本号(需要进入该文件所在目录)

4.11 查看历史提交版本:

git log 查看历史所有版本信息

git log -x 查看最新的x个版本信息

git log -x filename查看某个文件filename最新的x个版本信息(需要进入该文件所在目录)

git log --pretty=oneline查看历史所有版本信息,只包含版本号和记录描述

4.12 git commit --amend 重新提交如题

本条仅适用于修改已经push过了的最近一次的commit注释信息,确保本地文件的最新的。

step1:使用【git commit --amend】命令,会进入到vim编辑器。

step2:输入【i】,即进入编辑模式,此时编辑提交信息。

step3:编辑好之后,按键【Esc】,输入【:wq】,即保存和退出。

step4:输入【git push -f】强制提交。

操作完之后,再看提交记录,即可看到修改的注释信息。

4.13 拉取库上某个分支代码

主要步骤如下:
1、进入某个文件下执行git clone操作拉取远程代码
git clone https://gitlab.com/qemu-project/qemu.git
2、进入项目目录
cd qemu
3、执行git brach -a查看所有分支,*代表当前的分支

(base) sun@sun-virtual-machine:~/Workspace/qemu$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/block
  remotes/origin/master
  remotes/origin/stable-0.10
  remotes/origin/stable-0.11
  remotes/origin/stable-0.12
  remotes/origin/stable-0.13
  remotes/origin/stable-0.14
  remotes/origin/stable-0.15
  remotes/origin/stable-1.0
  remotes/origin/stable-1.1
  remotes/origin/stable-1.2
  remotes/origin/stable-1.3
  remotes/origin/stable-1.4
  remotes/origin/stable-1.5
  remotes/origin/stable-1.6
  remotes/origin/stable-1.7
  remotes/origin/stable-2.0
  remotes/origin/stable-2.1
  remotes/origin/stable-2.10
  remotes/origin/stable-2.11
  remotes/origin/stable-2.12
  remotes/origin/stable-2.2
  remotes/origin/stable-2.3
  remotes/origin/stable-2.4
  remotes/origin/stable-2.5
  remotes/origin/stable-2.6
  remotes/origin/stable-2.7
  remotes/origin/stable-2.8
  remotes/origin/stable-2.9
  remotes/origin/stable-3.0
  remotes/origin/stable-3.1
  remotes/origin/stable-4.0
  remotes/origin/stable-4.1
  remotes/origin/stable-4.2
  remotes/origin/stable-5.0
  remotes/origin/stable-6.0
  remotes/origin/stable-6.1
  remotes/origin/stable-7.2
  remotes/origin/stable-8.0
  remotes/origin/stable-8.1
  remotes/origin/stable-8.2
  remotes/origin/stable-9.0
  remotes/origin/staging
  remotes/origin/staging-7.2
  remotes/origin/staging-8.0
  remotes/origin/staging-8.1
  remotes/origin/staging-8.2
  remotes/origin/staging-9.0

4、执行git checkout -b 远程某个分支,拉取指定某个分支
git checkout remotes/origin/stable-6.0

5、拉取该分支最新代码
git pull

五、管道的使用

  1. less 显示较少的内容 objdump -d a.out | less
  2. more 显示较多的内容 objdump -d a.out | more
  3. wc -lc 显示文件有多少行 objdump -d a.out | wc -lc
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值