Linux是一种自由和开放源码的系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可以安装在各种计算机硬件设备中,如手机、平板电脑、路由器、台式计算机等。
Linux
Linux系统安装
虚拟机安装
虚拟机克隆
- 关闭当前系统
- 使用虚拟机完整克隆系统
- 进入新系统修改相关配置
- 修改ip地址
- 修改主机名:
hostnamectl set-hostname <新的主机名>
- 修改ip地址和主机名映射
Linux目录结构
Linux根目录为
/
,可以使用cd /
进入根目录,可以使用pwd
查看当前所在目录位置。
根目录 /
的结构为:
![Linux目录结构](/imgs/linux/image-20201217170543598.png)
- bin:binaries,存放二进制可执行文件
- sbin:super user binaries,存放二进制可执行文件,只有root超级用户可以访问
- etc:etcetera,存放系统配置文件
- usr:unix shared resources,用于存放共享的系统资源
- home:存放用户文件的根目录
- root:超级用户目录
- dev:devices,用于存放设备文件
- lib:library,存放跟文件系统中的程序运行所需要的共享库以及内核模块
- mnt:mount,系统管理员安装临时文件系统的安装点
- boot:存放用于系统引导时使用的各种文件
- tmp:temporary,用于存放各种临时文件
- var:variable,用于存放运行时需要改变数据的文件
Linux系统中/
路径下使用命令查看内容:
![使用ll查看内容](/imgs/linux/image-20201217171828595.png)
Linux配置
网络IP设置
centOS7中使用ens33代替了eth0文件,即文件
/etc/sysconfig/network-scripts/ifcfg-ens33
。使用时,如果需要,可以将ens33文件重命名为eth0后,更改配置,重新启动网络。
修改主机名:
vi /etc/sysconfig/network
#/etc/sysconfig/network NETWORKING=yes #网络是否工作,不可以为no HOSTNAME=shizhan #主机名
修改ip地址和主机名的映射关系:
vi /etc/hosts
/etc/hosts 127.0.0.1 localhost ... 192.168.2.2 CentOS1
设置IP为静态地址:
查看虚拟机提供给系统的网段
修改IP地址,使用管理员权限执行命令:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#ifcfg-ens33 TYPE=Ethernet BOOTPROTO=static #static为静态ip,dhcp为自动获取动态ip DEFROUTE=yes NAME=ens33 #网卡设备名,要和文件名一致,如修改成eth0,则此处也要一致 DEVICE=ens33 #网卡设备名,要和文件名一致,如修改成eth0,则此处也要一致 ONBOOT=yes #yes=网卡随网络服务启动 系统默认不启动,这里一定要设置成启动 #默认为dhcp,修改为static时需要新增下面部分内容 DNS1=114.114.114.114 #DNS服务器ip地址 IPADDR=192.168.2.10 #网卡为当前系统配置的静态ip地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.2.1 #网关
重启网络服务:
service network restart
或者systemtcl restart network
如果需要,则关闭系统防火墙:
systemctl stop firewalld
查看修改后的ip地址:
ifconfig
或者ip addr show
防火墙配置
CentOS7默认采用的是firewalld管理netfilter子系统,底层调用的仍然是iptables命令。
firewalld:dynamic firewall daemon,支持ipv4和ipv6.
- firewalld可以动态修改单条规则,并不需要像iptables那样,在修改了规则后必须全部刷新才可以生效。
- firewalld在使用上要比iptables更人性化。
![Linux防火墙结构](/imgs/linux/image-20201218112535580.png)
firewalld配置方式:
- firewall-config:GUI工具
- firewall-cmd:命令行工具
- firewall-cmd –version:查看版本号
- firewall-cmd –state:查看防火墙状态
- firewall-cmd –list-all:查看全部信息
- firewall-cmd –list-ports:只看端口信息
- 等其他
- 直接编辑xml文件,编辑后需要reload才会生效
配置文件存放位置:firewalld的配置文件以xml文件为主(主配置文件为firewalld.conf),有两个位置
/etc/firewalld/
:存放修改过的配置,优先查找,找不到才去查找默认的配置/usr/lib/firewalld/
:默认的配置- 修改配置的时候只需要将
/usr/lib/firewalld/
复制到/etc/firewalld/
进行修改即可。
防火墙相关命令:
- systemctl status firewalld:查看防火墙状态
- systemctl stop firewalld:临时关闭防火墙
- systemctl disable firewalld:禁止防火墙开机自启动
- service firewalld start:开启防火墙
- service firewalld restart:重启防火墙
- service firewalld stop:关闭防火墙
- 开端口命令:firewall-cmd –zone=public –add-port=8080/tcp –permanent
- –zone:作用域
- –add-port=8080/tcp:添加端口,格式即 端口/协议
- –permanent:永久生效,不加此参数重启后失效
Linux命令
命令格式:命令 -选项 参数
如: ls -a /usr => 显示/usr目录下所有文件信息
关机/重启命令
- shutdown:系统关机
- -r:关机后立即重启
- -h:halt,关机后不重新启动,关闭电源
- reboot:重新启动,类似 shutdown -r
常用命令
- 内部命令:属于Shell解析器的一部分
- pwd:print working directory,显示当前工作目录
- cd:change directory,切换目录
- help:帮助,后跟命令,可以查看该命令的详细描述,如 help cd
- 外部命令:独立于Shell解析器之外的文件程序
- ls:list,显示文件和目录列表,可以指定选项和参数,不指定默认所在目录
- -l:long,输入文件和目录的详细信息,和 ll 命令相同
- -a:all,所有文件和目录,包括隐藏文件和特殊目录
- -t:time
- mkdir:make directory,创建目录
- cp:copy,复制文件或目录
- man:manual,查看帮助文档,后跟命令,如 man ls
- ls:list,显示文件和目录列表,可以指定选项和参数,不指定默认所在目录
- 快捷键:
- ctrl + c:停止当前进程
- ctrl + r:查看命令历史
- ctrl + l:清屏,与clear命令作用相同
- 查看本机ip地址
- ifconfig
- ip address
系统状态
- top:显示当前系统中耗费资源最多的进程,动态列表
- ps:显示瞬间的进程状态
- -e/-A:显示所有进程,环境变量
- -f:全格式
- -a:显示所有用户的所有进程(包括其他用户)
- -u:按用户名和启动时间的顺序来显示进程
- -x:显示无控制终端的进程
- kill:杀死一个进程
- kill -9 pid :杀死指定pid的进程
- df:显示文件系统磁盘空间的使用情况
- ifconfig:网卡网络配置详解
- ping:测试网络的连通性(后跟ip或域名)
- netstat:显示网络状态信息
- -a:显示所有的连接和监听端口
- -t:tcp,仅显示tcp相关选项
- -u:udp,仅显示udp相关选项
- -n:拒绝显示别名,能显示数字的全部转化成数字
- -p:显示建立相关链接的程序名
- free:显示当前内存和交换空间的使用情况
- du:显示指定文件(目录)已使用的磁盘空间的总和
- -h:human-readable,文件大小以K,M,G为单位显示
- -s:summarize,只显示各档案大小的总和
操作文件或目录
- mkdir:make directory,创建目录
- -p:parents,创建指定目录时,如果父目录不存在则会先生父目录
- touch:创建空文件
- cp:copy,复制文件或目录
- -r:recursive,递归处理,将指定目录下的文件与子目录一块拷贝
- mv:move,移动文件或目录,文件或目录改名
echo "abc" > file3.txt
:将字符串内容输出到file3文件中,没有则先创建文件>
:代表覆盖内容>>
:代表在文件中追加内容
- less、more、cat,都是查看输出文件内容的命令,可以配合
>
命令输出内容到新文件中cat 1.txt > file4.txt
less 1.txt > file5.txt
more 1.txt > file6.txt
- rm:remove,删除文件
-i
:删除前逐一询问确认- -r:recursive,同时删除该目录下的所有文件
- -f:force,强制删除文件或目录(递归删除)
- rmdir:remove directory,删除空目录
- cat:catenate,显示文本内容
- more、less:分页显示文本文件内容
- head、tail:查看文本中开头或结尾部分的内容
- head -n 5 a.log:查看a.log文件的前5行
- tail -F b.log:follow,循环读取文件内容
- wc:word count,统计文本的行数、字数、字符数
- -m:统计文本字符数
- -w:统计文本字数
- -l:统计文本行数
- find:在文件系统中查找指定的文件,
find/etc/ -name "aaa"
:在/etc/目录下查找名为aaa的文件 - grep:在指定的文本文件中查找指定的字符串
压缩/解压命令
- gzip [参数项] 文件名:压缩/解压文件或目录,压缩文件后缀名为gz
- -d:decompress,将压缩文件解压
- -l:list,显示压缩文件的大小,未压缩文件的大小,压缩比
- -v:verbose,显示文件名和压缩比
- -num:用指定的数字num来调整压缩的速度,如:
- -1或–fase表示最快压缩方法,低压缩比
- -9或–best表示最慢压缩方法,高压缩比
- 系统缺省值(默认)为6
- bzip2 [参数项] 文件名:压缩/解压文件或目录,压缩文件后缀为bz2
- -z:compress,压缩的参数
- -d:decompress,解压缩的参数
- -c:将压缩过程产生的数据输出到屏幕上
- -num:同gzip中数字功能
- tar [参数项] 文件名:文件、目录打包/解包
- -c:create,建立一个压缩文件的参数指令
- -x:extract,解开一个压缩文件的参数指令
- -z:是否需要用gzip压缩
- -j:是否使用bzip2压缩
- -v:verbose,压缩过程中显示文件
- -f:使用档名,在f之后要立即接档名(file)
Vim编辑器
Vim工作模式
![vim工作模式](/imgs/linux/image-20201218170322451.png)
定位命令
- :set nu:显示行号
- :set nonu:取消行号
- gg:小写,定位到文本的第一行
- G:大写,定位到文本的最后一行
- :n:定位到文本的第n行
插入命令
- i:小写,在光标前插入内容
- I:大写,在光标当前行开始处插入内容
- a:小写,在光标后插入内容
- A:大写,在光标当前行末尾处插入内容
- o:小写,在光标当前行的下一行插入新行
- O:大写,在光标当前行的上一行插入新行
替换和取消
- yy:复制当前行;nyy:复制n行
- p:粘贴
- u:undo,取消上一步操作
- Ctrl + r:redo,返回到undo之前,即撤销撤销
- r:替换光标所在处的字符
- R:从光标处开始替换,按Esc后结束
删除命令
- x:删除光标所在字符
- nx:删除光标所在处后的n个字符
- dd:删除光标所在行
- D:删除光标所在处到行尾的所有内容
- ndd:删除光标所在行开始的n行
- dG:删除光标所在行到末尾行的所有内容
- :5,7d:删除指定范围的行,此处是删除第5、7行
相关快捷键
- Shift + zz:保存退出,与
:wq
命令作用相同 - v:进入字符可视模式,选择单个字符,按y复制,按p粘贴
- V或Shift + v:进入行可视模式,选择行,按y复制,按p粘贴
- Ctrl + v:进入块可视模式,选择块,按y复制,按p粘贴
Linux用户和权限
Linux操作系统是一个多用户操作系统,允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,任务和工作环境,使得每个用户工作都不受干扰。
用户类别
- 超级用户:root,UID=0
- 伪用户:UID在1-499
- 伪用户不能登录系统,且没有宿主目录
- 如系统和服务相关的:bin、daemon、shutdown等
- 进程相关的:mail、news、games等
- 普通用户:UID在500-60000
- 普通用户切换至root用户:$ su -> 输入密码就可切换为root用户
- root用户切换至普通用户:$ su <用户名> 即可切换为指定用户
配置文件
/etc/passwd
:保存用户信息的文件使用
cat /etc/passwd
查看文件,内容格式为:- root - 用户名:用户登录系统的用户名
- x - 密码:密码位
- 0 - UID:用户标识号
- 0 - GID:默认组标识号
- root - 描述信息:存放用户的描述信息
- /root - 宿主目录:用户登录系统的默认目录,默认是在/home/下
- /bin/bash - 命令解析器:用户使用的Shell,默认是bash
/etc/shadow
:保存密码的文件使用命令
cat /etc/shadow
查看,内容格式如图所示,依次表示含义为:- 用户名:登录系统的用户名
- 密码:加密密码
- 最后一次修改时间:最后一次修改密码距离现今的天数
- 最小时间间隔:两次修改密码间隔最小时间
- 最大时间间隔:~
- 警告时间
- 账号限制时间
- 失效时间
- 标志
/etc/group
:保存用户组的文件每个用户至少属于一个组;每个组可以包含多个用户;同一个组的用户拥有组的权限;
- 组名:
- 组密码:密码位,一般不使用
- GID:组标识号
- 组内用户列表:属于改组的用户的列表
/etc/gshadow
:保存用户组密码的文件/etc/default/useradd
:用户配置文件
操作用户命令
- 查看用户信息:
- 查看当前登录用户信息::
w/who/whoami
- 查看历史登录用户信息:
last
- 查看系统所有用户信息:
- 用户信息保存在
/etc/passwd
文件下,查看用户完整信息:cat /etc/passwd
- 可以使用cut命令截取只显示用户名称:
cut -d: -f1 /etc/passwd
- -d:,表示定义以:为截取分隔符
- -f1,表示截取显示信息的第一列域信息
- 可以使用cut命令截取只显示用户名称:
- 还可以使用
getent passwd
命令来查看完成用户信息,使用cut截取 - 可以使用
compgen -u
命令查看所有用户名
- 用户信息保存在
- 查看当前登录用户信息::
useradd
:添加用户- -u:uid,指定用户标识ID
- -g:gid,指定所属的组名ID
- -G:Groups,指定多个组,使用逗号, 间隔
- -c:comment,用户描述
- -e:expire date,失效时间
- 例如创建用户du的命令:
useradd -u 888 -g users -G sys,root -c "hr du" du passwd du
- 修改指定用户的密码:切换用户至root,使用
passwd [username]
为用户设置新密码 usermod
:user modify,修改用户- -l:修改用户名,如将用户a名称改为b的命令是:
usermod -l a b
- -g:添加组,为用户tom添加sys组:
usermod -g sys tom
- -G:添加多个组,使用逗号间隔
- -L:Lock,锁定账户密码
- -U:Unlock,解锁账户密码
- -l:修改用户名,如将用户a名称改为b的命令是:
userdel
:user delete,删除用户- -r:remove,删除账号同时删除账号相关目录
操作组命令
- groups:显示用户所属组
- groupadd:添加组
- -g:指定组gid
- groupmod:修改组
- -n:new group,修改组名
- groupdel:删除组
权限操作命令
三种基本权限:r(read)读权限;w(write)写权限;x(execute)执行权限;
![文件权限信息](/imgs/linux/image-20201219195144607.png)
- 第1位:表示文件类型,d-目录,-普通文件,I-链接文件
- 第2-4位:所属用户权限,用u(user)表示
- 第5-7位:所属组权限,用g(group)表示
- 第8-10位:其他用户权限,用o(other)表示
- 2-10位标识所有的权限,用a(all)表示
-rwxrw-r--
:表示一个普通文件,所属用户有读/写/执行权限,同组用户有读/写权限,其他组只有读权限
更改文件权限操作:
- chmod:change mode,修改文件权限
- -R:Receusive,表示其下的文件和子目录做相同的权限操作
- 如:
chmod u+x a.txt
:为a.txt文件的所属用户添加执行权限
- 使用数字来表示权限:r=4,w=2,x=1,-=0
- 如:
chmod 750 b.txt
:表示文件b.txt,所属用户有读/写/执行权限,所属组有读/执行/权限,其他无
- 如:
Linux中安装软件
RPM
RedHat Package Manager,RedHat软件包管理工具
相关参数:
- i:install,安装应用程序
- e:erase,卸载应用程序
- vh:verbose hash,显示安装进度
- U:update,升级软件包
- qa:query all,显示所有已安装软件包
- 结合grep命令使用
YUM
Yellow dog Updater,Modified 是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。
yum instll gcc-c++
yum remove gcc-c++
yum update gcc-c++
yum 安装软件时出现 is this ok [y/d/n]:
- y:下载安装
- n:不安装
- d:只下载不安装
安装JDK
将
jdk-8u181-linux-x64.tar.gz
传至Linux系统中- 使用FTP连接Linux进行文件传输,前提是Linux系统要安装FTP服务,且开启FTP的21端口
- 在XShell中使用命令传输文件,使用
rz
命令,实现windows项Linux传输文件,选择单个文件 - 使用
sz
命令,实现从Linux向windows传输文件
解压缩,命令
tar -zxvf jdk-8u181-linux-x64.tar.gz /usr/local
解压缩到/usr/local
中配置环境变量
使用命令
vi /etc/profile
编辑系统环境变量设置最后追加内容:
export JAVA_HOME=/usr/local/jdk1.7.0_45 export PATH=$PATH:$JAVA_HOME/bin
刷新环境变量
source /etc/profile
测试JDK环境,命令:
java -version
,显示当前版本号即表示成功
安装Tomcat
上传
apache-tomcat-7.0.68.tar.gz
到Linux系统解压缩文件到指定目录,
tar -zxvf apache-tomcat-7.0.68.tar.gz -C /usr/local
启动tomcat,进入tomcat/bin目录下,执行启动文件
./startup.sh
显示启动后使用命令查看tomcat是否已经启动成功:
netstat -nltp
:查看系统当前监听的端口情况8080端口开启,表示启动成功
此时访问ip:8080可以看到如下,则表示tomcat安装成功。
Tomcat启动时常见问题
如果8080端口没有监听,说明tomcat启动失败
若tomcat启动失败,查看tomcat日志
cd tomcat/logs cat catalina.out #查看日志文件
日志文件内容如下:表示启动时tomcat没有找到指定的Java环境
检查配置环境变量时JDK路径错误,修改后重新启动tomcat,查看端口情况如下:启动成功
如果tomcat已经启动,外部访问仍然失败,则要检查防火墙是否关闭或者是否允许8080端口通行。
安装MySQL
yum安装是最简单的,使用压缩包安装失败,因此换用了yum方式。 参考教程
查看是否使用yum安装过mysql,使用命令:
rpm -qa | grep -i mysql
如下图显示已经安装的相关模块,则要先卸载,再重新安装
yum -y remove <全名称>
:卸载相关模块- 如果上述命令卸载不掉,则使用命令:
rpm -er <全名称>
如果执行后无任何变化,则表示没有安装,可以正常进行
使用yum命令下载并安装mysql相关服务
# cd /usr/local #进入/usr/local文件夹下 # wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm #下载.rpm文件 # rpm -ivh mysql57-community-release-el7-8.noarch.rpm # # yum -y install mysql-server #安装mysql服务 #也可以指定安装目录 # yum --install root=/usr/local/mysql --releaserver=/ -y install mysql-server
等待所有服务模块安装完成
mysql相关配置文件路径,并配置mysql的配置文件
配置文件:
/etc/my.cnf
日志文件:
/var/log/mysqld.log
服务启动脚本:
/usr/lib/systemd/system/mysqld.service
socket文件:
/var/run/mysqld/mysqld.pid
添加mysl配置内容:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock server_id = 1 expire_logs_days = 3 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
启动mysql服务,相关命令:
systemctl start mysqld.service
:开启mysql服务system status mysqld.service
:查看mysql服务状态,- -l:查看详细状态信息
systemctl stop mysql.service
:停止mysql服务systemctl restart mysql.service
:重启mysql服务
设置mysql开机自启动
systemctl enable mysqld
:systemctl daemon-reload
:
修改mysql密码
安装mysql后,会在相应的日志文件中产生一个随机密码,可以使用命令查看
- cat /var/log/mysqld.log :查看日志文件全部内容
- grep “password” /var/log/mysqld.log :正则匹配日志文件中的password关键字
使用命令登录mysql:
mysql -u root -p
:命令回车后输入日志中密码,登录mysql登录成功,修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'rOOT@2020';
即root账户的密码修改为Root@2020随机密码登录失败时,需要配置跳过认证阶段,登录后使用sql语句更新密码
修改配置文件:
vi /etc/my.cnf
,添加 skip-grant-tables 保存并退出,表示登录不验证重启mysql服务,使用mysql直接登录mysql客户端
使用sql语句修改登录密码
#update user set password=password("Root@2020") where user="root"; #mysql 5.7的数据库没有了password字段 用的是authentication_string字段 use mysql; update mysql.user set authentication_string=password('Root@2020') where user='root' ; flush privileges; #
修改密码策略(默认密码策略要求密码是大小写字母+数字+特殊字符的组合且最少8位)
设置允许远程登录
设置允许其他端,navicate远程连接
mysql -u root -p Root@2020 #连接客户端 mysql> use mysql; mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@2020'; #如果上句运行失败,则使用下面命令 #mysql> grant all on *.* to root@"%" identified by "Root@2020"; mysql> flush privileges;
安装使用Redis
安装步骤: 安装教程
如果电脑中没有安装过gcc依赖,则要先安装才行(否则编译时报错)
$ yum -y install gcc
可以直接使用命令安装,但是安装的版本不能指定,一般就是比较低的版本
# yum install redis
使用命令下载文件后进行安装 进入到 usr/local 文件夹中下载
# wget http://download.redis.io/releases/redis-5.0.4.tar.gz
解压压缩包
# tar zxvf redis-5.0.4.tar.gz
解压后进入到 redis-5.0.4 目录下,进行编译
- 先编译库
# make MALLOC=libc
- 再编译资源(安装)
# cd src && make install
- 先编译库
编译安装完成,可以启动redis服务了
为了使用redis更加方便,需要对redis进行一定的配置,redis-5.0.4下的redis.conf文件
将配置文件复制到etc文件夹下
cp redis.conf /etc
,然后进行更改(也可更改后复制)# vi redis.conf
etc是系统配置文件存放的目录,方便配置- 允许其他ip访问 :将
bind 127.0.0.1
注释掉,此处限制了访问redis的地址 - 解除安全保护机制:修改
protected-mode yes
为protected-mode no
- 修改redis启动为守护进程:修改
daemonize no
为daemonize yes
- 允许其他ip访问 :将
启动修改后redis服务
redis-server /etc/redis.conf
👍服务启动后,可以使用命令启动客户端进行测试
redis-cli
模拟客户端发起通信
redis-cli
如果不成功,要退出后重新进行
exit
设置redis启动服务脚本(使用systemd管理redis)
在
/usr/lib/systemd/system
目录下新建文件redis.service
,并添加内容如下:[Unit] Decription=Redis 6379 After=syslog.target network.target [Service] Type=forking PrivateTmp=yes Restart=always ExecStart=/usr/local/bin/redis-server /etc/redis.conf ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 -a jcon shutdown User=root Group=root LimitCORE=infinity LimitNOFILE=100000 LimitNPROC=100000 [Install] WantedBy=multi-user.target
设置完毕后,可以使用系统命令开启关闭redis
3. 好像没有成功,等等再试
设置redis开机自启动
复制一份 utils/redis_init_script 到 /etc/init.d/
修改
redis_init_script
文件,指定具体的启动文件设置自启动命令
# chkconfig redis_init_script on
,如果关闭自启动,将on换成off
修改Redis的密码
redis安装过程常见错误
安装Nginx
- 查看Linux distribution版本号:
cat /etc/redhat-release
- nginx不在默认的yum源中,需要将nginx加入到yum中
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 或者:
sudo yum -y install epel-release
添加Nginx存储库
- 或者:
- 查看nginx是否存在:
yum repolist
- 在yum中安装nginx:
yum install nginx
- 安装完成测试本地访问:
curl -i localhost
返回响应信息 - 使用外网访问(设置防火墙)
- 允许http通信:
sudo fireawall-cmd --permanent --zone=public --add-service=http
- 语序https通信:
sudo fireawall-cmd --permanent --zone=public --add-service=https
- 重新加载防火墙配置:
sudo firewall-cmd --reload
- 允许http通信:
Nginx 的相关操作命令:
查看版本信息:nginx -V
启动 Nginx 服务:systemctl start nginx
停止 Nginx 服务:systemctl stop nginx
重启 Nginx 服务:systemctl restart nginx
重新加载 Nginx 配置文件,以优雅的方式重启:Nginx systemctl reload nginx
设置开机自启动:systemctl enable nginx
停止开机自启动systemctl disable nginx
查看nginx的状态及进程、端口
- 1、systemctl status nginx.service (nginx服务状态)
- 2、netstat -antp | grep : (查看所有端口的占用情况)
- 3、netstat -antp | grep :80 (查看80端口占用)
- 4、ps aux | grep nginx (查看nginx进程运行状态)
- 5、ps -ef | grep nginx (查看Nginx运行端口号和安装位置)
杀掉进程
- 1、killall -9 nginx (杀死所有nginx相关进程)
- 2、kill -9 pid1 and kill -9 pid2 (杀掉两个制定pid的进程)
nginx配置文件路径
- 主配置文件:/etc/nginx/nginx.conf
- 子配置文件:/etc/nginx/conf.d/default.conf
server {
listen 80; //要监听的端口,即访问时 url:port
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main; #日志
#文件上传大小限制
client_max_body_size 1000m;
#静态资源文件
#location / {
# root /usr/share/nginx/html;
# index index.html index.htm;
#}
#此处修改针对不同请求url分发到不同服务地址
location ~ /eduservice/{
proxy_pass http://localhost;
}
#对象存储
location ~ /eduoss/{
proxy_pass http://localhost;
}
#视频点播资源
location ~ /eduvod/{
proxy_pass http://localhost;
}
#error_page 404 /404.html;
卸载Nginx
停止Nginx服务:
systemctl stop nginx
删除Nginx自动启动:
systemctl disable nginx
删除Nginx相关源文件
rm -rf /etc/nginx/ rm -rf /etc/init.d/nginx rm -rf /usr/sbin/nginx apt-get remove nginx*
移除yum中的Nginx模块:
yum remove nginx
安装Git
使用yum安装
- 使用yum命令安装git:
yum -y install git
- 安装完成后,使用命令查看版本信息:
git --version
- 安装完成后的git路径在
usr/libexec/git-core
下 - 此种方式安装的git版本比较早,不是最新版。
下载软件包本地安装
- 在github上找到git的最新版本,下载tar.gz包,地址:https://github.com/git/git/releases
- 下载最新版本的tar.gz包至本地,并使用工具上传到linux服务器中
- 使用命令解压压缩包:
tar -zxvf git-2.22.0.tar.gz
- 进入解压后的文件夹:
cd git-2.22.0.tar.gz
- 解压后拿到源码信息,就要对源码进行编译,首先安装编译需要的依赖:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
- 安装依赖时会自动使用yum安装git,可使用命令卸载旧版本:
yum -y remove git
- 编译git源码:
make prefix=/usr/local/git all
- 安装git至指定路径:
make prefix=/usr/local/git install
- 配置环境变量:
vi /etc/profile
- 在配置文件底部添加内容:
export PATH=$PATH:/usr/local/git/bin
- 在配置文件底部添加内容:
- 刷新环境变量:
source /etc/profile
- 查看git是否完成安装:
git --version
安装Docker
Linux常见问题
Ubuntu系统远程连接
实验室服务器系统
du:123456
root:root
win本地使用Xshell连接远程Linux系统时,连接失败。如果本地对linux可以ping通,远程ping本地不通,则应该是:(解决后连接成功)
Linux虚拟机
执行sudo su
命令时提示 “用户不在sudoers文件中,此事将被报告。”
问题:使用shone切换至管理员权限时,sudo su
命令提示 shone用户不在sudoers文件中,此事将被报告。
- sudo :后跟命令,当前用户以root身份执行本身没有权限的操作,需要验证当前用户密码
- sudo su:使用sudo 给su命令提权,而su命令需要执行该命令的用户在sudoers中有权限
- su:不跟用户的su命令就代表切换至root账户,即su root(默认缺省为root)
- su root:切换至root用户,验证root密码,不改变所在目录
- su - root:切换至root用户,并进入到root用户对应目录下
- su shone:切换至shone用户
原因:并不是所有的用户都可以执行sudo命令,配置文件/etc/sudoers中记录有权限执行sudo的用户。我们可以对配置文件进行编辑,添加当前用户的权限,配置完成后再次使用sudo命令成功执行。而sudoers文件是root用户只读文件,修改后需要使用命令wq!
强制保存。
解决办法:
使用命令
su root
切换至root用户,需要验证root用户密码查看
/etc/sudoers
文件内容是否包含当前用户权限vim /etc/sudoers
编辑文件增加shone用户的sudo权限## root用户默认存在,可以添加其他用户权限 root ALL=(ALL:ALL) ALL shone ALL=(ALL:ALL) ALL
注意
/etc/sudoers
文件的权限是440只读文件,编辑文件内容需增加写入权限或强制修改保存chmod u+w /etc/sudoers
,增加写入权限chmod 740 /etc/sudoers
,增加root用户的全部权限(4+2+1)- 或者编辑完成后使用命令
:wq!
强制保存修改
su shone
切换至普通用户,测试权限是否增加成功