# 作业Day01-关机练习作业

查询在线用户

who -H

查询服务状态

systemctl status sshd

停止服务

systemctl stop sshd

停止后再次检查服务状态

方法一

通知所有用户在30分钟后将系统关机

shutdown -k +30 "The system will be shut down in 30 minutes and maintained for one hour."

使用关机

shutdown -h +30

方法二

关机,并通知

shutdown -h +30 "The system will be shut down in 30 minutes and maintained for one hour."


1.查看网络配置信息。

ifconfig

2.使用history查看所有信息。

history

3.使用history查看最近的三十条命令。

history 30

4.使用history查看最后一条一echo开头的命令。

history !e

5.使用history执行第66条历史命令。

history !66

6.使用man命令查看ifconfig命令的帮助信息。

man ifconfig

【返回】


1.切换目录到

cd /etc/sysconfig/network-scripts/

2.显示 所有文件名(包括隐藏文件)

ls -a

3.显示所有文件详细信息(包括隐藏文件)

ll -a

4.显示当前目录

pwd

5.alias显示当前系统中的别名

alias

6.使用alias给 echo " hello linux" 取别名为 linux

alias linux=' echo "hello linux" '

7.使用cat查看/etc/sysconfig/network-scripts下的文档ifcfg-ens33


# Practice Of Vim

萌狼蓝天@20软件302班

哔哩哔哩:萌狼蓝天

博客:https://mllt.cc

用vim打开文件/var/log/messages

vim /var/log/messages

显示行号

:set nu

复制第一行到第六行的信息,并粘贴保存退出

gg
6yy

p

复制从第10行开始的三行信息,粘贴,然后撤销粘贴

10G
3yy
p
u

从上到下查找字符串user

gg
/user

配置网络配置文件ifcfg-ens33,使xshell能够正常连接linux终端

另存为messages.bak

:w messages.bak

:q

用vim打开 /var/log/messages.bak ,并设定行号

vim /var/log/messages.bak
:set nu

移动到60行行首,第九行行尾

60G
0
9G
$

移动到首行行首,向下查找“/boot”这个字符串

gg
0
/\/boot

移动到末行行尾,向上查找“io”这个单词

G
$
?\<io\>

删除11-30行之间的20行

11G
20dd

:150,200s/PXM/pxm/gc

显示行号

:set nu

将文件51~60行这10行内容复制,并粘贴到最后一行之后

51G
10yy
G
$
p

将文件第81~100行这20行内容剪切,并且粘贴到最后一行之后

81G
20dd
G
$
p

撤销上一步操作

ctrl + r


 cd /dev
ls sda*

ls sda?

ls sda[0-9]

ls sda[135]

ls v{cs,csa,xyz}6

echo d{a,e,i,o,u}g

echo d{a,b,c,d}g

echo {cat,dog}


# 目录切换

@哔哩哔哩 萌狼蓝天

cd /etc/sysconfig/network-scripts
cd .. (切换到上层目录)
cd ../.. (切换到上层目录的上层目录)
cd /home
cd -
cd ~xrilang

su
cd ~
mkdir dir{1,2}
mkdir -p dir1/dir3
mkdir -p dir2/dir{4,5}

cd /tmp
mkdir -p prj/{res,doc,src}
mkdir -p prj/res/misc

mkdir -p prj/{res/misc,doc,src}

mkdir -p prj/res/misc prj/{doc,src}


列出当前目录下文件

ls

列出 / 目录下文件

ls /

使用ls查看 /root下所有的文件并输出这些文件的属性信息

su
cd ~
ls -al

查看 /etc 目录的权限和属性信息

ls -l /etc

查看 /etc/sysconfig 目录下的子目录

ls -R /etc/sysconfig

在当前目录下使用touch命令创建文件file1

touch file1

在当前目录下创建一个名字为file[a-c]的空文件

touch file[a-c]

在当前目录下创建一个名字为filea、fileb、filec三个空文件

touch file{a,b,c}

在/tmp/prj/src目录下创建first.txt、second.txt、file1.txt,file2.txt、file3.txt

touch  /tmp/prj/src/{first,second,file{1,2,3}}.txt


# 复制文件

1.在当前目录下创建文件file01,然后复制到 /root 下。复制后的文件名为file01.bak

touch file01
cp file01 /root/file01.bak

2.在当前目录创建目录dir1,然后将/var目录下文件复制到dir1中

mkdir dir1
cp -r /var dir1

3.在当前目录下创建文件file02,然后复制备份到当前目录下,文件名为file02.bak

touch file02
cp file02 file02.bak

4.在当前目录下创建文件file03,并在/var下创建同名文件file03,将/var/file03复制到当前目录,并询问是否覆盖

touch file03
touch /var/file03
cp -i /var/file03 file03

根据错误提示,在 /var 下创建文件需要管理员权限

5.删除当前目录下file01

rm -rf file01


在当前目录下创建文件file1

创建目录dir1

将文件file1移动到dir1下

使用ls命令查看

touch file1
mkdir dir1
mv file1 dir1
ls

使用mv命令

将file1重命名为file.bak

在当前目录创建dir2,并将dir1/file.bak移动到dir2中,并重命名为file1


# Linux创建压缩包与解压

1.使用tar命令将/ect目录下所有文件夹和/var/log/message 文件夹打包到当前目录下,打包后命名为 mytar.tar

tar -cvf mytar.tar /etc /var/log/message

2.使用tar命令将/ect目录下所有文件夹和/var/log/message 文件夹打包到当前目录下,打包后命名为mytar.tar.gz

tar -zcvf mytar.tar.gz /etc /var/log/message

3.查看mytar.tar和mytar.tar.gz两个文件的详细信息进行对比

ls -ll mytar*

老师的方法

ls -l mytar.tar mytar.tar.gz

将mytar.tar.gz文件解压到当前目录

tar -zxvf mytar.tar.gz -P

将mytar.tar.gz文件解压到指定目录: /root/dir1中

tar -zxvf mytar.tar.gz -C /root/dir1

列出归档中的内容

tar -tf 文件名

将mytar.tar.gz 重命名为mytar1.tar

mv mytar.tar.gz mytar1.tar

mv mytar.tar.gz mytar1.tar

gzip mytar.tar

ll  mytar.tar.gz mytar1.tar

gzip -d mytar.tar.gz

1.在根目录下建立project_z目录,在此目录下分别建立src,res,doc和log子目录,在res下再建立image,sound和animation子目录

mkdir -p  project_z/{src,res/{image,sound,animation},doc,log}

2.将/tmp/prj/res目录中的音乐文件(扩展名为mp3)、图片文件(扩展名为jpg)、视频文件(扩展名为mov)分别复制到image、sound和animation目录中,并将/tmp/prj/res目录中的misc子目录复制到/project_z/res目录下。

tree /tmp/prj

cp /tmp/prj/res/我和我的祖国.mp3 /project_z/res/sound/我和.的祖国.mp3
cp /tmp/prj/res/风景.jpg /project_z/res/image/风景.jpg
cp /tmp/prj/res/视频.mod /project_z/res/animation/视频.mod
cp -r /tmp/prj/res/misc/ /project_z/res/misc

3.将/tmp/prj/doc目录下所有的文件打包压缩为一个以当前日期为名的备份文件,并复制到/ project_z/doc目录下

 tar -zcvf 20211018.tar.gz doc
cp 20211018.tar.gz /project_z/doc/20211018.tar.gz

4.删除/tmp/prj目录

rm -rf /tmp/prj

5.使用root身份,在/root/rj30X(X表示自己所在的班级号比如软件301,rj301)下

创建目录test4

6.将/etc/fstab复制到/root/rj30X/test4下

7.将/root/rj30X/test4/ fstab改名为 newfs


Practice01

1.查看/dev目录的权限

2.

  • 使用xrilang用户在当前目录下创建一个目录dir1
  • 并在dir1下创建一个文件book.txt
  • 使dir1以及子目录下的文件的拥有者是root,所属组也是root用户
cd ~
ls -ld /dev
mkdir dir1
touch dir1/book.txt
chown -R root:root dir1


作业3

使用普通用户创建文件checking,让所属用户有全部权限,同组用户可读,其他人没有权限使用数字和字母两种方式操作

cd ~
touch checking
chmod 740 checking

cd ~
touch checking2

chmod u="rwx",g="r",o-r checking2

作业4

在根目录下创建project目录,在此目录下创建src,res,doc和log子目录,在res目录下建立image,sound和animation子目录,并且要求普通用户对这些文件拥有全部权限,同组用户具有读和执行的权限,其他用户没有权限

cd /
mkdir -p project/{src,res/{image,sound,animation},doc,log}
chmod -R 750 project

忘记了退出root用户,现在把所属和用户组改为普通用户xrilang

chown -R xrilang:xrilang project


# 4. 修改用户zwjy的扩展组,使其扩展组为wheel用户组
usermod -G wheel zwjy
# 4.1 使用id查看相关信息
id zwjy
# 5. 修改用户zwjy的家目录,使其家目录为/home/zwjy,同时修改用户UID为1025
usermod -d /home/zwjy -u 1025 zwjy
# 6. 修改用户zwjy的密码,密码是202006070225
passwd zwjy
# 7. 锁定用户zwjy的密码,并查看密码的锁定状态和使用的算法
# 方法1:usermod -L zwjy
passwd -l zwjy
passwd -S zwjy
# 8. 解锁用户zwjy的密码,并查看密码的锁定状态和使用的算法
# 方法1:usermod -U zjwy
passwd -u zwjy
passwd -S zwjy
# 9. 清空用户zwjy的密码
passwd -d zwjy
#10. 删除用户zwjy1
userdel zwjy1

4-6题

7-9题


useradd zwjy1

删除用户zwjy1,同时删除该用户的家目录

userdel -r zwjy1

创建用户组group_y(y表示自己的班级号),group_yy,并创建用户zwjyy,指定该用户的初识组为group_yy,删除组group_y,group_yy

# 创建组
groupadd group_y
groupadd group_yy
# 创建用户
useradd zwjyy -g group_yy
# 查询用户信息
id zwjyy
# 删除组
groupdel group_y
# 注意:删除组之前要清理掉组内用户
userdel -r zwjyy
groupdel group_yy

创建一个系统用户组sys_group_302

groupadd -r sys_group_30

zwjy ALL=(root) NOPASSWD: /usr/bin/cat
# 查询 passwd 命令路径
whereis passwd
# 结果如下
# /usr/bin/passwd
# 使用visudo修改配置文件
visudo
#-----以下内容写在配置文件当中---------- #---------配置结束,保存退出------------

通过标准输出重定向将ifconfig命令原本要输出到屏幕的信息写入文件readme.txt中,然后显示readme.txt中的内容

ifconfig > readme.txt
cat readme.txt

通过覆盖写入文件向readme.txt写入一行数据(该文件中包含上一个实验的ifconfig命令信息),然后通过追写向文件再写入一次数据

ifconfig > readme.txt
whoami >> readme.txt

查看当前目录中某个文件的信息,这里以readme.txt为例。

ll readme.txt > p1.log

查看一个不存在的文件xxx.txt,将命令的报错信息写入到文件stderr.txt中

ll xxx.txt 2> stderr.txt

查看一个readme.txt和不存在的xxx.txt,将标准输出和错误输出追加到文件readme.txt中

ll readme.txt xxx.txt &>> readme.txt


使用输入重定向统计系统中有多少用户

wc -l < /etc/passwd

cat /etc/passwd | wc -l

使用more命令查看/root/anaconda.cfg文件,实现翻页效果

more /root/ananconda

使用head查看/root/anaconda.cfg前10行的内容

head -10 /root/anaconda

使用tail查看/etc/passwd文件后五行的内容

tail -5 /etc/passwd

使用tr将/var/log/messages中的大写字母替换为小写字母(先用cat查看)

cat /var/log/messages

使用wc统计有多少个用户

wc -l /etc/passwd

使用cut提取/etc/passwd中的第一列,第四列,第七列

cut -f1,4,7 -d: /etc/passwd

使用cut提取/etc/passwd中的第2列,第3列,第4列

cut -f2,3,4 -d: /etc/passwd
cut -f 2-4 -d : /etc/passwd

sort /etc/group | sort
# 去除文本中的连续行
sort uuid.txt | uniq
# 去除文本中的全局重复行,显示重复次数
sort uuid.txt | uniq -c

【Linux】课堂练习作业的更多相关文章

  1. 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)

    2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...

  2. 耿丹CS16-2班课堂测试作业汇总

    Deadline: 2016-11-01 11:59 作业内容 课堂测试作业总结 00.题目得5分,多半扣在格式上,有些同学代码写得很过分,已经很仁慈对待,同学们珍惜之: 01.界面设计得分不好,换行 ...

  3. [原创] linux课堂-学习笔记-目录及概况

    本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分 ...

  4. 《Linux编程大作业》

    一.要求 作业题目 Linux下的多进程/线程网络通信 作业目标 要求学生熟练掌握<Linux编程>课程中的知识点,包括Linux常用命令.bash脚本.编译和调试环境.读写文件.进程间通 ...

  5. Linux内核实验作业四

    实验作业:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 20135313吴子怡.北京电子科技学院 [第一部分]使用库函数API来获取用户标识号.库函数为getuid() 代码如下: ...

  6. Linux内核实验作业六

    实验作业:分析Linux内核创建一个新进程的过程 20135313吴子怡.北京电子科技学院 [第一部分]阅读理解task_struct数据结构 1.进程是计算机中已运行程序的实体.在面向线程设计的系统 ...

  7. Linux内核实验作业七

    实验作业:Linux内核如何装载和启动一个可执行程序 20135313吴子怡.北京电子科技学院 [第一部分]理解编译链接的过程和ELF可执行文件格式 1.编译链接的过程 2.ELF可执行文件格式 一个 ...

  8. Linux课堂笔记(一)

    一.Linux应用领域及版本介绍. 1.服务器.嵌入式.桌面应用等. (1)在服务器领域中,需要安全和稳定,特别是越老的内核版本越安全.越稳定. (2)Linux主要分内核版和发行版. 内核版本2.6 ...

  9. linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程

    1. 实验目的 选择一个系统调用(13号系统调用time除外),系统调用列表,使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 分析汇编代码调用系统调用的工作过程,特别是参数的传递的方 ...

  10. Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序

            1.可执行文件的格式 在 Linux 平台下主要有以下三种可执行文件格式: 1.a.out(assembler and link editor output 汇编器和链接编辑器的输出) ...

随机推荐

  1. CentOS 7 下通过 Cython 编写 python 扩展

    1. 安装 python 和 python-devel(没有后者,install 的时候会报错 "Scanners.c:21:20: fatal error: Python.h: No su ...

  2. softirq和hardirq中断亲和度

    /proc/interrupts 和 /proc/softirqs 两者是相互关联的,但它们各自记录的信息和作用有所不同,反映了硬中断和软中断的两个处理阶段. 两者的关系: 硬中断引发软中断: 硬中断 ...

  3. 嘟嘟牛在线登陆加密分析-RPC调用

    加密参数 JADX反编译后搜索代码 user/login 基本可以确定就是从这里发起网络请求 跟进 addRequestMap 方法分析 这一看逻辑就清晰了 先添加一个时间戳,在对sign进行加密后在 ...

  4. 9.23 csp

    今天模拟赛出了四道zroi的题,挺GG的. T1.奇观 因为删除的边比较少,所以从m入手,f[i][j]表示长度为i,终点为j的链的方案数. C 是长度为3的链,F是 1条 长度为3 的链 和 2条 ...

  5. 学习JavaScript第一天

    文章目录 1.JavaScript简介 2.JavaScript编写的位置 2.1.内部JavaScript 2.2外部JavaScript 2.3内联JavaScript 3.JavaScript注 ...

  6. react+eslint+prettier 项目配置

    项目地址 https://gitee.com/zhudachangs/react-eslint-prettierrc-demo 项目地址gitee 项目配置eslint(验证) + prettierr ...

  7. GitHub创建新仓库

    第一步.右上角点击[+],选择[New repository] 第二步.设置一下仓库的基本信息 在如下图的红框位置,输入仓库的名称.描述以及是否公开. 第三步.滑到最下面,点击[Create repo ...

  8. 第二篇:低功耗模组Air724UG硬件设计手册

    ​  接着上篇,继续分享. 3.5 串口 模块提供了五个通用异步收发器:主串口 UART1.校准串口 UART2.通用串口 UART3.调试串口 HOST UART 和 ZSP UART. 3.5.1 ...

  9. ARC151D Binary Representations and Queries

    ARC151D Binary Representations and Queries 题目链接:ARC151D Binary Representations and Queries 非常好思维题. 思 ...

  10. 我和JVM初次约会

    前言:该篇是参考结合<高手深度解析:JVM是什么>,自己剔除添加了一些内容整理的而来,这里感谢<高手深度解析:JVM是什么>的文章的指点讲解. JVM的生命周期 "J ...