【Linux】课堂练习作业
# 作业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班
哔哩哔哩:萌狼蓝天
用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