1.什么是Linux系统?
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux,centos7 等。
2. 为什么使用Linux系统?
因为Linux系统性能比较稳定而且比较安全,非常是否程序的运行。 我们开发的项目程序,都会部署到Linux系统上。
我们要学习linux系统,就必须在自己电脑上安装Linux系统或者租赁其他云服务的linux系统。
租赁:阿里云或者腾讯云等
安装: 借助虚拟机---模拟安装n个操作系统。
3. 如何使用
安装虚拟机:VMware Workstation Pro创建多个虚拟电脑---每个电脑可以安装自己相应的系统镜像。
4. ssh客户端工具---xshell
可以帮你连接你的虚拟机。
使用ifconfig 查看你虚拟机的ip地址。====>如果上面的命令不能用,用 ip addr
5. linux常见的命令
- ping 命令 测试网络联通型。
表示该虚拟机可以连接百度网络。
- cd 命令 切换到指定目录下。
/: 根目录
bin: 目录 命令目录 千万不要删除【以后很多命令不能使用了】
etc: 环境配置目录。
root: 账号为root用户名的目录
sbin: 存放命令的目录
usr: 用户目录 ---window program file 习惯把软件安装到该目录下
cd 指定的目录名称 cd ../ 切换到上一级目录 cd / 切换到根目录
3. ls 查询当前目录下的子文件
ls 查看当前目录下的子文件 ls 指定目录 查询指定目录下子文件 ls -l 以列表的形式查询指定目录下的子文件 ls -a 查询指定目录下所有的文件包含隐藏文件
4. pwd 查看当前所在的目录
pwd
5. mkdir 创建文件夹
mkdir 目录名称 mkdir -p 多层目录
6. touch创建文件
touch 文件名
7. rm 删除文件或目录
rm 文件名 【删除提示框】 rm -f 文件名 【暴力删除】 rm -r 文件夹 rm -rf 文件或文件夹
8. vi 编辑文件内容
进入命令模式[不能输入内容]---->i----->编辑模式【可以输入内容】---->Esc推到命令模式 ---:wq[保存退出] ---:q![退出不保存]
9. cat | head | tail 查看文件内容
cat 查看所有内容。cat 文件名 head 查看前n行内容 head -10 文件名 tail 查询后n行内容 tail -10 文件名
6. 修改ip为静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络: systemctl restart network
7. 其他命令
重命名|移动: mv
mv 源文件名 目标文件名 mv a.txt ldh.txt 把a.txt重名为ldh.txt mv 源文件名 目标目录 mv a.txt /usr/local 把a.txt移动到/usr/local目录下
复制: cp
cp /usr/local/ldh.txt /xzh 把/usr/local/ldh.txt文件复制到/xzh目录下 cp -r xzh /usr/local/ 把目录xzh复制到/usr/local下
搜索: find
find 目录 -name '被搜索的文件名'
在文件中搜索指定的内容: ---grep
grep '内容' 文件名 -n
ls -l: 查看详细信息
修改权限:chmod
chmod [u|o|g]+[wxr] 文件 chmod 777 文件
解压缩文件:
压缩:
tar -zcvf 压缩后的名称 要压缩的目录解压:
tar -zxvf 压缩文件 解压到当前目录 tar -zxvf 压缩文件 -C /目标目录
8. 安装软件
软件的安装方式:
二进制安装。---只需要解压就可以。 只针对特殊平台。 比如jdk tomcat
RPM: 按照一定的规范就可以按照该软件。 无法安装依赖的文件。
yum 远程安装 基于RPM 帮你把依赖的文件安装上去。 多
安装源码安装。 编译--->打包---->安装。
8.1 jdk---1.8
window和linux之间如何传递文件:xftp---文件传输。
(1)压缩文件上传到指定目录下
(2) 解压该文件
tar -zxvf jdk-8u161~~~~.tar.gz
(3)配置环境变量 vi /etc/profile
JAVA_HOME=jdk的安装路径 PATH=
(4)刷新配置
source /etc/profile
8.2 安装tomcat服务器--war包
(1)上传并解压--省略
(2)启动tomcat
进入tomcat/bin目录 ./startup.sh
ps -ef | grep tomcat -----查看指定的进程
kill -9 进程号
(3)window中的浏览器访问tomcat
我们centos的防火墙没有给8080端口号放行。
防火墙的命令:
1. 查看防火墙的状态: systemctl status firewalld
2. 设置防火墙允许放行哪些端口号 firewall-cmd --add-port=8080/tcp --zone=public --permanent 3. 重启防火墙 systemctl restart firewalld 4. 查看哪些端口号被放行 firewall-cmd --list-port 5. 防火墙移除端口号 firewall-cmd --remove-port=8080/tcp --zone=public --permanent 6. 关闭防火墙----慎重【关闭】 开启还会启动 systemctl stop firewalld
8.3 安装mysql
Centos7 安装MySQL详细步骤 - 帅哥的爸爸 - 博客园
9. shell脚本--了解【能看懂别人的shell】
什么是shell脚本?
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
9.1 hello world入门
#!bin/bash echo "内容"
执行脚本:
修改权限:
9.2 Shell 变量
#!/bin/bash # echo表示输出语句 echo "hello world" # 定义变量 name="张三" # 使用变量${} echo "nihao ${name} welcome to qy151"
9.3.1 Shell 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
3.2 Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
3.3 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
-
算数运算符
-
关系运算符
-
布尔运算符
-
字符串运算符
-
文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 *`* 而不是单引号 *'*):
两点注意:
-
表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
-
完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
3.3.2 关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字 .
3.3.3 布尔运算符
3.3.4 逻辑运算符
3.4 Shell 流程控制
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi ps -ef | grep -c "mysql"统计某个进程的个数