# 入手大型项目源码
<font style="background:pink">
# 目录
- 目录
- ✅英语单词相关er和ee
- ✅Linux下源码查看
- 1.⭐️find模仿everthing
- 2.⭐️grep -r模仿AnyTxt
- 3.ctags代码
- 4.Linux下ll或者ls按时间排序查看文件命令
- 4.linux 按文件大小排
- 5.快速知晓文件类型-可执行文件
- 6.vim代码格式化快捷键
- ✅Windows下源码查看
- 1.Sourece Insight软件的快捷键
- 2.everything
- 3.AnyTxt
- 4.VScode快捷键
- ✅项目设置
- 1.「环境变量」在Linux中将某文件夹加入PATH路径
- ✅效率工具
- 1.快速切换目录z的安装⭐️
- 2.省时+省力的history快捷键
- 3.其他bash快捷键大全⭐️
- 4.对git diff生成的代码,patch,删除1列+
- 参考资料
[TOC]
# ✅英语单词相关er和ee
- employer,雇主『主动雇佣别人的』
- employee,雇员『被雇的』
- 记忆法:er反过来是ren人
- ee像纯纯牛马
# ✅Linux下源码查看
- everthing使用:linux下的find文件查找命令
- AnyTxt的模拟使用:grep文件内容查找命令
find信息
⭐️⭐️⭐️find -name “*llvm*” ./*
find ./* -name 完整的文件名或者文件夹名(文件名,连后缀都要写对)
2
3
# 1.⭐️find
模仿everthing
- 使用
find
找文件名-文件夹-find最坑的地方(部分复现everything)⭐️ - 注意点1:如果名字不完整就不行「当然,你可以用正则表达式」
- 注意点2:必须find -name [filename] [dir]【不一定】必须文件夹名字在前
- 注意点3:必须find [dir] -name [filename],必须文件夹名字在前
- find的最坑的地方(一定要写全)
XXXX@XXXX:~/whoway/riscv_gcc$ find ./* -name bui
XXXX@XXXX:~/whoway/riscv_gcc$ find ./* -name build
./Benchmarks/mcu/mcu_code/build
./hcc_riscv32/build-gcc-final/gcc/build
./hcc_riscv32/build-gcc-first/gcc/build
2
3
4
5
- find命令是一种精确查找工具,可以查找精确查找文件的位置,单相对于locate命令的模糊查找来说,速度要慢了许多
whoway@XXXX:~/whoway$ find ./* -name build.log
./hcc_riscv_gcc/Benchmarks/automotive/bitcount/build.log
./hcc_riscv_gcc/Benchmarks/automotive/basicmath/build.log
whoway@XXXX:~/whoway$ find ./* -name build
./hcc_riscv_gcc/hcc_riscv32_musl/build-gcc-first/gcc/build
2
3
4
5
6
find中正则表达式的使用⭐️
whoway@XXXX:~$ find ./* -name "*gdb*"
./optimization/00.firstHashOptCodeSize/codesize/scripts/test_zeroize.gdb
./optimization/how-do-i-perform-gdb-debugging.md
./optimization/arch/lib/kgdb.c
2
3
4
- find的忽略大小写查询
-iname
选项
whoway@XXXX:~/Desktop$ find -name "*.txt"
./33.txt
whoway@XXXX:~/Desktop$ find -iname "*.txt"
./33.txt
./22.Txt
./aaa.TXT
2
3
4
5
6
# 1.1.使用locate进行模糊搜索文件or文件夹(⭐️完全复现everything)
根据发行版和系统的配置方式,**locate
**包可能会或可能不会预装在Linux系统上。
要检查系统上是否安装了locate
实用程序,请打开终端,输入locate
,然后按Enter
。如果安装了软件包,系统将显示*locate: no pattern to search for specified
,否则您将看到类似的信息locate command not found
*。
==易错:==locate在安装时候的名字不叫locate,而是mlocate
# 1.3.locate
在Ubuntu和Debian上安装
sudo apt update
sudo apt install mlocate
2
# 1.4.locate
在RedHat系
locate在CentOS和Fedora上安装
# 2.⭐️grep -r
模仿AnyTxt
使用grep
搜索代码在文本中的位置(⭐️完全复现AnyTxt)
以递归的方式查找符合条件的文件。
例如,查找指定目录/etc/acpi
及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为
-r 或 --recursive
: 此参数的效果和指定"-d recurse"参数相同。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
grep -r update /etc/acpi
# 2.1.(需安装)最快的文本搜索神器ripgrep - grep的最好代替者
# 2.2.grep不查找有些文件夹
使用 --exclude-dir
选项
//这个是不行的
grep -r "\-O3" --exclude-dir={share/ , install-cmake/}
//这个是🉑️可以的「意思是不能空格」
grep -r "\-O3" --exclude-dir={share/,install-cmake/}
2
3
4
5
# 2.3.grep不查找多个文件示例
附赠一个,排除扩展名为 java 和 js 的文件
--exclude=*.{java,js}
# 3.ctags代码
# 4.Linux下ll
或者ls
按时间排序查看文件命令
场景:查看,我哪些文件是最近新增的
# 4.1.最近修改的在前-按降序,即最近的修改ls -lt
- 等价于
ll -t
-t
的意思-t sort by modification time,newest first即按修改时间对文件进行排序,默认是==最近修改的在前==
moudaen@morton:~$ ls -lt
total 19836
-rw-r--r-- 1 moudaen 65536 7 Nov 13 15:30 test.txt
-rw-r--r-- 1 moudaen 65536 20267062 Nov 11 17:44 Gender.war
drwxr-xr-x 2 moudaen 65536 4096 Nov 11 17:44 test
-rw-r--r-- 1 moudaen 65536 5258 Nov 11 11:44 MyApp.java
2
3
4
5
6
# 4.2.最近修改的在后ls -ltr
- 就是在前面基础上加上
reverse
moudaen@morton:~$ ls -lrt
total 19836
-rw-r--r-- 1 moudaen 65536 5258 Nov 11 11:44 MyApp.java
drwxr-xr-x 2 moudaen 65536 4096 Nov 11 17:44 test
-rw-r--r-- 1 moudaen 65536 20267062 Nov 11 17:44 Gender.war
-rw-r--r-- 1 moudaen 65536 7 Nov 13 15:30 test.txt
2
3
4
5
6
# 4.linux 按文件大小排
- 1.按文件大小查看文件
a.降序:ls -lsh
-l表示以长格式显示,即列出文件详细信息如上面的格式。
-s表示排序,默认是降序排列。
-h表示将文件大小转为我们习惯的M,K等为单位的大小
2
3
4
5
6
- b.升序:
ls -lrsh
-r表示reverse的意思,这里就是reverse order倒序,默认是降序的,加上-r就反转下即为升序了。
# 4.1.大文件在前-降序:ls -lsh
-s
表示排序,默认是降序排列。-h
表示将文件大小转为我们习惯的M,K等为单位的大小
moudaen@morton:~$ ls -lsh
total 20M
20M -rw-r--r-- 1 moudaen 65536 20M Nov 11 17:44 Gender.war
4.0K drwxr-xr-x 2 moudaen 65536 4.0K Nov 11 17:44 test
8.0K -rw-r--r-- 1 moudaen 65536 5.2K Nov 11 11:44 MyApp.java
2
3
4
5
# 4.2.大文件在后-升序:ls -lrsh
-r
表示reverse的意思,这里就是reverse order倒序,默认是降序的,加上-r
就反转下即为升序了。
# 5.快速知晓文件类型-可执行文件
执行ll
之后
linux文件后面带*
带的文件表示是可执行文件
- 或者
alias l='ls -CF'
# 6.vim代码格式化快捷键
gg #当前光标跳转到首行
Shift + v #转为可视模式(打开)
(其实就是G)Shift + g #选中整个文件内容
= #格式化
2
3
4
# ✅Windows下源码查看
# 1.Sourece Insight
软件的快捷键
- 查找引用:
Alt+/
- 后退:
Alt+,
- 向前:
Alt+.
- 在当前文件查找代码:
Ctrl+F
- 放大缩小代码:按住Ctrl+鼠标滚动轮
- 参考文档:source insight快捷键 (opens new window)
- soureceInsight的知乎网站 (opens new window)
- SourceInsight 4.0 下载与安装,知乎 (opens new window)
Source Insight前进和后退(返回上一步)快捷键
Sourece Insight软件的
图标
- 快速折叠和展开函数啥的定义
# 2.everything
- 快速查找文件
# 3.AnyTxt
- 全局查找文本
# 4.VScode
快捷键
# 4.1.设置VScode快捷键,去转换宏的大小写
解决的问题:查看宏定义的英语
- 使用
Ctrl+Shift+P
- 然后,查找转换大小写,直接设置
# 4.2.折叠+展开所有函数
解决的问题:查看宏定义的英语
- 折叠所有函数
Ctrl + K, Ctrl + 0
另外 折叠到某一级的函数是 Ctrl + K, Ctrl + n。例如,我想折叠到第二级的函数,就输入Ctrl + K, Ctrl + 2即可。
2
展开所有函数
Ctrl + K, Ctrl + J
- 折叠查看完毕后可以通过上述快捷键展开所有折叠的内容。十分方便。
# 4.3.函数括号跳转(格式化)
解决:ipa-pro
- 用于解决可读性极差的代码「对于代码块的光标移动:
Ctrl+Shift+\
」
# 4.4.声明的跳转
- F12快捷键
# 4.5.快速格式化c和C++的代码格式
- Windows下:shift+alt+F(format)
- On Mac :Shift + Option + F
- On Ubuntu :Ctrl + Shift + I
参考资料:https://blog.csdn.net/latency_cheng/article/details/80409202
# ✅项目设置
# 1.「环境变量」在Linux中将某文件夹加入PATH路径
PATH=$PATH:/home/whoway/bin/
whoway@XXXX:~/whoway/hcc_riscv_gcc/script$ env
SHELL=/bin/bash
省略
whoway@XXXX:~/whoway/hcc_riscv_gcc/script$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
whoway@XXX: PATH=$PATH:/home/whoway/bin/
2
3
4
5
6
7
8
export PATH=$(pwd):$PATH
将当前目录加入PATH「临时」
# ✅效率工具
# 1.快速切换目录z
的安装⭐️
- 我没有安装z软件本身的说明文档,但是这样也能用了
- 参考资料:https://commandnotfound.cn/linux/1/589/z-%E5%91%BD%E4%BB%A4
XX@XXX:~/mylocal$ pwd
/home/whoway/mylocal
XX@XXX:~/mylocal$ echo '. /home/whoway/mylocal/z/z.sh' >> ~/.zshrc
XX@XXX:~/mylocal$ source ~/.zshrc
XX@XXX:~/mylocal$ echo '. /home/whoway/mylocal/z/z.sh' >> ~/.bash_profile
XX@XXX:~/mylocal$ source ~/.bash_profile
XX@XXX:~/mylocal$ cd z/
XX@XXX:~/mylocal/z$ ls
LICENSE Makefile README z.1 z.sh
XX@XXX:~/mylocal/z$ z -h
z [-cehlrtx] args
2
3
4
5
6
7
8
9
10
11
# 1.1.如何保证,我们每次登录新bash生效z命令
- 修改
.bash_profile
后如何生效? - 每次
source ~/.bash_profile
好麻烦,如何让他每次bash可以 - 修改
b
即可!vim .bashrc
# 2.省时+省力的history快捷键
下面是的使用场景,但是这样要多敲键盘,我就用快捷键「==Ctrl+R==」
history | grep update
此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。
- 如果找不到的话,重复「==Ctrl+R==」可以往前翻页
- 当找到命令后,通常再按回车键就可以执行该命令。
- 如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键
# 3.其他bash
快捷键大全⭐️
⭐️Ctrl+A(应该是Ahead) 和Ctrl+E(应该是End),分别代表把光标移动到最前和最后
⭐️Ctrl+U 和 Ctrl+K,分别代表光标处往前和光标处往后删除
Ctrl + ?/
撤消前一次输入
要注意,在Bash里面,快捷键可能会被写成八进制或者十六进制的形式(跟在转义符后面);
脚本文件中的快捷键并不是总能起作用的。
另外快捷键有个规律,Ctrl开头的快捷键一般是针对字符的,而Alt开头的快捷键一般是针对词的
- alt-backspace
- 删除光标所在位置到词开头的所有内容。
- alt-D
- 删除光标所在位置到光标所在词的结尾位置的所有内容(如果光标是在词开头,则删除整个词)
参考资料:https://gist.github.com/zhulianhua/befb8f61db8c72b4763d
Bash 快捷键大全:https://www.runoob.com/w3cnote/bash-shortcut.html
# 4.对git diff
生成的代码,patch,删除1列+
用vim删除1列:https://blog.csdn.net/shixin_0125/article/details/79692793
- 使用,可视化模式,Ctrl+V
方法2
cat ttt | cut -c 2- > temp #我们保留第2列到最后的,并且重定位
cat ttt | cut -c 2- #我们保留第2列到最后的
2
- 参考资料:Linux的cut命令 (opens new window)