linux课程--实验二 Linux 基本命令操作2

一、实验目的:

(1)掌握文件和目录的区别

(2)熟悉文件和目录的相关操作:建立、复制、移动、删除、重命名、查找、统计等

(3)掌握输入、输出重定向的用法

(4)掌握find的常见查找模式

(5)理解文件的类型及查看

二、实验准备

(2)了解linux命令行的基本概念,掌握通配符的使用方法。

(3)了解绝对路径和相对路径的概念及表达方法。

三、实验过程

例如:

1.命令操作

  1. mkdir命令操作,查看命令显示结果。

 rmdir命令操作,查看命令显示结果。

 more/less命令操作,查看命令显示结果。

 cp命令操作,查看命令显示结果。

rm命令操作,查看命令显示结果。

【选项】
  -f  忽略不存在的文件,不作提示。
  -i  删除前提示用户确认。
  -r  递归删除目录。
  -v  显示操作结果。
 

mv命令操作,查看命令显示结果。

 wc命令操作,查看命令显示结果。

 sort命令操作,查看命令显示结果。

find命令操作,查看命令显示结果。

grep命令操作,查看命令显示结果

 

 chmod命令操作,查看命令显示结果。

 touch命令操作,查看命令显示结果

 

 

 mount命令操作,查看命令显示结果。

 

 

umount命令 

2.问题解答

(1) rmdir 命令可以删除一个目录,请问如何一次性删除多级目录?

    mkdir -p a/b/c  递归删除目录

   function deltree($pathdir)
{
echo $pathdir;//
if(is_empty_dir($pathdir))//如果是空的
{
rmdir($pathdir);//直接删除
}
else
{//否则读这个目录,除了.和..外
$d=dir($pathdir);
while($a=$d->read())
{
if(is_file($pathdir.'/'.$a) && ($a!='.') &&

($a!='..')){unlink($pathdir.'/'.$a);}
//如果是文件就直接删除
if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
{//如果是目录
if(!is_empty_dir($pathdir.'/'.$a))//是否为空
{//如果不是,调用自身,不过是原来的路径+他下级的目录名
deltree($pathdir.'/'.$a);
}
if(is_empty_dir($pathdir.'/'.$a))
{//如果是空就直接删除
rmdir($pathdir.'/'.$a);
}
}
}
$d->close();
echo "必须先删除目录下的所有文件";//调试时用的
}
}
function is_empty_dir($pathdir)
{//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空,PHP有没有给出什么
函数?
$d=opendir($pathdir);
$i=0;
while($a=readdir($d))
{
$i++;
}
closedir($d);
if($i>2){return false;}
else return true;
}

(2) cp 命令可以复制一个文件,如果想要复制一个文件夹,需要加上什么样

的参数?cp -r /aaa/ /bbb/

四、实验总结

(1)没有理解find命令的参数含义以及其具体使用

      没有彻底理解mount命令中的一些参数(nfs,vfat),以及挂载的含义

      使用递归的方式建立目录时终端报错,参数出错

 (2)yum命令

       yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令

        yum [options] [command] [package ...]

options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。

command:要进行的操作。

package:安装的包名。

       Apt命令
        apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令
      apt [options] [command] [package ...]

options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。

command:要进行的操作。

package:安装的包名。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验linux 内核编译及添加系统调用 设计目的 Linux 是开源操作系统,用户可以根据自身系统需要裁剪、修改内核,定制出功能更加 合适、运行效率更高的系统,因此,编译 linux 内核是进行内核开发的必要基本功。 在系统中根据需要添加新的系统调用是修改内核的一种常用手段,通过本次实验,读 者应理解 linux 系统处理系统调用的流程以及增加系统调用的方法。 内容要求 (1) 添加一个系统调用,实现对指定进程的 nice 值的修改或读取功能,并返回进程最 新的 nice 值及优先级 prio。建议调用原型为: int mysetnice(pid_t pid, int flag, int nicevalue, void __user * prio, void __user * nice); 参数含义: pid:进程 ID。 flag:若值为 0,表示读取 nice 值;若值为 1,表示修改 nice 值。 Prio、nice:进程当前优先级及 nice 值。 返回值:系统调用成功时返回 0,失败时返回错误码 EFAULT。 (2) 写一个简单的应用程序测试(1)中添加的系统调用。 (3) 若程序中调用了 linux 的内核函数,要求深入阅读相关函数源码。 实验 linux 内核模块编程 设计目的 Linux 提供的模块机制能动态扩充 linux 功能而无需重新编译内核,已经广泛应用在 linux 内核的许多功能的实现中。在本实验中将学习模块的基本概念、原理及实现技术,然后利 用内核模块编程访问进程的基本信息,从而加深对进程概念的理解、对模块编程技术的掌 握。 内容要求 (1) 设计一个模块,要求列出系统中所有内核线程的程序名、PID 号、进程状态及 进程优先级。 (2) 设计一个带参数的模块,其参数为某个进程的 PID 号,该模块的功能是列出该 进程的家族信息,包括父进程、兄弟进程和子进程的程序名、PID 号。 (3) 请根据自身情况,进一步阅读分析程序中用到的相关内核函数的源码实现。 实验linux 进程管理 设计目的 (1) 熟悉 linux命令接口。 (2) 通过对 linux 进程控制的相关系统调用的编程应用,进一步加深对进程概念的理解, 明确进程和程序的联系和区别,理解进程并发执行的具体含义。 (3) 通过 Linux 管道通信机制、消息队列通信机制、共享内存通信机制的使用,加深 对不同类型的进程通信方式的理解。 (4) 通过对 linux 的 Posix 信号量的应用,加深对信号量同步机制的理解。 (5)请根据自身情况,进一步阅读分析相关系统调用的内核源码实现。 设计内容 (1)熟悉 linux 常用命令:pwd,useradd,passwd, who, ps, pstree, kill, top, ls, cd, mkdir, rmdir, cp, rm, mv, cat, more, grep 等。 (2) 实现一个模拟的 shell: 编写三个不同的程序 cmd1.c,cmd2.c,cmd3.c,每个程序的功能自定,分别编译成可执 行文件 cmd1,cmd2,cmd3。然后再编写一个程序,模拟 shell 程序的功能,能根据用户输 入的字符串(表示相应的命令名),去为相应的命令创建子进程并让它去执行相应的程序,而父进程则等待子进程结束,然后再等待接收下一条命令。如果接收到的命令为 exit,则父 进程结束;如果接收到的命令是无效命令,则显示“Command not found”,继续等待。 (3) 实现一个管道通信程序: 由父进程创建一个管道,然后再创建 3 个子进程,并由这三个子进程利用管道与父进程 之间进行通信:子进程发送信息,父进程等三个子进程全部发完消息后再接收信息。通信的 具体内容可根据自己的需要随意设计,要求能试验阻塞型读写过程中的各种情况,测试管道 的默认大小,并且要求利用 Posix 信号量机制实现进程间对管道的互斥访问。运行程序,观 察各种情况下,进程实际读写的字节数以及进程阻塞唤醒的情况。 (4) 利用 linux 的消息队列通信机制实现两个线程间的通信: 编写程序创建两个线程:sender 线程和 receive 线程,其中 sender 线程运行函数 sender(), 它创建一个消息队列,然后,循环等待用户通过终端输入一串字符,将这串字符通过消息队 列发送给 receiver 线程,直到用户输入“exit”为止;最后,它向 receiver 线程发送消息“end”, 并且等待 receiver 的应答,等到应答消息后,将接收到的应答信息显示在终端屏幕上,删除 相关消息队列,结束程序的运行。Receiver 线程运行 rece
一、 实验目的 1、 通过实验了解和熟悉Linux文件系统 2、 掌握文件操作命令 3、 了解文件与目录的默认权限,掌握文件权限的设置 4、 掌握文件的链接 、 开发工具和运行环境 1、虚拟机VMware 2、Linux操作系统 三、 实验内容 1、了解和熟悉Linux文件系统 了解Linux文件系统、文件命名、文件类型和常见目录:根目录(/)、 .bin、boot、dev、etc、home、Lib、lost+found、 opt、root、 usr、mnt、proc、sbin、 tmp、 var. 2、文件操作命令: (文件和目录名自拟、自行设计实验步骤) (1) 1s: 显示目录内容 -a显示指定目录下所有的目录与文件 -1以 长格式显示文件的详细信息。 -d显示目录本身信息 i显示索引号 (2) cd:改变当前工作目录 格式: cd [目录名] cd .. 上移- -层目录(注意,需要有空格) cd 移到自己的主目录 (3) cat: 查看文件信息命令 显示文件信息:格式: cat [选项]文件名 -n输出编号 建立文件: cat>新文件名ctrl+d 合并文件: cat 文件1文件2>新文件 (4) more: 逐屏显示文件内容 格式: more 文件名 (5) cp:复制命令 格式: cp [选项] 源文件或目录目标文件或目录 同时可以复制多个文件 -f 出现覆盖情况不提示 -p复制后,保持原有属性。目标文件保持原有的生成日期和inode编号 -r 复制目录及目录下的文件 普通用户并不能进行这样的操作,只能切换到root用户然后进行-r的递归复制。 (6) rm: 删除文件与目录 格式: mv [选项] 文件名或目录名 -f删除时不提示 -r 删除目录及目录下的文件(常用: -rf ) (7) mv: 文件移动及改名命令 格式: mv [选项]源文件或目录 目 标文件或目录 -f覆盖文件时 不提示 (8) grep: 文件信息检索命令 格式: grep [选项]字符串 [文件 ... ] -i 不区分大小写 (9) sort: 排序命令 格式: sort [选项][文件列表] (10) mkdir 创建目录命令 格式: mkdir [选项] [目录名] 可以同时创建多个目录 p :递归创建目录 -m:创建目录的时候赋予权限 (11) rmdir删除“空”目录命令 格式: rmdir [选项] [目录名] 注意:目录为空才能删除;否则需采用rm - r来删除。 p :递归删除目录,删除子目录,其父目录为空时,也同时删除3、文件权限的设置: (文件和目录名自拟、自行设计实验步骤) 文件的属主与属组 (1) chown [选项] [所有者][:[组]] 文件列表 更改每个文件的所有者和/或所属组。 字母模式形式即“用户对象操作符号操作权限”,其命令格式为:(2) chmod [选项]模式[,模式]文件名 +:添加-:取消=:赋予并取消其他所有 数字形式即由三位八进制数字组成,其命令格式为: chmod八进制模式 文件名 文件的特殊权限: SUID、 SGID 和Sticky 4、文件的链接: (文件和目录名自拟、自行设计实验步骤) (1)硬链接:不带选项,ln命令创建硬链接。在另外的目录或本目录中增加目标文件的一个目录项,一个文件就登记在多个目录中 1n源文件目标文件 (2)软链接(符号链接):用“1n -s”命令建立符号链接时,最好源文件用绝对路径名,这样可以在任何工作目录下进行符号链接。类似于Windows系统中的快捷方式。 In -s源文件目标文件
回答: Linux操作系统的基本命令和概念是学习命令行式Linux操作系统的重要内容。虽然已经有了图形界面化的Linux操作系统,但企业使用的通常是命令行式Linux操作系统,因为在遇到一些问题时需要使用到指令。学习命令行式Linux操作系统可以更接近底层指令,略微快一点。其中,uname -r指令是用来获取电脑和操作系统的相关信息的,可以显示Linux主机所用的操作系统的版本、硬件的名称等基本信息。\[1\]\[2\]此外,/selinux目录是Redhat/CentOS所特有的目录,存放着与Selinux相关的文件。Selinux是一种安全机制,类似于Windows的防火墙,但比较复杂。\[3\] #### 引用[.reference_title] - *1* [【Linux操作系统】基础概念和常用指令(一)](https://blog.csdn.net/qq_64428099/article/details/126910680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【linux操作系统】基础指令(入门必备)](https://blog.csdn.net/weixin_60718941/article/details/126863861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [linux课程--实验Linux 基本命令操作1](https://blog.csdn.net/Capricorn_wow/article/details/121196706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值