*Linux运维操作*
*一、实验目的及要求*
-
了解Liunx操作系统发展历史。
-
学习Liunx操作系统基本概念及操作。
-
学习Liunx操作系统用户及文件权限管理。
-
Linux 目录结构及文件基本操作。
*二、实验内容和步骤*
*1. Linux 使用小技巧*
(1)使用以下方法切换图形界面
切换到 GNOME 桌面环境,输入以下命令:sqlCopy codesudo systemctl start gdm
切换到 KDE Plasma 桌面环境,输入以下命令:sqlCopy codesudo systemctl start sddm
Ctrl+Alt+F1~F6 快捷键切换到命令行终端:在终端中输入“Ctrl + Alt + F1”,可以进入终端模式,进行命令行操作。
(2)Linux命令特点和使用技巧
(3)开关机命令
#shutdown –h now:立刻进行关机
#shutdown –r now:现在重新启动计算机
#reboot:现在重新启动计算机
#su -:切换用户;passwd:修改用户密码
#logout:用户注销
(4)常用快捷命令
tab : 补全
ctrl + l -:清屏,类似clear命令
ctrl + r -:查找历史命令(history)
ctrl+c : 终止
ctrl+k : 删除此处至末尾所有内容
ctrl+u : 删除此处至开始所有内容
*2**.* *Linux 的文件组织目录结构,相对路径和绝对路径,对文件的移动、复制、重命名、打包、压缩与解压缩等操作。*
1)切换用户当前工作目录
格式:cd <相对路径/绝对路径>
进入/boot目录
#cd /boot
进入/etc/selinux目录
#cd /etc/selinux
如果当前目录为/etc ,用相对路径进入selinux目录
#cd /etc
#pwd
#ls
#cd selinux
注意:相对路径可将当前目录路径省略,只写剩下部分路径。
几种特殊用法切换目录
cd … 由当前目录切换到上一级目录( …表示当前目录父目录)
cd ~ 进入当前用户家目录 ,等同于直接输入cd
1)root用户家目录 /root
2)普通用户user1家目录为/home/user1
cd - 由当前目录切换到上一次工作目录
2)查看目录信息类命令
(1)pwd: 查看用户的当前工作目录路径。
#pwd
(2)切换到root管理员用户,拥有管理权限
#su - root
(3)ls:显示当前目录或指定目录下包含的文件和子目录
显示指定目录下文件:
#ls /boot 只显示文件名
#ls -l /boot/ 参数-l表示显示文件的详细属性信息。
显示当前目录下的文件:
#ls
# ls -a 显示所有文件,包括隐藏文件(以. 或 …开头)
3)建立和删除目录和文件
注意此命令所带的参数
(1)mkdir创建目录
mkdir /home/aftvc/dr1/ 在aftvc目录下建立dr1子目录
mkdir dr1 在当前目录下建立子目录dr1
mkdir /dr2
mkdir -p /dr3/h1/ 同时建立子目录的父目录
mkdir /etc/ch/ /etc/jack/ 同时建立两个目录
(2) rm删除文件和目录的命令(rmdir只删除空目录)
rm /home/aftvc/ge.txt 删除时默认提示用户
rm -f /home/aftvc/ge.txt 强制删除
rm -r /home/aftvc/dr1 删除目录要加-r
rm -r /dr3
rm file1.txt file2.doc 同时删除两个文件
(3)文件创建命令
*vi/vim**命令*
*vi 1.txt # 会直接创建并打开一个文件1.txt*
只有输入:w保存时,文件才会真正的被创建,直接:q退出,文件不会被创建。
*t**ouch*****命令:****用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch 新建文件名
touch /home/chu/ge.txt 在指定目录下建立新文件ge.txt
touch ge.txt 在当前目录下建立新文件ge.txt
touch ge.txt 更新文件时间为当前系统时间(文件已经存在)
****cat命令:****显示一个文件的内容、组合多个文件的内容到一个输出以及创建一个新的文件。
cat > filename 只能创建新文件,不能编辑已有文件。>表示把屏幕输入内容写入到指定文件中
cat > file1 提示输入内容,按enter键完成输入,ctrl+c退出程序
cat file1 一次显示整个文件
cat > file2 再建立一个文件
cat file2
cat file1 file2 > file3 把两个文件合并到一个文件,覆盖文件
cat file1 file2 >> file3 把两个文件合并到一个文件,追加到文件后面
****使用重定向符(>)创建一个文件:>表示把屏幕输入内容写入到指定文件中。****标准重定向符允许我们创建一个0KB的空文件。它通常用于重定向一个命令的输出到一个新文件中。在没有命令的情况下使用重定向符时,它会创建一个文件。
4)复制文件或目录
格式:cp [选项] 源文件或目录 目标文件或目录。
复制文件:将/bin/touch复制到根目录下。
[root@localhost ~]# cp /bin/touch /
[root@localhost ~]# cp /bin/touch /mytouch 复制并重命名为mytouch
[root@localhost ~]# cp /bin/touch mytouch 复制到当前目录下
[root@localhost ~]# cp /bin/touch . . 表示当前目录,但不改名
[root@localhost ~]# ls . 查看复制是否成功
复制目录,要加参数-r
[root@localhost ~]# cp -r /bin /home
[root@localhost ~]# ls /home 查看复制是否成功
[root@localhost ~]# mkdir d1 在当前目录下建立子目录
[root@localhost ~]#cp –r d1 /home/chu 复制d1到指定目录
[root@localhost ~]# ls /home/chu
5)mv:移动文件或目录,或给文件和目录改名
格式:mv [参数] 源文件或目录 目标文件或目录
//移动文件
[root@localhost ~]# touch /root/a
[root@localhost ~]# mv /root/a /home/chu/ 移动文件到指定目录
[root@localhost ~]# ls /root/a a是否被移动
[root@localhost ~]# ls /home/chu/ chu下有没有a
//通过移动给文件改名
[root@localhost ~]# touch /home/chu/f1
[root@localhost ~]# mv /home/chu/f1 /home/chu/f2
[root@localhost ~]# ls /home/chu/ 查看是否改名成功
//在当前用户家目录下新建子目录
[root@localhost ~]# cd
[root@localhost ~]# mkdir test
//移动目录
[root@localhost ~]# mv test /home/chu/
//给目录改名
[root@localhost ~]# mv /home/chu/test /home/chu/t1
6)打包、压缩和解压缩打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
用gzip压缩和解压文件,生成的压缩文件gz结尾
# cd /home/chu/
#touch file1
#touch fle2
# gzip file1 //不保留源文件
# gzip -c file2 > file2.gz //保留源文件
# ls
# gzip -d file1.gz //解压
# gzip -d file2.gz
//gunzip等同于gzip -d
# gunzip file1.gz
用bzip2压缩和解压文件
# touch 1.txt
# touch 2.doc
# bzip2 1.txt //不保留源文件
# bzip2 -c 2.doc > 2.doc.bz2 //保留源文件
# bzip2 -d 1.txt.bz2 //解压
# bzip2 -d 2.doc.bz2
注意:gzip和bzip2只能对单个文件进行压缩,如果对文件夹进行压缩怎么实现呢?用tar把文件夹打包成一个文件,再压缩。
tar 命令本身不具有压缩功能,只具有打包功能
用tar将多个文件打包成一个总文件后再压缩,常用参数
-c 表示打包 -x 表示解包
-j 表示打包后使用bzip2压缩打包文件
-z 表示打包后使用gzip压缩打包文件
-f 指定打包文件名,必须放在所有参数后面
-v 显示执行过程
//将/boot/grup/目录打包放在当前目录下
# tar -cvf grub.tar /boot/grub/
# ll
//将当前目录下的打包文件压缩
# gzip grub.tar
# ll
//对多个独立文件打包
# touch file1 file2 file3
# tar -cvf 1.tar file1 file2 file3
# bzip2 1.tar
//打包压缩一次完成:将/boot目录打包并使用gzip压缩放在当前目录下,打包压缩后文件名为boot.tar.gz
# tar -cvzf boot.tar.gz /boot
//将/boot目录打包并使用bzip2压缩放在指定目录,打包压缩后文件名为boot.tar.bz2
# tar -cvjf /home/aftvc/boot.tar.bz2 /boot
//将boot.tar.gz压缩文件解包解压到当前目录下
# tar -xvzf boot.tar.gz
# tar -xvjf boot.tar.bz2 -C /var/ //-C代表指定解压的位置
7)文件/目录权限
通过ls -l命令我们可以 查看某个目录下的文件或目录的权限
*3**.* *vim编辑器*
vim编辑器有三种工作模式:编辑模式,插入模式,命令模式
编辑模式: 光标移动 、 复制操作、粘贴操作、 删除、查找替换
插入模式:主要用于输入文件内容
命令模式: 保存文件内容, 新建文件,保存退出,不保存退出,强制不保存退出 ,设定行号等。
通过vim可编辑现有文件或新建文件,如passwd文件存在,编辑现有文件 ,否则建立新文件 ,例: #vim /etc/passwd
1)编辑模式:用vim打开文件默认编辑模式
(2)命令模式: 必须由编辑模式输入 : 进入命令模式,命令执行完或删除没执行的命令可回到编辑模式,此模式功能有:
3)插入模式: 由编辑模式输入i,I, o,O进入插入模式,按ESC键回到编辑模式
*4**.* *用户和组账户管理*
root 用户是系统超级管理员,拥有最高的权限,所有对象都可以操作。
查看当前登录账户:命令为 whoami
1)Linux Centos 7中用户账户分为3类:
普通用户(一般用户)账户:普通用户不具有管理系统权限,UID范围为1000到65535。真正在系统内部交互的是UID,用户名是显示给人看的,新建的用户默认为普通用户。
管理员账户:默认名为root,UID是0,拥有管理系统的全部和最高权限,如创建用户。
系统用户账户:运行服务进程对应的用户账户,不能用来登陆系统,UID范围为1到999。
2) Linux中组分为2类:
主组:每个用户必须属于一个主组且用户只能有一个主组,当新建一个用户时,自动产生一个与用户名相同的主组(也称为主组群或私有群)。
附属组:一个用户也可以加入其它的附属组,不是必须的,一个用户可以加入多个附属组。
注意:一个组是主组还是附属组是相对用户而言的。
3)用户/用户组配置文件
用户信息文件:/etc/passwd
用户密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
用户配置文件:/etc/login.defs , /etc/default/useradd
新用户信息文件所在目录:/etc/skel
登录信息文件:/etc/motd
4)创建用户账户:以root管理员来新建用户
useradd [选项] 用户名
//用命令新建用户,并查看用户信息、密码和主组信息
# useradd charles
//新建用户指定家目录和主组
# useradd -d /var/chu1 -g bin chu1
//创建用户,uid设置为555,不能登录系统,不创建家目录
# useradd -u 555 -M -s /sbin/nologin apache
//创建用户,uid设置为1055
# useradd -u 1055 nian
查看创建的用户
# tail –n 3 /etc/passwd 显示倒数三行用户
5)修改用户密码,命令格式为:
passwd [选项] 用户名
#passwd //root为自己修改密码
#passwd charles //root为charles用户改密码
#echo “123456”| passwd --stdin charles
#su – charles //切换用户
#passwd //普通用户为自己修改密码
6)修改用户属性信息
使用usermod命令来修改用户名和主目录,其命令用法为
usermod [option] username
//修改用户chu1更名为chu,则操作命令为:
# usermod –l chu1 chu
# tail –n 5 /etc/passwd
改变用户charles主组为root组,命令为:
# usermod -g root charles
#id charles 查看用户所属组
改变用户charles的附属组为aftvc,将原来的附属组删除,命令为:
# usermod –G aftvc charles
#id charles
将用户charles加到另外一个附属组root,不会删除原来的附属组,一个用户可以属于多个附属组,则实现的命令为:
# usermod -aG root charles
#id charles 用id命令可查看用户UID,用户所属主组GID及用户的附属组信息
删除用户账户
#userdel -r nian -r表示同时删除用户家目录
7)管理用户组
添加用户组-groupadd命令
groupadd [选项] 组名
选项:
-g GID:指定组 ID;
-r:创建系统群组。
修改用户组信息-groupmod命令
groupmod [选现] 组名
选项:
-g GID:修改组 ID;
-n 新组名:修改组名;
删除用户组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。
groupdel 组名
把用户添加到或移出用户组,命令格式:
groupmems [选项]
把用户添加到组中 -a username
从组中移除用户 -d username
目标用户组 -g grpname
显示组成员 -l
删除组内所有用户 -p
id与group命令
id命令功能:用户的UID、GID 和附加组的信息。
id 用户名
group命令功能:显示用户的组信息,与 id -Gn 命令效果相同,命令格式:
group 用户名
8)用户授权
授权用户jack和mary对目录/test/software(root创建)有写权限
方法一:要想某个用户对目录有w权限,只需要成为该目录的所有者;但是目录的所有者只有一个人,故对多个用户无法实现
方法二:设置目录其他人w权限,但是这样所有人都有w权限,而不是仅部分人有
方法三:将需要有w权限的用户添加到组,然后将该组设为目录的所属组,给所属组w权限——最优方法.
限制用户使用su
查看/bin/su,发现它有SetUID权限,也就是普通用户也可以使用su 切换到root,就会有机会尝试破解root密码,为了限制普通用户权限,只保留个别用户可以使用su - root,其他用户不可使用。方法如下:
创建用户组:groupadd sugroup
修改/bin/su权限为其他人无权限:chmod 4550 /bin/su
将sugroup设为/bin/su的所属组:chgrp sugroup /bin/su
查看/bin/su属性:ls -l /bin/su
设定之后,只有sugroup组中的用户可以使用su切换到root
添加指定用户到sugroup中:usermod -G sugroup student01 或 gpasswd -a student01 sugroup
对普通用户授权:sudo
sudo表示“superuser do",sudo可以让普通用户以root的身份执行一些命令。
用sudo代替su:
在执行sudo命令时,临时成为root不会泄露root口令仅向用户提供有限的命令使用权限
配置文件:/etc/sudoers,编辑配置文件命令visudo
普通用户使用命令sudo
格式:用户名(%组名) 主机地址= 命令1(绝对路径), 命令2(绝对路径),…
*5**.**网络配置*
ifconfig(interfaces config)。通常需要以root身份登录或使用sudo来使用ifconfig。ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
查看所有网络接口信息,不论其是否激活。
#ifconfig -a
查看指定网络接口信息
#ifconfig -eth0
启动和关闭指定网卡。
修改 MAC 地址。
配置 IP 地址
添加和删除 IPv6 地址。
service服务管理命令:
service s_name start|stop|status|restart
linux系统所有自带服务名称:/etc/init.d/
关闭防火墙服务
service iptables stop
重启网络服务:
service network restart
chkconfig:设置是否开机启动
chkconfig iptables on|off