下载ISO:https://distrowatch.com/
步骤:搜索“CentOS”-“镜像下载站点”-“北京外国语大学”-“mirror”-
选择版本-“isos”-“x86_64”-选择对应的.iso文件并下载
(1)xshell
(2)secureCRT ====建议使用
(3)xftp
步骤:虚拟机-快照-拍摄快照-拍摄快照
注意:开机、关机或系统启动过程中,均可以拍摄快照。
拍摄快照:实际上是创建系统还原点,方便跳转到之前的存档。
步骤:虚拟机-管理-克隆
注意:只能在linux系统处于关机状态下,才能克隆系统。建议进行完整的克隆。
注意:所有命令都区分大小写
(1)cdcd : change directory,改变目录,切换目录
注意:cd后面不跟参数,默认直接返回到当前用户的家目录(home目录,用~表示的)。
root用户的家目录是/root,其他用户的家目录均为/home/用户名
举例:
[root@zhangsan usr]# cd ~
[root@zhangsan ~]#
注意:cd后面不跟参数,与跟~,功能都是直接跳转到当前用户的家目录
[root@zhangsan usr]# cd
[root@zhangsan ~]#
who:用于查看登录过系统的用户信息
(3)ww:用于查看登录过系统的用户信息,显示的用户登录信息更详细
(4)whoamiwhoami:只显示当前 *** 作用户
(5)hostnamehostname:用于显示计算机名
补充:修改计算机名命令格式为[root@lisi ~]# hostnamectl set-hostname zhangsan101
dmsg:用于显示开机启动的过程信息
例如:分页显示系统启动过程中屏幕上的信息
命令:dmesg | more
clear:清除屏幕,功能等价于 ctrl+l
(8)datedate:用于查看当前系统日期
命令格式:date +%F 按年-月-日输出日期,类似的还有date+%c、date+%D
cal:显示日历
命令格式:cal,等价于cal -1,类似用法还有cal -y , cal -n 5
history : 用于查看历史命令,即被执行过的命令。
命令格式:
[root@zhangsan101 ~]# history | more
1 init 0
2 init --help
3 systemctl get-default
4 init 3
5 exit
6 ip a
7 nmtui
8 exit
9 useradd yewenqian
10 ls /home
11 su - yewenqian
12 whoami
13 hostname
[root@zhangsan101 ~]# !12
tab:用于对当前命令自动补全
练习:cat /etc/sysconfig/network-scripts/ifcfg-ens33
alias:给命令组合取别名
举例:给删除命令取别名
命令格式:alias shanchu=‘rm -rf’
[root@zhangsan101 ~]# alias shanchu=‘rm -rf’
[root@zhangsan101 ~]# shanchu .2 * * * * echo "19wanggong666”
30 2 * * 3,6 yum update
30 2 * * 3,6 shutdown -r+30
0 13 * * * tar -zcf /opt/bak/myetc.tar.gz /etc &> /dev/null
0 13 * * * echo “backup complete!”
输入完成后,保存并退出。
然后,克隆会话,在新窗口中执行命令:
tail -f /var/log/cron
观察日志信息,检查作业运行情况。
1、创建用户zhang1,uid为1200,gid为1200,其他设置默认
命令:
groupadd -g 1200 wanggong
useradd zhang1 -u 1200 -g 1200
检查用户信息:id zhang1
2、创建用户zhang2,所有设置默认
命令:useradd zhang2
检查用户信息:id zhang2
3、创建用户zhang3,该用户禁止用于登录系统,其他设置默认
命令:useradd zhang3 -s /sbin/nologin
检查用户信息:id zhang3
4、给用户zhang1、zhang2、zhang3设置密码,密码均为123
命令:
方法1:echo “123” | passwd --stdin zhang1
echo “123” | passwd --stdin zhang2
echo “123” | passwd --stdin zhang3
方法2:passwd zhang1
passwd zhang2
passwd zhang3
5、锁定用户zhang1
命令:passwd -l zhang1
测试:su - zhang2,然后在zhang2的命令行中su - zhang1,输入密码后报“鉴定故障”,则表示正常。
6、解锁用户zhang1
命令: passwd -u zhang1
测试:su - zhang2,然后在zhang2的命令行中su - zhang1,输入密码后能切换到zhang1,则表示正常。
7、修改用户zhang2,使其主目录变更为/opt/aa目录
命令:mkdir /opt/aa
usermod zhang2 -d /opt/aa
检查用户信息:id zhang2
8、删除用户zhang3
命令:userdel -r zhang3
1、创建一个组,组名为jiying,组ID为3000
命令:groupadd jiying -g 3000
2、将zhang1、zhang2加入jiying组
命令:
方法1:gpasswd -a zhang1 jiying
gpasswd -a zhang2 jiying
方法2:usermod zhang1 -G jiying
usermod zhang2 -G jiying
检查加组是否成功:
方法1:id zhang1 #查看是否隶属附加组jiying
id zhang2
方法2:grep jiying /etc/group #查看jiying组后面是否带zhang1、zhang2这两个用户
3、将用户zhang1从jiying组删除
命令:gpasswd -d zhang1 jiying
4、将jiying组改名为2020jiying
命令:groupmod -n 2020jiying jiying
5、将2020jiying组删除
命令:groupdel 2020jiying
1、在/root/目录下,创建文件a1.txt,c1.txt和目录aa,bb,cc。
命令:cd
rm -rf ./*
touch a1.txt c1.txt
mkdir aa bb cc
2、修改文件a1.txt的权限为所有用户对其都有写权限。
命令:
方法一:
ll a1.txt #查看文件a1.txt当前所具备的权限
chmod a+w a1.txt
ll a1.txt #检查权限是否修改成功
方法二:
ll c1.txt #查看文件c1.txt当前所具备的权限
chmod g+w,o+w a1.txt
ll a1.txt #检查权限是否修改成功
3、修改目录aa的权限,使得拥有者和组均具备可读、可写权限,其他用户具备只读权限。
命令:chmod u-x,g+w,g-x,o-x aa
ll aa -d
4 、修改文件a1.txt的权限,使得拥有者具备可读、可写、可执行权限;组用户具备可写、可执行权限、其他用户不具备权限。
命令:chmod u=rwx,g=wx,o= a1.txt
ll a1.txt
5、修改目录aa的权限,使得拥有者具备可读、可写权限,组具备可读权限,其他用户具备可执行权限。
命令:chmod u=rw,g=r,o=x aa
ll -d aa
1、将文件a1.txt权限改为643。
命令:chmod 643 a1.txt
ll a1.txt
2、将目录aa的权限改为762。
命令:chmod 762 aa
ll -d aa
3、在aa目录下创建子目录ff和文件f1.txt,将aa目录及其子目录和文件的权限均改为762。
命令:chmod -R 762 aa
ll -d aa
ll aa
任务5:思考修改umask后,文件和目录的具体权限值。
1、查看当前默认的umask值,并创建文件s1.txt和目录ss
命令:umask
touch s1.txt
mkdir ss
ll ss -d
ll s1.txt
请问:目录ss和文件s1.txt的权限数值分别是多少?请说明理由?
2、将umask值改为023,创建目录p1和文件p11.txt,再计算并查看目录和文件的权限值。
命令:umask 023
mkdir p1
touch p11.txt
ll p1 -d
ll p11.txt
请问:目录p1和文件p11.txt的权限数值分别是多少?请说明理由?
答案:目录p1的权限值为 777-023=754
文件p11.txt的权限值为 666-023+1=644
3、将umask值改为035,创建目录p2和文件p22.txt,再计算并查看目录和文件的权限值。
命令:umask 035
mkdir p2
touch p22.txt
ll p2 -d
ll p22.txt
请问:目录p2和文件p22.txt的权限数值分别是多少?请说明理由?
答案:目录p2的权限值为 777-035=742
文件p22.txt的权限值为 666-035+1=642
4、将umask值改为042,创建目录p3和文件p33.txt,再计算并查看目录和文件的权限值。
命令:umask 042
mkdir p3
touch p33.txt
ll p3 -d
ll p33.txt
请问:目录p3和文件p33.txt的权限数值分别是多少?请说明理由?
答案:目录p3的权限值为 777-042=735
文件p33.txt的权限值为 666-042=624
1、创建文件t1.txt、t2.txt、t3.txt,并将t1.txt设置拥有者为zhang1,t2.txt组为zhang2,将t3文件的拥有者为zhang1、组为zhang2。
命令:chown zhang1 t1.txt
chown :zhang2 t2.txt
chown zhang1:zhang2 t3.txt 或chown zhang1.zhang2 t3.txt
2、创建目录f1/f2/f3,并将f1及其子目录拥有者设置为zhang1,组设置为zhang2。
命令:mkdir -p f1/f2/f3
chown -R zhang1:zhang2 f1 #zhang1和zhang2之间的冒号也可用.代替。
任务1、su命令的使用
1、在root用户的命令行下,创建用户laozhang,并设置密码为123
命令:useradd laozhang
echo “123” | passwd --stdin laozhang
2、从root用户切换到laozhang用户的命令行,不改变工作目录,并创建文件和目录。
命令:su laozhang
touch a1.txt #会报错,正常,因为当前处于root用户的工作目录,不是laozhang的工作目录
mkdir aa #会报错,理由同上。
exit #返回到root用户的命令行
3、从root用户切换到laozhang用户的命令行,改变到对应用户的工作目录,并创建文件和目录。
命令:su - laozhang
touch a1.txt #不会报错,因为当前已经处于laozhang自己的工作目录
mkdir aa #不会报错,理由同上。
1、创建名称为jiying的组,组成员有zhang1、zhang2,另外再创建用户zhang3、zhang4,所有用户的密码均为123。
命令:groupadd jiying
useradd zhang1 -G jiying
useradd zhang2 -G jiying
useradd zhang3
useradd zhang4
echo “123” | passwd --stdin zhang1/2/3/4
2、zhang3需要通过密码执行sudo权限;zhang4免密码执行sudo权限;jiying组里面的所有用户均支持免密码执行sudo权限。
命令:visudo
#在第100行下面,增加以下行:
zhang3 ALL=(ALL) ALL
zhang4 ALL=(ALL) NOPASSWD: ALL
%jiying ALL=(ALL) NOPASSWD: ALL
#保存并退出
3、检查从 root用户依次切换到zhang1/2/3/4用户,然后在对应用户的命令行创建新用户,检查执行sudo命令是否需要密码。
命令:su - zhang1或zhang2
sudo useradd lisi1 #不需要密码,则正确
su - zhang3
sudo userdel lisi1 #需要输入密码,则正确
su - zhang4
sudo useradd lisi2 #不需要密码,则正确
1、创建用户zhangsan、lisi、wangwu这3个用户,然后,将touch命令文件的拥有者改成wangwu,并设置suid,实现凡是使用touch命令创建的文件,拥有者均为wangwu。
命令:useradd zhangsan
useradd lisi
useradd wangwu
echo “123” | passwd --stdin zhangsan | lisi | wangwu
which touch
ll /usr/bin/touch
chown wangwu $_
chmod 4755 $_
ll $_
mkdir /opt/cc
chmod 777 /opt/cc
su - zhangsan
cd /opt/cc
touch a1.txt a2.txt
ll a1.txt a2.txt
#上述实验结果:a1.txt和a2.txt文件的拥有者是wangwu,所属的组是zhangsan
命令:su - root
chmod 755 /usr/bin/touch 或chmod u-s /usr/bin/touch
chown root $_
ll $_
任务4 sgid应用
1、设置mkdir命令文件的sgid,实现凡是使用mkdir命令创建的文件,所属组均为wangwu。
命令:
which mkdir
ll /usr/bin/mkdir
chown :wangwu $_
chmod 2755 $_
ll $_
su - zhangsan
mkdir aa bb cc
ll
#上述实验结果:aa、bb、cc目录的拥有者是zhangsan,所属的组是wangwu
2、去除mkdir命令文件的sgid,并恢复mkdir命令文件的所属组为root
命令:su - root
chmod 755 /usr/bin/mkdir 或chmod u-s /usr/bin/mkdir
chown :root $_
ll $_
3、创建/opt/jiying目录,使得任何用户在该目录下创建的文件,所属的组自动隶属于root组。
命令:su - root
cd /opt
mkdir jiying
chmod 2777 jiying
ll -d jiying
su - zhangsan
cd /opt/jiying
touch a1.txt a2.txt
mkdir aa bb cc
ll
#上述实验结果:jiying目录下面的文件和子目录拥有者是zhangsan,所属的组是root
1、在/opt目录下创建abc目录,并设置权限为777,实现任何用户在该目录下所创建的文件或目录,均只有拥有者才能删除。
命令:su - root
cd /opt
mkdir abc
chmod 1777 abc
su - zhangsan
cd /opt/abc
touch t1.txt t2.txt
mkdir tt1 tt2
chmod o+w t*
su - lisi
cd /opt/abc
rm -rf t1.txt tt1 #删除会报错,说明粘滞位在起作用
su - zhangsan cd /opt/abc rm -rf t1.txt tt1 #可以删除,说明粘滞位配置成功任务6 suid和sgid综合应用
1、设置touch命令文件的suid和sgid,实现凡是使用touch命令在/opt/abc下创建的文件,拥有者属于lisi,所属组为wangwu。
命令:
su - root
which touch
ll /usr/bin/touch
chown lisi:wangwu $_
chmod 6755 $_
ll $_
su - zhangsan
cd /opt/abc
touch a1.txt a2.txt
ll a1.txt a2.txt
#上述实验结果:a1.txt、a2.txt文件的拥有者是lisi,所属的组是wangwu
2、去除touch命令文件的suid和sgid,并恢复touch命令文件的拥有者和组均为root
命令:su - root
chmod 755 /usr/bin/touch 或chmod u-s /usr/bin/touch
chown root.root $_
ll $_
1、安装iptables-services服务,然后启动iptables-services服务,并设置开机自动启动。
命令:yum -y install iptables-services
systemctl enable iptables --now
systemctl status iptables #查看iptables服务的状态
2、关闭firewalld防火墙,并永久禁用firewalld服务。
命令:systemctl disable firewalld --now
systemctl status firewalld #查看firewalld服务的状态
3、禁止所有主机ping虚拟机,允许所有主机访问虚拟机的httpd服务,禁止所有主机访问虚拟机的ftp访问,禁止所有主机访问虚拟机的8000~9000端口。
命令:iptables -I INPUT -p icmp -j REJECT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j REJECT
iptables -A INPUT -p tcp --dport 8000:9000 -j REJECT
iptables -A INPUT -p udp --dport 8000:9000 -j REJECT
iptables -L
4、保存iptables防火墙配置
命令:service iptables save
1、启动firewalld防火墙服务,并设置开机自启动。
命令:systemctl enable firewalld --now
systemctl status firewalld #查看防火墙的运行状态
2、安装httpd服务(即web服务),并在默认的网站根目录(/var/www/html)下创建网站首页。
命令:yum -y install httpd
cd /var/www/html
echo “19wanggong666” > index.html
systemctl enable httpd --now
systemctl status httpd
3、通过真机的浏览器访问虚拟机的web服务。
步骤:在真机上打开浏览器,在地址栏输入虚拟机的IP地址,如:192.168.1.101,按回车键,应该不能正常显示网页。
原因:因为我们在虚拟机上开启了firewalld防火墙,firewalld防火墙默认对http协议作了过滤,导致真机无法通过http访问虚拟机的web服务。
4、配置firewalld防火墙,放行http流量。
命令:firewall-cmd --get-default-zone #结果为public则正常
firewall-cmd --zone=public --list-services #查看public区域支持的协议或服务是哪些
firewall-cmd --permanent --zone=public --add-service=http #永久添加http服务,即放行http流量
firewall-cmd --reload #重新加载配置,使配置生效
firewall-cmd --zone=public --list-services #再次查看public区域支持的服务或协议有哪些,确认http协议是否添加成功。
5、再次执行第3步,真机能通过http访问虚拟机的web服务,则正常。
1、由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符, 并输出相应的提示信息。
代码:
#!/bin/bash
read -p “press some key ,then press return :” KEY
case $KEY in
[a-z]|[A-Z])
echo “It’s a letter.”
;;
[0-9])
echo “It’s a digit.”
;;
*)
echo “It’s function keys、Spacebar or other ksys.”
esac
2、判断在执行程序时所输入的参数,符合相应条件,输出相对应的信息
#!/bin/bash
case $1 in
start | begin)
echo “start something”
;;
stop | end)
echo “stop something”
;;
*)
echo “Ignorant”
;;
esac
3、判断当前系统属于哪种 *** 作系统,并执行相应分支的输出语句
#!/bin/bash
SYSTEM=uname -s
case $SYSTEM in
Linux)
echo “My system is Linux”
echo “Do Linux stuff here…”
;;
FreeBSD)
echo “My system is FreeBSD”
echo “Do FreeBSD stuff here…”
;;
*)
echo “Unknown system : $SYSTEM”
echo “I don’t what to do…”
;;
esac
任务2:使用if语句编写shell脚本
1、使用if判断语句添加用户
NAME=user1
if id KaTeX parse error: Expected 'EOF', got '&' at position 6: NAME &̲> /dev/null ; t…NAME is exist."
else
useradd
N
A
M
E
e
c
h
o
"
NAME echo "
NAMEecho"NAME" | passwd --stdin KaTeX parse error: Expected 'EOF', got '&' at position 6: NAME &̲> /dev/null …NAME is add sucessful"
fi
2、如果用户已存在,显示已存在,则删除此用户并删除此用户的家目录,并提示删除成功;如果不存在,提示用户不存在。
#!/bin/bash
NAME=user1
if ! id $NAME &> /dev/null ; then
echo “The $NAME is not exist.”
else
userdel -r $NAME &> /dev/null
echo “The $NAME is del successful.”
fi
3、给定一个用户,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户;
#!/bin/bash
read -p “please input username:” NAME
NAMEID=‘id -u $NAME’
if [ $NAMEID -eq 0 ]; then
echo “The $NAME is root.”
else
echo “The KaTeX parse error: Expected 'EOF', got '#' at position 75: …81-100分显示nice。 #̲!/bin/bash read…score” -ge 0 -a “
s
c
o
r
e
"
−
l
e
60
]
;
t
h
e
n
e
c
h
o
"
f
a
i
l
"
e
l
i
f
[
“
score" -le 60 ];then echo "fail" elif [“
score"−le60];thenecho"fail"elif[“score” -gt 60 -a "
s
c
o
r
e
"
−
l
e
80
]
;
t
h
e
n
e
c
h
o
"
G
O
O
D
!
"
e
l
i
f
[
“
score" -le 80 ];then echo "GOOD! " elif [“
score"−le80];thenecho"GOOD!"elif[“score”-gt 8e -a “$score” -le 100 ];then
echo"Nice”
else
echo “wrong score”
fi
if [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "90" &̲& "x” -le “100” ]];then
echo “Congratulation,Your grade is A.”
elif [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "80" &̲& "x” -le “89” ]];then
echo “Good,Your grade is B.”
elif [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "70" &̲& "x” -le “79” ]];then
echo “Ok.Your grade is C.”
elif [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "60" &̲& "x” -le “69” ]];then
echo “Yeah,Your grade is D.”
elif [[ “$x” -lt “60” ]];then
echo “Right,Your grade is F.”
else
echo “Unknow argument…”
fi
#!/bin/bash
read -p “pls input x=” x
if ((x>=1)) ;then
let y=2*KaTeX parse error: Expected 'EOF', got '&' at position 17: …+1 elif ((x>=0 &̲& x<1));then y=…y"
考题
知识点:
1、软链接和硬链接的区别?
2、SWAP的作用?创建交换分区的过程
3、ls -l ,以长格式显示的属性内容?
4、head -1 /etc/passwd | /etc/shadow | /etc/group 各个字段的含义
5、raid的种类,以及raid和lvm的区别
6、破解 root密码
7、c语言、java源程序的编译过程
8、systemctl status firewalld、systemctl enable firewalld --now、systemctl start firewalld、systemctl enable firewalld等命令的含义。
9、当前主机为192.168.1.1,要禁止当前主机被192.168.1.2 ssh,请给出相关命令。
iptables -A INPUT -p tcp -s 192.168.1.2/32 -d 192.168.1.1/32 --dport 22 -j REJECT
10、使防火墙放行ftp服务,并设置永久生效。
firewall-cmd --zone=public --permanent --add-port=20-21/tcp
firewall-cmd --reload
firewall-cmd --list-ports
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)