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会直接帮你切换到终点和当前版本的中位点版本。