1、linux用户和权限
1.1、用户分类:
在linux中的用户可以分为两类,一类是root用户,root用户拥有linux操作系统的最大的权限,另外一类就是普通用户,相比于root用户,普通用户的权限受到一定的限制(对于文件的读写删除等操作)。普通用户在home目录内一般是不受限制的,一旦出了home目录,那么普通用户只有读和执行的权限,没有修改的权限!
1.1.1、用户切换
语法:su [-] 用户名
-
符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
-
参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
-
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d
-
使用普通用户,切换到其它用户需要输入密码,如切换到root用户
-
使用root用户切换到其它用户,无需密码,可以直接切换
1.1.2、命令权限赋予
在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。
语法:sudo 其他的命令
在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权,但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证。
切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers 在文件的最后添加:
songzhishu ALL=(ALL) NOPASSWD:ALL
代表给songzhishu这个用户所使用的命令赋予权限,其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码,最后通过 wq 保存!最后使用的话切换过去普通用户!
1.2、用户和用户组
Linux系统中可以:配置多个用户、配置多个用户组、用户可以加入多个用户组中,Linux中关于权限的管控级别有2个级别,分别是:
-
针对用户的权限控制
-
针对用户组的权限控制
比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。
1.2.1、创建用户:
创建用户组:groupadd 用户组名
删除用户组:groupdel 用户组名
1.2.2、创建用户组
创建用户:useradd [-g -d] 用户名
-
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
-
选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
删除用户:userdel [-r] 用户名
-
选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
查看用户所属组:id [用户名]
-
参数:用户名,被查看的用户,如果不提供则查看自身
修改用户所属组:usermod -aG 用户组 用户名,将指定用户加入指定用户组
1.2.3、查看用户以及用户组
-
查看用户:
语法: getent passwd
获取的信息:用户名 密码(x) 用户ID 组ID 描述信息(无用) HOME目录 执行终端(默认bash)
-
查看用户组:
语法:getent group
获取的信息:组名称 组认证(显示为x) 组ID
1.3、权限
1.3.1、权限信息:
查看linux中的权限信息如下
drwxrwxr-x. 3 songzhishu songzhishu 101 12月 17 20:52 file
查询的信息大概可以分为四个部分,权限信息、用户、用户组、文件信息,其中权限信息又可以分为:
r表示读权限、w表示写权限、x表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别
r:
-
针对文件可以查看文件内容
-
针对文件夹,可以查看文件夹内容,如ls命令
w:
-
针对文件表示可以修改此文件
-
针对文件夹,可以在文件夹内:创建、删除、改名等操作
x:
-
针对文件表示可以将文件作为程序执行
-
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
1.3.2、修改权限信息
chmod命令可以修改文件、文件夹的权限信息,但是只有文件、文件夹所属的用户或者是root用户才可以进行权限的修改。
语法 chmod [-R] 权限 文件或者文件夹
其中 -R 可以对文件夹内的全部内容使用相同的操作。
权限书写方式:u=rwx,g=rx,o=x,u代表所属用户,g所属用户组,o其他用户,也可使使用数字代替777代表全部的权限都开放,没有限制!7其实就是111,懂啦叭
1.3.3、修改用户用户组
使用chown命令,可以修改文件、文件夹的所属用户和用户组,普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
语法:chown [-R] [用户]:[用户组] 文件或文件夹
- 选项,-R,同chmod,对文件夹内全部内容应用相同规则
- 选项,用户,修改所属用户
- 选项,用户组,修改所属用户组
- :用于分隔用户和用户组
示例:
- chown root hello.txt,将hello.txt所属用户修改为root
- chown :root hello.txt,将hello.txt所属用户组修改为root
- chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
- chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
2、软件安装
Linux中安装软件的方式可以分为两种,一种是yum安装,在线的方式去仓库下载软件然后安装,另外一种是rpm源码安装,这不需要联网,但是要提供源码包,第一种方式比较简单容易,第二种方式操作比较复杂,怎么说呐各有好处叭!
2.1、YUM安装
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。yum命令需要root权限,可以su切换到root,或使用sudo提权。而且yum命令需要联网!
语法:yum [-y] [install] |[remove] |[search] 软件名
选项:
-
-y:自动确认,无需手动确认安装或卸载过程
-
install:安装
-
remove:卸载
-
search:搜索
3、系统设置:
3.1、systemctl
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启,能够被systemctl管理的软件,一般也称之为:服务
语法:sysytemctl start|stop|status|enable|disable 服务名
系统内置的服务比较多,比如:
-
NetworkManager,主网络服务
-
network,副网络服务
-
firewalld,防火墙服务
-
sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
3.2、软链接
在系统中创建软连接,将文件或者文件夹链接到其他的位置,类似快捷方式,这里建议文件或者文件夹的路径写成绝对路径,不然会出现 类似的情况 cat: demo.txt: 符号连接的层数过多
语法:ln -s 参数1 参数2
- -s选项,创建软连接
- 参数1:被链接的文件或文件夹
- 参数2:要链接去的目的地
实例:
- ln -s /etc/yum.conf ~/yum.conf
- ln -s /etc/yum ~/yum
3.3、时间和时区
3.3.1、时间
通过date命令可以在命令行中查看系统的时间
语法:data [-d] [格式化字符串]
-
-d 按照给定的字符串显示日期,一般用于日期计算
data -d "+1 day" "+%y-%m-%d"
大概得意思就是加一天后的时间格式是什么!可以配合加减
-
year**年**
-
month**月**
-
day**天**
-
hour**小时**
-
minute**分钟**
-
second**秒**
-
-
格式化字符串:通过特定的字符串标记,来控制显示的日期格式
-
%Y 年
-
%y 年份后两位数字 (00..99)
-
%m 月份 (01..12)
-
%d 日 (01..31)
-
%H 小时 (00..23)
-
%M 分钟 (00..59)
-
%S 秒 (00..60)
-
%s 自 1970-01-01 00:00:00 UTC 到现在的秒数
-
3.3.2、时区
使用root权限,执行如下命令,修改时区为东八区时区:将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
rm -f /etc/localtime
sudo ln -s /user/share/zoneinfo/Aisa/Shanghai /etc/localtime
3.4、ip,主机名
3.4.1、ip
使用ifconfig可以查看ip,其实这里的知识点不太多,会查就可以!
3.4.2、主机名
使用hostname可以查看主机名字,当然既然是名字可以改动,命令如下
hostname set -hostname 主机名
4.4.3、域名解析
IP地址实在是难以记忆,有没有什么办法可以通过主机名或替代的字符地址去代替数字化的IP地址呢?
实际上,我们一直都是通过字符化的地址去访问服务器,很少指定IP地址--也就是域名解析,现在本地找主机名和ip的对应关系,然后没有找到的话就到联网的DNS服务器找。
3.5、配置固定的ip
当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。对于我们配置的域名接卸的ip的话,频繁的更改会使我们不断的修改配置文件,所以我们想要ip固定下来!固定ip的配置可以分为两大步骤:
- 在VMware Workstation中配置IP地址网关和网段(IP地址的范围)
- 在Linux中修改配置文件然后固定IP
3.5.1、VMware Workstation
第一步打开虚拟网络编辑器:
第二步修改IP地址和网段
第三步:在dhcp中设置网关为192.168.88.2
3.5.2、修改linux中的配置文件
第一步:使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容
然后使用systemctl restart network 重启网卡,再次查看ip就是你自己配置的啦
3.6、网络传输
3.6.1、ping
使用ping可以测试指定的网络服务器是不是可以联通
语法: ping [-c num] ip或者主机名
-
选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
-
参数:ip或主机名,被检查的服务器的ip地址或主机名地址
3.6.2、wget
wget是非交互式的文件下载器,可以在命令行内下载网络文件,注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。
语法:
-
选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
-
参数:url,下载链接
示例:
下载apache-hadoop 3.3.0版本:wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz