<<linux教程>>第五版 实验三 实验四 ----linux 关于 shell跟vi编辑器,简单命令,刚需上

  1. 进入vi。

image-20210423085900363

:wq 文件名

image-20210423090130026

\2. 建立一个文件,如file.co进入插入方式,输入一个C语言程序的各行内容,故 意制造几处错误。最后,将该文件存盘。回到shell状态下。

制造头文件不存在的问题

image-20210423091709264

  1. 运行gcc file.c -o myfile,编译该文件,会发现错误提示。理解其含义。

解释:如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c -o test.out然后就可以看见有一个test.out.文件 了。-o后面跟着的编译生成的文件名。

当没有执行错误的时候

image-20210423091409412

当头文件不存在的时候

image-20210423091743572

制造错误命令print

image-20210423091557489

  1. 重新进入vi,对该文件进行修改。然后存盘,退出vi。重新编译该文件。如果编 译通过了,那么可以用./myfile运行该程序。

链接文件 输出到myfile

image-20210423091923654

使用./myfile执行

image-20210423092211805

  1. 运行man date > file10,然后运行vi filel10使用x、dd等命令删除某些文本行。

使用u命令复原此前的情况。

使用c、r、s等命令修改文本内容。

使用检索命令进行给定模式的检索。

把时间的帮助打印到file10

image-20210423092755485

x在命令模式下向后删除一个字符X在命令模式下向前删除一个字符

image-20210423093652874

在命令模式下 dd :删除一行内容

image-20210423093825322

使用u 返回上一步 相当于 ctrl +c,可以返回多次

image-20210423093922049

😒/Commands/Command 替换光标所在行的一行一次

image-20210423094426706

c 在命令状态下删除第几行,然后在接受新的输入,相当于删除了几行以后再加上一个i命令

r: 几个字符+r+A 实现用A替换几个字符,然后进入输入模式

  1. 利用vi建立一个脚本文件,其中包括date、cal、pwd、Is等常用命令;然后以不 同方式执行该脚本。
image-20210423084734997

编辑命令结束,使用名称为shiyan2

image-20210423084752389

使用bash 命令执行脚本文件

image-20210423084902658

使用bash>2执行

使用sh 文件名

image-20210423085359071

source shiyan2

在当前shell执行而不是新建个shell子进程执行

image-20210423085530525

  1. 运行history命令,配置历史命令环境。

默认是在主目录下的.bash_history,可以使用

HISTFILE="/目录/.名称"

image-20210423200353243

我们改变了保存历史命令的位置,在关闭终端以后,重新进入文件夹显示了

image-20210423201819865

里边有各种而样的命令

image-20210423201547285

更改存储最大条数

histsize=600

  1. 体会bash的命令补齐功能。

我在输入完so以后按住tab健弹出了source.挺厉害的

  1. 用alias定义别名,然后执行。

现在实现ls -ll起别名 psdl, alias 别名=‘命令’

image-20210423203141604

  1. 对习题4.8中的shell脚本进行编辑,然后执行。

    image-20210423205215654

  2. 按习题4.14要求编写脚本,然后执行。

image-20210423210341856

image-20210423210327276

  1. 按习题4.18要求编写脚本,然后执行。

n m一开始是,数字,然后有cut 命令

image-20210423211039996

  1. 运行例4.20的程序。若取消其中的“eval",则会出现什么情况?

    image-20210423213449737

取消eval

image-20210423213534120

image-20210423214001784

  • 15
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux 中使用 C 语言实现 shell 命令 <> 的重定向,可以使用 dup2() 函数来实现。dup2() 函数可以将一个文件描述符的内容复制到另一个文件描述符中,从而实现文件重定向。 下面是一个简单的示例程序,可以实现 “<” 和 “>” 的文件重定向功能: ```c #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main(int argc, char *argv[]) { int in_fd, out_fd; char *in_file, *out_file, *cmd; if (argc != 4) { fprintf(stderr, "Usage: %s <input_file> <output_file> <command>\n", argv[0]); return 1; } in_file = argv[1]; out_file = argv[2]; cmd = argv[3]; // 打开输入文件 in_fd = open(in_file, O_RDONLY); if (in_fd == -1) { perror("open input file"); return 2; } // 打开输出文件 out_fd = open(out_file, O_CREAT|O_WRONLY|O_TRUNC, 0644); if (out_fd == -1) { perror("open output file"); return 2; } // 将输入文件重定向到标准输入 if (dup2(in_fd, STDIN_FILENO) == -1) { perror("dup2 input file"); return 3; } // 将输出文件重定向到标准输出 if (dup2(out_fd, STDOUT_FILENO) == -1) { perror("dup2 output file"); return 3; } // 执行命令 if (system(cmd) == -1) { perror("system command"); return 4; } // 关闭文件 close(in_fd); close(out_fd); return 0; } ``` 在上面的程序中,我们首先打开输入文件和输出文件,并将它们分别重定向到标准输入和标准输出。然后执行传入的命令命令的输出将被重定向到输出文件中。最后关闭文件描述符。 使用该程序可以实现以下命令的效果: ```bash $ ./redirect input.txt output.txt wc -l ``` 该命令会将输入文件 input.txt 的内容通过 “<” 重定向到 wc 命令的标准输入中,将 wc 的输出通过 “>” 重定向到 output.txt 文件中。最后输出文件 output.txt 中行数的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀才大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值