一、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.txt
tail -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.txt
cp c.txt test/b.txt
现在编辑完成,保存后执行,会发现显示-bash: ./doit.sh: Permission denied
,表示该文件没有可执行权限。我们需要对此文件进行授权。
使用如下命令完成授权,后续会解释该命令的含义:
chmod 777 doit.sh
2.11 文件授权
我们每次使用ll
命令查看文件夹中的内容时,每个文件都会有一个前缀。例如:
每个文件的前缀-rw-r--r--
等内容都代表一个文件的权限,我们需要将这一串字符拆解成四段:
- 第一个符号
-
代表文件类型-
代表文件d
代表目录l
代表 link ,相当于快捷方式
- 后续的九个字符,每三个为一组,分别代表拥有者权限、用户组权限、其他组权限,每一种的最高权限是
rwx
r
代表可读,权重为 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 PID
service 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 -y
yum 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 模式的tar
tar -xvf test.tar
# 解压 -zcvf 模式的tar
tar -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 repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enable=1
将 Nginx 的安装包添加进去
sudo yum install epel-realease
开始安装
sudo yum install nginx
2.22 设置开机自启
进入/etc/profile.d/
,这个目录下面的文件都会在开机的时候执行一次,所以我们可以在此目录下创建一个shell批处理文件。开机的时候启动服务即可。
service tomcat start
service nginx start