Linux文档
Linux资料
一:什么是Linux?
-
Linux是一种开源的操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
-
本文档使用的Linux是CentOS-7-x86_64-DVD-1611.iso版本。
-
centos7的下载地址 :http://mirrors.aliyun.com/centos/
二:Linux的目录结构,作用是什么?
- /:是Linux整个系统的根目录。有且只有一个根目录。
- 根目录下有
- bin:是Binary的缩写, 这个目录存放着最经常使用的命令
- boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- dev:是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- lib64:包含许多被
/bin/和/sbin/中的程序使用的库文件 - media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- root:该目录为系统管理员,也称作超级权限者的用户主目录。
- run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
- sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- srv: 该目录存放一些服务启动之后需要提取的数据。
- sys:这是linux2.6内核的一个很大的变化。
- tmp: 这个目录是用来存放一些临时文件的。
- usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
三:Linux的常用命令?
- 查看Linux的版本
- cat /etc/redhat-release:表示查看Linux的版本信息
- 查看当前使用的账号
- whoami:查看当前使用的账号信息
四:Linux中编辑器
- Linux中有两个文本编辑器,vi和vim,vim是vi的增强版。
- 通过vi+文件名或vim+文件名来打开文件,如果该文件名存在则会直接打开,如果不存在则会先创建在打开。
- 打开文件进入到编辑器页面时,该文本有三种状态。
- 一般模式:该模式下打开的文本是不能进行任何操作,只能查看,不可进行编辑
- 编辑模式:常用字母a、i、I、A来进入编辑模式,只需要在页面下按下对用的字母即可,可以按Esc来回到一般模式。
- 命令模式:在一般模式下,按Shift+:来进入命令模式在输入命令进行操作。
- q!:表示不保存内容,进行退出
- qw:表示保存并退出
- q:表示只是退出编辑器
- vi和vim的快捷键
- 在一般模式下,复制光标选中的内容:按下yy,在按下p
- 复制当前行往下5行:在一般模式下按5yy,把光标所在的行的往下5行进行复制,在按p进行粘贴
- 在文本中查找关键字:在命令模式下,输入/+查找关键字,在回车,查到的结果会有高亮显示,按n表示光标查找下一个结果
- 删除光标所在的行:在一般模式下按dd,则会删除所在行
- 删除光标所在行向下5行:在一般模式下,按5dd,则会删除光标所在行向下5行
- 撤销上次编辑的内容:在一般模式下按u即可撤销
- 显示行号:在命令模式下,设置行号用 set nu ,取消行号 set nonu
五:Linux中的用户管理
- 任何人想要使用Linux系统的资源时,都必须要有一个合法的Linux账号,每个账号的权限不一样访问的资源也是不一样的。
- 如何在Linux系统中添加一个用户账号并进行授权
- 添加用户:useradd +用户名,用户在创建完成后则会在根目录下的home目录下有一个刚才创建文件,文件名默认是用户名
- 添加组:任何一个用户都至少属于一个组,如新建用户时不指定组,则会创建一个新的组,组名和用户名相同,并把该用户添加到该组中
- 添加用户并指定组:useradd -d /home/组名 (可默认为用户名)+用户名
- 设置用户密码
- 进入到home(/)中去,找到刚才添加的用户名,输入cd +用户名进入,在输入passwd+用户名,则会进行密码设置
- 删除用户
- 进入到home(/)中去,找到刚才添加的用户名,输入cd +用户名进入,在输入userdel+用户名,则会进行用户删除设置,但是这种删除不会删除home目录下的文件
- userdel -r +用户名:删除用户的同时也会级联删除home中的相关主目录文件
- 查看用户信息,ID、用户名等等
- id+用户名:则会显示有uid、gid、组 这三个信息
- uid:表示该用户的id,即唯一表示
- gid:表示该用户所在的主组,即用户创建后就自动创建该组,一旦创建就不能更改。
- 组:表示该用户用户的附加组,可以有多个,每个附加组都有不一样的权限,可用来对该用户进行权限管理
- id+用户名:则会显示有uid、gid、组 这三个信息
- 切换用户
- su+用户名:高权限切换到权限低的用户不需要进行密码验证,但是从低权限用户切换到搞权限用户时需要进行密码校验,以防误删文件
六:Linux中的组管理,用户和组、文件(文件或目录)和组
- 每个Linux中的用户都至少属于一个组。不能独立组的存在。
- Linux中的组相当于权限管理中的角色,每个角色拥有的权限都是不一样的,所以可以给Linux中的用户添加附加组来添加相应的权限,用来进行不同的操作。
- Linux中的组操作
- 创建组:
- 添加组:groupadd + 组名
- 删除组:groupdel +组名
- 把用户添加到组:gpasswd -a +用户名 + 组名
- 移除用户所在组:gpasswd -d 用户名 +组名
- 创建用户时指定所在组:useradd -g + 组名 +用户名
- 在Linux中每个文件(文件和目录)也都属于一个组,和用户与组的关系不同,进行对权限的控制
- 查看文件的所有者
- ls -l
- 修改文件所有者
- chown +新的文件所有者 +修改的文件名:表示将修改该文件的所有者,但是不会修改该文件所在的组
- chown +新的文件所有者+ : +新的组名+ 修改的文件名+[-R]:将文件的所有者和所在组都进行修改,不加-R表示该文件包含的子文件不会修改,加上则表示可以修改。
- 修改文件所在组
- chgrp +新组名 +文件名 :表示将文件(文件或目录)所在的组进行修改
- 查看文件的所有者
七:Linux中系统命令
- 关机:shutdown now
- 立刻关机:shutdown now
- 定时关机:shutdown -h xxx(数字)
- 重启
- 重启:reboot
- 立刻重启:shutdown -r now
- 数据库同步
- 数据同步:sync
- Linux中的帮助命令
- man + 命令:按回车翻一行,按空格翻一页,按q退出
八:Linux中的文件和目录操作
- 查看当前所在目录
- pwd:表示查看当前所在目录
- 查看指定目录内容
- ls[参数]:如有参数表示指定目录下所有子目录和文件,没有参数表示查看当前目录下的所有子目录和文件列表
- ls -l [参数]:将查询的结果排列出来
- ls -a +目录:表示将该目录下所有文件和子目录都列出来
- ls -al +目录:表示将该指定目录下所有子目录和文件列举出来
- 切换目录
- 绝对目录:是以盘符目录开始
- 相对目录:以目录名开始的目录
- cd + 目录:表示切换目录(可以使用相对目录或绝对目录)
- 当前用户所在目录
- cd ~ :表示当前用户的根目录
- 创建目录
- mkdir +[位置]+目录名:在某位置下创建该目录
- mkdir + -p +[位置]+目录名列表:表示在该指定位置下创建多级目录
- 删除目录
- redir+目录名:删除一个指定的目录
- 创建文件
- 可以使用vi或vim,但是这种方式只会创建一个文件并且默认是打开的
- touch+文件名列表:可以创建一个或多个空的文件,如创建多个文件时,文件名和文件名之间用空格隔开。
- 复制文件
- cp+source[源]+dest[目标位置]:表示将一个文件复制并粘贴到指定位置
- cp + -r + source + dest:表示将一i个文件或目录及其子目录递归复制过去
- 删除文件或目录
- rm +文件名:表示将该文件进行删除,该命令会进行删除提示,输入y表示确定,输入n表示取消
- rm + -f +文件名:表示将该文件强制进行删除,不进行提示
- rm + 目录名:默认是删除不掉,可以在目录名前加 -r 进行递归删除
- rm + -rf +目录名:表示将文件或目录强制递归进行删除
- 移动文件或目录(window中的剪切)
- mv+source[源] + dest[目标]:表示将文件剪切或移动到指定文件
- mv +文件名 +文件名:表示可以将这个文件进行重命名
- 查看Linux系统中的常量或变量将其值输出在控制台上
- echo +$[变量名/常量名]:将引用该变量或常量的值输出在控制台上,一般用在脚本编程中
- 将查看的文件的信息写入到指定文件中(>)
九:Linux中的日期和时间的操作
- 查看或者设置系统中的时间或日期
- date:查看当前系统时间
- date +%Y:查看年份
- date +%m:查看月份
- date +%d:查看天
- uptime:可以查看当前系统运行时长
- 将日期按照指定格式进行输出
- date '+%Y-%m-%d %H:%M:%S':将日期按照yyyy-MM-dd HH:mm:ss的格式进行输出
- 查看系统日历
- cal :查看当前月份的日历
- cal + 年份:表示查看指定年份的日历
十:Linux中的查找文件或目录
- 使用find来查找某一个关键字
- find +[范围] +关键字:不指定目录时默认查找当前目录下含有该关键字的文件信息,默认是按照文件名来进行搜索
- find +[范围]+ -size +大小:表示按照文件的大小来进行搜索,+表示大于,-表示小于
- find +[范围] + -user :表示按照文件所有者来进行查找(该文件是被谁创建出来的)
- 使用locate来进行文件查找
- locate在进行文件查询时可能不能准确的反映出文件的情况,因为是通过文件树的形式来进行查找,所以在使用时要先进行数据同步
- 使用updatedb来对文件树的数据进行同步在进行locate文件查找
- locate +[范围] +关键字:查询出该范围下符合条件的文件信息
- 文件搜索过滤
- cat + 文件名 +|grep +[-i]+过滤条件:表示只显示符合该过滤条件的文件信息 ,其中[-i]是可选项,表示是否区分大小写
十一:文件的压缩和解压缩
- 文件或目录的解压缩(操作的是单个文件)
- gzip +文件名:压缩单个文件后会自动生成一个.gz的压缩包,并且会自动删除压缩的源文件
- gunzip +文件名:解压缩单个文件,解压成功后则会自动删除该压缩包
- 多文件或目录的解压缩
- zip +压缩包名称 +要压缩文件或目录列表:将文件列表或目录进行打包,但是这种打包不会将原文件进行删除
- unzip +压缩包名称 +[-d +解压目录]:将指定压缩包进行解压,如要解压到指定位置需要加上-d +解压路径即可
- 多文件(一个或多个)或目录的解压缩(原文件或目录不会自动删除)
- tar + [选项]
- tar + -c +压缩包名.tar.gz:将指定的文件或目录进行压缩,打成压缩包的名字是xxx.tar.gz
- tar + -x + 要解压包名 +[-C] +解压路径:将指定的压缩包进行解压,如要进行指定位置可以加上 -C +指定解压路径
- tar + -v +压缩包名:显示压缩包详细信息
- tar + -f :指定压缩后的文件名
- tar + -z:打包的同时进行压缩
- tar命令的使用
- 压缩:tar -zcvf +压缩包名 .tar.gz + 文件列表或目录
- 解压:tar -zxvf +要解压包名.tar.gz [-C + 指定解压路径]
- tar + [选项]
十二:Linux中文件或目录的权限管理
- 在Linux中文件或目录具有三种权限即:读(Read)、写(Write)、执行(Execute)
- 对文件而言
- 读(Read):只能读取文件的信息,查看文件内容,比如 less、cat、head、tail、more、等
- 写(Writer):可以写该文件的内容,比如文件编辑器的vi或者vim
- 执行(Execute):如果该文件是.sh文件,可以直接执行
- 对目录而言
- 读(Read):只能读取目录的信息,查看目录下的内容,比如ls命令
- 写(Writer):可以创建目录,可以修改目录中的内容,可以删除目录,重命名目录等等
- 执行(Execute):可以进入目录,比如cd命令
- 对文件而言
- 在Linux中任何一个文件或目录都具有所有者权限、同组用户权限、其他组用户权限这三部分权限
- 第一部分权限:所有者权限,文件或目录的所有者对该文件或目录所拥有的权限
- r:读
- w:写
- x:执行
- 第二部分权限:同组用户具有的权限
- 第三部分权限:其他组用户具有的权限
- 第一部分权限:所有者权限,文件或目录的所有者对该文件或目录所拥有的权限
- 修改文件或目录的权限
- 给文件或目录设置授权
- 给所有者授权:使用 chmod u+[r/w/x] +文件名或目录名
- 给同组用户授权:使用 chmod g+[r/w/x] +文件名或目录名
- 给其他用户授权:使用 chmod o+[r/w/x] +文件名或目录名
- 给所有用户授权:使用 chmod a+[r/w/x] +文件名或目录名
- 给文件或目录取消授权
- 给所有者授权:使用 chmod u - [r/w/x] +文件名或目录名
- 给同组用户授权:使用 chmod u - [r/w/x] +文件名或目录名
- 给其他用户授权:使用 chmod u - [r/w/x] +文件名或目录名
- 给所有用户授权:使用 chmod u - [r/w/x] +文件名或目录名
- 给文件或目录设置授权
- 给所有者设置权限:使用 chmod u = [r/w/x] +文件名或目录名
- 给同组用户设置权限:使用 chmod g = [r/w/x] +文件名或目录名
- 给其他用户设置权限:使用 chmod o= [r/w/x] +文件名或目录名
- 给所有用户设置权限:使用 chmod a = [r/w/x] +文件名或目录名
- 给文件或目录设置授权
- 修改文件的目录的权限使用数字的形式
- 使用 4来表示读、使用2来表示写、使用1来表示执行
- 在进行权限管理时可以通过读写执行各数字的和或差来进行授权或取消授权
- 如给所有者取消写的权限:chmod 577 文件名,使用数字必须是三位,第一位表示所有者,第二位表示同组用户,第三位表示其他组用户
十三:Linux中的网络管理
-
在Linux中的配置文件中进行配置
-
先找到Linux中网络配置文件
- /etc /sysconfig/network-scripts/ifcfg-ens33
-
编辑找到的该配置文件,并将文件中的BOOTPROTO、ONBOOT进行修改,在添加IPADDR、GATEWAY、DNS1
TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="fef453bd-58a2-4913-b514-cf7d15a4a67f" DEVICE="ens33" ONBOOT="yes" ~ BOOTPROTO="dhcp" //static ONBOOT="yes" //表示每次启动都会加载并执行该配置文件 IPADDR=192.168.190.129 //IP地址 GATEWAY=192.68.190.2 //网关 DNS1=192.68.190.2 //DNS -
添加IPADDR、GATEWAY、DNS
- 打开虚拟机,在工具栏上点击编辑,找到虚拟网络编辑器,选择NAT模式后,在该页面下点击DHCP查看该IP的取值范围,在点击取消,在点击NAT设置,查看网关,并将该网关地址写到GATEWAY中,DNS和网关保持一致保存即可
-
-
Linux中的进程管理
- ps:查看开启的进程(只会显示应用进程,不会显示系统进程)
- ps -e:即显示应用进程也会显示系统进程,即显示所有进程
- ps -ef:将所有进程按照一定格式列出
- ps -ef +|grep +关键字:查看该关键字代表的进程是否启动
-
关闭进程
- kill -9 +pid(进程的编号):可以来停掉某一个进程
-
Linux中的服务管理使用systemctl或service [start、stop、restart、reload、status、enable]
- 以防火墙为例:
- systemctl status firewalld:查看防火墙状态
- systemctl stop firewalld:关闭防火墙
- systemctl restart firewalld:重启防火墙
- systemctl start firewalld:启动防火墙
- systemctl reloadfirewalld:重新加载防火墙
- systemctl enablefirewalld:设置防火墙开机启动
- 以防火墙为例:
十四:Linux中的软件包管理
- RPM:是Linux中的一种软件包的打包和安装工具,它操作都是以.rpm结尾的软件包
- RPM的使用
- rpm -qa:查看当前系统已安装的所有rpm软件包
- rpm -e + 软件包名:卸载该软件包名
- rpm -ivh +软件包名:安装对应的rpm软件包
- YUM:是一种基于rpm的软件包管理工具,能够自动下载相应的软件包,也可以自动处理软件包之间的相互依赖关系
- YUM的使用
- yum list installed:查看以安装的软件包
- yum remove +软件包名:卸载以安装的软件包
- yum install +软件包名:安装指定的软件包
十五:Linux中安装Java开发环境
-
安装Java开发环境
-
上传jdk压缩包并解压
-
配置环境变量
- 进入到etc目录下,找到profile文件,使用文本编辑器打开并配置文件
- 配置JAVA_HOME:/opt/jdk1.8.0_281
- 配置PATH:$JAVA_HOME/bin
- 配置CLASSPATH:$JAVA_HOME/lib:.
-
将配置信息引入到配置文件中
- export JAVA_HOME PATH CLASSPATH
-
重新加载profile配置文件
- 在/etc目录下使用 source profile来重新加载profile配置文件,使其生效
-
严重Jdk是否配置成功
- java -version
- javac
-
安装mysql
- ./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18
- Pqs(ki5Skx!Z
- ./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data
- server-key.pem
- chowm -R mysql:mysql /opt/mysql-5.7.18
-
安装Mysql
-
在安装MySql数据库之前要先对该Linux系统进行检查,看是否存在mariadb数据库的存在,如果有进行删除,如果没有进行下一步操作
- 检查命令 :yum list installed |grep mariadb
- 删除命令 :yum -y remove mariadb,如果该命令卸载时出错,去掉 -y 进行手动确认删除
-
先上传mysql.tar.gz的压缩包,并使用tar + -zxvf +压缩包名进行解压,如觉得解压后的文件名太长可以使用 mv +解压后包名 +新的名字
-
在mysql的根目录创建一个存放数据的文件夹(数据文件夹名字随意),创建文件夹使用 mkdir + 文件夹名字
- 创建一个用来执行mysqld相关命令的一个Linux用户,本例子使用mysql作为该用户名
- 创建组:groupadd +mysql
- 创建用户并指定所在组:useradd + -g + mysql +:+mysql
- 创建一个用来执行mysqld相关命令的一个Linux用户,本例子使用mysql作为该用户名
-
用户和组创建好后,开始对mysql数据库进行初始化操作
-
当前是在mysql的根目录,切换到mysql根目录下的bin目录
-
./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18
初始化 指定用户 存放数据文件位置 ./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data -- 根目录 basedir=/opt/mysql-5.7.18 -
初始化命令执行成功后,mysql会自动生成一个mysql的root账号和一个临时的字符串密码,需要先记录下来,第一次登陆mysql时需要使用该密码
-
-
-
启用mysql的安全功能
-
目的在服务器在客服端之间进行数据传输时进行加密,通过mysql的证书进行身份验证。防止其非法操作
-
开始安全功能的命令,进入到mysql根目录下的bin目录,命令如下
-
./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data
指定数据存放目录 实际存放数据位置 ./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data
-
-
-
修改mysql安装目录的权限,刚才安装的时候是以Linux中的root账号进行安装,所以该MySQL的所有者和组都是root,其他用户或同组用户都没对该MySQL有写数据的权限,所以要改为刚才创建的mysql用户
-
先回到MySQL安装目录的上一级目录
-
在执行 chown -R mysql:mysql /opt/mysql-5.7.18
-R 表示将该文件或目录下的子目录递归的进行修改 所有者 所在组 文件路径 chown -R mysql:mysql /opt/mysql-5.7.18 //如果你想要任何人都对该数据库具有读写操作权限可以使用以下命令 chown 777 /opt/mysql-5.7.18
-
-
启动MySQL数据库服务
- 进入到MySQL安装根目录下的bin目录,执行启动命令
- 前台启动:./mysqld_safe ,前台启动则会占用Linux命令窗口,无法执行Linux的相关操作命令
- 后台启动:./mysqld_safe & ,后台启动则不会进行窗口的占用,可以继续执行Linux相关操作命令
- 查看MySQL是否启动成功
- ps -ef |grep mysql :查看是否启动成功,如果启动成功则会显示该进程的编号(PID)等相关信息
- 进入到MySQL安装根目录下的bin目录,执行启动命令
-
登录并修改MySQL的初始密码
- 进入到MySQL安装目录下的bin目录,执行 ./mysql -uroot -p 进行登录,提示输入密码,此时密码是第一个生成的一个临时密码,登录成功后进入MySQL命令终端窗口
- 使用 alter user 'root'@'localhost' identified by '你的密码',修改成功后使用exit退出使用新密码登录即可
-
开启MySQL远程访问权限
-
不开启MySQL远程访问权限时,只能在本机进行对MySQL进行访问,开启远程访问是可以使用其他计算机通过网络访问该MySQL
-
授权命令
grant all privileges on *.* to root@'%' identified by '你的密码'; // *.* 第一个*表示所有数据库名,第二个*表示所有数据库表 root 表士用户名 %:表示ip地址,也可以使用具体的ip来代替%
-
-
关闭MySQL服务
- 使用命令关闭
- 先进入到mysql 安装根目录下的的bin目录使用 ./mysqladmin -uroot -p shutdown 后输入你的MySQL密码进行关闭
- 通过杀死进程的形式来关闭服务
- 在任意目录下通过 ps -ef |grep -i mysql 查看MySQL的进程编号
- 在使用 kill -9 +进程编号,来强制进行关闭,但是这种方式则会导致数据丢失,并不推荐
- 使用命令关闭
-
-
------------恢复内容结束------------

浙公网安备 33010602011771号