一、Linux入门
1.1 什么是Linux?
Linux是一款操作系统,免费,开源,安全,高效,稳定,处理高并发强悍,现在很多企业级的项目都部署到Linux,unix服务器运行。
1.2 Linux的安装
我们一般在 Windows 系统上使用虚拟机去安装 Linux ,没有必要去重装 Linux 系统。通常我们都会使用到 VirtualBox 虚拟机。
- 首先安装VirtualBox虚拟机,选择 Windows host下载并安装。
- 虚拟机安装完成后,我们需要下载 CentOS 7
- 我们需要在系统磁盘上新建文件夹,用于存放虚拟机,例如
D:/IDE/VM/iso将我们下载好的 CentOS 放置在此路径下。 - 打开 VirtualBox ,选择新建虚拟电脑

- 输入虚拟电脑的名字,选择创建的文件夹,这里我们将其放在刚刚创建的
D:/IDE/VM路径下,类型选择 Linux ,版本选择 other Linux (64-bit)

- 选择内存分配,默认建议512M

- 选择现在创建虚拟硬盘

- 选择创建,创建完成后在左侧菜单栏选择创建的虚拟电脑,打开设置,打开存储,添加盘片,选择刚才下载到
D:/IDE/VM/iso/CentOS-7-x86_64-DVD-2009.iso

- 设置网络,设置->网络->网卡1->连接方式->界面名称
- 连接方式选择:桥接网络
- 界面名称基于电脑的网络连接方式:
- WIFI连接选择:Intel(R) Wireless-AC 9560 160MHz
- 宽带网线连接选择:Realtek PCIe GbE Family Controller #2

- 配置完成后,双击启动,开始安装。在内部选择磁盘,将网络设置打开,设置密码,等待安装,安装完成后重启,进入系统输入Linux系统,输入用户名
root,密码为自己设置的密码。安装完成后检查网络是否连接ping www.baidu.com。 -
二、Linux基础
2.1 Linux根路径
首先,我们刚进入 Linux 系统的命令行时,会显示
[root@anonymous ~] #,并处于等待输入状态,首先root是用户名,anonymous是指主机名,~代表当前用户所在的目录。cd /回到根路径。输入ll查看当前目录下的内容。
首先,深蓝色的代表文件夹,浅蓝色的代表软链接(就相当于Windows下的快捷方式),我们可以看到每一个软链接都指向一个新的路径。 /bin二进制文件的缩写,存放最经常使用的命令。/boot启动linux的使用的核心文件,链接文件,镜像文件/dev设备的缩写,linux的外部设备,/etc系统管理的配置文件/home每一个用户都有自己的目录/lib目录存放着最基本的动态链接库/media系统会自动识别,U盘,光驱等,识别后,自动挂载此目录/mnt让用户可以手动临时指定挂载的目录,/opt安装软件存放的目录/proc存储当前内核运行状态的特殊文件/root系统管理员,超级权限用户目录/sbin超级用户的二进制文件/srv启动之后需要加载提取的数据/tmp临时目录/usr用户很多应用程序的目录/var存放不断扩充的的目录2.2 Linux基础命令
ip addr查看IP地址cd 目录切换文件夹pwd查看当前目录位置mkdir 文件夹名创建文件夹rmdir 文件夹名删除文件夹rm -rf 文件名删除文件夹(慎用),rm -f 文件名删除文件help帮助手册ls -a -l -al查看信息touch 文件名创建文件cp 要复制的文件 目标位置拷贝mv 要移动的文件 目标位置移动mv 当前目录下的文件 当前目录下的文件(改名)重命名(利用移动的手段重命名文件)history显示历史命令find查找find /home/ -name a1.txt[类型、大小、用户、组、时间]2.3 vi常用命令
2.3.1 一般模式:vi刚进入文件的模式
gg进入文本的第一行G到文本的最后一行dd删除一行u撤销yy复制当前行p粘贴3+G移动到第三行/关键字向下查找关键字?关键字向上查找关键字ctrl+f向下翻页ctrl+b向上翻页ctrl+u向上翻半页ctrl+d向下翻半页2.3.2 插入模式:i/a/o进入
i在光标前插入,I当前行开始插入a光标后插入,A光标当前行末尾插入o当前行下一行插入新行,O当前行的上一行插入2.3.3 底行模式:ESC退出到(一般模式),
:进入set nu显示行号set nonu取消行号:2进入第二行
查找和替换wq保存并退出q退出,不保存2.4 tail命令
tail 文件名显示文件的最后10行内容tail -行数 文件名显示文件的最后n行内容,例如:tail -20 b.txttail -F 文件名监视文件的更新,并自动输出到控制台tail -f 文件名监视文件索引的更新,并输出到控制台注意:
vi输入其实是将文件复制出一份,编辑完成后保存会重新创建一个新的文件替换掉原来的文件,所以我们在使用tail -f 文件名不能实时监听到vi输入模式下文件的变化。
echo 内容 >> 文件名将内容追加到文件的尾部,不会产生新的文件,可以被tail -f监听到tail -20f 文件名监听文件,并默认显示文件的结尾20行内容
2.5 grep命令
grep可以在任何位置配合管道符|进行过滤操作,例如:tail -f a.txt |grep 'A:'只监视A:的变化ll |grep 'ssl'只显示包含ssl名字的文件ip addr |grep 'inet'只显示inet的IP地址
2.6 cat命令
cat 文件名全文查找,将文件的内容全部打印到控制台cat命令通常会伴随着grep过滤一起使用,例如:cat a.txt |grep "abc"只输出有abc的行cat a.txt |grep "abc" |grep "ok"在abc的基础上再次过滤ok的行
2.7 less命令
less 文件名根据屏幕大小默认显示出一页的内容
在此模式下,我们可以进行如下操作:-b <缓冲区大小> 设置缓冲区的大小-e 当文件显示结束后,自动离开-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件-g 只标志最后搜索的关键词-i 忽略搜索时的大小写-m 显示类似more命令的百分比-N 显示每行的行号-o <文件名> 将less 输出的内容在指定文件中保存起来-Q 不使用警告音-s 显示连续空行为一行-S 行过长时间将超出部分舍弃-x <数字> 将“tab”键显示为规定的数字空格/字符串:向下搜索“字符串”的功能?字符串:向上搜索“字符串”的功能n重复前一个搜索(与 / 或 ? 有关)N反向重复前一个搜索(与 / 或 ? 有关)b 向后翻一页d 向后翻半页h 显示帮助界面Q 退出less 命令u 向前滚动半页y 向前滚动一行空格键 滚动一行回车键 滚动一页[pagedown] 向下翻动一页[pageup] 向上翻动一页
2.8 Linux下的搜索命令
whereis 命令查找该命令在哪一个目录下find -name 文件名查找该文件在哪一个目录下
2.9 top命令
该命令可以监视系统的资源,相当于 Windows 下的任务管理器的性能
我们可以监视到cpu利用率,内存占比等信息。
2.10 shell
shell 在 linux 中就是一个批处理文件,类似于 Windows 中的.bat文件,但是 linux 中的批处理文件是.sh文件。执行该文件后,系统会从上到下执行文件中的每一行命令。
执行vi doit.sh可以创建一个doit.sh的文件。我们可以使用vi命令编辑该文件的内容
mv b.txt c.txtcp c.txt test/b.txt
现在编辑完成,保存后执行,会发现显示-bash: ./doit.sh: Permission denied,表示该文件没有可执行权限。我们需要对此文件进行授权。
使用如下命令完成授权,后续会解释该命令的含义:
chmod 777 doit.sh
2.11 文件授权
我们每次使用ll命令查看文件夹中的内容时,每个文件都会有一个前缀。例如:
每个文件的前缀-rw-r--r--等内容都代表一个文件的权限,我们需要将这一串字符拆解成四段:
- 第一个符号
-代表文件类型-代表文件d代表目录l代表 link ,相当于快捷方式
- 后续的九个字符,每三个为一组,分别代表拥有者权限、用户组权限、其他组权限,每一种的最高权限是
rwxr代表可读,权重为 4w代表可写,权重为 2x代表可执行,权重为 1
- 我们为文件赋权时,可以为每个对象赋予对应权重的权限,即将对应的权限的权重值累加即可。例如可读可写对应为5,仅可读对应为4,最高为7,代表可读可写可执行,无权为0,以此类推
- 通过
chmod 每一组对象的权重值 文件名可以为一个文件赋权。2.12 查看进程与结束进程
使用ps aux可以查看全部进程,例如:
我们也可以使用|grep来过滤某些进程,例如:
每一个进程都有其对应的PID,我们可以通过执行kill PID来结束掉当前进程kill 1382
2.13 Linux上安装软件
在 Linux 系统上,可以使用yum install xxx来安装软件,我们也可以使用yum search xxx来查找是否存在某个软件可以安装的版本。yum就类似于npm和maven,将别人上传到公共仓库的包拉取下来安装。
例如安装jdk和tomcat
首先查询jdk版本
会显示有关yum search java |grep "jdk"
jdk的所有课安装的信息。
安装yum install java-1.8.0-openjdk.x86_64 -y
tomcat也是如此
一般安装的路径都存放在yum install tomcat
/usr/share中,我们可以进入此目录查看,也可以修改配置文件等操作,然后启动服务service xxx start
停止服务使用service tomcat start
service xxx stop,也可以直接kill PIDservice tomcat stop# 或kill 1234
2.14 lsof命令
lsof命令可以根据端口号查找进程,使用之前需要安装
例如,查询8080端口的进程yum install lsof -y
lsof -i:8080
2.15 关闭防火墙
通常我们在 Linux 上启动的服务,外界是无法访问的。我们需要关闭防火墙
关闭防火墙后需要重启systemctl disable firewalld
reboot
2.16 curl命令
curl命令可以发起一个 http 请求,获取到页面数据,加上对应的参数还可以获取响应头信息
我们也可以定义一下tomcat的主页面,进入tomcat安装目录,进入curl -i www.baidu.com
/webapps/ROOT创建index.html,使用vim命令编辑后保存,重启 tomcat 服务后使用curl http://127.0.0.1:8080即可访问到 tomcat 的默认页面。2.17 zip压缩与unzip解压
想要使用zip压缩与unzip解压都需要先进行安装
然后我们可以对一个目录进行压缩,yum install zip -yyum install unzip -y
zip -r 压缩文件名 文件名注意:要压缩文件夹需要使用
-r
zip -r test.zip test
解压unzip 压缩文件
unzip test.zip
2.18 tar包的压缩与解压
tar不需要安装,可以直接使用,压缩文件成xxx.tar有两种方式
# 第一种方式tar -cvf test.tar test# 第二种方式tar -zcvf test.tar test
注意:
-cvf的压缩体积很大,远大于-zcvf
同样解压xxx.tar也有两种方式
# 解压 -cvf 模式的tartar -xvf test.tar# 解压 -zcvf 模式的tartar -xzvf test.tar
2.19 scp传送文件
我们可以向另一台 Linux 系统传送一个文件,使用scp命令,该命令不需要安装,系统自带。
使用如下命令:scp 要传送的文件 用户@主机IP:存放的路径,例如:
scp ./test2.tar root@192.168.1.22:~/test2.tar
2.20 安装mysql
在yum仓库没有mysql的映射,所以我们需要先下载安装包。
通过wget下载,首先安装wget
yum install wget -y
然后通过wget下载 mysql 的安装包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装包下载完毕后,我们需要进行安装
rpm -ivh mysql-community-release-el7-5.noarch.rpm
现在,就已经将我们的安装包添加到内存了,可以使用yum进行安装了
分别安装 mysql 的服务端,测试端,客户端
#安装 mysql 服务端yum install mysql-server#安装 mysql 测试端yum install mysql-devel#安装 mysql 客户端yum install mysql
进入/etc/my.cnf修改字符集
vim /etc/my.cnf
添加一行character-set-server=utf8,然后保存并退出
然后,启动 mysql 服务,并修改登录密码
service mysqld start
# 选择数据库USE user;# 修改用户密码UPDATE user SET password = password("123456") WHERE user = "root";#刷新flush privileges;
2.21 安装Nginx
安装 Nginx 之前,我们需要先安装一下 c++ ,因为 Nginx 是基于 c++ 来开发的
yum install gcc-c++
然后进入vim /etc/yum.repos.d/nginx.repo文件,将nginx的安装包配置一下
name=nginx repobaseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enable=1
将 Nginx 的安装包添加进去
sudo yum install epel-realease
开始安装
sudo yum install nginx
2.22 设置开机自启
进入/etc/profile.d/,这个目录下面的文件都会在开机的时候执行一次,所以我们可以在此目录下创建一个shell批处理文件。开机的时候启动服务即可。
service tomcat startservice nginx start
