注:前言、目录见 https://blog.csdn.net/qq_44220418/article/details/108428971

友情提醒:仅供参考理解,请勿直接复制粘贴

友情提醒:仅供参考理解,请勿直接复制粘贴

友情提醒:仅供参考理解,请勿直接复制粘贴

文章目录

  • 一、第1题
    • 1、第1小问
    • 2、第2小问
    • 3、第3小问
    • 4、第4小问
    • 5、第5小问
  • 二、第2题
  • 三、第3题

一、第1题

1.试用Linux命令完成下面的操作:

1、第1小问

i)查看用户当前所处目录的绝对路径并列出该目录中有多少目录名(含所有子目录)

# 查看当前所处目录的绝对路径
pwd# 查看当前目录下有多少目录名(包括自己本身 .)
find -type d# 查看当前目录下有多少目录名(不包括自己本身 .)
# 用grep命令
#   设置参数-v进行排除匹配
#   设置参数-E使用正则表达式匹配(正则表达式"^.$"用于匹配整行以.开头并结尾的内容)
find -type d | grep -vE "^.$"# 统计当前目录下有多少个目录(不包括自己本身 .)
# 对前面的命令加上 | wc -l 即可
# 使用wc命令进行统计,设置参数-l统计行数
find -type d | grep -vE "^.$" | wc -l

示例截图

2、第2小问

ii)在当前目录中创建子目录rootdir,并同时创建rootdir的子目录sondir

# 使用命令mkdir创建目录
# 设置参数-p 一键创建所有不存在的目录
mkdir -p rootdir/sondir

示例截图

3、第3小问

iii)在rootdir子目录中建立文本文件myorder(内容为:date pwd ls –l 三个命令 )
并将该文件复制到sondir目录,并同时改名为用户指定文件名(姓名拼音首字母+学号后3位)

# 跳转到目录rootdir下
cd rootdir# 使用echo命令 配合 重定向符> 将字符串写入myorder.txt文件
# 设置参数-e允许使用换行符"\n"等
echo -e "date\npwd\nls -l" > myorder.txt# 复制文件并重命名
cp myorder.txt sondir/zx201.txt

示例截图

4、第4小问

iv)查看刚才复制的文件的属性,添加文件主可执行权限

# 查看被复制文件的属性
ls -l sondir/zx201.txt# 添加文件主可执行权限
chmod u+x sondir/zx201.txt

示例截图

5、第5小问

v)查看目录sondir的属性

# 使用ls命令查看文件,设置参数-l查看详细信息(包括属性),设置参数-d只查看目录
ls -ld sondir

示例截图

二、第2题

2. Linux命令操作:

在自己的用户目录下建立一个子目录proexam
在该子目录中建立exam.cexsort.c两个C语言源文件

exam.c是主函数文件,用数组datalist接受键盘输入的一组整数(以-999结束)并按降序输出该数组datalist中的每个数据

exsort.c用自定义函数sortdown()对数组元素降序排列

cat命令将这两个源文件合并成exall.c源文件

再用命令统计该子目录中ex打头的文件名数量

# 跳转到自己的用户目录
cd ~# 新建目录proexam
mkdir proexam# 跳转到目录proexam下
cd proexam# 创建并将代码写入exam.c文件(用文本编辑器)
# (纯命令行可以使用cat > exam.c,然后在下面粘贴C程序代码,换行后按下Ctrl+C结束输入)
gedit exam.c# 创建并将代码写入exam.c文件(用文本编辑器)
gedit exsort.c# 使用cat命令合并文件内容,配合重定向符>写入并创建新文件
cat exsort.c exam.c > exall.c# 使用find命令查找文件
#   设置参数-maxdepth 1指定搜索深度为1(不查找当前目录子目录中的文件/目录)
#   设置参数-name "ex*"指定以 ex 开头的文件
#   设置参数-type f指定普通文件
# 使用wc命令统计,设置参数-l统计结果行数
find -maxdepth 1 -name "ex*" -type f | wc -l
exam.c代码

#include <stdio.h>int main() {int datalist[] = { 1, 2, 33, 4, 5 };int len = sizeof(datalist)/sizeof(int);sortdown(datalist, len);for (int i = 0; i < len; ++i)printf("%d ", datalist[i]);printf("\n");return 0;
}
exsort.c代码

void sortdown(int a[], int n) {for (int i = 0; i < n - 1; ++i)for (int j = 0; j < n - 1 - i; ++j)if (a[j] < a[j + 1]) {// 交换(貌似不能像VS2017一样直接使用swap函数)int tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}
}

示例截图

三、第3题

3. 若不使用文本编辑器,怎样建文本文件myorder(输入上面的三个命令)?
若要使建立的源文件(exall.c)对其它用户可执行,并用GCC工具运行该程序,应该如何操作?

# 使用echo命令 配合 重定向符> 将字符串写入myorder.txt文件
# 设置参数-e允许使用换行符"\n"等
echo -e "date\npwd\nls -l" > myorder.txt# 设置exall.c文件可执行(对其他用户,即o)
chmod o+x exall.c# 使用GCC直接编译出该程序
gcc -o exall exall.c# 运行该程序
./exall

示例截图

《Linux编程》上机作业 ·001【Linux命令】相关推荐

  1. linux编程课后作业,Unix/Linux 编程实践教程第三章习题

    tips: 答案仅供参考,不保证正确* 3.1 在我的 deepin 上,d_name 的长度是 256,有的系统定义成 1 是为了节省空间,使用时可以通过 malloc() 动态的分配空间,比如: ...

  2. linux下实现作业调度程序,Linux后台作业

    原文链接: https://github.com/fupengfei058/blog/blob/master/Linux后台作业.md 前言 常在 linux 下玩耍的开发者肯定会经常遇到需要对进程调 ...

  3. linux编程取消wait函数,Linux编程基础之进程等待(wait()函数).pdf

    Linux编程基础之进程等待(wait()函数) 编程过程中,有时需要让一个进程等待另一个进程 ,最常见的是父进程等待自己的子进程 ,或者父进程回收自己 的子进程资源包括僵尸进程.这里简单介绍一下系统 ...

  4. 《Linux编程》作业 ·002【Shell编程】

    注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 友情提醒:仅供参考理解,请勿直接复制粘贴 友情提醒:仅供参考理 ...

  5. 《Linux编程》作业 ·003【文件I/O操作】

    注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 友情提醒:仅供参考理解,请勿直接复制粘贴 友情提醒:仅供参考理 ...

  6. Linux系统管理上机作业2

    chapter02 - 03 作业 1.分别用cat \tac\nl三个命令查看文件/etc/ssh/sshd_config文件中的内容,并用自己的话总计出这三个文档操作命令的不同之处? [root@ ...

  7. Linux系统管理上机作业1

    1.请用命令查出ifconfig命令程序的绝对路径 [root@localhost ~]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些是内部命令, ...

  8. 【Linux编程】一、Linux常见指令和权限理解(思维导图总结)

    文章目录 Linux下基本指令 01.ls 指令 02.pwd 指令 03 cd 指令 04.mkdir 指令 05.rmdir 指令 06.rm 指令 07.tree 指令 08.cp 指令 09. ...

  9. linux 管道文件上机总结,[转载]LINUX 管道 fifo 等总结

    Linux进程通信:命名管道FIFO小结 Linux下进程之间通信可以用命名管道FIFO完成.命名管道是一种特殊类型的文件,因为Linux中所有事物都是文件,它在文件系统中以文件名的形式存在. 在程序 ...

最新文章

  1. 谷歌云TPU服务正式全面开放:「AlphaGo背后的芯片」进入商用化
  2. 展开被 SpringBoot 玩的日子 《 二 》 WEB 开发
  3. 阿里数学竞赛最年轻金奖得主:15岁读少年班,21岁UC伯克利读博,想毕业就回国...
  4. Asp.net 操作cookie大全
  5. JSON asp(vbs)中文支持问题
  6. mysqlcppconn之ConnectOptionsMap的使用
  7. 函数作用域的静态变量
  8. linux系统常用快捷键,文件类型,后缀名,语言修改,转义
  9. Django 使用 mysql 数据库连接
  10. 爱思助手短信备份到安卓_爱思助手肿么将短信导入iphone
  11. dax 筛选 包含某个字_筛选状态(ALL与REMOVEFILTERS)
  12. putty的窗口关闭相关的可能需要注意的细节
  13. 使用vuex和axios获取api数据
  14. ios录制视频时audio丢失
  15. 编译原理与编译构造 LR文法
  16. 读《线上幽灵:世界头号黑客米特尼克自传》 有感
  17. 报错:array_column函数未定义(原因:php版本问题)
  18. 3D游戏角色建模设计这样做,模型满分!
  19. DP(Nietzsche)的hu测 T3(规律?主席树)
  20. python 替换重复字符_python - 在Pandas中,如何将重复值替换为多个唯一字符串?_pandas_酷徒编程知识库...

热门文章

  1. 论各类BI工具的“大数据”特性!
  2. FISSA:融合项目相似度模型和自注意网络的时序推荐
  3. php 加tab键,php 生成Tab键或逗号分隔的CSV
  4. input回车触发事件_JavaScript学习笔记(十五)-- Event事件(上)
  5. cython 安装升级_Anaconda安装pytorch,torchvision和 cython
  6. 基于selenium的钓鱼工具:关于ReelPhish神器的使用
  7. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——I题 买花
  8. Java 1.2.3 文件输入与输出
  9. OpenCV——基于Python开发的OpenCV安装教程
  10. 【干货】Python参考书籍