CSAPP系列 — Bootcamp 1: Linux, Command Line, Git

本文是CSAPP系列的第一篇文章,将对 Linux 上的一些基础操作进行介绍,包括 shell、vim、git、ssh等。

Linux Shell

shell程序本质上就是一个脚本解释器,我们打开linux终端以后,就可以看到shell程序在等待输入。
在日常的学习和工作中,我们需要了解并掌握 shell 脚本的一些常用命令,帮助我们提升工作效率,下面将介绍几个重要的 shell 命令。

目录操作

pwd:打印当前工作目录
cd:进入目录

重要的目录名:

  • ~:home 目录
  • .:当前目录
  • ..:上一级目录
  • /:根目录

文件传输

scp:scp工具能够在两台机器之间安全地传输文件
用法:scp user@alpha.com:/somedir/somefile.txt user@beta.com:/anotherdir
远程机器传输到本地:scp username@from_host:file.txt /local/directory
本地传输到远程机器:scp file.txt username@to_host:/home/directory
远程传输到远程:scp username@from_host:/remote/file.txt username@to_host:/remote/directory/

scp命令可以带一些选项:

  • -r:递归拷贝目录
  • -v:verbose模式,打印信息

文件操作

文件拷贝:cp <source> <destination>
文件移动/重命名:mv <source> <destination>
删除文件:rm <filename>
删除目录:rmdir <directory>
创建空白文件:touch <file>

隐藏 .swap 文件:malloc.c -> .malloc.c.swp ,其中swp文件对应的是未保存的老版本,通常需要将其删除

文件压缩/解压缩

tar工具用来压缩或解压文件,它可以带如下选项:

  • -c:创建
  • -x:打开
  • -v:verbose模式,打印操作过程
  • -f:指定文件名

例如,
压缩文件:tar -cxf name-of-archive.tar dir1 dir2 dir3
解压文件:tar -zxf name-of-archive.tar

文本处理

sort:对文件进行排序

  • -f:忽略大小写
  • -n:数字序
  • -r:逆序

cat:查看并打印文件内容
uniq:去除重复行
head/tail:打印文件的前(后)x行

  • -bx:打印前(后)x字节
  • -nx:打印前(后)x行

Grep(全局正则表达式打印)

grep工具可以按照指定模式从文件中查询内容

用法:grep [OPTION...] PATTERNS [FILE...]
选项:

  • -c:打印匹配行的数量
  • -n:显示匹配行以及行号
  • -r:递归查询目录中所有文件
  • -i:忽略大小写

Echo&Sed

echo:打印文本行
sed:可以对文本进行 insertdeletionsearch以及replace操作,sed 's/old/new/' file.txt,其中 s表示替换(substitution),使用new代替old

VIM

VIM 是用来进行文本编辑的工具,在服务器上往往没有VSCode这类编辑器,因此需要掌握一些VIM的基本操作。

vim有三种基本模式:

  • 命令模式:使用esc 进入命令模式
  • 插入模式:按下 i 键进入插入模式
  • 可视化模式:按下v进入该模式,该模式下使用 y 表示copy,使用p表示paste

写入::w
退出::q
写入并退出:wq

GIT

GIT是版本控制工具,能够对代码版本进行管理,能够非常方便进行团队代码协作以及代码版本管理。

设置git:
git config --global user.name "Your Name"
git config --global user.email "Your Email"

创建一个git仓库:
git init:初始化当前目录
git clone:从远端拉取一个仓库
git add:暂存将要提交的文件
git commit -m <MESSAGE>:提交暂存的修改
git push:将修改推送到远程
git pull:从远程拉取最新的代码
git status:查看当前仓库的状态
git log:查看提交信息
git diff:查看本地修改与库上的区别
git revert <COMMIT_HASH>:创建一个新的提交,该提交将回退到COMMIT_HASH
git checkout <FILE_NAME>:将修改回退
git reset --hard/--soft <COMMIT_HASH>:回退到COMMIT_HASH,和git revert的区别在于,它不会生成新的commit记录

Wildcards

模式匹配,在linux中经常会碰到需要进行模式匹配的操作,例如找到所有以 compute开头的单词,下面介绍一些常用的模式匹配语法

*:匹配任意字符
?:匹配任意单个字符
[characters]*:匹配characters集合中的任意字符
[!characters]:匹配不在characters集合中的任意字符

和前面介绍的shell命令结合使用:
rm g*:删除g开头的所有文件
ls b*.txt:列出所有以 b 开头,.txt结尾的文件
cat Data???:查看所有以Data开头并以3个字符结尾的文件内容
[[:upper:]]*:匹配任意以大写字符开头的文件
*[![:lower:]]:匹配不以小写字符结尾的文件

欢迎各位关注CSAPP系列,后续将继续更新完善该系列,包括知识点介绍以及实验分享。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Proxy(代理)是一种在计算机网络中广泛应用的中间服务器,用于连接客户端和目标服务器之间的通信。Proxy csapp是一个与计算机系统应用(Computer Systems: A Programmer's Perspective)相关的代理服务器。 Proxy csapp的设计目的是为了提供更高效的网络通信,增强系统的安全性,并提供更好的用户体验。在Proxy csapp中,客户端的请求首先会被发送到代理服务器,然后由代理服务器转发给目标服务器,并将目标服务器的响应返回给客户端。这种中间层的机制可以提供很多功能,如缓存、负载均衡、安全认证等。 在csapp中,Proxy csapp可以被用于优化网络数据传输的效率。代理服务器可以对客户端请求进行调度和协商,以减少网络延迟和数据传输量。通过缓存常用的数据和资源,代理服务器可以减少重复的数据传输和目标服务器的负载,提高网络性能和响应速度。 此外,Proxy csapp还可以提供安全的网络通信环境。代理服务器可以拦截和过滤网络流量,用于检测和阻止恶意攻击、垃圾邮件等网络安全威胁。代理服务器还可以对用户进行身份验证和授权,保护敏感数据的安全性。 最后,通过Proxy csapp可以实现更好的用户体验。代理服务器可以根据用户的需求进行个性化的服务,如按地理位置提供更快的网络连接、提供访问限制和控制等。代理服务器还可以对网络流量进行压缩和优化,提高网络传输效率,减少用户的等待时间。 总之,Proxy csapp在计算机系统应用中是一个重要的代理服务器,它可以提供高效的网络通信、增强系统的安全性,并带来更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值