linux实验二

本文详细介绍了Linux环境下通过命令行进行用户管理(如创建、修改组和用户属性)及配置定时任务的基本操作。通过具体示例展示了如何创建用户、修改用户属性、设置用户主目录和主组、添加用户到特定组、显示用户信息并将其记录到日志文件,以及如何使用crontab命令实现定时任务。同时,文章还提供了将日志文件内容复制到Windows系统的指导。
摘要由CSDN通过智能技术生成

0x00

今天又收到小伙伴的linux实验题


0x01

实验环境,centos,预装crontab


0x02

1、创建组testgroup;

[root@centos ~]# groupadd testgroup
[root@centos ~]# cat /etc/group
rvm:x:501:
testgroup:x:502:


2、创建用户a2012,先采用默认设置创建,然后使该用户加入testgroup组。
# useradd a2012
# passwd a2012
# usermod -a -G testgroup a2012
# id -G a2012
503 502
# id a2012
uid=501(a2012) gid=503(a2012) groups=503(a2012),502(testgroup)


补充:
usermod -g group loginname
强行设置某个用户所在组
usermod -G groups loginname
把某个用户改为 group(s)
usermod -a -G groups loginname
把用户添加进入某个组(s)

3、创建用户a2013,其用户主目录为/tmp/a2013,其主组为testgroup,附加组为users。
#useradd -d /tmp/a2013 -g testgroup -G users a2013
或者
# usermod -d /tmp/a2013 -u 502 a2013
# cat /etc/passwd
a2013:x:502:504::/tmp/a2013:/bin/bash
# usermod -g testgroup -G users a2013
或者直接vi /etc/passwd 修改a2013路径也行



4、用id命令显示a2012和a2013用户信息,并且把这些信息记录到日志文件/tmp/test.log中。
[root@centos etc]# id a2012>/tmp/test.log
[root@centos etc]# id a2013>>/tmp/test.log
[root@centos etc]# cat /tmp/test.log
uid=501(a2012) gid=503(a2012) groups=503(a2012),502(testgroup)
uid=502(a2013) gid=502(testgroup) groups=502(testgroup),100(users)

5、参考书本98-99页crontab命令内容,使用root执行crontab -e,编写时程表,完成每隔5分钟把当前时间追加进/tmp/test.log中。
[root@centos etc]# date
Tue Oct 22 19:10:33 CST 2013
[root@centos etc]# crontab -e
*/5 * * * * date >> /tmp/test.log
:wq
[root@centos etc]# /sbin/service crond start
[root@centos etc]# cat /tmp/test.log
uid=501(a2012) gid=503(a2012) groups=503(a2012),502(testgroup)
uid=502(a2013) gid=502(testgroup) groups=502(testgroup),100(users)
*/5 * * * * date >> /tmp/test.log
Tue Oct 22 19:20:01 CST 2013
[root@centos etc]# cat /tmp/test.log
uid=501(a2012) gid=503(a2012) groups=503(a2012),502(testgroup)
uid=502(a2013) gid=502(testgroup) groups=502(testgroup),100(users)
*/5 * * * * date >> /tmp/test.log
Tue Oct 22 19:20:01 CST 2013
Tue Oct 22 19:25:02 CST 2013
[root@centos etc]# /sbin/service crond stop
Stopping crond:                                            [  OK  ]


6、执行crontab -l,把输出内容追加进/tmp/test.log。
[root@centos etc]# crontab -l>>/tmp/test.log
[root@centos etc]# cat /tmp/test.log
uid=501(a2012) gid=503(a2012) groups=503(a2012),502(testgroup)
uid=502(a2013) gid=502(testgroup) groups=502(testgroup),100(users)
*/5 * * * * date >> /tmp/test.log


7、待完成2次时间记录追加后,执行crontab -r删除当前的时程表。
[root@centos etc]# crontab -r
[root@centos etc]# crontab -l
no crontab for root
[root@centos etc]# 

8、把/tmp/test.log拷贝到windows中(注意文本格式的转换),采用记事本打开,看是否看到完整内容。
    是在vm里面,有很多方法,图形界面直接装vmtools就好了

    命令界面,可以装vsftp(不懂百度一下)

    还有一种用vmtools的。

     vm菜单找到install vmtools,等一阵

    mkdir /mnt/cdrom && mount -t auto /dev/cdrom /mnt/cdrom

    cd /mnt/cdrom

    cp 那个gz文件 /home/testuser

    cd /home/testuser

    ls

    tar -zxvf 移动过来的那个压缩文件

    cd vmware-tools-distrib

   ./vmware-install.pl 差不多是这个文件名吧,一直回车确认就好,fatal error google一下

    发现mnt里面多了一个hgfs

    cd /mnt/hgfs

    关机,在vm edit setting ,option里面选择共享文件夹(win下的)然后enabled就好了。这个文件夹就是共享在hgfs的文件夹

    以前试过几次失败的,不知道为啥,反正后来都是用ftp了

    

          对于双系统:挂载硬盘分区就好了~~~~~


0x03后续

……

一、 实验目的 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源文件目标文件
### 回答1: Linux实验进程管理主要涉及到进程的创建、终止、查看和管理等方面。在Linux系统,进程是操作系统最基本的执行单元,它是程序在执行过程一个实例。通过进程管理,我们可以控制和管理系统的各个进程,从而保证系统的稳定性和安全性。 在Linux系统,我们可以使用命令行工具来进行进程管理。其,常用的命令包括ps、kill、top、nice等。通过这些命令,我们可以查看系统正在运行的进程、终止指定的进程、调整进程的优先级等。 此外,Linux系统还提供了一些图形化的进程管理工具,如System Monitor、htop等。这些工具可以更直观地显示系统的进程信息,并提供更丰富的操作选项。 总之,进程管理是Linux系统非常重要的一部分,它对于系统的稳定性和安全性具有重要的影响。掌握进程管理的基本原理和常用命令,可以帮助我们更好地管理和维护Linux系统。 ### 回答2: Linux实验进程管理主要涉及了进程的创建、运行、退出等基本操作。在Linux系统,进程是系统资源调度的基本单位,也是程序运行的基本单位。因此,在Linux操作系统,对于进程管理的实现显得十分重要。 在实验,我们学习了如何通过编程的方式进行进程的创建。首先,我们需要使用fork()函数来创建新的进程。这个函数会在调用的进程内部生成一个子进程,子进程会与父进程共享代码、数据、文件等资源,并且这两个进程的运行是相对独立的。在子进程可以使用exec()函数来加载新的程序,从而实现一个新的进程。在实验,我们尝试了几种不同的fork()和exec()函数的合方式,例如:子进程执行一个程序,子进程替换成另一个程序等。这些不同的方式可以更加灵活地控制进程的创建和运行。 其次,我们学习了如何使用信号来管理进程。在Linux系统,信号是一种异步的通知机制,它可以在运行的进程之间进行通信,例如进程的退出通知等。我们使用signal()函数来安装信号处理程序,这个处理程序会在特定的信号到来时执行。例如,我们尝试了在子进程安装SIGINT信号处理程序,当在终端输入Ctrl+C时,子进程会捕获到这个信号并调用处理程序。 另外,我们学习了如何使用管道来进行进程间通信。在Linux系统,管道是进程间通信的一种常用方式。我们使用pipe()函数来创建管道,然后使用fork()函数创建子进程和父进程,两个进程之间可以通过管道来传输数据。在实验,我们使用管道来实现父进程向子进程发送数据的过程,这个过程需要通过write()函数写入数据到管道,子进程可以通过read()函数来读取管道的数据。 综上所述,实验进程管理是一个非常实用的实验,我们通过实验学习了进程的创建、运行、退出等基本操作,学会了如何使用信号和管道进行进程通信,掌握了进程管理一些常用的技巧和方法,这些技能对于我们后续的Linux系统学习和工作都是非常有帮助的。 ### 回答3: Linux实验进程管理是计算机操作系统课程的一项实验任务,主要涉及如何创建、管理和控制进程。本实验要求学生在Linux操作系统下使用命令行工具,通过编写和运行C程序来实现进程的创建和管理。 在Linux,进程是操作系统的基本单位,每个进程都拥有自己的资源和内存空间。管理进程的操作可以通过Linux系统内核提供的一系列命令和系统调用来完成。常用的进程管理命令包括ps、kill、top等,它们可以帮助用户查看进程列表、杀死进程或者查看进程的状态。 本实验要求使用C语言编写程序并通过命令行编译执行。首先要实现进程的创建,通过fork系统调用可以创建一个子进程。父进程调用fork会返回子进程的pid,而子进程返回0,可以通过判断返回值来确定当前程序是父进程还是子进程。子进程可以调用exec系统调用来执行其他程序,从而实现进程间的交互和通信。 在进程管理,还需要对进程进行调度和控制。可以通过信号来控制进程的行为,kill命令可以向指定进程发送不同的信号,例如SIGTERM信号可以结束进程,SIGINT信号可以停止进程。另外还可以使用nice命令来调整进程的优先级,通过top命令可以查看进程的状态和占用的系统资源。 总的来说,Linux实验进程管理是一项非常重要的实验任务,通过学习和实践可以帮助学生更深入地理解进程管理的原理和技术,为以后的系统管理和开发打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值