SAST2023笔记——Linux&&Git相关
Linux
在Linux的根目录下有很多文件(并且他们可能需要我们手动修改!)例如etc文件夹:正如其名,这个目录的意思就是一些杂七杂八的配置文件。例如其中的etc/passwd是用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息【例如train:x:1000:1000::/home/train:/usr/bin/zsh这一行就代表了用户”train”的存在】。
如果使用的命令行shell是bash,那么修改代理的时候要用到nano ~./bashrc;如果使用的命令行shell是zsh,那么修改代理的时候要用到nano ~./zshrc,然后在这个文件的最后引入配置的http或者https端口。个人认为nano比vim要更好用一些(没有乱七八糟的神奇操作要求)。
命名中以”.”开头的Linux文件(比如”.hidden”)无法用
ls
命令看到,但是可以用ls -a
强制看到这些隐藏文件。linux还有很多神奇的命令…例如:(你说得对,但我选择直接问chatgpt)
Command | Description |
---|---|
目录相关 | |
pwd | 当前目录 |
cd | 切换目录 |
ls | 查看目录列表 |
mkdir | 创建目录 |
find | 在层级目录下搜索文件 |
文件相关 | |
touch | 创建 |
mv | 移动(可用于重命名) |
cp | 拷贝 |
rm | 删除 |
chmod | 更改文件权限 |
chown | 更改文件所属 |
echo | 输出提供的文本 |
file | 查看文件类型 |
cat | 将文件内容输出到标准输出 |
用户和组相关 | |
useradd | 创建用户 |
groupadd | 创建组 |
passwd | 更改密码 |
chpasswd | 批量更改密码 |
su | 一般用于切换用户 |
Git
首先给大家推荐一下学习git的网站: https://learngitbranching.js.org/?locale=zh_CN (可能是最好的git教学网站——核心就是git branch其实只是指向版本的指针而已,并不会多占很多内存,多多益善),然后推荐大家在vscode中安装git graph来图形化git分支,体验会良好很多。
直到现在我才明白分离分支究竟是什么意思:大致来说,正常操作下我们的HEAD指针都是指向某个分支的(例如master),我们的commit 或者reset操作都会使该分支一同前进/回退。但假如强行切换到一个“野”版本(例如git checkout a4d2),那么现在就不会指向任何分支了。另外要说明的是,以后最好用git switch而不是git checkout(据说后者有可能在未来的版本被废除)、并且上文的a4d2指的是某一个版本的哈希值(一般取前四位即可定位)。
这次暑培还让我学到了一些新的实用命令,比如:
git blame
:可以检查每一行代码究竟是谁最后一次提交的,这样出了bug就能知道是谁搞的了。git bisect
:如果你的当前版本有bug,而之前有一个很久远的版本没有bug,那么使用该命令吧!该命令可以二分查找究竟是哪次commit导致了bug的出现。一开始需要用git bisect start [终点][起点]
来查找起点和终点的中位点(并且还会贴心地直接帮你切换到这个中位点版本)。此时你需要运行当前的版本来肉眼查看该版本是否有bug。如果有,那么运行git bisect bad
,git会直接帮你切换到起点和当前版本的中位点版本;如果没有,那么运行git bisect good
,git会直接帮你切换到终点和当前版本的中位点版本。