计算机组成简述
硬件系统
- 输入设备
- 输出设备
- 运算器
- 控制器
- 存储器
软件系统
- 系统软件:管理计算机硬件设备(不为了给用户提供操作)
- 应用软件:用户根据自己需求下载的软件,如:QQ、Chrome
操作系统
管理计算机硬件和软件的计算机程序
个人操作系统
操作方便简单,图形化界面用户友好
- windows:稳定性不够,不能长时间运行,消耗系统资源
- mac:相较于windows性能更高
服务器系统
稳定,高性能(速度快)
- linux:开源免费
- unix:不免费
linux概述
常见的几种版本的linux
- 红旗:操作简单,易上手
- red hat:服务器系统
- ubuntu:图形化界面
- centos:更小巧,适合个人学习
命令
linux命令用于操作linux系统,windows也有自有的Dos命令
linux安装
1、安装虚拟机
安装虚拟机之后可以将linux系统跑在windows下的虚拟机中
- 官网安装VMware Workstation Pro
- 创建新的虚拟机
2、安装操作系统
- 下载镜像,这里是centOS7mini版的阿里镜像地址
- 通过CD选项找到镜像并安装系统
3、安装第三方操作软件(管理linux,比如sqlyog管理数据库)
-
需要知道虚拟机中linux的ip地址(ip addr查看IP地址) -
显示没有分配IP地址,在linux中配置生效ip地址: 1.cd /etc/sysconfig/network-scripts/ 2.vi ifcfg-ens33 3.输入o/a/i进入编辑模式,将ONBOOT改为true 4.按ESC,输入:wq保存并退出 5.重启网络服务:service network restart -
安装MobaXterm,新增会话指定ip,该工具可以清晰的看到目录结构,直接双击使用文本编辑器编写
linux目录结构
- /bin:bin是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令
- /boot:这里存放的是启动Linux时使用的一些核心组件,包括一些链接文件以及镜像文件
- /dev:dev时Device(设备)的缩写,该目录下存放的时Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
- /etc:etc是Etcetera(等等)的缩写,这个目录用来存放所有的系统管理需要的配置文件和子目录
- /home:用户的主目录,在Linux中,每一个用户都有一个自己的目录,一般目录名是以用户的账号命名的,如上图的alice、bob和eve;除了root用户之外,其他的用户登录系统不会进入根目录,而是到home目录下的用户目录
- /lib:lib是Library(库)的缩写,这个目录里存放着系统最基本的动态链接共享库,起作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
- /lost+found:该目录一般情况是空的,在系统非法关机的时候这里存一些日志等信息
- /media:Linux系统会自动识别一些设备,例如u盘、光驱等等,当识别后,Linux会把识别的目录挂载(挂载是指操作系统使一个存储设备上的计算机文件和目录可供用户通过计算机文件系统访问的过程)到这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
- /opt:opt使optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录,比如安装一个ORACLE数据库则就可以放到这个目录下,默认是空的
- /proc:proc是Processes(进程)的缩写,/proc是一种伪文件系统(也称虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,他是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里, 我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令使别人无法ping你的机器
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
- /root:该目录为系统管理员,也称作超级管理员的用户主目录
- /sbin:s就是Super User的意思,是Superuser Binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序
- /selinux:这个目录是Redhat/CentOS特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关文件的
- /srv:该目录存放一些服务启动后需要提取的数据
- /sys:这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs,sysfs文件系统集成了下面三种文件系统的信息:针对进程信息的proc文件系统,针对设备的divfs文件系统以及针对伪终端的devpts文件系统
该文件系统是内核设备数的一个直观反映 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建 - /tmp:tmp是temporary(临时)的缩写,这个目录用来存放临时文件
- /usr:usr是unix shared resources(共享资源)的缩写,这是一个非常重要的目录,用户很多应用程序和文件都放在这个目录下,类似于windows里的program files目录
- /usr/bin:系统用户使用的应用程序
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序
- /usr/src:内核源代码默认的防止目录
- /var:var是variable(变量)的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件
- /run:是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录下的文件应该被删掉或清除,如果你的系统上有/var/run目录,应该让他指向run
常用的目录
- /root:管理员操作的目录
- /home:其他用户操作的目录
- /etc:配置文件
- /usr:共享资源
- /var:数据变化,放置日志
- /bin:软件的命令
核心命令
用户操作
- 创建用户:useradd 用户名
- 为用户设置密码:password 用户名
目录操作
- 目录切换
- 相对目录切换,切换到子目录:cd 目录名(相对路径)
- 切换到上级目录:cd …
- 切换到上级目录的上级目录:cd …/…
- 绝对目录切换:cd 目录名(绝对路径)
- 在最近访问的两个目录之间起切换:cd -
- 切换到当前用户的home:cd ~
- 查看当前目录信息
-查看当前目录的位置:pwd -查看文件及文件夹(不包含隐藏文件):ls -查看所有的文件及文件夹(包含隐藏文件和系统文件):ls -a -查看详细信息(大小、日期、所属用户、所属组、文件类型,不包含隐藏文件):ls -l(可以简写为ll) -查看文件节点:ls -i -查看友好信息(文件大小的计算):ls -h - 创建目录
- 创建单级目录:mkdir 目录名
- 创建多级目录:mkdir -p 多级目录
- 删除目录(删除的目录必须为空目录,非空需要一级一级删除):rmdir 目录名
- 移动与修改目录名:mv 目录名 目的地目录/修改后的目录名
文件操作
- 创建文件:touch 文件名
- 删除文件
- 提示是否删除:rm 文件名
- 强制删除(不提示):rm -f 文件名
- 递归删除(将该目录及子文件都删除):rm -r
- 编辑文件
- 进入命令模式:vi 文件名
- 进入文本编辑模式:输入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式,按下ESC退出到命令模式
- 进入底线命令模式::,在冒号后输入底线命令,如保存命令w,退出命令q,保存并退出wq,强制退出命令(退出不保存):q!
- 查看文件
- 查看全部内容:cat 文件名(正向显示,从第一行开始)/ tac 文件名(逆向显示,从最后一行开始)
- 查看开头指定行数的内容:head 文件名
- 查看末尾指定行数的内容:tal 文件名
- 分页查看,回车是下一行,空格是下一页,b返回上一页,q退出:less 文件名
- 分页查看,可以看到当前显示的内容所占百分比,到文件末尾自动退出:more 文件名
- 压缩和解压缩
- 基础命令
tar -z 是否使用压缩 -x 解压 -c 打包 -v 显示包中内容 -f 显示压缩包的文件名 - 组合命令
压缩或打包:tar -zcvf 压缩后的文件名 需要压缩的目录或文件、tar -cvf 压缩后的文件名 需要压缩的目录或文件 解压缩:tar -zxvf 待解压的文件名、tar -xvf 待解压的文件名 如果没有使用压缩,则文件名后缀声明为.tar,如果使用了压缩,则文件名后缀声明为.tar.gz
- 在文件那日容中查找
grep 参数 要查找的内容 查找范围 -i 不区分大小写 -v 排除符合条件的内容 -n 显示行号 -r 递归(从对应目录下递归查找) - 管道:将多个命令一起执行,前一个命令的结果作为后一个命令的参数,使用|分割开,例如
cat a.txt|grep hello 从前一个查看命令的结果中查找hello - 移动文件与修改文件名:mv 文件名 目的地目录/修改后的文件名
文件权限
使用ll查看详细信息的时候可以看到文件的权限信息,如: 文件权限信息共有十位,第一位是文件类型(在linux中万物皆文件,d表示目录,-表示文件);后面9为分为三组,每组都由rwx组成(即read write execute,可读 可写 可执行),第一组为文件所属用户的权限,第二组为文件所属组的权限,第三组为其他用户的权限
修改文件权限
针对文件修改
- chmod 三位赋予权限的数字 文件名
- 三位数字分别对应所属用户,所属组,其他用户
- 数字0对应没有任何权限,数字1对应可执行x,数字2对应可写w,数字4对应可读r,赋予多个权限为两个数字相加的值,如:3代表可写可执行,5代表可读可执行,6代表可读可写,7代表可读可写可执行
针对用户/组修改
- u代表所属用户,g代表所属组,o代表其他用户
- 覆盖权限:chmod u/o/g=wxr 文件名
- 增加权限:chmod u/o/g+wxr 文件名
- 收回权限:chmod u/o/g-wxr 文件名
网络配置
- 查看网络ip:
ip addr - 编辑网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33 设置onboot为yes启用ip - 网络配置生效
重启网络服务service network restart - 通过ping命令测试是否连通
ping www.baidu.com
防火墙配置
作用域:–zone 添加端口:–add-port=端口号/通信协议 永久开放:–permanent 关闭端口:–remove-port=端口号/通信协议
- 查看白名单列表:firewall-cmd --zone=public --list-ports(查看当前公有的白名单端口)
- 添加白名单端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent(将tcp8080端口添加到白名单中,永久生效)
- 重启防火墙:firewall-cmd --reload
- 查看白名单列表:filewall-cmd --zone=public --list-ports
进程管理
查看进程
进程信息中UID表示进程所属用户,PID表示进程号,PPID表示进程依赖的父进程的进程号
- 查看当前用户所拥有的进程的基本信息:ps
- 查看当前用户所拥有的进程的详细信息:ps -f
- 查看所有的进程:ps -e
结束进程
kill -9 pid
软件安装与发布
软件安装方式
- rpm安装:安装一个软件需要若干个rpm文件,他们之间有依赖关系,需要根据依赖关系一层一层按顺序安装,命令:rpm -i 需要安装的包名
- yum安装:先有一个yum源,这个源上有若干个rpm文件,可以帮我们安装依赖,命令:查看yum 源:yum list;安装:yum -y install 需要安装的包名
- 安装包安装:下载源码包——解压,编译
make ,安装make install ,删除安装时产生的临时文件make clean
安装与发布
安装jdk8
- yum list | grep java:从yum源中查看Java有关的包
- yum -y install java-1.8.0-openjdk*:安装jdk8相关全部内容(使用通配符*,安装了包括文档等等)
- java -version:查看安装后的jdk版本信息
- javac,java:编写java程序检查是否安装成功
安装与启动tomcat
- tar -zxvf apache-tomcat-10.0.1.tar.gz:解压tomcat压缩包
- cd apache-tomcat-10.0.1/bin:进入tomcat的bin目录
- ./startup.sh:运行tomcat服务器
- 配置白名单或关闭防火墙
- 将war文件从window拷贝到linux中tomcat的webapps中
- 在tomcat/conf/tomcat-user.xml中添加
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
- 在tomcat/conf/Catalina/localhost中添加manager.xml并加入如下内容
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
- 即可通过tomcat主页的Manager App来管理应用
安装mysql
由于centos7的yum源中没有mysql的安装包,所以要先安装wget命令,在从网络上获取mysql的安装包
- yum list wget:安装wget命令
- wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm:使用wget从网络上获取mysql的rpm文件
- rpm -ivh mysql57-community-release-el7-9.noarch.rpm:将mysql放入仓库中
- cd /etc/yum.repos.d/:进入仓库
- yum -y install mysql-server:安装mysql
- systemctl start mysqld.service:启动mysql服务
- grep ‘temporary password’ /var/log/mysqld.log:查看临时密码
- mysql -uroot -p密码:登录mysql
- set global validate_password_policy=LOW;:设置密码策略为低
- set password for root@localhost = password(‘密码’);:设置密码
- grant all privileges on *.* to root@’%’ identified by ‘密码’;:设置远程访问权限
- flush privileges;:刷新mysql远程访问权限
- 注意添加mysql对应端口的白名单
|