【Linux】课堂练习作业

# 作业Day01-关机练习作业

查询在线用户

who -H

image-20210913092430190

查询服务状态

systemctl status sshd

image-20210913091747502

停止服务

systemctl stop sshd

image-20210913091801017

停止后再次检查服务状态

image-20210913091824626

方法一

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

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

image-20210913091949945

使用关机

shutdown -h +30

image-20210913092007235

方法二

关机,并通知

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

image-20210913092100312


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/

image-20210915162244864

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

ls -a

image-20210915162435598

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

ll -a

image-20210915162615096

4.显示当前目录

pwd

image-20210915162713356

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

alias

image-20210915162911815

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

alias linux=' echo "hello linux" '

image-20210915163416999

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

image-20210915164531729


# Practice Of Vim

萌狼蓝天@20软件302班

哔哩哔哩:萌狼蓝天

博客:https://mllt.cc

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

vim /var/log/messages

显示行号

:set nu

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

gg
6yy

image-20210922164328544

p

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

10G
3yy
p
u

image-20210922164714499

从上到下查找字符串user

gg
/user

image-20210922164125804

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

image-20210922164950765

image-20210922165032437

另存为messages.bak

:w messages.bak

image-20210922165313958

:q

image-20210922165336368

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

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

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

60G
0
9G
$

image-20210922170556127

image-20210922170608253

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

gg
0
/\/boot

image-20210922171301913

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

G
$
?\<io\>

image-20210922171342494

删除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*

image-20210927092543256

ls sda?

image-20210927092555851

ls sda[0-9]

image-20210927092622650

ls sda[135]

image-20210927092643428

ls v{cs,csa,xyz}6

image-20210927092709037

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

image-20210927094415213

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

image-20210927094424765

echo {cat,dog}

image-20210927095021436


# 目录切换

@哔哩哔哩 萌狼蓝天

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}

image-20210929161259451

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

image-20210929161426822

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

image-20210929163514139

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

image-20210929163619568


列出当前目录下文件

ls

列出 / 目录下文件

ls /

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

su
cd ~
ls -al

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

ls -l /etc

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

ls -R /etc/sysconfig

image-20210929165915040

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

touch file1

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

touch file[a-c]

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

touch file{a,b,c}

image-20210929170240342

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

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

image-20210929170619176


# 复制文件

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

touch file01
cp file01 /root/file01.bak

image-20211011093822875

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

image-20211011093605909

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

5.删除当前目录下file01

rm -rf file01

image-20211011094006561


在当前目录下创建文件file1

创建目录dir1

将文件file1移动到dir1下

使用ls命令查看

touch file1
mkdir dir1
mv file1 dir1
ls

image-20211013161425107

使用mv命令

将file1重命名为file.bak

image-20211013161614378

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


# Linux创建压缩包与解压

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

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

image-20211013170952053

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

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

image-20211013171021492

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

image-20211018091507418

gzip mytar.tar

image-20211018091724404

ll  mytar.tar.gz mytar1.tar

image-20211018093331515

gzip -d mytar.tar.gz

image-20211018093455739

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

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

image-20211018093756067

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

tree /tmp/prj

image-20211018094745692

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

image-20211018100157680

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

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

image-20211018101306918

image-20211018101544817

4.删除/tmp/prj目录

rm -rf /tmp/prj

image-20211018101620371

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

创建目录test4

image-20211025235514816

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

image-20211025235619520

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

image-20211025235945928


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

image-20211020170705276


作业3

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

cd ~
touch checking
chmod 740 checking

image-20211025094914574

cd ~
touch checking2

image-20211025095206273

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

image-20211025095233240

作业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

image-20211025095843945

image-20211025095924528

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

chown -R xrilang:xrilang project

image-20211025100248795

image-20211025100409739


# 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题

image-20211101095436785

7-9题

image-20211101095554950


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 

image-20211103160558352

创建一个系统用户组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

image-20211108101314465

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

ifconfig > readme.txt
whoami >> readme.txt

image-20211108102329327

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

ll readme.txt > p1.log

image-20211108102420883

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

ll xxx.txt 2> stderr.txt

image-20211108101830118

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

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

image-20211108102455602


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

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

image-20211110172520007

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

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

image-20211110172537478

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

posted @ 2022-03-07 09:15  萌狼蓝天  阅读(155)  评论(0编辑  收藏  举报